:root{
  --ink:#10213b;--muted:#66809d;--blue:#3b82f6;--cyan:#06b6d4;--purple:#7c3aed;--green:#10b981;
  --panel:rgba(255,255,255,.14);--panel-line:rgba(255,255,255,.26);--dark:#0b1730;--dark2:#111c3d;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}body{color:#fff;background:#0b1730}button,input,select{font:inherit}button{cursor:pointer}.screen{display:none;position:absolute;inset:0;min-height:100vh}.screen.active{display:block}.page-bg{position:fixed;inset:0;background:#10213b url('/static/images/background.jpg') center/cover no-repeat;z-index:-3}.bg-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(5,24,48,.74),rgba(18,27,55,.45) 55%,rgba(42,31,85,.36))}.orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.36}.orb-a{width:380px;height:380px;background:#2563eb;left:-100px;top:18%}.orb-b{width:420px;height:420px;background:#7c3aed;right:-120px;top:8%}.glass-card{background:linear-gradient(145deg,rgba(18,40,72,.64),rgba(35,35,70,.52));border:1px solid rgba(255,255,255,.17);box-shadow:0 24px 70px rgba(0,0,0,.18);backdrop-filter:blur(16px)}

/* Cover */
.cover-screen{overflow:auto}.cover-topbar{height:70px;padding:0 4%;display:flex;align-items:center;justify-content:space-between}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-icon,.mini-logo{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(59,130,246,.9),rgba(124,58,237,.9));border:1px solid rgba(255,255,255,.18);font-size:26px}.brand-lockup b{font-size:20px}.brand-lockup small{font-size:10px;letter-spacing:2px;color:#a9c9e9}.teacher-entry{color:#e5effa;text-decoration:none;padding:10px 15px;border-radius:13px;background:rgba(9,24,48,.38);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px)}.cover-main{min-height:650px;padding:42px 6% 22px;display:grid;grid-template-columns:1.05fr .9fr;align-items:center;gap:54px}.game-kicker{font-size:12px;font-weight:800;letter-spacing:2px;color:#8dd5ff;display:flex;align-items:center;gap:12px}.game-kicker span{width:38px;height:2px;background:linear-gradient(90deg,#60a5fa,#8b5cf6)}.cover-copy h1{font-size:72px;line-height:1.03;margin:20px 0 12px;letter-spacing:2px}.cover-copy h1 em{font-size:.72em;font-style:normal;color:#dceeff}.cover-copy h2{font-size:25px;margin:0 0 12px}.cover-copy p{font-size:16px;line-height:1.8;color:#c2d4e6;max-width:700px}.cover-actions{display:flex;gap:14px;margin:28px 0 22px}.game-primary,.game-secondary{border:0;border-radius:17px;padding:14px 25px;color:#fff;font-weight:900}.game-primary{background:linear-gradient(135deg,#3b82f6,#7c3aed);box-shadow:0 12px 30px rgba(68,83,226,.28);min-width:190px}.game-primary span,.game-primary small{display:block}.game-primary small{font-size:9px;letter-spacing:2px;margin-top:2px;opacity:.82}.game-secondary{background:rgba(8,25,48,.48);border:1px solid rgba(255,255,255,.14)}.feature-chips{display:flex;gap:10px;flex-wrap:wrap}.feature-chips span{font-size:12px;padding:8px 12px;border-radius:999px;background:rgba(9,29,54,.48);border:1px solid rgba(255,255,255,.10);color:#d2e2f2}.hero-console{min-height:520px;border-radius:34px;padding:26px 30px;position:relative;overflow:hidden}.console-head{display:flex;justify-content:space-between;color:#9cb6d1;font-size:10px;letter-spacing:1.5px}.console-head span{display:flex;gap:9px;align-items:center}.console-head i{width:8px;height:8px;background:#34d399;border-radius:50%;box-shadow:0 0 16px #34d399}.console-head b{color:#6ee7b7}.radar{height:360px;position:relative;display:grid;place-items:center}.radar-ring{position:absolute;border:1px solid rgba(120,190,255,.28);border-radius:50%}.r1{width:300px;height:300px}.r2{width:215px;height:215px}.r3{width:130px;height:130px}.radar-core{width:120px;height:120px;border-radius:32px;background:linear-gradient(145deg,#3b82f6,#7c3aed);display:grid;place-items:center;font-size:48px;box-shadow:0 20px 45px rgba(40,69,200,.28);z-index:2}.floating-tag{position:absolute;padding:10px 13px;border-radius:13px;background:rgba(6,26,52,.80);border:1px solid rgba(255,255,255,.11);box-shadow:0 12px 24px rgba(0,0,0,.18)}.floating-tag b{display:block;color:#82b9ed;font-size:10px}.floating-tag span{font-size:13px;font-weight:800}.tag-a{left:0;top:72px}.tag-b{right:0;top:135px}.tag-c{left:20px;bottom:48px}.key-row{display:flex;justify-content:center;gap:9px}.key-row i{font-style:normal;width:44px;height:44px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-weight:800;color:#cbdced}.key-row .active-key{background:linear-gradient(145deg,#3b82f6,#7c3aed);color:#fff}.console-bottom{display:flex;justify-content:space-between;margin-top:16px;color:#7696b5;font-size:9px;letter-spacing:1.5px}.cover-missions{margin:0 6% 18px;display:grid;gap:14px}.two-missions{grid-template-columns:1fr 1fr}.cover-missions article{display:grid;grid-template-columns:42px 48px 1fr;gap:15px;align-items:center;padding:16px 20px;border-radius:20px;background:rgba(8,25,48,.58);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(13px)}.mission-no{font-size:10px;letter-spacing:1px;color:#8bb1d7;writing-mode:vertical-rl}.cover-missions i{font-style:normal;font-size:28px}.cover-missions b{display:block;font-size:17px}.cover-missions small{display:block;color:#9eb7ce;margin-top:4px}.cover-footer{text-align:center;color:#91a9c0;font-size:11px;padding:10px 0 20px}

/* Lobby */
.lobby-screen{background:linear-gradient(120deg,rgba(5,23,47,.79),rgba(16,31,58,.63));overflow:auto}.site-topbar{height:72px;padding:0 4%;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.10);background:rgba(5,23,46,.44);backdrop-filter:blur(15px)}.back-link{border:0;background:none;color:#bed1e5}.mini-brand{margin:auto;display:flex;align-items:center;gap:10px}.mini-brand .mini-logo{width:40px;height:40px;font-size:21px}.mini-brand span{font-weight:900}.mini-brand small{font-size:9px;letter-spacing:1.6px;color:#88abd0}.lobby-main{max-width:1280px;margin:auto;padding:38px 30px}.lobby-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.lobby-heading h2{font-size:38px;margin:12px 0 6px}.lobby-heading p{margin:0;color:#b7cadc}.lobby-side-actions{display:flex;gap:12px;align-items:center}.rank-open-btn{border:1px solid rgba(255,255,255,.13);background:rgba(9,31,58,.48);color:#fff;border-radius:13px;padding:11px 14px}.identity-chip{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(8,29,55,.47)}.identity-chip .avatar{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#3b82f6,#7c3aed);font-weight:900}.identity-chip small{display:block;color:#8dadcb;font-size:9px}.identity-chip b{display:block;font-size:13px;margin-top:2px}.identity-chip button{border:0;background:none;color:#9cc7ed;font-size:11px}.battle-choice-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;margin-top:30px}.battle-card{text-align:left;min-height:390px;border-radius:28px;padding:28px;color:#fff;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.16);transition:.22s}.battle-card:hover{transform:translateY(-5px);box-shadow:0 28px 55px rgba(0,0,0,.25)}.warmup-card{background:linear-gradient(145deg,rgba(24,68,105,.82),rgba(19,48,82,.78))}.formal-card{background:linear-gradient(145deg,rgba(38,72,131,.90),rgba(75,48,143,.82))}.battle-label{display:inline-block;padding:7px 10px;border-radius:999px;background:rgba(125,211,252,.12);border:1px solid rgba(125,211,252,.2);font-size:9px;letter-spacing:1.3px;color:#bce9ff}.battle-label.official{background:rgba(196,181,253,.13);border-color:rgba(196,181,253,.24);color:#e5dcff}.battle-icon{font-size:46px;margin:30px 0 12px}.battle-card h3{font-size:28px;margin:0 0 12px}.battle-card p{line-height:1.75;color:#d1deeb;margin:0}.battle-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.battle-tags span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);font-size:10px;color:#d6e4f1}.battle-start{position:absolute;left:28px;right:28px;bottom:24px;padding:13px 0;border-top:1px solid rgba(255,255,255,.12);font-weight:900}.battle-start b{float:right}.primary-enter{color:#fff}.formal-timeline{display:flex;align-items:center;gap:8px;margin-top:19px}.formal-timeline span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);padding:9px 12px;border-radius:12px;font-size:11px}.formal-timeline span b{display:block;color:#fff;font-size:13px}.formal-timeline i{height:2px;flex:1;background:linear-gradient(90deg,#60a5fa,#a78bfa)}.lobby-rule{margin-top:20px;border-radius:18px;padding:16px 18px;display:flex;gap:12px;align-items:center}.lobby-rule b{display:block}.lobby-rule small{color:#b4c8dc}

/* Game - intentionally bright */
.game-screen{background:linear-gradient(135deg,#dfefff 0%,#eef5ff 44%,#eeeaff 100%);color:var(--ink);overflow:hidden}.hud{height:92px;margin:14px 16px 0;border-radius:24px;display:grid;grid-template-columns:1.45fr repeat(6,1fr) auto;gap:10px;padding:10px 12px;align-items:center}.light-hud{background:rgba(255,255,255,.74);border:1px solid rgba(72,111,162,.14);box-shadow:0 12px 35px rgba(75,105,145,.12);backdrop-filter:blur(18px)}.hud>div{min-width:0;padding:7px 10px}.hud small{display:block;color:#7186a0;font-size:9px;letter-spacing:.6px}.hud strong{display:block;font-size:20px;color:#152944;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.hud-brand{display:flex;align-items:center;gap:10px}.hud-brand>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#dbeafe,#e9d5ff);color:#3558a8;font-size:22px}.combo-hud em{font-style:normal;font-size:8px;padding:4px 6px;border-radius:999px;background:#e7eef8;color:#58708e;margin-left:5px}.hud-quit{border:1px solid #ccd9e8;background:#fff;color:#516780;border-radius:13px;padding:12px 15px}.training-arena{position:absolute;left:16px;right:16px;top:120px;bottom:138px;border-radius:28px;overflow:hidden;border:1px solid rgba(75,111,157,.16);box-shadow:0 20px 50px rgba(78,106,145,.10) inset,0 12px 34px rgba(84,111,146,.10)}.bright-arena{background:linear-gradient(145deg,rgba(248,252,255,.95),rgba(226,241,255,.92) 54%,rgba(238,232,255,.91))}.bright-arena .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(56,96,145,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(56,96,145,.045) 1px,transparent 1px);background-size:48px 48px}.arena-glow{position:absolute;border-radius:50%;filter:blur(75px);opacity:.20}.glow-a{width:360px;height:360px;background:#60a5fa;left:-100px;top:8%}.glow-b{width:330px;height:330px;background:#a78bfa;right:-80px;top:22%}.arena-label{position:absolute;left:24px;top:20px;font-size:10px;letter-spacing:2px;color:#7590af}.stage-ribbon{position:absolute;top:18px;left:50%;transform:translateX(-50%);padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid rgba(74,114,167,.13);color:#4c6686;font-size:11px;font-weight:800;box-shadow:0 8px 20px rgba(76,102,137,.08)}
.target{position:absolute;z-index:6;min-width:82px;text-align:center;padding:11px 18px;border-radius:18px;background:linear-gradient(145deg,#3b82f6,#7048df);border:2px solid rgba(255,255,255,.42);box-shadow:0 12px 27px rgba(63,84,184,.23);color:#fff;transition:border-color .18s,box-shadow .18s,background .18s}.target-word{font-size:27px;font-weight:950;letter-spacing:1px}.target-zh{font-size:12px;margin-top:5px;color:#f0ebff;font-weight:700}.target.focus{box-shadow:0 0 0 5px rgba(59,130,246,.16),0 14px 30px rgba(63,84,184,.28)}.target .typed{color:#b7f7d9}.target-warning{background:linear-gradient(145deg,#f59e0b,#ef4444);animation:warningPulse .75s infinite alternate}@keyframes warningPulse{to{box-shadow:0 0 0 8px rgba(245,158,11,.13),0 14px 32px rgba(239,68,68,.24)}}.target-static{left:50%!important;transform:translateX(-50%);min-width:150px;padding:19px 26px}.target-warmup .target-word{font-size:58px}.stage-2 .target-word,.stage-3 .target-word{font-size:25px}.stage-3{min-width:140px}.target.hit{animation:targetHit .22s forwards}@keyframes targetHit{to{transform:scale(1.35);opacity:0}}
.keyboard-guide{position:absolute;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);width:min(800px,70vw);padding:12px 16px 13px;border-radius:20px;background:rgba(255,255,255,.75);border:1px solid rgba(91,125,169,.17);box-shadow:0 12px 35px rgba(70,101,143,.13);backdrop-filter:blur(14px);transition:.2s}.keyboard-guide.hidden{opacity:0;visibility:hidden;transform:translate(-50%,10px)}.guide-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:#57708e;font-size:10px}.guide-title b{font-size:12px;color:#294766}.keyboard-row{display:flex;gap:6px;justify-content:center;margin-top:6px}.keyboard-row.row-2{padding-left:22px}.keyboard-row.row-3{padding-left:48px;padding-right:42px}.keyboard-row i{font-style:normal;width:48px;height:34px;border-radius:8px;background:#edf4fb;border:1px solid #d1deec;display:grid;place-items:center;font-weight:850;color:#4f6680;box-shadow:0 3px 0 #c8d5e3}.keyboard-row i.key-active{background:linear-gradient(145deg,#3b82f6,#7c3aed);border-color:#5b67e7;color:#fff;box-shadow:0 0 0 5px rgba(59,130,246,.13),0 3px 0 #4d55c2;transform:translateY(-1px)}
.typing{position:absolute;left:16px;right:16px;bottom:14px;height:110px;border-radius:25px;padding:13px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center}.light-typing{background:rgba(255,255,255,.77);border:1px solid rgba(78,112,157,.14);box-shadow:0 13px 32px rgba(66,95,134,.10);backdrop-filter:blur(16px)}.typing-wrap{width:min(900px,80vw);display:flex;align-items:center;gap:13px;background:#f9fcff;border:2px solid #9ec8f2;border-radius:17px;padding:6px 15px;box-shadow:0 0 0 5px rgba(59,130,246,.06)}.typing-wrap>span{font-size:22px;color:#476a97}.typing input{flex:1;border:0;outline:0;background:transparent;text-align:center;font-size:26px;color:#173454;padding:8px}.typing>small{font-size:10px;color:#7188a1;margin-top:7px}.input-error{animation:shake .22s;background:#fff1f2!important}@keyframes shake{25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
#comboFlash{position:absolute;z-index:10;top:28%;left:50%;transform:translate(-50%,-50%);opacity:0;text-align:center;font-size:44px;font-weight:950;color:#6d28d9;text-shadow:0 4px 20px rgba(124,58,237,.20);pointer-events:none}#comboFlash small{display:block;font-size:12px;letter-spacing:3px;color:#2563eb}.combo-show{animation:comboShow .72s}@keyframes comboShow{0%{opacity:0;transform:translate(-50%,-50%) scale(.75)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}100%{opacity:0;transform:translate(-50%,-58%) scale(1)}}.float{position:absolute;z-index:20;color:#2563eb;font-size:22px;font-weight:950;animation:floatUp .7s forwards;pointer-events:none}@keyframes floatUp{to{transform:translateY(-45px);opacity:0}}.particle{position:absolute;z-index:20;width:7px;height:7px;border-radius:50%;background:#7c3aed;animation:particle .62s forwards;pointer-events:none}@keyframes particle{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}.miss-flash{position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:28px;opacity:0;background:linear-gradient(to top,rgba(245,158,11,.14),transparent 28%)}.miss-flash.show{animation:miss .3s}@keyframes miss{50%{opacity:1}}.countdown-overlay,.stage-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;background:rgba(236,246,255,.84);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.16s}.countdown-overlay.show,.stage-overlay.show{opacity:1;visibility:visible}.count-step{font-size:110px;font-weight:950;color:#315b9f}.count-step.go{font-size:82px;color:#6d28d9}.countdown-overlay small,.stage-overlay small{letter-spacing:3px;color:#6882a2}.pulse{animation:countPulse .62s}@keyframes countPulse{0%{transform:scale(.6);opacity:.2}40%{transform:scale(1.15);opacity:1}100%{transform:scale(1);opacity:.8}}.stage-overlay b{font-size:44px;color:#203e66;margin:10px 0}.stage-overlay span{color:#6b819c}

/* Result */
.result-screen{background:linear-gradient(135deg,rgba(7,25,49,.88),rgba(31,28,67,.86));overflow:auto;padding:28px}.result-panel{width:min(980px,96vw);margin:auto;border-radius:30px;padding:30px;text-align:center}.result-kicker,.modal-kicker{font-size:10px;letter-spacing:2px;color:#88b9e8;font-weight:800}.result-panel h2{font-size:34px;margin:8px 0 4px}.result-panel>p{color:#a9bfd5}.result-hero{display:flex;justify-content:center;align-items:center;gap:28px;margin:20px 0}.grade-badge{width:135px;height:135px;border-radius:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15)}.grade-badge small{font-size:8px}.grade-badge b{font-size:58px;line-height:1}.grade-badge span{font-size:11px}.grade-s{background:linear-gradient(145deg,#f59e0b,#7c3aed)}.grade-a{background:linear-gradient(145deg,#2563eb,#7c3aed)}.grade-b{background:linear-gradient(145deg,#0891b2,#2563eb)}.grade-c{background:linear-gradient(145deg,#64748b,#475569)}.score-medal small{font-size:9px;color:#88a8c8;letter-spacing:2px}.big-score{font-size:70px;font-weight:950;color:#fde68a}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.stats>div{padding:12px 8px;border-radius:14px;background:rgba(255,255,255,.055);color:#90aac3;font-size:10px}.stats b{display:block;color:#fff;font-size:21px;margin-top:3px}.personal-best-message{margin-top:16px;color:#fde68a;font-weight:800}.rank-message{margin-top:8px;color:#d9e7f4}.rank-title{display:flex;justify-content:space-between;align-items:center;margin:24px 0 10px;text-align:left}.rank-title h3{margin:0}.rank-title small{font-size:9px;letter-spacing:1.5px;color:#7897b4}.rank-table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.035);border-radius:15px;overflow:hidden}.rank-table th,.rank-table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.06)}.rank-table th{font-size:10px;color:#809db8}.rank-table td{font-size:13px}.rank-table .rank-me{background:rgba(59,130,246,.12)}.rank-num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.07)}.actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}.game-primary.compact{min-width:150px;padding:11px 18px}.muted{color:#89a5c0}.rank-empty{padding:24px}

/* Modals */
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(5,14,28,.62);display:flex;align-items:center;justify-content:center;padding:22px;opacity:0;visibility:hidden;transition:.18s}.modal-backdrop.show{opacity:1;visibility:visible}.modal-card{width:min(620px,96vw);max-height:90vh;overflow:auto;border-radius:28px;padding:28px;position:relative}.modal-close{position:absolute;right:16px;top:14px;border:0;background:rgba(255,255,255,.08);color:#fff;width:36px;height:36px;border-radius:11px;font-size:21px}.modal-card h2{font-size:29px;margin:8px 0}.modal-card>p{color:#a8bfd5}.identity-form{display:flex;flex-direction:column;gap:12px;margin-top:18px}.identity-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#92afca}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.identity-form input,.identity-form select{width:100%;border:1px solid rgba(255,255,255,.12);background:#102744;color:#fff;border-radius:12px;padding:12px 13px;outline:none}.modal-main-btn{width:100%;margin-top:18px}.rank-modal{width:min(860px,96vw)}.rank-modal-status,.rank-rule-note{font-size:11px;color:#9bb5ce;margin:12px 0}

/* Admin */
.admin-body{min-height:100vh;background:linear-gradient(135deg,#09172c,#131936);color:#ecf5ff}.admin-wrap{max-width:1380px;margin:auto;padding:28px}.admin-top{display:flex;justify-content:space-between;align-items:center}.admin-top h1{margin:4px 0}.admin-top p{color:#8faac4}.eyebrow{font-size:9px;letter-spacing:2px;color:#76b8ef}.ghost,.primary,.linkbtn{text-decoration:none;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:9px 12px;color:#e7f1fb;background:rgba(255,255,255,.05)}.primary{border:0;background:linear-gradient(135deg,#3b82f6,#7c3aed);color:#fff}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.panel{padding:20px;border-radius:20px}.glass-panel{background:rgba(12,31,55,.75);border:1px solid rgba(255,255,255,.08)}.panel h2{font-size:18px;margin:0 0 13px}.inline-form{display:flex;gap:8px}.inline-form input,.inline-form select,.filter-grid select{background:#0e2745;border:1px solid rgba(255,255,255,.09);color:#fff;border-radius:10px;padding:9px 10px}.inline-form input{flex:1}.event-list{display:flex;flex-direction:column;gap:8px}.event-row{padding:10px 12px;background:rgba(255,255,255,.035);border-radius:12px;display:flex;justify-content:space-between;align-items:center}.event-row small{display:block;color:#7997b5;margin-top:4px}.event-config{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:8px}.event-config label{font-size:9px;color:#7898b6}.event-config select,.event-config input{width:100%;margin-top:4px;background:#102744;border:1px solid rgba(255,255,255,.09);color:#fff;border-radius:8px;padding:7px}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px}.panel-title-row{display:flex;justify-content:space-between;align-items:center}.data-tag{font-size:10px;color:#9ab7d2}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:10px;border-bottom:1px solid rgba(255,255,255,.055);font-size:12px;text-align:left}.table-wrap th{color:#7896b4;font-size:9px}.empty-cell{text-align:center!important;color:#6f8dab;padding:25px!important}.login-panel{width:min(420px,92vw);padding:30px;border-radius:24px;background:#0d2746}.center{display:none}.center.active{display:flex;align-items:center;justify-content:center}.login-panel label{display:flex;flex-direction:column;gap:7px}.login-panel input{background:#102744;border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:11px;padding:12px}.wide{width:100%;margin-top:12px}.error{color:#fca5a5}

@media(max-width:1050px){.cover-main{grid-template-columns:1fr;padding-top:20px}.hero-console{display:none}.cover-copy h1{font-size:58px}.battle-choice-grid{grid-template-columns:1fr}.lobby-heading{align-items:flex-start;flex-direction:column}.hud{grid-template-columns:repeat(4,1fr);height:auto}.training-arena{top:178px}.stats{grid-template-columns:repeat(3,1fr)}.admin-grid{grid-template-columns:1fr}.two-missions{grid-template-columns:1fr}}
@media(max-width:700px){.cover-copy h1{font-size:46px}.cover-actions{flex-direction:column}.cover-missions{margin-left:4%;margin-right:4%}.lobby-main{padding:24px 16px}.lobby-side-actions{flex-direction:column;align-items:stretch}.battle-card{min-height:430px}.formal-timeline{flex-wrap:wrap}.formal-timeline i{display:none}.hud{margin:6px;grid-template-columns:repeat(2,1fr)}.training-arena{left:6px;right:6px;top:250px;bottom:130px}.typing{left:6px;right:6px}.keyboard-guide{width:94vw}.keyboard-row i{width:30px}.stats{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}.admin-wrap{padding:15px}.filter-grid{grid-template-columns:1fr}.inline-form{flex-direction:column}.event-config{grid-template-columns:1fr}}
.combo-hud.level-nice em{background:#dcfce7;color:#15803d}.combo-hud.level-hot em{background:#fef3c7;color:#b45309}.combo-hud.level-super em{background:#fee2e2;color:#dc2626}.combo-hud.level-legend em{background:#ede9fe;color:#6d28d9}

/* V1.7 realtime ranking badge */
.live-mini{display:inline-flex;align-items:center;margin-left:5px;padding:2px 6px;border-radius:999px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);color:#dc2626;font-size:9px;font-weight:900;letter-spacing:.04em;vertical-align:middle}


/* =========================
   V1.8 Cover refinement
   只优化封面，不改变游戏逻辑
   ========================= */
.cover-screen{overflow:hidden;display:none;min-height:100vh}
.cover-screen.active{display:flex;flex-direction:column}
.cover-topbar{height:82px;flex:0 0 82px;padding:0 4.2%}
.brand-lockup{gap:13px}
.brand-icon{width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,#3b82f6,#7c3aed);box-shadow:0 12px 30px rgba(78,70,229,.28)}
.brand-lockup b{font-size:22px;letter-spacing:.5px}
.teacher-entry{padding:10px 16px;background:rgba(24,35,74,.48);border-color:rgba(255,255,255,.18);transition:.2s}
.teacher-entry:hover{background:rgba(43,52,104,.68);transform:translateY(-1px)}

.cover-main{flex:1;min-height:0;padding:8px 6% 12px;grid-template-columns:1.03fr .82fr;gap:68px;align-items:center}
.cover-copy{padding-bottom:4px}
.cover-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-size:12px;font-weight:800;color:#dff5ff;background:linear-gradient(90deg,rgba(14,165,233,.18),rgba(124,58,237,.14));border:1px solid rgba(148,210,255,.24);backdrop-filter:blur(10px)}
.cover-copy h1{font-size:78px;line-height:1.02;margin:16px 0 10px;letter-spacing:1px;text-shadow:0 8px 30px rgba(6,20,50,.20)}
.cover-copy h1 em{font-size:.72em;color:#e9f3ff}
.cover-slogan{font-size:28px!important;margin:0 0 8px!important;font-weight:900;background:linear-gradient(90deg,#ffffff,#c8e7ff 45%,#ddd0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.cover-copy>p{display:none}
.cover-actions{margin:26px 0 18px;gap:12px}
.cover-enter{min-width:220px;padding:16px 34px;border-radius:18px;font-size:21px;box-shadow:0 18px 36px rgba(77,70,229,.33);transition:.2s}
.cover-enter:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 22px 44px rgba(77,70,229,.40)}
.cover-rule{padding:15px 24px;border-radius:18px;background:rgba(8,25,48,.34);backdrop-filter:blur(14px);transition:.2s}
.cover-rule:hover{background:rgba(25,42,72,.56);transform:translateY(-2px)}
.cover-rule b{margin-left:8px}
.cover-chips{gap:8px}
.cover-chips span{padding:8px 12px;background:rgba(8,25,48,.34);backdrop-filter:blur(12px);font-size:12px}
.cover-chips .chip-blue{border-color:rgba(96,165,250,.30)}
.cover-chips .chip-purple{border-color:rgba(167,139,250,.32)}
.cover-chips .chip-gold{border-color:rgba(251,191,36,.30)}
.cover-chips .chip-green{border-color:rgba(52,211,153,.28)}

.cover-console{min-height:0;height:min(520px,58vh);border-radius:36px;padding:25px 30px;background:linear-gradient(145deg,rgba(26,43,88,.66),rgba(49,42,91,.55));box-shadow:0 30px 70px rgba(13,23,56,.22);border-color:rgba(255,255,255,.20)}
.cover-console .console-head{font-size:11px;color:#b6cae7}
.cover-console .console-head b{font-size:11px;color:#70f0c2}
.cover-console .radar{height:calc(100% - 112px);min-height:285px}
.cover-console .r1{width:min(300px,32vh);height:min(300px,32vh)}
.cover-console .r2{width:min(220px,24vh);height:min(220px,24vh)}
.cover-console .r3{width:min(135px,15vh);height:min(135px,15vh)}
.cover-console .radar-core{width:min(124px,14vh);height:min(124px,14vh);border-radius:32px;background:linear-gradient(145deg,#3b82f6,#7c3aed);box-shadow:0 22px 55px rgba(70,75,230,.38)}
.cover-console .floating-tag{background:rgba(8,26,58,.76);backdrop-filter:blur(12px)}
.cover-console .floating-tag b{font-size:10px}
.warm-tag{border-color:rgba(56,189,248,.28)!important}.warm-tag b{color:#7dd3fc!important}
.formal-tag{border-color:rgba(196,181,253,.30)!important}.formal-tag b{color:#c4b5fd!important}
.live-tag{border-color:rgba(52,211,153,.30)!important}.live-tag b{color:#6ee7b7!important}
.cover-console .key-row{margin-top:2px}
.cover-console .key-row i{width:43px;height:43px;background:rgba(255,255,255,.07)}
.cover-console .key-row .active-key{box-shadow:0 10px 24px rgba(89,71,232,.34)}
.cover-console .console-bottom{display:none}

.compact-missions{flex:0 0 auto;margin:0 6% 18px;gap:16px}
.compact-missions article{grid-template-columns:52px 1fr auto;padding:15px 20px;border-radius:20px;min-height:78px;transition:.2s;box-shadow:0 16px 34px rgba(10,22,52,.12)}
.compact-missions article:hover{transform:translateY(-3px)}
.compact-missions article>i{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:24px}
.compact-missions article b{font-size:17px}
.compact-missions article small{font-size:12px;margin-top:3px;color:#c6d7e8}
.mission-warm{background:linear-gradient(115deg,rgba(12,49,82,.72),rgba(25,77,105,.58))!important;border-color:rgba(103,232,249,.20)!important}
.mission-warm>i{background:rgba(56,189,248,.13)}
.mission-formal{background:linear-gradient(115deg,rgba(33,55,107,.76),rgba(87,54,145,.62))!important;border-color:rgba(196,181,253,.23)!important}
.mission-formal>i{background:rgba(167,139,250,.14)}
.mission-pill{padding:6px 9px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:1.2px;color:#ddebfa;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}
.cover-footer{display:none!important}

@media(max-width:1050px){
  .cover-screen{overflow:auto}.cover-screen.active{display:block}
  .cover-main{min-height:620px;padding-top:20px}.cover-copy h1{font-size:60px}.cover-slogan{font-size:24px!important}
  .compact-missions{padding-bottom:8px}.compact-missions article{grid-template-columns:48px 1fr auto}
}
@media(max-width:700px){
  .cover-copy h1{font-size:48px}.cover-slogan{font-size:21px!important}.cover-badge{font-size:11px}
  .cover-enter{min-width:0;width:100%}.cover-rule{width:100%}.compact-missions article{grid-template-columns:44px 1fr}.mission-pill{display:none}
}


/* =========================
   V1.9 Color Motion Cover
   仅优化封面视觉，不改变比赛逻辑
   ========================= */
.cover-screen{isolation:isolate}
.cover-screen::before,.cover-screen::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(70px);pointer-events:none;opacity:.48}
.cover-screen::before{width:360px;height:360px;left:7%;top:18%;background:radial-gradient(circle,#22d3ee 0%,#3b82f6 42%,transparent 72%);animation:coverGlowA 10s ease-in-out infinite alternate}
.cover-screen::after{width:430px;height:430px;right:5%;top:8%;background:radial-gradient(circle,#f0abfc 0%,#8b5cf6 44%,transparent 72%);animation:coverGlowB 12s ease-in-out infinite alternate}
.page-bg .orb-a{animation:bgOrbA 13s ease-in-out infinite alternate}
.page-bg .orb-b{animation:bgOrbB 15s ease-in-out infinite alternate}
@keyframes coverGlowA{to{transform:translate(70px,36px) scale(1.14);opacity:.62}}
@keyframes coverGlowB{to{transform:translate(-55px,55px) scale(.92);opacity:.58}}
@keyframes bgOrbA{to{transform:translate(95px,-35px) scale(1.16)}}
@keyframes bgOrbB{to{transform:translate(-80px,65px) scale(.90)}}

.cover-actions{margin:28px 0 20px}
.cover-enter{position:relative;overflow:hidden;min-width:255px;padding:17px 38px;background:linear-gradient(110deg,#3787ff,#7654ff,#b144f5,#3787ff);background-size:260% 100%;animation:buttonFlow 6s linear infinite;box-shadow:0 18px 42px rgba(88,73,235,.34)}
.cover-enter::after{content:"";position:absolute;inset:-50% auto -50% -35%;width:26%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);animation:buttonShine 4.2s ease-in-out infinite}
.cover-enter span,.cover-enter small{position:relative;z-index:1}
.cover-enter small{font-size:9px;letter-spacing:2.2px;margin-top:3px;opacity:.86}
@keyframes buttonFlow{to{background-position:260% 0}}
@keyframes buttonShine{0%,55%{left:-35%}78%,100%{left:125%}}
.cover-enter:hover{transform:translateY(-4px) scale(1.025);box-shadow:0 24px 52px rgba(99,76,238,.44)}
.cover-rule{display:none!important}

/* 右侧改为浅色彩色玻璃展台 */
.cover-console{position:relative;height:min(520px,58vh);padding:20px 28px 24px;background:linear-gradient(145deg,rgba(247,252,255,.78),rgba(229,241,255,.67) 42%,rgba(241,230,255,.66) 100%)!important;border:1px solid rgba(255,255,255,.78)!important;box-shadow:0 26px 70px rgba(48,73,127,.20),inset 0 1px 0 rgba(255,255,255,.90);backdrop-filter:blur(22px) saturate(140%);animation:consoleFloat 6.5s ease-in-out infinite;overflow:hidden}
.cover-console::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.52),transparent 28%,transparent 70%,rgba(255,255,255,.28));pointer-events:none}
.cover-console::after{content:"";position:absolute;width:190px;height:190px;right:-60px;bottom:-75px;border-radius:50%;background:radial-gradient(circle,rgba(244,114,182,.38),rgba(139,92,246,.18) 48%,transparent 70%);filter:blur(3px);animation:cornerGlow 7s ease-in-out infinite alternate}
@keyframes consoleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes cornerGlow{to{transform:translate(-30px,-28px) scale(1.18)}}
.console-head{display:none!important}
.console-aurora{position:absolute;border-radius:50%;filter:blur(34px);opacity:.55;pointer-events:none}
.aurora-a{width:210px;height:210px;left:-60px;top:36px;background:radial-gradient(circle,#67e8f9 0%,#60a5fa 43%,transparent 72%);animation:auroraA 8s ease-in-out infinite alternate}
.aurora-b{width:260px;height:260px;right:-70px;top:92px;background:radial-gradient(circle,#f0abfc 0%,#a78bfa 46%,transparent 73%);animation:auroraB 9.5s ease-in-out infinite alternate}
@keyframes auroraA{to{transform:translate(48px,80px) scale(1.12)}}
@keyframes auroraB{to{transform:translate(-52px,-38px) scale(.90)}}
.console-spark{position:absolute;width:7px;height:7px;border-radius:50%;background:white;box-shadow:0 0 16px rgba(96,165,250,.85);opacity:.72;animation:sparkFloat 4s ease-in-out infinite}
.spark-a{left:18%;top:18%}.spark-b{right:17%;top:27%;animation-delay:1.1s;background:#e879f9}.spark-c{right:25%;bottom:20%;animation-delay:2.2s;background:#22d3ee}
@keyframes sparkFloat{0%,100%{transform:translateY(0) scale(.72);opacity:.35}50%{transform:translateY(-13px) scale(1.18);opacity:.92}}

.cover-console .radar{height:calc(100% - 58px);min-height:325px;z-index:2}
.cover-console .radar-ring{border-color:rgba(72,119,210,.24);box-shadow:inset 0 0 18px rgba(99,102,241,.04);animation:ringBreath 4.8s ease-in-out infinite}
.cover-console .r2{animation-delay:.65s}.cover-console .r3{animation-delay:1.3s}
@keyframes ringBreath{0%,100%{transform:scale(.96);opacity:.56}50%{transform:scale(1.035);opacity:1}}
.cover-console .radar-core{color:#fff;background:linear-gradient(145deg,#38bdf8 0%,#4f72ff 42%,#8b5cf6 73%,#d946ef 100%);background-size:180% 180%;box-shadow:0 22px 55px rgba(81,89,220,.28),0 0 0 10px rgba(255,255,255,.34);animation:coreGradient 7s ease-in-out infinite,corePulse 3.4s ease-in-out infinite}
@keyframes coreGradient{0%,100%{background-position:0 30%}50%{background-position:100% 70%}}
@keyframes corePulse{0%,100%{box-shadow:0 22px 55px rgba(81,89,220,.25),0 0 0 8px rgba(255,255,255,.26)}50%{box-shadow:0 28px 64px rgba(139,92,246,.34),0 0 0 14px rgba(255,255,255,.38)}}

.cover-console .floating-tag{color:#26385d;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.92);box-shadow:0 12px 28px rgba(72,91,142,.14);backdrop-filter:blur(16px);animation:tagFloat 5.4s ease-in-out infinite}
.cover-console .floating-tag span{color:#24324f}.cover-console .floating-tag b{font-size:10px}
.cover-console .warm-tag{background:linear-gradient(135deg,rgba(236,254,255,.90),rgba(219,234,254,.82));border-color:rgba(56,189,248,.28)!important}.cover-console .warm-tag b{color:#0284c7!important}
.cover-console .formal-tag{background:linear-gradient(135deg,rgba(245,243,255,.92),rgba(250,232,255,.82));border-color:rgba(167,139,250,.32)!important;animation-delay:.9s}.cover-console .formal-tag b{color:#7c3aed!important}
.cover-console .live-tag{background:linear-gradient(135deg,rgba(236,253,245,.92),rgba(207,250,254,.82));border-color:rgba(45,212,191,.30)!important;animation-delay:1.7s}.cover-console .live-tag b{color:#059669!important}
@keyframes tagFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

.cover-console .key-row{position:relative;z-index:3;margin-top:-3px}
.cover-console .key-row i{color:#40516e;background:rgba(255,255,255,.58);border-color:rgba(102,122,170,.16);box-shadow:0 8px 18px rgba(80,100,145,.08);animation:keyWave 4.8s ease-in-out infinite}
.cover-console .key-row i:nth-child(2){animation-delay:.18s}.cover-console .key-row i:nth-child(3){animation-delay:.36s}.cover-console .key-row i:nth-child(4){animation-delay:.54s}.cover-console .key-row i:nth-child(5){animation-delay:.72s}.cover-console .key-row i:nth-child(6){animation-delay:.90s}.cover-console .key-row i:nth-child(7){animation-delay:1.08s}.cover-console .key-row i:nth-child(8){animation-delay:1.26s}
.cover-console .key-row .active-key{color:#fff;background:linear-gradient(145deg,#4f8cff,#8b5cf6);border-color:rgba(255,255,255,.58);box-shadow:0 12px 28px rgba(104,84,226,.28)}
@keyframes keyWave{0%,72%,100%{transform:translateY(0);background:rgba(255,255,255,.58)}82%{transform:translateY(-5px);background:rgba(219,234,254,.94);box-shadow:0 13px 24px rgba(59,130,246,.16)}}

/* 封面小标签和彩色任务卡 */
.cover-chips span{color:#eef8ff;background:rgba(10,35,65,.36);box-shadow:0 8px 20px rgba(15,31,70,.09);transition:.22s}
.cover-chips span:hover{transform:translateY(-3px);background:rgba(255,255,255,.16)}
.compact-missions article{overflow:hidden;position:relative}
.compact-missions article::after{content:"";position:absolute;width:120px;height:120px;right:-35px;top:-55px;border-radius:50%;filter:blur(8px);opacity:.38;transition:.3s}
.compact-missions article:hover::after{transform:scale(1.25) translate(-10px,12px);opacity:.58}
.mission-warm{background:linear-gradient(115deg,rgba(6,100,151,.66),rgba(29,125,151,.50),rgba(50,89,176,.48))!important}.mission-warm::after{background:#67e8f9}.mission-warm>i{background:linear-gradient(145deg,rgba(103,232,249,.24),rgba(59,130,246,.20))}
.mission-formal{background:linear-gradient(115deg,rgba(74,76,191,.66),rgba(124,58,237,.52),rgba(190,60,184,.46))!important}.mission-formal::after{background:#e879f9}.mission-formal>i{background:linear-gradient(145deg,rgba(196,181,253,.24),rgba(244,114,182,.17))}
.mission-pill{position:relative;z-index:2}

@media(max-width:1050px){.cover-console{animation:none}}
@media(max-width:700px){.cover-actions{display:block}.cover-enter{width:100%;min-width:0}.cover-console{display:none}}
@media(prefers-reduced-motion:reduce){.cover-screen::before,.cover-screen::after,.page-bg .orb-a,.page-bg .orb-b,.cover-enter,.cover-enter::after,.cover-console,.cover-console::after,.console-aurora,.console-spark,.cover-console .radar-ring,.cover-console .radar-core,.cover-console .floating-tag,.cover-console .key-row i{animation:none!important}}

/* =========================
   V1.10 Home Redesign
   更简洁、更彩色、更像学生喜欢的产品封面
   ========================= */
.redesigned-topbar{justify-content:flex-end;align-items:flex-start;padding-top:12px}
.topbar-ghost{display:none}
.identity-switch{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-decoration:none;padding:12px 18px;border-radius:22px;color:#ffffff;background:linear-gradient(135deg,rgba(255,255,255,.26),rgba(255,255,255,.12));border:1px solid rgba(255,255,255,.28);box-shadow:0 10px 26px rgba(27,45,84,.12);backdrop-filter:blur(12px);transition:.24s}
.identity-switch small{font-size:11px;opacity:.8;letter-spacing:.8px}
.identity-switch b{font-size:28px;line-height:1.05}
.identity-switch span{font-size:11px;opacity:.82;letter-spacing:.6px}
.identity-switch:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(58,82,152,.18);background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(255,255,255,.18))}

.cover-main{grid-template-columns:1.02fr .98fr;align-items:center;padding-top:8px;padding-bottom:18px;gap:34px}
.cover-copy{padding-top:6px}
.cover-copy h1{font-size:94px;line-height:.95;letter-spacing:-2px;text-shadow:0 8px 24px rgba(11,36,74,.15)}
.cover-copy h1 em{display:block;font-style:normal;color:#d7e5ff}
.cover-slogan{font-size:34px!important;margin-top:18px;color:#eff5ff;letter-spacing:.5px;text-shadow:0 2px 10px rgba(20,37,77,.12)}
.cover-actions.single-action{margin-top:32px;margin-bottom:24px}
.cover-enter{min-width:290px;padding:20px 46px;font-size:22px;letter-spacing:.5px;border-radius:24px}
.cover-enter small{display:none}
.cover-chips{gap:12px;flex-wrap:wrap}
.cover-chips span{font-size:15px;padding:11px 16px;border-radius:999px;font-weight:800}

/* 浅色动态右侧主卡 */
.cover-console{height:min(550px,60vh)!important;padding:30px 30px 28px!important;border-radius:34px!important;background:linear-gradient(145deg,rgba(252,254,255,.86),rgba(232,243,255,.74) 44%,rgba(243,233,255,.74) 100%)!important;box-shadow:0 28px 70px rgba(52,72,117,.16),inset 0 1px 0 rgba(255,255,255,.85)!important}
.cover-console .radar{height:calc(100% - 64px)}
.cover-console .radar-core{width:150px;height:150px;font-size:60px}
.cover-console .radar-ring{border-width:1.5px}
.orbit-scene{position:relative;overflow:visible}
.orbit{position:absolute;left:50%;top:50%;transform-origin:0 0;animation:orbitSpin 20s linear infinite}
.orbit .floating-tag{position:absolute;left:0;top:0;transform:translate(-50%,-50%) rotate(0deg);min-width:148px;padding:15px 18px;border-radius:22px}
.orbit .floating-tag b{font-size:17px!important;line-height:1.1}
.orbit .floating-tag span{font-size:15px!important;margin-top:4px;line-height:1.2;color:#26314d!important}
.orbit-a{animation-duration:20s}.orbit-b{animation-duration:24s;animation-direction:reverse}.orbit-c{animation-duration:22s}
.orbit-a{transform:translate(-50%,-50%) rotate(0deg) translateX(210px)}
.orbit-b{transform:translate(-50%,-50%) rotate(120deg) translateX(218px)}
.orbit-c{transform:translate(-50%,-50%) rotate(240deg) translateX(204px)}
.orbit-a .floating-tag,.orbit-b .floating-tag,.orbit-c .floating-tag{animation:counterSpin 20s linear infinite}
.orbit-b .floating-tag{animation-duration:24s;animation-direction:reverse}
.orbit-c .floating-tag{animation-duration:22s}
@keyframes orbitSpin{from{transform:translate(-50%,-50%) rotate(var(--start,0deg)) translateX(var(--radius,210px))}to{transform:translate(-50%,-50%) rotate(calc(var(--start,0deg) + 360deg)) translateX(var(--radius,210px))}}
@keyframes counterSpin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(-360deg)}}
.orbit-a{--start:0deg;--radius:210px}
.orbit-b{--start:120deg;--radius:218px}
.orbit-c{--start:240deg;--radius:204px}
.cover-console .warm-tag,.cover-console .formal-tag,.cover-console .live-tag{animation:none!important}
.cover-console .key-row i{width:52px;height:52px;font-size:26px;border-radius:16px}
.cover-console .key-row{gap:10px;margin-top:8px}

/* 底部两张卡更大更显眼 */
.compact-missions{margin-top:10px;gap:18px}
.compact-missions article{padding:24px 26px;border-radius:28px;min-height:132px;grid-template-columns:62px 1fr auto;align-items:center}
.compact-missions article>i{width:54px;height:54px;font-size:28px;border-radius:18px}
.compact-missions article b{font-size:20px;line-height:1.15;letter-spacing:.2px}
.compact-missions article small{font-size:17px;line-height:1.35;opacity:.94;margin-top:6px}
.mission-pill{font-size:12px;padding:9px 12px}

/* 让整体更利落 */
.cover-copy .cover-badge,.brand-lockup,.teacher-entry.cover-only{display:none!important}

@media(max-width:1200px){
  .cover-copy h1{font-size:76px}.cover-slogan{font-size:28px!important}
  .orbit-a{--radius:175px}.orbit-b{--radius:180px}.orbit-c{--radius:170px}
  .orbit .floating-tag{min-width:128px;padding:12px 14px}
  .orbit .floating-tag b{font-size:15px!important}.orbit .floating-tag span{font-size:13px!important}
  .compact-missions article b{font-size:18px}.compact-missions article small{font-size:15px}
}
@media(max-width:1050px){
  .cover-main{grid-template-columns:1fr;gap:26px}.cover-copy{text-align:center}.cover-actions,.cover-chips{justify-content:center}
  .identity-switch{padding:10px 14px}.identity-switch b{font-size:24px}
  .cover-console{max-width:760px;margin:0 auto}
}
@media(max-width:700px){
  .cover-copy h1{font-size:54px}.cover-slogan{font-size:22px!important}.cover-enter{width:100%;min-width:0;padding:18px 24px;font-size:20px}
  .cover-chips span{font-size:13px;padding:10px 12px}.identity-switch{padding:10px 12px}.identity-switch b{font-size:20px}
  .compact-missions article{grid-template-columns:56px 1fr;min-height:auto}.compact-missions article b{font-size:18px}.compact-missions article small{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
  .orbit,.orbit .floating-tag,.identity-switch{animation:none!important}
}

/* =========================
   V1.11 Motion & Role Switch Polish
   ========================= */
/* 统一身份切换组件 */
.lobby-role-switch{margin-left:auto;padding:9px 14px;border-radius:18px;min-width:132px}
.lobby-role-switch b{font-size:20px}.lobby-role-switch small,.lobby-role-switch span{font-size:9px}
.admin-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.admin-role-switch{align-items:center;text-align:center;min-width:128px;padding:8px 13px;border-radius:16px;background:linear-gradient(135deg,rgba(91,131,255,.22),rgba(139,92,246,.18));border-color:rgba(139,169,255,.26)}
.admin-role-switch b{font-size:18px}.admin-role-switch small,.admin-role-switch span{font-size:9px}
.login-role-switch{position:fixed;right:28px;top:24px;z-index:40;align-items:center;text-align:center;min-width:135px;padding:10px 14px;border-radius:18px;background:linear-gradient(135deg,rgba(91,131,255,.26),rgba(139,92,246,.22))}
.login-role-switch b{font-size:19px}.login-role-switch small,.login-role-switch span{font-size:9px}

/* 更慢、更稳定的环绕；每个标签走自己的轨道 */
.orbit-scene{--orbit-a:202px;--orbit-b:225px;--orbit-c:186px}
.orbit-a{--start:-18deg;--radius:var(--orbit-a);animation-duration:34s!important}
.orbit-b{--start:112deg;--radius:var(--orbit-b);animation-duration:42s!important;animation-direction:normal!important}
.orbit-c{--start:232deg;--radius:var(--orbit-c);animation-duration:38s!important}
.orbit-a .floating-tag{animation:counterSpin34 34s linear infinite!important}
.orbit-b .floating-tag{animation:counterSpin42 42s linear infinite!important}
.orbit-c .floating-tag{animation:counterSpin38 38s linear infinite!important}
@keyframes counterSpin34{from{transform:translate(-50%,-50%) rotate(18deg)}to{transform:translate(-50%,-50%) rotate(-342deg)}}
@keyframes counterSpin42{from{transform:translate(-50%,-50%) rotate(-112deg)}to{transform:translate(-50%,-50%) rotate(-472deg)}}
@keyframes counterSpin38{from{transform:translate(-50%,-50%) rotate(-232deg)}to{transform:translate(-50%,-50%) rotate(-592deg)}}
/* 三条轨道颜色各不相同，产品感更强 */
.cover-console .r1{border-color:rgba(14,165,233,.25);box-shadow:0 0 35px rgba(56,189,248,.09)}
.cover-console .r2{border-color:rgba(139,92,246,.22);box-shadow:0 0 40px rgba(139,92,246,.08)}
.cover-console .r3{border-color:rgba(16,185,129,.18);box-shadow:0 0 32px rgba(16,185,129,.06)}
/* 标签稍大但不拥挤 */
.orbit .floating-tag{min-width:156px!important;padding:15px 18px!important}
.orbit .floating-tag b{font-size:18px!important}.orbit .floating-tag span{font-size:15px!important}
/* 中央按钮呼吸更轻，避免抢文字 */
.cover-console .radar-core{animation:coreGradient 9s ease-in-out infinite,corePulseSoft 5.2s ease-in-out infinite!important}
@keyframes corePulseSoft{0%,100%{transform:scale(.98);box-shadow:0 22px 55px rgba(81,89,220,.22),0 0 0 8px rgba(255,255,255,.24)}50%{transform:scale(1.025);box-shadow:0 28px 62px rgba(139,92,246,.30),0 0 0 12px rgba(255,255,255,.34)}}
/* 键帽波浪更慢，减少花哨感 */
.cover-console .key-row i{animation-duration:7.2s!important}

@media(max-width:1200px){
  .orbit-scene{--orbit-a:172px;--orbit-b:190px;--orbit-c:158px}
  .orbit .floating-tag{min-width:136px!important;padding:12px 14px!important}
  .orbit .floating-tag b{font-size:16px!important}.orbit .floating-tag span{font-size:13px!important}
}
@media(max-width:760px){
  .lobby-role-switch{min-width:0;padding:8px 10px}.lobby-role-switch span{display:none}
  .admin-top-actions{justify-content:flex-start}.login-role-switch{right:14px;top:12px}
}
@media(prefers-reduced-motion:reduce){
  .orbit-a,.orbit-b,.orbit-c,.orbit-a .floating-tag,.orbit-b .floating-tag,.orbit-c .floating-tag{animation:none!important}
}

/* =========================
   V1.12 Cover Final Polish
   稳定环绕轨迹 / 弱化身份入口 / 减轻底部卡片 / 微缩标题
   ========================= */
/* 1. 主标题微缩，保留冲击力但增加留白 */
.cover-copy h1{font-size:88px!important;line-height:.97!important;letter-spacing:-1.5px!important}
.cover-slogan{font-size:31px!important;margin-top:17px!important}

/* 2. 右上身份入口缩小约 22%，作为辅助入口而不是主视觉 */
.identity-switch{min-width:0!important;padding:9px 13px!important;border-radius:18px!important;gap:1px!important;background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.10))!important;box-shadow:0 8px 20px rgba(27,45,84,.09)!important}
.identity-switch small{font-size:9px!important;letter-spacing:.5px!important}
.identity-switch b{font-size:21px!important;line-height:1.02!important}
.identity-switch span{font-size:9px!important;letter-spacing:.3px!important}
.identity-switch:hover{transform:translateY(-2px)!important;box-shadow:0 13px 26px rgba(58,82,152,.13)!important}
.redesigned-topbar{padding-top:8px!important}

/* 3. 右侧动态区：固定圆轨道、120°等间距、同速环绕，永不追尾 */
.cover-console{overflow:hidden!important}
.cover-console .radar{height:calc(100% - 76px)!important;min-height:350px!important;margin-top:-2px!important;overflow:visible!important}
.orbit-scene{--orbit-radius:158px!important;overflow:visible!important}
.orbit-a,.orbit-b,.orbit-c{
  --radius:var(--orbit-radius)!important;
  animation:orbitStable 40s linear infinite!important;
  animation-direction:normal!important;
}
.orbit-a{--start:-90deg!important}
.orbit-b{--start:30deg!important}
.orbit-c{--start:150deg!important}
.orbit-a .floating-tag,.orbit-b .floating-tag,.orbit-c .floating-tag{
  animation:counterStable 40s linear infinite!important;
}
.orbit-a .floating-tag{--tag-start:90deg}
.orbit-b .floating-tag{--tag-start:-30deg}
.orbit-c .floating-tag{--tag-start:-150deg}
@keyframes orbitStable{
  from{transform:translate(-50%,-50%) rotate(var(--start)) translateX(var(--radius))}
  to{transform:translate(-50%,-50%) rotate(calc(var(--start) + 360deg)) translateX(var(--radius))}
}
@keyframes counterStable{
  from{transform:translate(-50%,-50%) rotate(var(--tag-start))}
  to{transform:translate(-50%,-50%) rotate(calc(var(--tag-start) - 360deg))}
}
.orbit .floating-tag{min-width:138px!important;padding:12px 15px!important;border-radius:18px!important;box-shadow:0 10px 24px rgba(72,91,142,.12)!important}
.orbit .floating-tag b{font-size:16px!important;line-height:1.08!important}
.orbit .floating-tag span{font-size:13px!important;margin-top:3px!important}
.cover-console .radar-core{width:138px!important;height:138px!important;font-size:54px!important}
.cover-console .key-row{margin-top:-2px!important;gap:9px!important}
.cover-console .key-row i{width:48px!important;height:48px!important;font-size:23px!important;border-radius:14px!important}

/* 4. 底部任务卡默认更轻，悬停时再强化 */
.compact-missions{margin-top:7px!important;gap:16px!important}
.compact-missions article{min-height:112px!important;padding:19px 23px!important;border-radius:25px!important;grid-template-columns:56px 1fr auto!important;box-shadow:0 12px 28px rgba(10,22,52,.08)!important;filter:saturate(.88);transition:transform .24s ease,filter .24s ease,box-shadow .24s ease,border-color .24s ease!important}
.compact-missions article:hover{transform:translateY(-4px)!important;filter:saturate(1.08);box-shadow:0 20px 38px rgba(38,55,112,.16)!important}
.compact-missions article>i{width:48px!important;height:48px!important;font-size:25px!important;border-radius:16px!important}
.compact-missions article b{font-size:19px!important}
.compact-missions article small{font-size:15px!important;margin-top:5px!important}
.mission-warm{background:linear-gradient(115deg,rgba(8,99,145,.54),rgba(39,125,155,.40),rgba(53,91,175,.38))!important}
.mission-formal{background:linear-gradient(115deg,rgba(73,73,183,.54),rgba(121,59,219,.43),rgba(183,63,180,.37))!important}
.mission-pill{font-size:10px!important;padding:7px 10px!important;opacity:.86}

@media(max-width:1200px){
  .cover-copy h1{font-size:72px!important}.cover-slogan{font-size:27px!important}
  .orbit-scene{--orbit-radius:138px!important}
  .orbit .floating-tag{min-width:122px!important;padding:10px 12px!important}
  .orbit .floating-tag b{font-size:14px!important}.orbit .floating-tag span{font-size:12px!important}
  .cover-console .radar-core{width:124px!important;height:124px!important;font-size:48px!important}
}
@media(max-width:1050px){
  .cover-copy h1{font-size:60px!important}.cover-slogan{font-size:24px!important}
  .identity-switch{padding:8px 11px!important}.identity-switch b{font-size:19px!important}
}
@media(max-width:700px){
  .cover-copy h1{font-size:50px!important}.cover-slogan{font-size:21px!important}
  .compact-missions article{grid-template-columns:50px 1fr!important;min-height:auto!important}
}
@media(prefers-reduced-motion:reduce){
  .orbit-a,.orbit-b,.orbit-c,.orbit-a .floating-tag,.orbit-b .floating-tag,.orbit-c .floating-tag{animation:none!important}
}


/* =========================
   V1.13 Cover Layout Polish
   标题留白 / 固定键帽区 / 简化学生端入口 / 环绕区上移
   ========================= */
/* 左侧标题：减小体量并真正拉开两行 */
.cover-copy h1{
  font-size:80px!important;
  line-height:1!important;
  letter-spacing:-1px!important;
  margin:10px 0 12px!important;
}
.cover-copy h1 em{
  display:block!important;
  font-size:.75em!important;
  line-height:1.04!important;
  margin-top:12px!important;
}
.cover-slogan{font-size:30px!important;margin-top:18px!important}

/* 右上仅显示“学生端”，保持轻量 */
.simple-role-switch{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:104px!important;
  height:48px!important;
  padding:0 18px!important;
  border-radius:17px!important;
  font-size:20px!important;
  font-weight:900!important;
  letter-spacing:.5px!important;
  color:#fff!important;
  background:rgba(255,255,255,.16)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  box-shadow:0 8px 20px rgba(27,45,84,.08)!important;
  backdrop-filter:blur(12px)!important;
  text-decoration:none!important;
}
.simple-role-switch:hover{
  transform:translateY(-2px)!important;
  background:rgba(255,255,255,.24)!important;
  box-shadow:0 12px 26px rgba(58,82,152,.12)!important;
}
.redesigned-topbar{padding-top:10px!important}
.lobby-role-switch{margin-left:auto!important}

/* 右侧卡片：上方专属动态区，下方专属键帽区 */
.cover-console{
  position:relative!important;
  overflow:hidden!important;
  padding:0!important;
}
.cover-console .radar{
  position:absolute!important;
  left:20px!important;
  right:20px!important;
  top:12px!important;
  bottom:102px!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  transform:translateY(-12px)!important;
  overflow:visible!important;
}
.orbit-scene{--orbit-radius:142px!important}
.orbit .floating-tag{
  min-width:130px!important;
  padding:11px 14px!important;
  border-radius:18px!important;
}
.orbit .floating-tag b{font-size:16px!important}
.orbit .floating-tag span{font-size:13px!important}
.cover-console .radar-core{
  width:132px!important;
  height:132px!important;
  font-size:52px!important;
}
.cover-console .key-row{
  position:absolute!important;
  left:24px!important;
  right:24px!important;
  bottom:22px!important;
  z-index:8!important;
  display:flex!important;
  justify-content:center!important;
  gap:10px!important;
  margin:0!important;
}
.cover-console .key-row i{
  width:50px!important;
  height:50px!important;
  font-size:24px!important;
  border-radius:15px!important;
  flex:0 0 50px!important;
}
/* 键帽区与动态区之间增加轻微分界，避免视觉粘连 */
.cover-console::before{
  content:""!important;
  position:absolute!important;
  left:28px!important;
  right:28px!important;
  bottom:88px!important;
  height:1px!important;
  background:linear-gradient(90deg,transparent,rgba(99,102,241,.13),transparent)!important;
  pointer-events:none!important;
  z-index:5!important;
}

@media(max-width:1200px){
  .cover-copy h1{font-size:68px!important}
  .cover-copy h1 em{margin-top:10px!important}
  .cover-slogan{font-size:26px!important}
  .orbit-scene{--orbit-radius:126px!important}
  .orbit .floating-tag{min-width:116px!important;padding:9px 11px!important}
  .orbit .floating-tag b{font-size:14px!important}.orbit .floating-tag span{font-size:12px!important}
  .cover-console .key-row i{width:44px!important;height:44px!important;flex-basis:44px!important;font-size:21px!important}
}
@media(max-width:1050px){
  .cover-copy h1{font-size:58px!important}.cover-copy h1 em{margin-top:8px!important}
  .simple-role-switch{min-width:90px!important;height:42px!important;font-size:18px!important;padding:0 14px!important}
}
@media(max-width:700px){
  .cover-copy h1{font-size:48px!important}.cover-slogan{font-size:21px!important}
}


/* =========================
   V1.14 Keycap micro-refinement
   J 与其他键帽同色；F/J 之间增加左右手分区间隔
   ========================= */
.cover-console .key-row .active-key,
.cover-console .key-row .split-key{
  color:#40516e!important;
  background:rgba(255,255,255,.58)!important;
  border-color:rgba(102,122,170,.16)!important;
  box-shadow:0 8px 18px rgba(80,100,145,.08)!important;
}
.cover-console .key-row .split-key{margin-left:18px!important}
@media(max-width:1200px){.cover-console .key-row .split-key{margin-left:15px!important}}
@media(max-width:700px){.cover-console .key-row .split-key{margin-left:11px!important}}

/* =========================================================
   V1.15 Unified Product Style
   首页保持 V1.14；统一大厅 / 弹窗 / 游戏 / 结算 / 教师后台视觉语言
   ========================================================= */

/* ---------- 比赛大厅：浅色玻璃 + 蓝紫青 ---------- */
.lobby-screen{
  background:linear-gradient(135deg,rgba(226,240,255,.36),rgba(243,236,255,.38));
  color:#173454;
}
.lobby-screen::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(circle at 16% 16%,rgba(56,189,248,.16),transparent 26%),radial-gradient(circle at 84% 20%,rgba(168,85,247,.15),transparent 28%);
}
.site-topbar{
  height:78px;padding:0 4%;border-bottom:1px solid rgba(255,255,255,.54);
  background:rgba(247,251,255,.56);backdrop-filter:blur(20px) saturate(135%);
  box-shadow:0 8px 30px rgba(57,82,122,.06)
}
.back-link{color:#506b8d;font-weight:800}.back-link:hover{color:#5b4de3}
.mini-brand{color:#173454}.mini-brand .mini-logo{background:linear-gradient(145deg,#dff6ff,#efe7ff);color:#4d61c8;border:1px solid rgba(82,115,174,.13);border-radius:13px;display:grid;place-items:center}
.mini-brand small{color:#7894b1}.lobby-main{max-width:1320px;padding:42px 34px 50px}
.game-kicker{color:#5d7da3;font-weight:800}.game-kicker span{background:linear-gradient(90deg,#38bdf8,#8b5cf6)}
.lobby-heading h2{font-size:42px;color:#183452;letter-spacing:-.5px}.lobby-heading p{color:#647f9f;font-size:15px}
.rank-open-btn{border:1px solid rgba(97,118,169,.13);background:rgba(255,255,255,.62);color:#425d80;border-radius:16px;padding:12px 16px;box-shadow:0 10px 24px rgba(70,94,132,.08);backdrop-filter:blur(14px);font-weight:800}.rank-open-btn:hover{transform:translateY(-2px);background:#fff;color:#5b4de3}
.identity-chip{padding:9px 12px;border:1px solid rgba(94,121,164,.13);border-radius:18px;background:rgba(255,255,255,.65);box-shadow:0 10px 25px rgba(75,97,132,.08);backdrop-filter:blur(14px)}
.identity-chip small{color:#7894af}.identity-chip b{color:#193b5d}.identity-chip button{color:#5e63cf;font-weight:800}
.battle-choice-grid{gap:24px;margin-top:34px}.battle-card{min-height:400px;padding:31px;border-radius:32px;color:#173454;border:1px solid rgba(255,255,255,.8);box-shadow:0 20px 50px rgba(66,89,129,.11);backdrop-filter:blur(18px) saturate(130%)}
.battle-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.58),transparent 40%,rgba(255,255,255,.20));opacity:.75}
.battle-card>*{position:relative;z-index:1}.battle-card:hover{transform:translateY(-7px);box-shadow:0 28px 62px rgba(72,89,147,.16)}
.warmup-card{background:linear-gradient(145deg,rgba(239,253,255,.88),rgba(218,241,255,.82) 54%,rgba(235,245,255,.86))}
.formal-card{background:linear-gradient(145deg,rgba(239,246,255,.9),rgba(232,226,255,.84) 52%,rgba(247,232,255,.84))}
.battle-label{background:rgba(14,165,233,.09);border-color:rgba(14,165,233,.17);color:#0284c7;font-size:10px;font-weight:900}.battle-label.official{background:rgba(124,58,237,.08);border-color:rgba(124,58,237,.15);color:#7c3aed}
.battle-icon{font-size:52px;margin:29px 0 13px}.battle-card h3{font-size:30px;color:#173454}.battle-card p{color:#657f9d;font-size:14px}
.battle-tags span{background:rgba(255,255,255,.68);border-color:rgba(96,122,165,.12);color:#4e6785;font-size:11px}.formal-timeline span{background:rgba(255,255,255,.66);border-color:rgba(99,117,166,.12);color:#5d7192}.formal-timeline span b{color:#283f6c}.formal-timeline i{background:linear-gradient(90deg,#38bdf8,#8b5cf6)}
.battle-start{border-top-color:rgba(85,111,155,.12);font-size:15px;color:#315b91}.formal-card .battle-start{color:#7040d8}
.lobby-rule{background:rgba(255,255,255,.58)!important;border:1px solid rgba(255,255,255,.72)!important;box-shadow:0 14px 35px rgba(71,94,128,.07);backdrop-filter:blur(16px)}.lobby-rule b{color:#294a70}.lobby-rule small{color:#6b83a0}
.lobby-role-switch{color:#fff!important;background:linear-gradient(135deg,#5a80ff,#8b5cf6)!important;border:0!important;box-shadow:0 10px 24px rgba(91,83,219,.18)!important}

/* ---------- 身份 / 排行榜弹窗 ---------- */
.modal-backdrop{background:rgba(41,61,94,.26);backdrop-filter:blur(8px)}
.modal-card{color:#193654;background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(238,247,255,.92) 54%,rgba(246,239,255,.92))!important;border:1px solid rgba(255,255,255,.88)!important;box-shadow:0 30px 80px rgba(54,73,113,.20)!important;backdrop-filter:blur(24px) saturate(135%)}
.modal-close{background:rgba(80,105,150,.08);color:#5d7191;border:1px solid rgba(77,105,148,.08)}.modal-close:hover{background:rgba(124,58,237,.10);color:#6d36d7}
.modal-kicker{color:#6d77c8}.modal-card h2{color:#173454}.modal-card>p{color:#6a829f}.identity-form label{color:#607c9e;font-weight:800}
.identity-form input,.identity-form select{background:rgba(255,255,255,.82);border:1px solid rgba(83,117,165,.16);color:#173454;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}.identity-form input:focus,.identity-form select:focus{border-color:#7c73eb;box-shadow:0 0 0 4px rgba(99,102,241,.08)}
.rank-modal-status,.rank-rule-note{color:#657e9b}.rank-modal .rank-table{background:rgba(255,255,255,.64);border:1px solid rgba(83,113,158,.10)}.rank-modal .rank-table th{color:#7188a6}.rank-modal .rank-table td{color:#274361;border-bottom-color:rgba(84,112,152,.10)}.rank-modal .rank-table .rank-me{background:linear-gradient(90deg,rgba(59,130,246,.08),rgba(139,92,246,.09))}

/* ---------- 游戏页：统一风格但优先清晰 ---------- */
.game-screen{background:linear-gradient(135deg,#ddecff 0%,#f5f9ff 43%,#eee8ff 100%)}
.game-screen::before,.game-screen::after{content:"";position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;opacity:.17}.game-screen::before{width:420px;height:420px;background:#38bdf8;left:-130px;top:18%}.game-screen::after{width:420px;height:420px;background:#a855f7;right:-120px;top:28%}
.light-hud{background:rgba(255,255,255,.78);border-color:rgba(255,255,255,.88);box-shadow:0 16px 42px rgba(68,91,131,.10);backdrop-filter:blur(20px) saturate(130%)}
.hud-brand>span{background:linear-gradient(145deg,#e0f5ff,#eee5ff);color:#5263cb}.hud strong{color:#193653}.hud small{color:#7890ab}.combo-hud em{background:linear-gradient(135deg,#edf6ff,#f1eaff);color:#645fa6}.hud-quit{background:rgba(255,255,255,.78);border-color:rgba(78,112,157,.14);color:#546b85}.hud-quit:hover{background:#fff;color:#6d36d7}
.training-arena{border-color:rgba(255,255,255,.9);box-shadow:0 18px 52px rgba(80,105,145,.09)}.bright-arena{background:linear-gradient(145deg,rgba(252,254,255,.96),rgba(225,243,255,.91) 48%,rgba(240,232,255,.91))}.stage-ribbon{background:rgba(255,255,255,.82);color:#49688f;border-color:rgba(85,117,163,.10)}
.target{background:linear-gradient(145deg,#3f8cff,#7653ee);box-shadow:0 14px 32px rgba(84,86,198,.21)}.target-warning{background:linear-gradient(145deg,#fbad31,#f45b68)}
.keyboard-guide{background:rgba(255,255,255,.82);border-color:rgba(255,255,255,.9);box-shadow:0 14px 35px rgba(75,99,139,.10)}.keyboard-row i{background:rgba(246,251,255,.92);border-color:#d9e4f1;color:#4d6380}.keyboard-row i.key-active{background:linear-gradient(145deg,#3b82f6,#7c3aed)}
.light-typing{background:rgba(255,255,255,.80);border-color:rgba(255,255,255,.9);box-shadow:0 14px 36px rgba(66,95,134,.09)}.typing-wrap{background:rgba(255,255,255,.88);border-color:#9fc5ef}
.countdown-overlay,.stage-overlay{background:rgba(243,249,255,.88)}

/* ---------- 结算页：从深色改为同源浅色成绩卡 ---------- */
.result-screen{background:linear-gradient(135deg,#ddecff 0%,#f7fbff 42%,#efe8ff 100%);color:#183652;padding:30px}
.result-screen::before,.result-screen::after{content:"";position:fixed;border-radius:50%;filter:blur(90px);opacity:.18;pointer-events:none}.result-screen::before{width:420px;height:420px;background:#38bdf8;left:-120px;top:10%}.result-screen::after{width:440px;height:440px;background:#a855f7;right:-130px;top:20%}
.result-panel{position:relative;z-index:1;background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(238,248,255,.86) 55%,rgba(247,239,255,.86))!important;border:1px solid rgba(255,255,255,.9)!important;box-shadow:0 30px 80px rgba(59,80,121,.15)!important;color:#193653;backdrop-filter:blur(24px) saturate(135%)}
.result-kicker{color:#6873ce}.result-panel h2{color:#183652}.result-panel>p{color:#6b83a0}.score-medal small{color:#7890ae}.big-score{color:#5f4bd7;text-shadow:0 7px 28px rgba(103,78,220,.16)}
.stats>div{background:rgba(255,255,255,.67);border:1px solid rgba(87,116,159,.09);color:#738aa7;box-shadow:0 8px 20px rgba(72,95,132,.05)}.stats b{color:#203e61}.personal-best-message{color:#a16207}.rank-message{color:#556f90}.rank-title h3{color:#193653}.rank-title small{color:#7d91aa}
.result-panel .rank-table{background:rgba(255,255,255,.64);border:1px solid rgba(83,113,158,.09)}.result-panel .rank-table th{color:#748ba7}.result-panel .rank-table td{color:#2c4664;border-bottom-color:rgba(86,113,151,.09)}.result-panel .rank-table .rank-me{background:linear-gradient(90deg,rgba(59,130,246,.08),rgba(139,92,246,.09))}
.game-secondary{background:rgba(255,255,255,.72)!important;color:#526c8a!important;border-color:rgba(81,111,155,.13)!important}.game-secondary:hover{background:#fff!important;color:#6d36d7!important}.game-primary{box-shadow:0 15px 36px rgba(92,73,218,.22)}

/* ---------- 教师后台：专业浅色品牌风 ---------- */
.admin-body{min-height:100vh;background:radial-gradient(circle at 12% 12%,rgba(56,189,248,.16),transparent 26%),radial-gradient(circle at 88% 8%,rgba(168,85,247,.15),transparent 28%),linear-gradient(135deg,#e5f1ff,#f8fbff 48%,#efe9ff);color:#193653}
.admin-wrap{max-width:1420px;padding:34px}.admin-top{padding:6px 4px 10px}.admin-top h1{font-size:36px;color:#183652}.admin-top p{color:#6a829f}.eyebrow{color:#6170c7;font-weight:900}
.admin-role-switch{color:#fff!important;background:linear-gradient(135deg,#567cff,#8b5cf6)!important;border:0!important;box-shadow:0 10px 24px rgba(91,83,219,.16)!important}
.admin-body .ghost,.admin-body .linkbtn{background:rgba(255,255,255,.66);border-color:rgba(84,111,154,.13);color:#526a88;box-shadow:0 7px 18px rgba(75,94,127,.05)}.admin-body .ghost:hover{background:#fff;color:#6d36d7}.admin-body .primary{background:linear-gradient(135deg,#3b82f6,#7c3aed);box-shadow:0 9px 24px rgba(83,82,214,.16)}
.admin-grid{gap:20px;margin-top:22px}.panel{padding:24px;border-radius:25px}.glass-panel{background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.87);box-shadow:0 18px 48px rgba(69,91,127,.09);backdrop-filter:blur(18px) saturate(125%)}.panel h2{color:#1d3d5e;font-size:19px}.muted{color:#758ca7!important}
.inline-form input,.inline-form select,.filter-grid select,.event-config select,.event-config input{background:rgba(255,255,255,.82);border-color:rgba(83,113,158,.13);color:#213e5d;outline:none}.inline-form input:focus,.filter-grid select:focus,.event-config select:focus{border-color:#7d73e8;box-shadow:0 0 0 3px rgba(99,102,241,.07)}
.event-row{background:rgba(241,247,255,.70);border:1px solid rgba(90,116,157,.08)}.event-row small,.event-config label{color:#7289a5}.fixed-setting{background:rgba(246,250,255,.76)!important;border-color:rgba(87,113,157,.09)!important}.fixed-setting span{color:#7a90a9!important}.fixed-setting b{color:#304c6c!important}
.data-tag{color:#617895;background:rgba(234,243,255,.72);border-radius:999px;padding:6px 10px}.table-wrap{border-radius:16px;border:1px solid rgba(87,113,153,.08);background:rgba(255,255,255,.44)}.table-wrap th,.table-wrap td{border-bottom-color:rgba(84,111,151,.08);color:#304a68}.table-wrap th{color:#7189a5;background:rgba(238,246,255,.56)}.table-wrap tr:hover td{background:rgba(233,241,255,.46)}.empty-cell{color:#8094ab!important}

/* ---------- 教师登录 ---------- */
.admin-login-body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 16%,rgba(56,189,248,.18),transparent 28%),radial-gradient(circle at 86% 12%,rgba(168,85,247,.16),transparent 30%),linear-gradient(135deg,#e7f2ff,#f8fbff 50%,#eee8ff);color:#193653}
.admin-login-body .center{min-height:100vh}.login-panel{width:min(440px,92vw);padding:34px;border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(238,247,255,.88) 55%,rgba(246,239,255,.88));border:1px solid rgba(255,255,255,.9);box-shadow:0 28px 70px rgba(63,82,119,.15);color:#193653;backdrop-filter:blur(22px)}.login-panel h1{margin-top:0;color:#183652}.login-panel label{color:#617c9e;font-weight:800}.login-panel input{background:rgba(255,255,255,.82);border-color:rgba(83,114,160,.14);color:#173454}.login-panel .muted{color:#748ba7!important}.login-role-switch{position:fixed;right:24px;top:20px;z-index:10;color:#fff!important;background:linear-gradient(135deg,#567cff,#8b5cf6)!important;border:0!important}

@media(max-width:900px){
  .lobby-heading{align-items:flex-start}.battle-choice-grid{grid-template-columns:1fr}.battle-card{min-height:370px}.admin-grid{grid-template-columns:1fr}.admin-wrap{padding:20px}
}


/* =========================================================
   V1.16 Lobby Compact Refinement
   仅优化比赛大厅版式，不影响游戏逻辑
   ========================================================= */
.lobby-screen{overflow:hidden}
.site-topbar{height:72px}
.mini-brand{gap:11px}.mini-brand span:not(.mini-logo){font-size:19px}.mini-brand small{display:none}
.lobby-main{max-width:1480px;padding:25px 42px 24px;min-height:calc(100vh - 72px);display:flex;flex-direction:column}
.lobby-heading{align-items:center;gap:20px;padding:8px 2px 13px}
.lobby-title-block{padding:14px 18px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.30),rgba(255,255,255,.10));border:1px solid rgba(255,255,255,.30);backdrop-filter:blur(8px)}
.lobby-heading h2{font-size:37px;margin:0 0 5px;line-height:1.08;color:#173b62;letter-spacing:-.8px}
.lobby-heading p{font-size:14px;margin:0;color:#617f9e;font-weight:600}
.lobby-side-actions{gap:10px;align-items:center}
.rank-open-btn,.identity-chip{min-height:58px}
.rank-open-btn{padding:11px 18px;border-radius:18px;font-size:14px}
.identity-chip{padding:8px 12px;border-radius:18px}.identity-chip .avatar{width:42px;height:42px;border-radius:13px}.identity-chip b{font-size:14px}.identity-chip button{font-size:12px}

.battle-choice-grid{grid-template-columns:.94fr 1.06fr;gap:24px;margin-top:14px;align-items:stretch}
.battle-card{min-height:325px;height:325px;padding:25px 27px 24px;border-radius:30px;display:flex;flex-direction:column;overflow:hidden}
.battle-card:hover{transform:translateY(-5px)}
.battle-label{align-self:flex-start;padding:7px 12px;font-size:11px;letter-spacing:.6px}
.battle-icon{font-size:40px;margin:16px 0 7px;line-height:1}
.battle-card h3{font-size:28px;margin:0 0 7px;line-height:1.18}
.battle-card p{font-size:13px;line-height:1.55;margin:0;max-width:94%}
.battle-tags{margin-top:12px;gap:7px}.battle-tags span{padding:6px 10px;font-size:10px}

.formal-timeline{margin-top:14px;gap:9px;align-items:center}
.formal-timeline span{min-width:86px;padding:9px 10px;border-radius:15px;text-align:center;background:rgba(255,255,255,.72);box-shadow:0 6px 16px rgba(75,91,151,.05)}
.formal-timeline span b{font-size:13px;color:#273f70;white-space:nowrap}.formal-timeline span small{display:block;margin-top:3px;font-size:10px;color:#7085a3;font-weight:800}
.formal-timeline i{height:3px;border-radius:999px;opacity:.84}

.battle-start{position:static;margin-top:auto;border-top:0;padding:0;display:flex;justify-content:flex-end;align-items:center;gap:12px;font-size:15px}
.battle-start span{display:inline-flex;align-items:center;justify-content:center;min-width:154px;padding:11px 20px;border-radius:16px;color:#fff;font-weight:900;box-shadow:0 12px 28px rgba(56,112,199,.15)}
.battle-start b{float:none;width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.72);font-size:18px}
.warm-start span{background:linear-gradient(135deg,#25b9df,#3f8df8)}.warm-start b{color:#168cc8}
.formal-start span{background:linear-gradient(135deg,#5e7dff,#8b4bf0)}.formal-start b{color:#7546dc}
.battle-card:hover .battle-start span{filter:saturate(1.12);transform:translateY(-1px)}

.compact-tip{margin-top:14px!important;padding:11px 16px!important;min-height:48px;border-radius:16px!important;gap:9px!important;background:rgba(255,255,255,.48)!important}
.compact-tip>span{font-size:16px}.compact-tip b{font-size:12px;color:#56718f!important;font-weight:700}

@media(min-width:1200px) and (max-height:900px){
  .lobby-main{padding-top:16px;padding-bottom:14px}.lobby-heading{padding-top:2px;padding-bottom:8px}.lobby-heading h2{font-size:33px}.battle-choice-grid{margin-top:8px}.battle-card{height:304px;min-height:304px;padding:20px 24px}.battle-icon{margin:12px 0 6px}.battle-card h3{font-size:25px}.battle-card p{line-height:1.45}.formal-timeline{margin-top:10px}.compact-tip{margin-top:10px!important}
}
@media(max-width:900px){
  .lobby-screen{overflow:auto}.lobby-main{display:block;padding:22px 18px 30px}.lobby-heading{align-items:flex-start}.lobby-title-block{width:100%}.battle-choice-grid{grid-template-columns:1fr}.battle-card{height:auto;min-height:330px}.compact-tip{margin-top:16px!important}
}


/* =========================================================
   V1.17 Lobby Production Polish
   真实落地游戏大厅：强化可点击性、统一按钮、减轻辅助信息
   ========================================================= */
.lobby-main{max-width:1500px}
.lobby-heading{padding-top:4px;padding-bottom:10px}
.lobby-title-block{
  padding:8px 4px;background:transparent!important;border:0!important;
  backdrop-filter:none!important;box-shadow:none!important
}
.lobby-heading h2{font-size:36px;margin:0 0 4px;color:#173b62;letter-spacing:-.8px}
.lobby-heading p{font-size:13px;color:#6b86a3;font-weight:650}
.lobby-side-actions{gap:12px}
.rank-open-btn,.identity-chip{min-height:56px}
.rank-open-btn{padding:10px 17px;border-radius:17px}
.identity-chip{padding:7px 11px}

.battle-choice-grid{margin-top:10px;gap:26px}
.battle-card{
  height:316px;min-height:316px;padding:24px 28px 22px;border-radius:30px;
  cursor:pointer;outline:none;transform:translateZ(0);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,filter .22s ease
}
.battle-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:linear-gradient(115deg,rgba(255,255,255,.22),transparent 32%,rgba(255,255,255,.12));
  transition:opacity .22s ease
}
.battle-card:hover,.battle-card:focus-visible{transform:translateY(-6px) scale(1.004);border-color:rgba(255,255,255,.96);box-shadow:0 30px 64px rgba(68,90,135,.17)}
.battle-card:hover::after,.battle-card:focus-visible::after{opacity:1}
.warmup-card:hover{filter:saturate(1.04)}
.formal-card:hover{filter:saturate(1.05)}

.battle-icon{font-size:38px;margin:13px 0 6px}
.battle-card h3{font-size:27px;margin-bottom:6px}
.battle-card p{font-size:13px;line-height:1.48;max-width:96%}
.battle-tags{margin-top:10px}
.battle-label{padding:6px 11px;font-size:10px}

.formal-timeline{margin-top:12px;gap:10px}
.formal-timeline span{
  min-width:88px;padding:8px 10px;border-radius:15px;background:rgba(255,255,255,.76);
  border:1px solid rgba(94,113,164,.09);box-shadow:0 7px 16px rgba(67,87,132,.045)
}
.formal-timeline span b{font-size:13px}.formal-timeline span small{font-size:10px}
.formal-timeline i{height:2px;opacity:.42;background:linear-gradient(90deg,#38bdf8,#8b5cf6)}

.battle-start{
  margin-top:auto;display:flex;justify-content:flex-end;align-items:center;padding:0;border:0
}
.battle-start span{
  width:208px;min-width:208px;height:52px;padding:0 24px;border-radius:17px;
  display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:900;
  letter-spacing:.2px;box-shadow:0 14px 30px rgba(70,88,188,.16);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease
}
.battle-start b{display:none!important}
.warm-start span{background:linear-gradient(135deg,#24bfe2 0%,#3b8cff 100%)}
.formal-start span{background:linear-gradient(135deg,#587fff 0%,#8d49ef 100%)}
.battle-card:hover .battle-start span,.battle-card:focus-visible .battle-start span{transform:translateY(-2px);box-shadow:0 18px 34px rgba(67,84,196,.22);filter:saturate(1.08)}
.battle-card:active{transform:translateY(-2px) scale(.998)}
.battle-card:active .battle-start span{transform:translateY(0) scale(.985)}

.compact-tip{
  margin-top:11px!important;min-height:42px!important;padding:8px 14px!important;border-radius:14px!important;
  background:rgba(255,255,255,.36)!important;border-color:rgba(255,255,255,.52)!important;
  box-shadow:0 8px 20px rgba(73,94,129,.04)!important;backdrop-filter:blur(10px)!important
}
.compact-tip>span{font-size:14px}.compact-tip b{font-size:11px!important;color:#647e99!important;font-weight:650!important}

@media(min-width:1200px) and (max-height:900px){
  .lobby-heading h2{font-size:32px}.battle-card{height:292px;min-height:292px;padding:19px 24px 18px}
  .battle-icon{font-size:34px;margin:8px 0 4px}.battle-card h3{font-size:24px}.battle-card p{line-height:1.4}
  .formal-timeline{margin-top:8px}.battle-tags{margin-top:7px}.battle-start span{height:46px;width:188px;min-width:188px;font-size:15px}
  .compact-tip{margin-top:8px!important;min-height:38px!important}
}
@media(max-width:900px){
  .battle-card{height:auto;min-height:322px}.battle-start span{width:100%;min-width:0}.lobby-title-block{padding-left:0;padding-right:0}
}


/* =========================================================
   V1.18 Real Game Lobby Redesign
   模式选择式比赛大厅：紧凑、清晰、可点击、学生身份自然呈现
   ========================================================= */
.lobby-v18{
  background:
    linear-gradient(120deg,rgba(211,230,248,.58),rgba(238,232,255,.54)),
    transparent;
  overflow:hidden;
}
.lobby-v18::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 18% 30%,rgba(56,189,248,.12),transparent 33%),radial-gradient(circle at 84% 26%,rgba(168,85,247,.14),transparent 34%);
}
.lobby-topbar-v18{
  height:78px!important;padding:0 3.8%!important;display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;
  background:rgba(244,249,255,.76)!important;border-bottom:1px solid rgba(255,255,255,.86)!important;
  box-shadow:0 8px 28px rgba(52,74,112,.08);backdrop-filter:blur(18px) saturate(125%)!important;
  position:relative;z-index:20;
}
.lobby-back{justify-self:start;font-size:15px!important;font-weight:850!important;color:#496889!important;padding:10px 0!important;transition:.2s}
.lobby-back:hover{color:#5b4de3!important;transform:translateX(-2px)}
.lobby-center-title{justify-self:center;display:flex;align-items:center;gap:12px;color:#173b62}
.lobby-center-title .mini-logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#e8f8ff,#efe9ff);border:1px solid rgba(98,118,176,.10);box-shadow:0 9px 22px rgba(74,94,140,.08);font-size:21px;color:#5464d8}
.lobby-center-title b{font-size:25px;letter-spacing:.2px}
.lobby-player-card{justify-self:end;display:flex;align-items:center;gap:10px;min-width:250px;padding:8px 11px 8px 9px;border-radius:20px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.94);box-shadow:0 10px 26px rgba(69,90,131,.09);backdrop-filter:blur(15px)}
.player-avatar{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#438cff,#7d4cf0);color:#fff;font-weight:950;font-size:18px;box-shadow:0 8px 18px rgba(84,84,220,.18)}
.player-info{min-width:0;flex:1}.player-info small{display:block;font-size:9px;color:#8299b1;font-weight:750;margin-bottom:2px}.player-info b{display:block;color:#183b5d;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-change{border:0;background:rgba(92,92,220,.08);color:#625ed1;font-weight:850;font-size:11px;border-radius:10px;padding:7px 9px;cursor:pointer;transition:.2s}.player-change:hover{background:rgba(92,92,220,.15);transform:translateY(-1px)}

.lobby-main-v18{max-width:1480px!important;margin:0 auto!important;min-height:calc(100vh - 78px)!important;padding:24px 42px 24px!important;display:flex!important;flex-direction:column;justify-content:center;position:relative;z-index:2}
.lobby-stage-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.lobby-stage-copy{padding-left:4px}.lobby-kicker{display:inline-flex;align-items:center;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.76);color:#557396;font-size:10px;font-weight:900;letter-spacing:.5px;box-shadow:0 7px 18px rgba(70,94,130,.05)}
.lobby-stage-copy h2{margin:7px 0 3px;color:#14395c;font-size:38px;line-height:1.05;letter-spacing:-.8px}.lobby-stage-copy p{margin:0;color:#557493;font-size:14px;font-weight:650}
.lobby-rank-btn{border:1px solid rgba(255,255,255,.92);background:rgba(255,255,255,.72);color:#425f83;border-radius:18px;padding:13px 18px;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 12px 28px rgba(70,91,130,.08);backdrop-filter:blur(14px);transition:.22s}.lobby-rank-btn:hover{transform:translateY(-3px);color:#5d4bd6;box-shadow:0 18px 34px rgba(79,84,166,.12);background:#fff}

.game-mode-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:26px;align-items:stretch}
.mode-card{height:390px;min-height:390px;border:0;position:relative;overflow:hidden;text-align:left;border-radius:34px;padding:27px 30px 26px;color:#153858;cursor:pointer;outline:none;display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,border-color .22s ease;box-shadow:0 22px 54px rgba(60,83,123,.12);border:1px solid rgba(255,255,255,.92);backdrop-filter:blur(20px) saturate(130%)}
.mode-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.66),transparent 42%,rgba(255,255,255,.20));opacity:.82}
.mode-card::after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-70px;top:-90px;filter:blur(8px);opacity:.28;transition:.28s}
.mode-card>*{position:relative;z-index:2}
.mode-warmup{background:linear-gradient(145deg,rgba(225,248,255,.92),rgba(220,240,255,.83) 58%,rgba(232,245,255,.78));}
.mode-warmup::after{background:radial-gradient(circle,#38d7eb,#4f8df7 62%,transparent 73%)}
.mode-formal{background:linear-gradient(145deg,rgba(244,241,255,.94),rgba(239,232,255,.86) 55%,rgba(250,231,255,.79));}
.mode-formal::after{background:radial-gradient(circle,#d86bf1,#8b5cf6 62%,transparent 73%)}
.mode-card:hover,.mode-card:focus-visible{transform:translateY(-7px) scale(1.003);box-shadow:0 32px 70px rgba(61,77,136,.17);filter:saturate(1.035)}
.mode-card:hover::after,.mode-card:focus-visible::after{opacity:.48;transform:translate(-12px,14px) scale(1.08)}
.mode-card:active{transform:translateY(-3px) scale(.998)}
.mode-index{position:absolute;right:26px;top:22px;font-size:54px;font-weight:950;line-height:1;color:rgba(74,101,145,.075);letter-spacing:-2px}
.mode-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.mode-status{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.3px}
.warm-status{color:#0781bb;background:rgba(220,248,255,.92);border:1px solid rgba(56,189,248,.22)}
.formal-status{color:#7641d8;background:rgba(245,239,255,.94);border:1px solid rgba(147,102,239,.19)}
.mode-icon{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;font-size:31px;box-shadow:0 12px 26px rgba(66,92,149,.10)}
.warm-icon{background:linear-gradient(145deg,rgba(224,251,255,.96),rgba(201,236,255,.92))}.formal-icon{background:linear-gradient(145deg,rgba(250,245,255,.98),rgba(235,220,255,.94))}
.mode-copy{margin-top:18px}.mode-copy h3{margin:0 0 8px;font-size:31px;line-height:1.08;color:#14395d;letter-spacing:-.5px}.mode-copy p{margin:0;color:#526f8d;font-size:14px;line-height:1.58;max-width:94%;font-weight:550}
.mode-features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}
.mode-features>span{min-height:64px;border-radius:17px;background:rgba(255,255,255,.64);border:1px solid rgba(94,126,168,.09);box-shadow:0 7px 18px rgba(69,89,127,.045);display:flex;flex-direction:column;align-items:center;justify-content:center}.mode-features b{font-size:18px;color:#245078}.mode-features small{font-size:10px;color:#7b92aa;margin-top:2px;font-weight:750}
.stage-track{display:grid;grid-template-columns:100px 1fr 100px 1fr 100px;align-items:center;gap:10px;margin-top:20px}
.stage-node{height:70px;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid rgba(102,116,166,.09);display:grid;grid-template-columns:30px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:8px 10px;box-shadow:0 8px 18px rgba(73,86,136,.045)}
.stage-node>b{grid-row:1/3;font-size:11px;color:#7b58df;width:28px;height:28px;border-radius:9px;background:rgba(126,91,228,.10);display:grid;place-items:center}.stage-node span{font-size:14px;font-weight:900;color:#293f6d;align-self:end}.stage-node small{font-size:10px;color:#788aa5;font-weight:750;align-self:start;margin-top:2px}
.stage-track>i{height:2px;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.55),rgba(139,92,246,.55))}
.formal-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.formal-meta>span{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.66);border:1px solid rgba(104,116,167,.08);font-size:10px;color:#5d7192;font-weight:750}.formal-meta b{color:#674bd7}
.mode-cta{margin-top:auto;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 22px;color:#fff;font-weight:950;font-size:17px;letter-spacing:.1px;box-shadow:0 14px 30px rgba(65,87,183,.17);transition:.2s}
.mode-cta b{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:18px}.warm-cta{background:linear-gradient(135deg,#27bedf,#3a8cf8)}.formal-cta{background:linear-gradient(135deg,#587eff,#8c4cf0)}
.mode-card:hover .mode-cta,.mode-card:focus-visible .mode-cta{transform:translateY(-2px);box-shadow:0 19px 36px rgba(68,80,189,.23)}
.lobby-inline-tip{align-self:center;margin-top:15px;color:#5e7895;font-size:12px;font-weight:700;background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.72);border-radius:999px;padding:8px 15px;box-shadow:0 7px 20px rgba(72,92,128,.04);backdrop-filter:blur(10px)}

@media(min-width:1200px) and (max-height:900px){
  .lobby-main-v18{padding-top:15px!important;padding-bottom:15px!important;justify-content:flex-start}
  .lobby-stage-head{margin-bottom:12px}.lobby-stage-copy h2{font-size:33px}.lobby-stage-copy p{font-size:12px}
  .mode-card{height:342px;min-height:342px;padding:21px 25px 21px}.mode-icon{width:52px;height:52px;font-size:27px}.mode-copy{margin-top:11px}.mode-copy h3{font-size:26px}.mode-copy p{font-size:12px;line-height:1.48}.mode-features{margin-top:14px}.mode-features>span{min-height:52px}.stage-track{margin-top:13px;grid-template-columns:90px 1fr 90px 1fr 90px}.stage-node{height:58px}.formal-meta{margin-top:8px}.mode-cta{height:48px;font-size:15px}.lobby-inline-tip{margin-top:10px;padding:6px 13px;font-size:11px}
}
@media(max-width:1000px){
  .lobby-v18{overflow:auto}.lobby-topbar-v18{grid-template-columns:auto 1fr auto;padding:0 18px!important}.lobby-center-title{justify-self:center}.lobby-player-card{min-width:0}.player-info small{display:none}.player-change{display:none}.game-mode-grid{grid-template-columns:1fr}.lobby-main-v18{display:block!important;padding:22px 18px 36px!important}.lobby-stage-head{align-items:flex-start}.mode-card{height:auto;min-height:350px}.stage-track{grid-template-columns:90px 1fr 90px 1fr 90px}
}
@media(max-width:700px){
  .lobby-center-title b{font-size:19px}.lobby-center-title .mini-logo{width:36px;height:36px}.lobby-player-card{padding:6px 8px}.player-avatar{width:34px;height:34px}.player-info b{font-size:11px;max-width:105px}.lobby-stage-head{flex-direction:column;gap:12px}.lobby-stage-copy h2{font-size:30px}.lobby-rank-btn{width:100%}.mode-card{padding:21px 20px}.mode-copy h3{font-size:27px}.stage-track{grid-template-columns:1fr;gap:7px}.stage-track>i{display:none}.stage-node{grid-template-columns:34px 1fr;height:56px}.lobby-inline-tip{border-radius:16px;text-align:center;line-height:1.5}
}

/* =========================================================
   V1.19 极简游戏大厅重构
   目标：大字、少碎片、强模式选择感、1920x1080 一屏清晰
   ========================================================= */
.lobby-v19{overflow:hidden!important;background:transparent!important;color:#173b60}
.lobby-bar-v19{height:88px;padding:0 58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative;z-index:20;background:rgba(244,249,255,.82);border-bottom:1px solid rgba(255,255,255,.88);box-shadow:0 8px 28px rgba(52,78,120,.07);backdrop-filter:blur(18px) saturate(135%)}
.lobby-back-v19{justify-self:start;border:0;background:transparent;color:#496b8e;font-size:17px;font-weight:850;cursor:pointer;padding:12px 4px;transition:.2s}
.lobby-back-v19:hover{color:#6551dc;transform:translateX(-3px)}
.lobby-title-v19{justify-self:center;display:flex;align-items:center;gap:13px;color:#173d63}
.lobby-title-v19>span{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#e7f8ff,#eee9ff);border:1px solid rgba(255,255,255,.9);box-shadow:0 9px 24px rgba(75,94,139,.09);font-size:22px;color:#5265dd}
.lobby-title-v19>b{font-size:30px;letter-spacing:.5px}
.lobby-user-v19{justify-self:end;display:flex;align-items:center;gap:11px;padding:8px 10px 8px 9px;min-width:278px;border-radius:21px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.94);box-shadow:0 10px 26px rgba(70,88,130,.09);backdrop-filter:blur(14px)}
.player-avatar-v19{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#448bff,#7a4cf0);color:#fff;font-size:20px;font-weight:950;box-shadow:0 8px 20px rgba(79,82,220,.18)}
.player-copy-v19{flex:1;min-width:0}.player-copy-v19 small{display:block;color:#7890a9;font-size:11px;font-weight:800;margin-bottom:2px}.player-copy-v19 b{display:block;color:#173b5e;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-change-v19{border:0;background:rgba(98,87,218,.09);color:#6256d5;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:900;cursor:pointer;transition:.2s}.player-change-v19:hover{background:rgba(98,87,218,.16);transform:translateY(-1px)}

.lobby-main-v19{width:min(1540px,calc(100% - 72px));height:calc(100vh - 88px);margin:0 auto;padding:26px 0 20px;display:flex;flex-direction:column;position:relative;z-index:2}
.lobby-intro-v19{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin:0 0 20px;padding:0 5px}
.lobby-eyebrow-v19{display:inline-block;color:#657fa0;font-size:12px;letter-spacing:1.5px;font-weight:900;margin-bottom:6px}
.lobby-intro-v19 h2{margin:0;color:#12395d;font-size:42px;line-height:1.03;letter-spacing:-.8px}
.lobby-intro-v19 p{margin:7px 0 0;color:#4d6f8f;font-size:18px;font-weight:650;line-height:1.4}
.rank-btn-v19{flex:0 0 auto;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.80);color:#3e6084;border-radius:17px;padding:13px 18px;font-size:15px;font-weight:900;cursor:pointer;box-shadow:0 10px 26px rgba(66,87,129,.08);backdrop-filter:blur(12px);transition:.2s}
.rank-btn-v19:hover{color:#664fd8;background:#fff;transform:translateY(-2px);box-shadow:0 15px 32px rgba(72,79,165,.12)}

.mode-grid-v19{display:grid;grid-template-columns:.92fr 1.08fr;gap:24px;flex:1;min-height:0;max-height:590px}
.mission-card-v19{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.94);border-radius:34px;padding:30px 32px 28px;text-align:left;color:#173b5e;cursor:pointer;outline:none;box-shadow:0 22px 58px rgba(55,80,124,.13);backdrop-filter:blur(22px) saturate(140%);display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}
.mission-card-v19::before{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.67),transparent 44%,rgba(255,255,255,.18));pointer-events:none}
.mission-card-v19::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-110px;top:-120px;filter:blur(10px);opacity:.30;pointer-events:none;transition:.3s}
.warm-card-v19{background:linear-gradient(145deg,rgba(227,249,255,.94),rgba(216,241,255,.86) 52%,rgba(235,247,255,.82))}
.warm-card-v19::after{background:radial-gradient(circle,#50d9ef,#4c94f9 58%,transparent 73%)}
.formal-card-v19{background:linear-gradient(145deg,rgba(247,244,255,.96),rgba(239,234,255,.88) 50%,rgba(249,231,255,.83))}
.formal-card-v19::after{background:radial-gradient(circle,#e47af2,#8d5bf2 58%,transparent 73%)}
.mission-card-v19>*{position:relative;z-index:2}
.mission-card-v19:hover,.mission-card-v19:focus-visible{transform:translateY(-7px);box-shadow:0 34px 78px rgba(55,73,135,.18);filter:saturate(1.04)}
.mission-card-v19:hover::after,.mission-card-v19:focus-visible::after{transform:translate(-18px,18px) scale(1.08);opacity:.45}
.mission-card-v19:active{transform:translateY(-2px) scale(.997)}
.mission-card-head-v19{display:flex;align-items:center;justify-content:space-between;gap:16px}
.mission-type-v19{display:flex;align-items:center;gap:9px;padding:8px 13px;border-radius:999px;font-weight:900}
.mission-type-v19 span{font-size:15px}.mission-type-v19 small{font-size:12px;font-weight:850;opacity:.82}
.warm-type-v19{color:#087faf;background:rgba(222,249,255,.95);border:1px solid rgba(56,189,248,.23)}
.formal-type-v19{color:#7046d4;background:rgba(247,241,255,.95);border:1px solid rgba(139,92,246,.18)}
.mission-icon-v19{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;font-size:35px;border:1px solid rgba(255,255,255,.82);box-shadow:0 12px 28px rgba(69,87,139,.10)}
.warm-icon-v19{background:linear-gradient(145deg,rgba(230,252,255,.98),rgba(203,238,255,.94))}.formal-icon-v19{background:linear-gradient(145deg,rgba(252,248,255,.98),rgba(235,221,255,.95))}
.mission-body-v19{margin-top:24px}.mission-body-v19 h3{margin:0;color:#143a5e;font-size:38px;line-height:1.08;letter-spacing:-.5px}.mission-body-v19 p{margin:11px 0 0;max-width:95%;color:#476b8c;font-size:18px;line-height:1.55;font-weight:650}
.warm-stats-v19{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.warm-stats-v19>div{height:84px;border-radius:20px;background:rgba(255,255,255,.70);border:1px solid rgba(98,126,168,.09);box-shadow:0 8px 20px rgba(69,88,126,.045);display:flex;flex-direction:column;align-items:center;justify-content:center}.warm-stats-v19 b{font-size:24px;color:#24517b}.warm-stats-v19 span{font-size:13px;color:#7089a2;font-weight:800;margin-top:2px}
.stages-v19{display:grid;grid-template-columns:1fr 34px 1fr 34px 1fr;align-items:center;gap:7px;margin-top:26px}
.stage-v19{height:96px;border-radius:21px;background:rgba(255,255,255,.73);border:1px solid rgba(105,116,167,.09);display:grid;grid-template-columns:40px 1fr;grid-template-rows:1fr 1fr;padding:13px 14px;align-items:center;box-shadow:0 8px 20px rgba(73,86,136,.045)}
.stage-v19 i{grid-row:1/3;width:36px;height:36px;border-radius:11px;background:rgba(126,91,228,.11);color:#7652df;font-style:normal;font-size:13px;font-weight:950;display:grid;place-items:center}.stage-v19 b{font-size:19px;color:#263f69;align-self:end}.stage-v19 span{font-size:12px;color:#7185a2;font-weight:800;align-self:start;margin-top:3px}.stages-v19>em{text-align:center;font-style:normal;color:#9272e9;font-size:24px;font-weight:900;opacity:.72}
.formal-info-v19{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.formal-info-v19>span{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.70);border:1px solid rgba(104,116,167,.08);font-size:13px;color:#536d8e;font-weight:850}.formal-info-v19 b{color:#684dd4}
.mission-action-v19{margin-top:auto;height:68px;border-radius:20px;display:flex;align-items:center;justify-content:space-between;padding:0 20px 0 25px;color:#fff;font-size:20px;font-weight:950;letter-spacing:.2px;box-shadow:0 15px 34px rgba(68,82,185,.18);transition:.2s}.mission-action-v19 b{font-size:25px;font-weight:800}.warm-action-v19{background:linear-gradient(135deg,#23bddf,#378ef8)}.formal-action-v19{background:linear-gradient(135deg,#587dff,#8d4cf0)}
.mission-card-v19:hover .mission-action-v19,.mission-card-v19:focus-visible .mission-action-v19{transform:translateY(-2px);box-shadow:0 20px 40px rgba(68,80,189,.24)}
.lobby-tip-v19{margin:16px 0 0;text-align:center;color:#53718f;font-size:15px;font-weight:750;line-height:1.4;text-shadow:0 1px 0 rgba(255,255,255,.7)}

@media(min-width:1200px) and (max-height:900px){
  .lobby-bar-v19{height:78px}.lobby-main-v19{height:calc(100vh - 78px);padding:16px 0 12px}.lobby-intro-v19{margin-bottom:12px}.lobby-intro-v19 h2{font-size:34px}.lobby-intro-v19 p{font-size:15px}.mode-grid-v19{max-height:530px}.mission-card-v19{padding:23px 27px 22px}.mission-icon-v19{width:58px;height:58px;font-size:29px}.mission-body-v19{margin-top:15px}.mission-body-v19 h3{font-size:31px}.mission-body-v19 p{font-size:15px;line-height:1.45;margin-top:7px}.warm-stats-v19{margin-top:18px}.warm-stats-v19>div{height:66px}.warm-stats-v19 b{font-size:20px}.stages-v19{margin-top:17px}.stage-v19{height:75px}.stage-v19 b{font-size:16px}.formal-info-v19{margin-top:11px}.formal-info-v19>span{font-size:11px;padding:6px 9px}.mission-action-v19{height:56px;font-size:17px}.lobby-tip-v19{font-size:12px;margin-top:10px}
}
@media(max-width:1000px){
  .lobby-v19{overflow:auto!important}.lobby-bar-v19{grid-template-columns:auto 1fr auto;padding:0 18px}.lobby-title-v19 b{font-size:23px}.lobby-title-v19>span{width:40px;height:40px}.lobby-user-v19{min-width:0}.player-copy-v19 small{display:none}.player-change-v19{display:none}.lobby-main-v19{width:calc(100% - 36px);height:auto;padding:22px 0 36px}.lobby-intro-v19{align-items:flex-start}.mode-grid-v19{grid-template-columns:1fr;max-height:none}.mission-card-v19{min-height:450px}.lobby-tip-v19{margin-bottom:18px}
}
@media(max-width:700px){
  .lobby-bar-v19{height:72px}.lobby-back-v19{font-size:14px}.lobby-title-v19{gap:7px}.lobby-title-v19 b{font-size:18px}.lobby-title-v19>span{display:none}.lobby-user-v19{padding:6px 8px}.player-avatar-v19{width:36px;height:36px;font-size:15px}.player-copy-v19 b{font-size:11px;max-width:105px}.lobby-intro-v19{flex-direction:column;gap:12px}.lobby-intro-v19 h2{font-size:34px}.lobby-intro-v19 p{font-size:15px}.rank-btn-v19{width:100%}.mission-card-v19{padding:22px 20px;min-height:430px}.mission-body-v19 h3{font-size:31px}.mission-body-v19 p{font-size:16px}.mission-icon-v19{width:58px;height:58px}.stages-v19{grid-template-columns:1fr;gap:8px}.stages-v19>em{display:none}.stage-v19{height:64px}.formal-info-v19{margin-top:12px}.mission-action-v19{height:60px;font-size:18px}.lobby-tip-v19{font-size:13px}
}

/* =========================
   V1.20 比赛大厅最终定稿
   去导航栏框、放大关键信息、收紧卡片、强化玩家信息
   ========================= */
.lobby-v20{background:transparent}
.lobby-bar-v20{
  height:86px;
  padding:10px 54px 0;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  grid-template-columns:1fr auto 1fr;
}
.lobby-bar-v20::after{display:none!important}
.lobby-v20 .lobby-title-v19{align-self:start;margin-top:5px}
.lobby-v20 .lobby-title-v19>span{width:46px;height:46px;border-radius:15px}
.lobby-v20 .lobby-title-v19>b{font-size:31px;color:#153b60;text-shadow:0 1px 0 rgba(255,255,255,.65)}
.lobby-v20 .lobby-back-v19{align-self:start;margin-top:8px;font-size:17px;color:#476988}

.lobby-tools-v20{justify-self:end;display:flex;align-items:center;gap:12px;align-self:start}
.lobby-user-v20{min-width:286px;padding:8px 10px 8px 9px;background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(61,78,121,.10)}
.lobby-user-v20 .player-copy-v19 small{font-size:12px;color:#66819d}
.lobby-user-v20 .player-copy-v19 b{font-size:18px;color:#153b60}
.lobby-user-v20 .player-avatar-v19{width:50px;height:50px;font-size:21px}
.lobby-user-v20 .player-change-v19{font-size:13px;padding:9px 11px}
.rank-btn-v20{padding:13px 17px;font-size:15px;white-space:nowrap;background:rgba(255,255,255,.78)}

.lobby-main-v20{width:min(1560px,calc(100% - 88px));height:calc(100vh - 86px);padding:10px 0 18px}
.lobby-intro-v20{margin:0 0 14px;padding:0 8px;align-items:center}
.lobby-intro-v20 h2{font-size:39px;color:#143a5e;line-height:1.05;margin:0}
.lobby-intro-v20 p{font-size:19px;color:#3f6688;font-weight:750;margin:7px 0 0}
.lobby-v20 .lobby-eyebrow-v19{display:none!important}

.lobby-v20 .mode-grid-v19{
  flex:0 0 495px;
  max-height:none;
  grid-template-columns:.93fr 1.07fr;
  gap:26px;
}
.lobby-v20 .mission-card-v19{padding:28px 31px 26px;border-radius:32px;min-height:0}
.lobby-v20 .mission-card-head-v19{min-height:68px}
.lobby-v20 .mission-type-v19{padding:9px 15px;gap:10px}
.lobby-v20 .mission-type-v19 span{font-size:18px}
.lobby-v20 .mission-type-v19 small{font-size:15px}
.lobby-v20 .mission-icon-v19{width:66px;height:66px;font-size:32px;border-radius:20px}
.lobby-v20 .mission-body-v19{margin-top:15px}
.lobby-v20 .mission-body-v19 h3{font-size:38px;line-height:1.08}
.lobby-v20 .mission-body-v19 p{font-size:18px;line-height:1.45;margin-top:8px;color:#3e6487;max-width:98%}

.lobby-v20 .warm-stats-v19{margin-top:20px;gap:12px}
.lobby-v20 .warm-stats-v19>div{height:82px;border-radius:18px}
.lobby-v20 .warm-stats-v19 b{font-size:26px}
.lobby-v20 .warm-stats-v19 span{font-size:16px;margin-top:3px;color:#5e7c99}

.lobby-v20 .stages-v19{margin-top:18px;grid-template-columns:1fr 28px 1fr 28px 1fr;gap:8px}
.lobby-v20 .stage-v19{height:82px;border-radius:18px;grid-template-columns:38px 1fr;padding:11px 12px}
.lobby-v20 .stage-v19 i{width:34px;height:34px;font-size:14px}
.lobby-v20 .stage-v19 b{font-size:19px}
.lobby-v20 .stage-v19 span{font-size:15px;color:#5e7694}
.lobby-v20 .stages-v19>em{font-size:21px;opacity:.45}

.lobby-v20 .formal-info-v19{margin-top:15px;gap:10px}
.lobby-v20 .formal-info-v19>span{padding:10px 14px;font-size:15px;color:#486989;background:rgba(255,255,255,.76)}
.lobby-v20 .formal-info-v19 b{font-size:15px;color:#6848d5}

.lobby-v20 .mission-action-v19{height:64px;border-radius:19px;padding:0 22px 0 26px;font-size:21px}
.lobby-v20 .mission-action-v19 b{font-size:24px}
.lobby-v20 .mission-card-v19:hover .mission-action-v19{transform:translateY(-2px) scale(1.006)}
.lobby-v20 .mission-card-v19:active .mission-action-v19{transform:translateY(1px) scale(.995)}

.lobby-v20 .lobby-tip-v19{margin:12px auto 0;font-size:16px;color:#3f6385;font-weight:800;line-height:1.4;padding:0 6px;text-align:center}

@media(min-width:1200px) and (max-height:900px){
  .lobby-bar-v20{height:78px;padding-top:6px}
  .lobby-main-v20{height:calc(100vh - 78px);padding:6px 0 10px}
  .lobby-v20 .lobby-title-v19>b{font-size:28px}
  .lobby-v20 .lobby-title-v19>span{width:42px;height:42px}
  .lobby-user-v20{min-width:270px;padding:6px 9px}.lobby-user-v20 .player-avatar-v19{width:44px;height:44px}
  .lobby-user-v20 .player-copy-v19 b{font-size:16px}.lobby-user-v20 .player-copy-v19 small{font-size:11px}
  .rank-btn-v20{font-size:14px;padding:11px 14px}
  .lobby-intro-v20{margin-bottom:8px}.lobby-intro-v20 h2{font-size:34px}.lobby-intro-v20 p{font-size:17px;margin-top:4px}
  .lobby-v20 .mode-grid-v19{flex-basis:455px;gap:22px}
  .lobby-v20 .mission-card-v19{padding:22px 27px 22px}
  .lobby-v20 .mission-card-head-v19{min-height:58px}.lobby-v20 .mission-icon-v19{width:56px;height:56px;font-size:28px}
  .lobby-v20 .mission-type-v19 span{font-size:16px}.lobby-v20 .mission-type-v19 small{font-size:14px}
  .lobby-v20 .mission-body-v19{margin-top:10px}.lobby-v20 .mission-body-v19 h3{font-size:32px}.lobby-v20 .mission-body-v19 p{font-size:17px;line-height:1.4;margin-top:6px}
  .lobby-v20 .warm-stats-v19{margin-top:15px}.lobby-v20 .warm-stats-v19>div{height:70px}.lobby-v20 .warm-stats-v19 b{font-size:23px}.lobby-v20 .warm-stats-v19 span{font-size:15px}
  .lobby-v20 .stages-v19{margin-top:14px}.lobby-v20 .stage-v19{height:70px}.lobby-v20 .stage-v19 b{font-size:17px}.lobby-v20 .stage-v19 span{font-size:14px}
  .lobby-v20 .formal-info-v19{margin-top:11px}.lobby-v20 .formal-info-v19>span,.lobby-v20 .formal-info-v19 b{font-size:14px}
  .lobby-v20 .mission-action-v19{height:58px;font-size:19px}.lobby-v20 .lobby-tip-v19{font-size:14px;margin-top:8px}
}
@media(max-width:1000px){
  .lobby-bar-v20{grid-template-columns:auto 1fr auto;padding:8px 18px 0;height:76px}
  .lobby-tools-v20{gap:7px}.rank-btn-v20{display:none}.lobby-user-v20{min-width:0}
  .lobby-main-v20{width:calc(100% - 34px);height:auto;padding:12px 0 34px}
  .lobby-v20 .mode-grid-v19{grid-template-columns:1fr;flex:0 0 auto;max-height:none}
  .lobby-v20 .mission-card-v19{min-height:430px}
}
@media(max-width:700px){
  .lobby-bar-v20{height:70px;padding:6px 12px 0}.lobby-v20 .lobby-title-v19>b{font-size:19px}.lobby-v20 .lobby-title-v19>span{display:none}
  .lobby-user-v20 .player-copy-v19 small,.lobby-user-v20 .player-change-v19{display:none}.lobby-user-v20 .player-copy-v19 b{font-size:12px;max-width:110px}.lobby-user-v20 .player-avatar-v19{width:36px;height:36px;font-size:15px}
  .lobby-intro-v20 h2{font-size:31px}.lobby-intro-v20 p{font-size:16px}
  .lobby-v20 .mission-card-v19{padding:21px 19px;min-height:420px}.lobby-v20 .mission-body-v19 h3{font-size:30px}.lobby-v20 .mission-body-v19 p{font-size:16px}
  .lobby-v20 .warm-stats-v19>div{height:68px}.lobby-v20 .warm-stats-v19 b{font-size:21px}.lobby-v20 .warm-stats-v19 span{font-size:14px}
  .lobby-v20 .stages-v19{grid-template-columns:1fr;gap:8px}.lobby-v20 .stages-v19>em{display:none}.lobby-v20 .stage-v19{height:64px}
  .lobby-v20 .formal-info-v19>span,.lobby-v20 .formal-info-v19 b{font-size:14px}.lobby-v20 .mission-action-v19{height:58px;font-size:18px}.lobby-v20 .lobby-tip-v19{font-size:14px}
}


/* =========================================================
   V1.21 大厅可读性精修
   仅解决可读性与空间：高对比标题、放大小信息、收紧卡片
   ========================================================= */
.lobby-v21::after{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:250px;
  pointer-events:none;
  z-index:1;
  background:linear-gradient(180deg,rgba(13,44,82,.28),rgba(13,44,82,.10) 56%,transparent 100%);
}
.lobby-v21 .lobby-bar-v20,.lobby-v21 .lobby-main-v20{position:relative;z-index:3}

/* 顶部文字直接悬浮在背景上，但必须清晰 */
.lobby-v21 .lobby-back-v19{
  color:#f4f9ff!important;
  text-shadow:0 2px 12px rgba(16,39,71,.40);
  font-size:18px!important;
}
.lobby-v21 .lobby-back-v19:hover{color:#fff!important}
.lobby-v21 .lobby-title-v19>b{
  color:#f8fbff!important;
  text-shadow:0 2px 14px rgba(18,43,78,.34)!important;
}
.lobby-v21 .lobby-title-v19>span{
  background:rgba(255,255,255,.86)!important;
  border-color:rgba(255,255,255,.95)!important;
}

/* 选择模式区域高对比，不再发灰 */
.lobby-v21 .lobby-intro-v20{
  margin-bottom:12px;
  padding:0 8px;
}
.lobby-v21 .lobby-intro-v20 h2{
  color:#fff!important;
  font-size:40px!important;
  font-weight:950!important;
  text-shadow:0 3px 16px rgba(13,38,73,.42);
}
.lobby-v21 .lobby-intro-v20 p{
  color:rgba(248,252,255,.96)!important;
  font-size:20px!important;
  font-weight:850!important;
  text-shadow:0 2px 12px rgba(13,38,73,.38);
}

/* 两张卡略收紧，减少下半部空白 */
.lobby-v21 .mode-grid-v19{
  flex-basis:470px!important;
  gap:24px!important;
}
.lobby-v21 .mission-card-v19{
  padding:25px 30px 22px!important;
}
.lobby-v21 .mission-card-head-v19{min-height:60px!important}
.lobby-v21 .mission-body-v19{margin-top:11px!important}
.lobby-v21 .mission-body-v19 h3{font-size:37px!important}
.lobby-v21 .mission-body-v19 p{
  font-size:19px!important;
  line-height:1.48!important;
  color:#365d80!important;
  font-weight:720!important;
}

/* 热身信息块：大字更大，小字更深 */
.lobby-v21 .warm-stats-v19{
  margin-top:16px!important;
  gap:12px!important;
}
.lobby-v21 .warm-stats-v19>div{
  height:76px!important;
  background:rgba(255,255,255,.82)!important;
}
.lobby-v21 .warm-stats-v19 b{
  font-size:29px!important;
  color:#214e78!important;
}
.lobby-v21 .warm-stats-v19 span{
  font-size:17px!important;
  color:#4e6f90!important;
  font-weight:900!important;
}

/* 正式赛三阶段：时间和名称都要看得清 */
.lobby-v21 .stages-v19{margin-top:15px!important}
.lobby-v21 .stage-v19{
  height:78px!important;
  background:rgba(255,255,255,.82)!important;
}
.lobby-v21 .stage-v19 i{font-size:15px!important}
.lobby-v21 .stage-v19 b{
  font-size:20px!important;
  color:#263f69!important;
}
.lobby-v21 .stage-v19 span{
  font-size:16px!important;
  color:#516b8a!important;
  font-weight:900!important;
}

/* 6分钟 / 难度 / 实时排名：整体放大，文本简化 */
.lobby-v21 .formal-info-v19{
  margin-top:13px!important;
  gap:11px!important;
}
.lobby-v21 .formal-info-v19>span{
  padding:11px 15px!important;
  font-size:17px!important;
  color:#365b7d!important;
  background:rgba(255,255,255,.86)!important;
  font-weight:900!important;
}
.lobby-v21 .formal-info-v19 b{
  font-size:17px!important;
  color:#6448d1!important;
}

/* 主按钮上提一些 */
.lobby-v21 .mission-action-v19{
  height:62px!important;
  font-size:21px!important;
}

/* 底部提示做成真正可读的小胶囊 */
.lobby-v21 .lobby-tip-v19{
  margin:10px auto 0!important;
  padding:10px 18px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(255,255,255,.96)!important;
  box-shadow:0 10px 24px rgba(59,80,120,.08)!important;
  backdrop-filter:blur(12px);
  color:#2f5578!important;
  font-size:17px!important;
  font-weight:900!important;
  text-shadow:none!important;
  line-height:1.25!important;
}

/* 右上玩家与排行：清晰但不抢主视觉 */
.lobby-v21 .rank-btn-v20{
  font-size:16px!important;
  color:#355879!important;
  background:rgba(255,255,255,.86)!important;
}
.lobby-v21 .lobby-user-v20 .player-copy-v19 small{font-size:12px!important;color:#5f7a97!important}
.lobby-v21 .lobby-user-v20 .player-copy-v19 b{font-size:18px!important;color:#123b61!important}

@media(min-width:1200px) and (max-height:900px){
  .lobby-v21 .lobby-intro-v20 h2{font-size:35px!important}
  .lobby-v21 .lobby-intro-v20 p{font-size:18px!important}
  .lobby-v21 .mode-grid-v19{flex-basis:438px!important}
  .lobby-v21 .mission-card-v19{padding:20px 26px 19px!important}
  .lobby-v21 .mission-body-v19{margin-top:8px!important}
  .lobby-v21 .mission-body-v19 h3{font-size:31px!important}
  .lobby-v21 .mission-body-v19 p{font-size:17px!important;line-height:1.38!important}
  .lobby-v21 .warm-stats-v19{margin-top:12px!important}
  .lobby-v21 .warm-stats-v19>div{height:66px!important}
  .lobby-v21 .warm-stats-v19 b{font-size:24px!important}
  .lobby-v21 .warm-stats-v19 span{font-size:15px!important}
  .lobby-v21 .stages-v19{margin-top:11px!important}
  .lobby-v21 .stage-v19{height:66px!important}
  .lobby-v21 .stage-v19 b{font-size:18px!important}
  .lobby-v21 .stage-v19 span{font-size:14px!important}
  .lobby-v21 .formal-info-v19{margin-top:9px!important}
  .lobby-v21 .formal-info-v19>span,.lobby-v21 .formal-info-v19 b{font-size:15px!important}
  .lobby-v21 .formal-info-v19>span{padding:8px 12px!important}
  .lobby-v21 .mission-action-v19{height:56px!important;font-size:19px!important}
  .lobby-v21 .lobby-tip-v19{font-size:15px!important;padding:8px 15px!important;margin-top:7px!important}
}

@media(max-width:700px){
  .lobby-v21 .lobby-intro-v20 h2{font-size:31px!important}
  .lobby-v21 .lobby-intro-v20 p{font-size:17px!important}
  .lobby-v21 .formal-info-v19>span,.lobby-v21 .formal-info-v19 b{font-size:15px!important}
  .lobby-v21 .lobby-tip-v19{border-radius:16px!important;font-size:15px!important}
}


/* =========================================================
   V1.23 大厅纵向层级优化
   只调整位置关系：标题 / 工具组 / 模式卡形成清晰三层
   ========================================================= */
/* “选择挑战模式”与主卡之间增加呼吸感 */
.lobby-v23 .lobby-intro-v20{
  margin-bottom:34px!important;
}

/* 右上工具组下移到顶部标题与模式卡之间 */
.lobby-v23 .lobby-tools-v20{
  transform:translateY(50px);
  position:relative;
  z-index:8;
}

/* 模式区保持原尺寸，只通过上方留白整体下移 */
.lobby-v23 .mode-grid-v19{
  position:relative;
  z-index:4;
}

/* 底部提示跟随模式卡，并维持轻量间距 */
.lobby-v23 .lobby-tip-v19{
  margin-top:16px!important;
}

@media(min-width:1200px) and (max-height:900px){
  .lobby-v23 .lobby-intro-v20{margin-bottom:27px!important}
  .lobby-v23 .lobby-tools-v20{transform:translateY(43px)}
  .lobby-v23 .lobby-tip-v19{margin-top:11px!important}
}

@media(max-width:1000px){
  /* 窄屏恢复正常文档流，避免工具组覆盖内容 */
  .lobby-v23 .lobby-tools-v20{transform:none}
  .lobby-v23 .lobby-intro-v20{margin-bottom:18px!important}
}


/* =========================
   V1.24 班级实时榜弹窗优化
   ========================= */
.rank-modal{
  width:min(1120px,94vw)!important;
  padding:34px 38px 30px!important;
  border-radius:32px!important;
  overflow:hidden!important;
}
.rank-modal .modal-close{
  width:46px;height:46px;right:20px;top:18px;border-radius:14px;
  font-size:28px;line-height:1;display:grid;place-items:center;cursor:pointer;
  transition:.2s;background:rgba(87,105,150,.08);border:1px solid rgba(87,105,150,.10)
}
.rank-modal .modal-close:hover{transform:scale(1.05);background:rgba(124,58,237,.12);color:#6937d6}
.rank-modal-heading{padding-right:64px;margin-bottom:12px}
.rank-modal-heading h2{margin:0!important;color:#173a60!important;font-size:38px!important;line-height:1.15;letter-spacing:-.5px}
.rank-modal-heading p{margin:12px 0 0!important;color:#607b9a!important;font-size:21px!important;font-weight:850;line-height:1.3}
.rank-modal-status{
  margin:16px 0 18px!important;padding:12px 18px;border-radius:15px;
  text-align:center;font-size:16px!important;font-weight:800!important;line-height:1.35;
  color:#546f91!important;background:rgba(255,255,255,.58);border:1px solid rgba(98,119,158,.10)
}
.rank-modal-table-wrap{width:100%;overflow-x:auto;border-radius:22px}
.rank-modal .rank-table{
  width:100%;table-layout:fixed;border-collapse:separate!important;border-spacing:0!important;
  background:rgba(255,255,255,.72)!important;border:1px solid rgba(83,113,158,.11)!important;
  border-radius:22px!important;overflow:hidden!important;box-shadow:0 12px 30px rgba(69,89,126,.07)
}
.rank-modal .rank-table .col-rank{width:11%}.rank-modal .rank-table .col-name{width:21%}.rank-modal .rank-table .col-score{width:20%}.rank-modal .rank-table .col-accuracy{width:16%}.rank-modal .rank-table .col-targets{width:16%}.rank-modal .rank-table .col-combo{width:16%}
.rank-modal .rank-table th,
.rank-modal .rank-table td{
  text-align:center!important;vertical-align:middle!important;padding:18px 12px!important;
  line-height:1.25;border-bottom:1px solid rgba(84,112,152,.09)!important
}
.rank-modal .rank-table th{
  color:#607895!important;font-size:15px!important;font-weight:900!important;
  background:rgba(244,248,255,.82);letter-spacing:.2px
}
.rank-modal .rank-table td{color:#274463!important;font-size:18px!important;font-weight:700}
.rank-modal .rank-table tbody tr{height:72px;transition:.18s}
.rank-modal .rank-table tbody tr:hover{background:rgba(92,112,226,.055)}
.rank-modal .rank-table tbody tr:first-child{
  background:linear-gradient(90deg,rgba(255,246,207,.68),rgba(255,255,255,.76) 42%,rgba(237,235,255,.68))!important
}
.rank-modal .rank-table tbody tr:first-child td{font-weight:850}
.rank-modal .rank-num{
  display:inline-grid;place-items:center;width:38px;height:38px;border-radius:13px;
  background:#eef3fb;color:#476483;font-size:17px;font-weight:950
}
.rank-modal .rank-num.rank-1{background:linear-gradient(145deg,#ffd86b,#f2ad34);color:#684700;box-shadow:0 7px 18px rgba(225,167,45,.22)}
.rank-modal .rank-num.rank-2{background:linear-gradient(145deg,#edf2f7,#cbd5e1);color:#475569}
.rank-modal .rank-num.rank-3{background:linear-gradient(145deg,#f6d2b2,#d99b68);color:#74421e}
.rank-modal .rank-name{font-weight:900!important;color:#1d3f63!important}
.rank-modal .rank-score b{font-size:23px!important;color:#5c45d9!important;font-weight:950!important;letter-spacing:.3px}
.rank-modal .live-mini{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;font-size:10px;line-height:1;background:#dcfce7;color:#15803d;vertical-align:middle}
.rank-modal .rank-me{box-shadow:inset 4px 0 0 #6b61e9;background:linear-gradient(90deg,rgba(59,130,246,.07),rgba(139,92,246,.08))!important}
.rank-rule-note{
  margin:18px 0 0!important;text-align:center;font-size:15px!important;font-weight:750!important;
  color:#657d9a!important;line-height:1.45
}
.rank-modal .rank-empty{font-size:17px!important;text-align:center;padding:32px!important}
@media(max-width:900px){
  .rank-modal{padding:28px 22px 24px!important}.rank-modal-heading h2{font-size:31px!important}.rank-modal-heading p{font-size:18px!important}.rank-modal-status{font-size:14px!important}.rank-modal .rank-table th{font-size:13px!important}.rank-modal .rank-table td{font-size:15px!important;padding:15px 8px!important}.rank-modal .rank-score b{font-size:20px!important}
}

/* =========================
   V1.25 Game UI Readability + HUD Redesign
   仅调整热身赛 / 正式赛游戏界面，不改比赛逻辑
   ========================= */
.game-screen{overflow:hidden}

/* 顶部 HUD：中文、放大、统一居中 */
.game-screen .hud{
  height:104px;
  margin:14px 20px 0;
  padding:10px 14px;
  border-radius:28px;
  grid-template-columns:1.55fr .9fr .78fr .82fr .98fr .82fr 1fr auto;
  gap:8px;
}
.game-screen .hud>div{
  min-width:0;
  padding:8px 10px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.game-screen .hud small{
  font-size:14px;
  line-height:1.15;
  letter-spacing:.2px;
  font-weight:800;
  color:#7086a1;
}
.game-screen .hud strong{
  margin-top:5px;
  font-size:28px;
  line-height:1.05;
  font-weight:950;
  color:#173757;
}
.game-screen .hud-brand{
  flex-direction:row!important;
  gap:12px!important;
  justify-content:center!important;
}
.game-screen .hud-brand>span{
  flex:0 0 auto;
  width:48px;
  height:48px;
  border-radius:15px;
  font-size:24px;
}
.game-screen .hud-brand>div{min-width:0;text-align:left}
.game-screen .hud-brand small{font-size:13px}
.game-screen .hud-brand strong{font-size:25px;max-width:240px}
.game-screen #score,.game-screen #combo,.game-screen #time{font-size:31px}
.game-screen #liveAccuracy{font-size:30px}
.game-screen .combo-hud em{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:48px;
  min-height:24px;
  margin:5px 0 0;
  padding:4px 8px;
  font-size:11px;
  font-weight:900;
}
.game-screen .hud-quit{
  min-width:118px;
  padding:15px 18px;
  border-radius:16px;
  font-size:18px;
  font-weight:850;
}

/* 热身 / 正式赛用相同品牌语言，但用轻微色彩区分 */
.warmup-game .light-hud{background:linear-gradient(135deg,rgba(255,255,255,.91),rgba(235,250,255,.86))}
.formal-game .light-hud{background:linear-gradient(135deg,rgba(255,255,255,.91),rgba(245,239,255,.86))}
.warmup-game .bright-arena{background:linear-gradient(145deg,rgba(250,254,255,.98),rgba(224,247,255,.94) 58%,rgba(236,245,255,.94))}
.formal-game .bright-arena{background:linear-gradient(145deg,rgba(252,254,255,.98),rgba(231,244,255,.94) 48%,rgba(242,232,255,.94))}

/* 游戏有效区域扩大，移除无实际价值英文装饰 */
.game-screen .training-arena{
  top:132px;
  bottom:118px;
  left:20px;
  right:20px;
  border-radius:30px;
}
.game-screen .arena-label{display:none!important}
.game-screen .stage-ribbon{
  z-index:12;
  top:16px;
  padding:10px 18px;
  border-radius:999px;
  font-size:16px;
  line-height:1;
  font-weight:950;
  color:#3f6084;
  box-shadow:0 9px 24px rgba(72,95,139,.10);
}
.formal-game .stage-ribbon{color:#6547c8;background:rgba(255,255,255,.88)}
.warmup-game .stage-ribbon{color:#16729a;background:rgba(255,255,255,.88)}

/* 目标更醒目 */
.game-screen .target{border-radius:20px;box-shadow:0 16px 36px rgba(72,82,190,.23)}
.game-screen .target-word{font-size:31px}
.game-screen .target-zh{font-size:15px;margin-top:6px}
.game-screen .target-static{min-width:172px;padding:22px 30px;border-radius:24px}
.game-screen .target-warmup .target-word{font-size:68px;line-height:1}
.game-screen .stage-2 .target-word,.game-screen .stage-3 .target-word{font-size:29px}

/* 热身赛虚拟键盘：这是教学核心，因此明显放大 */
.game-screen .keyboard-guide{
  bottom:18px;
  width:min(960px,78vw);
  padding:16px 22px 18px;
  border-radius:24px;
}
.game-screen .guide-title{
  margin-bottom:10px;
  font-size:12px;
  color:#7890a9;
}
.game-screen .guide-title b{
  font-size:17px;
  color:#244967;
  font-weight:950;
}
.game-screen .guide-title span{font-size:12px;color:#7a8fa6;font-weight:750}
.game-screen .keyboard-row{gap:8px;margin-top:8px}
.game-screen .keyboard-row.row-2{padding-left:28px}
.game-screen .keyboard-row.row-3{padding-left:58px;padding-right:50px}
.game-screen .keyboard-row i{
  width:56px;
  height:42px;
  border-radius:10px;
  font-size:20px;
  font-weight:950;
  box-shadow:0 4px 0 #c8d5e3;
}
.game-screen .keyboard-row i.key-active{
  transform:translateY(-2px) scale(1.06);
  box-shadow:0 0 0 6px rgba(59,130,246,.15),0 5px 0 #4d55c2,0 10px 24px rgba(74,85,205,.24);
}

/* 底部从“状态框”改成清晰操作提示，并缩小整体高度 */
.game-screen .typing{
  left:20px;
  right:20px;
  bottom:12px;
  height:94px;
  padding:10px 20px 9px;
  border-radius:25px;
}
.game-screen .typing-wrap{
  width:min(980px,78vw);
  min-height:56px;
  gap:14px;
  padding:5px 17px;
  border-radius:17px;
}
.game-screen .typing-wrap>span{font-size:23px}
.game-screen .typing input{
  font-size:25px;
  font-weight:750;
  padding:7px 8px;
}
.game-screen .typing input::placeholder{color:#7a8797;opacity:.92}
.game-screen .typing>small{
  margin-top:6px;
  font-size:13px;
  line-height:1.2;
  font-weight:750;
  color:#6d86a2;
}
.warmup-game .typing-wrap{border-color:#72c8ec;box-shadow:0 0 0 5px rgba(34,183,221,.07)}
.formal-game .typing-wrap{border-color:#a8a0f0;box-shadow:0 0 0 5px rgba(124,92,237,.07)}

/* 阶段提示也保持中文且更易读 */
.game-screen .countdown-overlay small,.game-screen .stage-overlay small{font-size:15px;font-weight:850;letter-spacing:1px}
.game-screen .stage-overlay b{font-size:48px}
.game-screen .stage-overlay span{font-size:18px;font-weight:750}

@media(max-height:800px){
  .game-screen .hud{height:90px;margin-top:9px;padding:7px 11px}
  .game-screen .hud small{font-size:12px}.game-screen .hud strong{font-size:23px}.game-screen #score,.game-screen #combo,.game-screen #time,.game-screen #liveAccuracy{font-size:25px}
  .game-screen .hud-brand>span{width:42px;height:42px}.game-screen .hud-brand strong{font-size:21px}.game-screen .hud-quit{font-size:16px;padding:12px 14px}
  .game-screen .training-arena{top:108px;bottom:102px}
  .game-screen .typing{height:82px;bottom:9px}.game-screen .typing-wrap{min-height:49px}.game-screen .typing input{font-size:22px}.game-screen .typing>small{font-size:11px}
  .game-screen .keyboard-guide{width:min(900px,76vw);padding:11px 17px 13px}.game-screen .guide-title{margin-bottom:6px}.game-screen .keyboard-row{gap:7px;margin-top:6px}.game-screen .keyboard-row i{width:51px;height:36px;font-size:17px}
  .game-screen .target-warmup .target-word{font-size:60px}
}

@media(max-width:1050px){
  .game-screen{overflow:auto}
  .game-screen .hud{height:auto;grid-template-columns:repeat(4,1fr);margin:8px 10px 0}
  .game-screen .hud-brand{grid-column:span 2}.game-screen .hud-quit{min-height:54px}
  .game-screen .training-arena{top:222px;left:10px;right:10px;bottom:116px}
  .game-screen .keyboard-guide{width:90vw}
}
@media(max-width:700px){
  .game-screen .hud{grid-template-columns:repeat(2,1fr)}
  .game-screen .hud-brand{grid-column:1/-1}.game-screen .hud-quit{grid-column:1/-1}
  .game-screen .training-arena{top:420px;bottom:112px}
  .game-screen .keyboard-guide{width:94vw;padding:10px 8px}
  .game-screen .keyboard-row{gap:4px}.game-screen .keyboard-row i{width:30px;height:34px;font-size:13px}
  .game-screen .guide-title span{display:none}
}


/* =========================
   V1.28 连击阶梯奖励反馈
   普通命中：目标附近蓝色基础分浮字
   连击奖励：中央金橙 BONUS 提示 + HUD 连击脉冲
   ========================= */
.game-screen #comboFlash{
  top:26%;
  min-width:280px;
  padding:0;
  color:#8a4b00;
  text-shadow:none;
}
.game-screen #comboFlash .combo-bonus-title{
  display:inline-block;
  padding:13px 24px 8px;
  border-radius:22px 22px 10px 10px;
  background:linear-gradient(135deg,rgba(255,248,214,.96),rgba(255,225,151,.96));
  border:1px solid rgba(245,158,11,.30);
  box-shadow:0 14px 34px rgba(245,158,11,.20),0 0 0 7px rgba(251,191,36,.08);
  font-size:31px;
  line-height:1;
  font-weight:950;
  color:#a84b06;
  letter-spacing:.3px;
}
.game-screen #comboFlash .combo-bonus-score{
  width:max-content;
  min-width:148px;
  margin:-2px auto 0;
  padding:8px 18px 9px;
  border-radius:0 0 18px 18px;
  background:linear-gradient(135deg,#ffb52f,#ff7a18);
  box-shadow:0 11px 28px rgba(249,115,22,.26);
  color:#fff;
  font-size:21px;
  line-height:1;
  font-weight:950;
  letter-spacing:1.5px;
}
.game-screen #comboFlash.combo-bonus-show{animation:comboBonusShow 1.05s ease-out both}
@keyframes comboBonusShow{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}
  18%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}
  42%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  78%{opacity:1;transform:translate(-50%,-58%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-72%) scale(.94)}
}
.game-screen .combo-hud.combo-hud-pulse strong{
  animation:comboHudPulse .76s ease-out;
  color:#f97316!important;
  text-shadow:0 0 18px rgba(249,115,22,.30);
}
.game-screen .combo-hud.combo-hud-pulse{
  animation:comboHudBoxPulse .76s ease-out;
}
@keyframes comboHudPulse{
  0%{transform:scale(1)}
  28%{transform:scale(1.30)}
  58%{transform:scale(.96)}
  100%{transform:scale(1)}
}
@keyframes comboHudBoxPulse{
  0%,100%{background:transparent}
  28%{background:rgba(255,237,213,.72);border-radius:16px}
}
@media(max-height:800px){
  .game-screen #comboFlash .combo-bonus-title{font-size:25px;padding:10px 19px 7px}
  .game-screen #comboFlash .combo-bonus-score{font-size:18px;padding:7px 15px 8px}
}

/* =========================================================
   V1.29 教师后台控制台重构版
   ========================================================= */
.admin-console-body{
  min-height:100vh;
  background:
    radial-gradient(circle at 8% 8%,rgba(56,189,248,.18),transparent 28%),
    radial-gradient(circle at 92% 6%,rgba(168,85,247,.16),transparent 30%),
    linear-gradient(135deg,#e7f2ff 0%,#f8fbff 48%,#f1ebff 100%);
  color:#183652;
}
.admin-console-wrap{max-width:1500px;margin:0 auto;padding:28px 32px 38px}
.admin-console-header{
  min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:6px 2px 18px;border-bottom:1px solid rgba(88,111,150,.12)
}
.admin-title-block h1{margin:0;color:#163754;font-size:40px;line-height:1.05;letter-spacing:.2px}
.admin-title-block p{margin:9px 0 0;color:#6f86a1;font-size:16px;font-weight:650}
.admin-header-actions{display:flex;align-items:center;gap:12px}
.admin-screen-btn,.admin-logout-btn,.admin-primary-btn,.admin-secondary-btn,.admin-danger-btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:15px;
  text-decoration:none;font-weight:850;font-size:16px;border:1px solid transparent;transition:.18s ease;cursor:pointer
}
.admin-screen-btn,.admin-primary-btn{color:#fff;background:linear-gradient(135deg,#4d7cff,#7c45ef);box-shadow:0 10px 24px rgba(92,83,218,.18)}
.admin-screen-btn:hover,.admin-primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(92,83,218,.24)}
.admin-logout-btn,.admin-secondary-btn{color:#48617e;background:rgba(255,255,255,.74);border-color:rgba(84,108,148,.13);box-shadow:0 8px 20px rgba(73,92,124,.06)}
.admin-logout-btn:hover,.admin-secondary-btn:hover{background:#fff;color:#633bd0}
.admin-danger-btn{color:#9c3347;background:rgba(255,240,244,.9);border-color:rgba(211,89,116,.16)}
.admin-danger-btn:hover{background:#fff0f4;transform:translateY(-1px)}

.admin-console-main{padding-top:22px}
.admin-control-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:20px;align-items:stretch}
.admin-console-card{
  background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.92);border-radius:28px;
  box-shadow:0 20px 52px rgba(67,89,126,.10);backdrop-filter:blur(20px) saturate(128%);padding:26px
}
.console-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.section-kicker{display:block;color:#6a75ca;font-size:11px;font-weight:900;letter-spacing:1.7px;margin-bottom:5px}
.console-card-head h2{margin:0;color:#1c3d5d;font-size:24px;line-height:1.2}
.match-status{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;font-size:14px;font-weight:850}
.match-status i{width:8px;height:8px;border-radius:50%}
.match-status.is-live{color:#14795d;background:#e6fbf3}.match-status.is-live i{background:#2bcf9c;box-shadow:0 0 0 4px rgba(43,207,156,.12)}
.match-status.is-ended{color:#75879b;background:#edf3f8}.match-status.is-ended i{background:#9eabb8}

.current-match-summary{border-radius:22px;padding:20px;background:linear-gradient(135deg,rgba(235,247,255,.94),rgba(245,240,255,.91));border:1px solid rgba(103,130,180,.09)}
.match-name-line{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}
.match-name-line strong{font-size:23px;color:#173c5e}.match-name-line span{font-size:14px;color:#7389a2;font-weight:750}
.match-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.match-facts>div{padding:14px 13px;border-radius:16px;background:rgba(255,255,255,.72);text-align:center;border:1px solid rgba(95,122,166,.08)}
.match-facts small{display:block;color:#7b8fa6;font-size:13px;font-weight:800;margin-bottom:5px}
.match-facts b{display:block;color:#284967;font-size:18px}

.match-control-row{display:grid;grid-template-columns:1fr auto;gap:12px;margin-top:16px;align-items:end}
.difficulty-control{display:grid;grid-template-columns:minmax(200px,1fr) auto;gap:10px;align-items:end}
.difficulty-control label{display:flex;flex-direction:column;gap:7px;color:#67809b;font-size:13px;font-weight:850}
.difficulty-control select,.admin-query-grid select,.create-event-form input{
  width:100%;height:48px;border:1px solid rgba(78,108,154,.13);border-radius:14px;background:rgba(255,255,255,.88);
  color:#21425f;padding:0 14px;font-size:16px;font-weight:720;outline:none
}
.difficulty-control select:focus,.admin-query-grid select:focus,.create-event-form input:focus{border-color:#7977e9;box-shadow:0 0 0 4px rgba(99,102,241,.08)}
.control-note{margin:12px 2px 0;color:#778da6;font-size:13px;line-height:1.6}

.event-manager{margin-top:18px;border-top:1px solid rgba(89,113,151,.10);padding-top:13px}
.event-manager summary{list-style:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;color:#31536f;font-size:15px;font-weight:850;padding:6px 2px}
.event-manager summary::-webkit-details-marker{display:none}.event-manager summary span{color:#7d6be1;font-size:13px}
.event-manager[open] summary span{font-size:0}.event-manager[open] summary span::after{content:'收起';font-size:13px}
.event-manager-body{padding-top:12px}
.create-event-form{display:grid;grid-template-columns:1.25fr .8fr auto;gap:10px}
.compact-event-list{display:grid;gap:8px;margin-top:12px;max-height:190px;overflow:auto;padding-right:2px}
.compact-event-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border-radius:14px;background:rgba(244,249,255,.78);border:1px solid rgba(90,116,157,.08)}
.compact-event-row.is-selected{background:linear-gradient(135deg,rgba(230,242,255,.96),rgba(241,235,255,.92));border-color:rgba(111,107,226,.14)}
.compact-event-row b{display:block;color:#2a4b69;font-size:15px}.compact-event-row small{display:block;color:#7b8fa5;font-size:12px;margin-top:3px}
.compact-event-row a{color:#6746dc;text-decoration:none;font-weight:850;font-size:14px}.admin-empty-inline,.admin-empty-state{text-align:center;color:#8497ad;padding:18px}

.admin-query-grid{display:grid;grid-template-columns:1.55fr 1fr 1fr;gap:12px}
.admin-query-grid label{display:flex;flex-direction:column;gap:7px;color:#68819c;font-size:13px;font-weight:850}
.query-submit{grid-column:1/-1;margin-top:2px}
.query-summary{margin-top:18px;padding:18px;border-radius:19px;background:linear-gradient(135deg,rgba(239,247,255,.94),rgba(247,240,255,.92));border:1px solid rgba(97,121,166,.08)}
.query-summary small{display:block;color:#7d91a7;font-size:12px;font-weight:800;margin-bottom:4px}.query-summary strong{display:block;color:#234662;font-size:20px}
.query-summary-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.query-summary-facts span{padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.78);color:#526d89;font-size:13px;font-weight:800}
.query-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.admin-link-btn{min-height:44px;font-size:15px}

.data-console-card{margin-top:20px;padding:0;overflow:hidden}
.data-console-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px 16px;border-bottom:1px solid rgba(83,109,149,.09)}
.data-tabs{display:flex;gap:8px;padding:5px;background:rgba(233,241,252,.82);border-radius:16px}
.data-tab{border:0;background:transparent;color:#68809a;border-radius:12px;padding:11px 22px;font-size:16px;font-weight:900;cursor:pointer;transition:.18s}
.data-tab.active{color:#fff;background:linear-gradient(135deg,#4d7cff,#7c45ef);box-shadow:0 8px 18px rgba(91,80,215,.18)}
.data-filter-tag{padding:9px 13px;border-radius:999px;background:#eff5ff;color:#607a98;font-size:13px;font-weight:800;white-space:nowrap}
.data-panel{display:none}.data-panel.active{display:block}.recent-meta{padding:15px 24px 0;color:#7a8fa6;font-size:13px;font-weight:750}

.admin-data-table{border:0;border-radius:0;background:transparent;overflow:auto}
.admin-data-table table{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0}
.admin-data-table th,.admin-data-table td{padding:15px 12px!important;text-align:center!important;vertical-align:middle!important;border-bottom:1px solid rgba(80,108,149,.08)!important;color:#304c68!important;font-size:15px!important;white-space:nowrap}
.admin-data-table th{position:sticky;top:0;z-index:1;background:#f1f6fd!important;color:#657f9b!important;font-size:14px!important;font-weight:900!important}
.admin-data-table tbody tr:hover td{background:rgba(239,245,255,.58)!important}
.admin-data-table .score-col{font-weight:950;color:#5944dc!important}.admin-data-table td.score-col strong{font-size:19px;color:#5138d5}
.admin-data-table .name-cell{font-weight:850;color:#294965!important}.rank-cell{font-weight:900}
.rank-medal{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#557cff,#7d4bea);color:#fff;box-shadow:0 7px 15px rgba(82,78,201,.18)}
.podium-1 td{background:linear-gradient(90deg,rgba(255,247,217,.55),rgba(255,255,255,0))}.podium-1 .rank-medal{background:linear-gradient(135deg,#f7c94b,#f59e0b)}
.podium-2 .rank-medal{background:linear-gradient(135deg,#b9c6d5,#8193a9)}.podium-3 .rank-medal{background:linear-gradient(135deg,#d59a6c,#a96b45)}
.admin-data-table .empty-cell{padding:38px!important;font-size:16px!important;color:#8093aa!important;text-align:center!important}

@media(max-width:1100px){
  .admin-control-grid{grid-template-columns:1fr}.admin-console-wrap{padding:22px}.admin-console-header{align-items:flex-start}.admin-query-grid{grid-template-columns:1.4fr 1fr 1fr}.match-facts{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .admin-console-wrap{padding:16px}.admin-console-header{flex-direction:column}.admin-header-actions{width:100%}.admin-screen-btn,.admin-logout-btn{flex:1}.admin-title-block h1{font-size:34px}
  .admin-console-card{padding:19px;border-radius:22px}.match-name-line{align-items:flex-start;flex-direction:column}.match-facts{grid-template-columns:1fr}.match-control-row,.difficulty-control,.create-event-form,.admin-query-grid{grid-template-columns:1fr}.query-submit{grid-column:auto}
  .data-console-top{align-items:flex-start;flex-direction:column}.data-tabs{width:100%}.data-tab{flex:1}.data-filter-tag{white-space:normal}.query-actions>a{flex:1}
}


/* =========================
   V1.31 参赛身份确认弹窗精修
   面向初一学生：字号优先、字段清楚、减少英文干扰
   ========================= */
.identity-modal{
  width:min(760px,94vw)!important;
  padding:34px 38px 36px!important;
  border-radius:32px!important;
  max-height:92vh!important;
}
.identity-modal .modal-close{
  width:48px!important;height:48px!important;right:18px!important;top:16px!important;
  border-radius:15px!important;font-size:30px!important;line-height:1!important;
  display:grid!important;place-items:center!important;cursor:pointer!important;
  background:rgba(81,104,146,.09)!important;color:#536b8a!important;
  border:1px solid rgba(81,104,146,.10)!important;transition:.18s!important;
}
.identity-modal .modal-close:hover{
  transform:scale(1.06);background:rgba(124,58,237,.13)!important;color:#6a35d3!important;
}
.identity-modal h2{
  margin:0 58px 10px 0!important;color:#173a60!important;
  font-size:42px!important;line-height:1.16!important;letter-spacing:-.8px!important;
}
.identity-modal>p{
  margin:0 54px 24px 0!important;color:#567493!important;
  font-size:19px!important;line-height:1.65!important;font-weight:650!important;
}
.identity-modal .identity-form{
  gap:18px!important;margin-top:0!important;
}
.identity-modal .identity-form label{
  gap:9px!important;color:#466887!important;font-size:17px!important;
  line-height:1.25!important;font-weight:900!important;
}
.identity-modal .form-row{gap:16px!important}
.identity-modal .identity-form input,
.identity-modal .identity-form select{
  min-height:58px!important;border-radius:15px!important;padding:13px 17px!important;
  font-size:19px!important;font-weight:750!important;line-height:1.2!important;
  background:rgba(255,255,255,.88)!important;color:#173a5c!important;
  border:1px solid rgba(75,108,155,.17)!important;
}
.identity-modal .identity-form input::placeholder{color:#8ca0b6!important;font-weight:600!important}
.identity-modal .identity-form select:disabled{color:#8da0b3!important;background:rgba(244,248,253,.82)!important}
.identity-modal .modal-main-btn{
  width:100%!important;min-height:70px!important;margin-top:24px!important;
  border-radius:18px!important;font-size:21px!important;letter-spacing:.2px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-shadow:0 15px 34px rgba(83,72,220,.22)!important;
}
.identity-modal .modal-main-btn span{font-size:21px!important;line-height:1.2!important}

@media(max-width:700px){
  .identity-modal{padding:28px 20px 26px!important;border-radius:26px!important}
  .identity-modal h2{font-size:34px!important;margin-right:50px!important}
  .identity-modal>p{font-size:17px!important;margin-right:0!important;margin-bottom:20px!important}
  .identity-modal .identity-form label{font-size:16px!important}
  .identity-modal .identity-form input,.identity-modal .identity-form select{font-size:18px!important;min-height:56px!important}
  .identity-modal .modal-main-btn,.identity-modal .modal-main-btn span{font-size:19px!important}
  .identity-modal .modal-close{width:44px!important;height:44px!important;font-size:28px!important;right:14px!important;top:14px!important}
}


/* =========================
   V1.34 延续 V1.33 正式赛阶段结构：字母显示统一
   ========================= */
.game-screen .stage-2 .target-word{
  font-size:42px!important;
  letter-spacing:.08em;
  font-weight:950;
}
.lobby-v21 .stage-v19 b{white-space:nowrap}
@media(max-width:1200px){
  .game-screen .stage-2 .target-word{font-size:38px!important}
  .lobby-v21 .stage-v19 b{font-size:17px!important}
}


/* =========================
   V1.35 中文多目标自由挑战
   ========================= */
.game-screen .stage-2{
  min-width:116px;
  padding:13px 20px;
}
.game-screen .stage-2 .target-word{
  font-size:42px!important;
  line-height:1.12;
}
@media(max-width:1200px){
  .game-screen .stage-2{min-width:104px;padding:11px 16px}
  .game-screen .stage-2 .target-word{font-size:36px!important}
}

/* =========================
   V1.37 得分视觉反馈修复与强化
   修复 V1.36 样式块未被浏览器解析的问题
   ========================= */
.formal-game .target-falling{will-change:top,transform}

/* 得分单元：用轻暖色背景与其他 HUD 数据拉开层级。 */
.game-screen .score-hud{
  position:relative;
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,247,237,.92),rgba(255,237,213,.66));
  border:1px solid rgba(249,115,22,.18);
  box-shadow:0 8px 22px rgba(249,115,22,.08);
}
.game-screen .score-hud small{
  color:#b45309!important;
  font-weight:900!important;
}
.game-screen .score-hud #score{
  font-size:46px!important;
  line-height:.96!important;
  color:#f97316!important;
  font-weight:1000!important;
  letter-spacing:.5px!important;
  text-shadow:0 3px 14px rgba(249,115,22,.22);
  overflow:visible!important;
  text-overflow:clip!important;
}
.game-screen .score-hud #score.score-pop{animation:scoreHudPop .50s cubic-bezier(.2,.8,.25,1)}
@keyframes scoreHudPop{
  0%{transform:scale(1);filter:none}
  35%{transform:scale(1.25);color:#ea580c;filter:drop-shadow(0 5px 12px rgba(249,115,22,.28))}
  100%{transform:scale(1);filter:none}
}

/* 目标旁即时加分：与总分使用同一暖色语言。 */
.game-screen .float{
  color:#f97316!important;
  font-size:34px!important;
  line-height:1!important;
  font-weight:1000!important;
  text-shadow:0 2px 0 rgba(255,255,255,.98),0 7px 20px rgba(249,115,22,.34)!important;
}
.game-screen .particle{background:#f59e0b!important}

@media(max-width:1200px){
  .game-screen .score-hud #score{font-size:40px!important}
  .game-screen .float{font-size:30px!important}
}


/* =========================================================
   V1.39 比赛大厅标题精简版
   去除标题旁装饰图标，强化“比赛大厅”主标题
   ========================================================= */
.lobby-v20 .lobby-title-v19{
  gap:0!important;
}
.lobby-v20 .lobby-title-v19>b{
  font-size:38px!important;
  font-weight:950!important;
  letter-spacing:1px!important;
  line-height:1!important;
}
@media(min-width:1200px) and (max-height:900px){
  .lobby-v20 .lobby-title-v19>b{font-size:34px!important;}
}
@media(max-width:1000px){
  .lobby-v20 .lobby-title-v19>b{font-size:30px!important;}
}
@media(max-width:700px){
  .lobby-v20 .lobby-title-v19>b{font-size:22px!important;}
}

/* =========================================================
   V1.40 比赛大厅标题留白优化版
   桌面端将“比赛大厅”下移，增加顶部呼吸空间
   ========================================================= */
@media(min-width:1001px){
  .lobby-v20 .lobby-title-v19{
    margin-top:23px!important;
  }
}


/* V1.42 输入法状态纠错提示 */
#typingTip.input-method-warning{color:#d97706!important;font-weight:900!important;font-size:clamp(15px,1.05vw,19px)!important;text-shadow:0 1px 0 rgba(255,255,255,.8)}


/* V1.44 正式赛结算页重构：取消等级制，突出本轮得分、个人最佳与班级排名 */
.result-screen{padding:34px 26px 42px}
.result-panel{width:min(1180px,96vw);padding:38px 38px 34px;border-radius:36px}
.result-panel h2{font-size:43px!important;line-height:1.15;margin:4px 0 10px!important;letter-spacing:.5px}
.result-panel>p{font-size:19px!important;font-weight:700;margin:0 0 12px!important}
.result-score-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:14px auto 24px;min-height:150px}
.result-score-hero>span{font-size:16px;font-weight:850;color:#7288a5;letter-spacing:1.2px;margin-bottom:2px}
.result-score-line{display:flex;align-items:flex-end;justify-content:center;gap:8px;line-height:1}
.result-score-line .big-score{font-size:100px!important;line-height:.98;font-weight:950;color:#6047df!important;text-shadow:0 10px 34px rgba(96,71,223,.18)}
.result-score-line em{font-style:normal;font-size:25px;font-weight:900;color:#6a7891;padding-bottom:12px}
.result-panel .stats{gap:12px;margin-top:8px}
.result-panel .stats>div{padding:16px 10px 14px!important;border-radius:18px!important;font-size:14px!important;font-weight:800!important}
.result-panel .stats b{font-size:28px!important;margin-top:5px!important}
.result-panel .personal-best-message{margin-top:19px!important;font-size:18px!important;font-weight:900!important}
.result-panel .rank-message{margin-top:9px!important;font-size:18px!important;font-weight:850!important;color:#486785!important}
.result-panel .rank-title{margin:27px 4px 11px!important}
.result-panel .rank-title h3{font-size:23px!important}
.result-panel .rank-title small{font-size:13px!important;letter-spacing:0!important;font-weight:750!important}
.result-panel .rank-table th{font-size:13px!important;padding:12px 10px!important}
.result-panel .rank-table td{font-size:16px!important;padding:13px 10px!important}
.result-panel .rank-score b{font-size:20px!important}
.result-panel .actions{margin-top:24px!important;gap:12px!important}
.result-panel .actions button{font-size:17px;padding:14px 25px}
@media(max-width:1050px){
  .result-panel{padding:30px 24px}.result-panel h2{font-size:38px!important}.result-score-line .big-score{font-size:86px!important}.result-panel .stats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:700px){
  .result-screen{padding:18px 10px 28px}.result-panel{padding:26px 14px;border-radius:28px}.result-panel h2{font-size:34px!important}.result-panel>p{font-size:17px!important}.result-score-hero{min-height:125px;margin-bottom:18px}.result-score-line .big-score{font-size:74px!important}.result-score-line em{font-size:21px;padding-bottom:8px}.result-panel .stats{grid-template-columns:repeat(2,1fr);gap:8px}.result-panel .stats>div{font-size:13px!important}.result-panel .stats b{font-size:24px!important}.result-panel .rank-title{align-items:flex-start;gap:6px;flex-direction:column}.result-panel .rank-table{min-width:640px}.result-panel .actions{flex-direction:column}.result-panel .actions button{width:100%}
}
