:root{--bg:#0b0d10;--panel:#111419;--panel-2:#15191f;--line:#272c34;--muted:#858d98;--text:#f1f3f5;--accent:#a8ff78;--danger:#ff6b6b}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,"Microsoft YaHei",Arial,sans-serif}button,a{font:inherit;color:inherit}.hidden{display:none!important}button{cursor:pointer}.lobby{min-height:100vh;padding:0 6vw}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{color:var(--text);text-decoration:none;font-size:13px;font-weight:800;letter-spacing:1.6px;display:flex;align-items:center;gap:11px}.brand-mark,.game-brand>span{width:12px;height:12px;border:2px solid var(--accent);display:inline-block}.top-status{font-size:10px;color:var(--muted)}.top-status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px}.intro{padding:72px 0 50px;display:flex;align-items:end;justify-content:space-between}.overline{font-size:9px;color:var(--accent);letter-spacing:1.7px;font-weight:700}.intro h1{font-size:clamp(50px,6vw,84px);line-height:1.02;letter-spacing:-4px;margin:16px 0 0}.intro p{margin:0 0 8px;max-width:410px;color:var(--muted);font-size:13px;line-height:1.8}.workspace{display:grid;grid-template-columns:1fr 1.32fr .9fr;border:1px solid var(--line);min-height:410px}.panel{padding:25px;background:var(--panel);border-right:1px solid var(--line)}.panel:last-child{border:0}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px;color:var(--muted);font-size:9px;letter-spacing:1.2px}.panel-title small{color:#505761}.scenario{width:100%;min-height:87px;padding:0 15px;border:1px solid transparent;border-bottom-color:var(--line);background:transparent;display:grid;grid-template-columns:32px 1fr 10px;align-items:center;text-align:left;gap:10px}.scenario:hover{background:var(--panel-2)}.scenario.active{background:var(--panel-2);border-color:#353c45}.scenario-number{font-size:9px;color:#5c6470}.scenario>span:nth-child(2){display:grid;gap:6px}.scenario strong{font-size:13px}.scenario small{font-size:9px;color:var(--muted)}.scenario i{width:6px;height:6px;border-radius:50%;background:#3c424b}.scenario.active i{background:var(--accent)}.preview-panel{background:#0e1115}.mini-range{height:275px;position:relative;overflow:hidden;background:#191e24;border:1px solid #2c323a}.mini-wall{position:absolute;inset:0 15% 27%;background:#1e242b;border:1px solid #343b44}.mini-floor{position:absolute;left:-12%;right:-12%;bottom:-20%;height:52%;background:repeating-linear-gradient(90deg,transparent 0 59px,#2e353d 60px),linear-gradient(#2e353d 1px,transparent 1px);background-size:auto,100% 42px;transform:perspective(250px) rotateX(55deg);transform-origin:top}.mini-target{position:absolute;width:34px;height:34px;border-radius:50%;border:2px solid var(--accent);box-shadow:inset 0 0 0 7px #1e242b,inset 0 0 0 9px var(--accent)}.mini-target.a{left:30%;top:30%}.mini-target.b{left:55%;top:43%;width:44px;height:44px}.mini-target.c{left:70%;top:27%;width:27px;height:27px}.mini-crosshair{position:absolute;left:50%;top:49%;width:20px;height:20px;transform:translate(-50%,-50%)}.mini-crosshair:before,.mini-crosshair:after{content:"";position:absolute;background:#fff}.mini-crosshair:before{width:20px;height:1px;top:10px}.mini-crosshair:after{height:20px;width:1px;left:10px}.mini-weapon{position:absolute;width:90px;height:85px;bottom:-10px;left:50%;transform:translateX(-10%)}.mini-weapon i{position:absolute;width:65px;height:22px;background:#090b0e;top:18px;transform:skew(-8deg)}.mini-weapon b{position:absolute;width:20px;height:55px;background:#090b0e;left:35px;top:32px;transform:rotate(13deg)}.best-row{height:45px;display:flex;align-items:end;justify-content:space-between}.best-row span{font-size:9px;color:var(--muted)}.best-row strong{font-size:18px}.setting-block{padding:18px 0;border-bottom:1px solid var(--line)}.setting-block>label{display:block;font-size:9px;color:var(--muted);margin-bottom:11px}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid #343a43;padding:3px;gap:3px}.segmented button{height:36px;border:0;background:transparent;color:var(--muted);font-size:10px}.segmented button.active{background:#30363e;color:#fff}.sound-row{display:flex;align-items:center;justify-content:space-between}.sound-row>label{margin:0}.switch{width:35px;height:19px;border:1px solid #3a414a;background:#232830;border-radius:20px;padding:2px}.switch span{display:block;width:13px;height:13px;background:#69717c;border-radius:50%;transition:.2s}.switch.active span{transform:translateX(15px);background:var(--accent)}.start-button{height:50px;background:var(--accent);color:#10150d;border:0;padding:0 16px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:space-between}.settings-panel>.start-button{width:100%;margin-top:24px}.start-button kbd{font:inherit;font-size:8px;border:1px solid rgba(0,0,0,.25);padding:4px 6px}.footer{height:85px;display:flex;align-items:center;justify-content:space-between;color:#555c65;font-size:8px;letter-spacing:1px}
.game{height:100vh;min-height:600px;background:#090b0e;display:grid;grid-template-rows:56px 1fr 28px;overflow:hidden;--accent:#a8ff78}.game-header{display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);background:#0d1014;z-index:20}.game-brand{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:1.4px;font-weight:800;margin-right:auto}.game-brand>span{width:10px;height:10px}.game-protocol{display:flex;align-items:center;gap:10px;margin-right:20px}.game-protocol small{color:var(--muted);font-size:8px}.game-protocol strong{font-size:9px}.game-header button{height:100%;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);padding:0 20px;font-size:8px}.range{position:relative;overflow:hidden;cursor:none;background:#15191d}.room{position:absolute;inset:0;overflow:hidden}.back-wall{position:absolute;left:18%;right:18%;top:0;bottom:25%;background:#242a30;border:1px solid #353d45}.back-wall:before{content:"LINE AIM / RANGE 01";position:absolute;left:50%;top:12%;transform:translateX(-50%);color:#414850;font-size:8px;letter-spacing:3px}.wall-line{position:absolute;left:0;right:0;height:1px;background:#353d45}.wall-line.one{top:34%}.wall-line.two{top:68%}.side-wall{position:absolute;top:-10%;bottom:9%;width:35%;background:#1c2126}.side-wall.left{left:-17%;transform:skewY(18deg);border-right:1px solid #373e46}.side-wall.right{right:-17%;transform:skewY(-18deg);border-left:1px solid #373e46}.ceiling{position:absolute;left:12%;right:12%;top:-42%;height:55%;background:repeating-linear-gradient(90deg,#242a30 0 140px,#30373f 141px 142px);transform:perspective(500px) rotateX(-35deg);z-index:1}.floor{position:absolute;left:-20%;right:-20%;bottom:-78%;height:105%;background:repeating-linear-gradient(90deg,transparent 0 104px,#343b43 105px 106px),repeating-linear-gradient(0deg,#1b2025 0 75px,#343b43 76px 77px);transform:perspective(550px) rotateX(58deg);transform-origin:top;z-index:1}.range.clean-view .side-wall,.range.clean-view .ceiling,.range.clean-view .weapon{display:none}.range.clean-view .back-wall{inset:0;background:#20262c}.range.clean-view .floor{opacity:.25}.hud{position:absolute;z-index:10;top:22px;display:grid;gap:3px}.hud span,.streak span{font-size:7px;color:#89929d;letter-spacing:1px}.hud strong{font-size:24px;letter-spacing:.5px;font-variant-numeric:tabular-nums}.hud small{font-size:7px;color:#646d77}.hud-left{left:24px}.hud-center{left:50%;transform:translateX(-50%);text-align:center}.hud-right{right:24px;text-align:right}.streak{position:absolute;z-index:10;left:24px;bottom:23px;display:flex;align-items:center;gap:10px}.streak strong{font-size:16px}.target{position:absolute;z-index:6;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--accent);background:#20262c;box-shadow:0 0 0 6px #20262c,0 0 0 7px color-mix(in srgb,var(--accent) 55%,transparent);animation:targetIn .14s ease-out}.target:before{content:"";position:absolute;inset:27%;border:2px solid var(--accent);border-radius:50%}.target:after{content:"";position:absolute;width:8px;height:8px;left:calc(50% - 4px);top:calc(50% - 4px);border-radius:50%;background:var(--accent)}@keyframes targetIn{from{transform:translate(-50%,-50%) scale(.55);opacity:0}}.crosshair{position:absolute;z-index:12;width:32px;height:32px;transform:translate(-50%,-50%);pointer-events:none}.crosshair:before{content:"";position:absolute;left:15px;top:15px;width:2px;height:2px;background:#fff}.crosshair i,.crosshair b{position:absolute;background:#fff}.crosshair i{height:1px;width:32px;top:16px}.crosshair b{width:1px;height:32px;left:16px}.weapon{position:absolute;z-index:8;width:260px;height:240px;left:50%;bottom:-87px;transform:translateX(-14%);pointer-events:none;transition:transform .08s linear}.weapon-body{position:absolute;width:190px;height:66px;left:13px;top:28px;background:#0d1013;clip-path:polygon(0 20%,71% 20%,79% 0,100% 0,100% 40%,84% 55%,55% 55%,45% 100%,8% 100%);box-shadow:inset 0 -7px #080a0c}.weapon-body:before{content:"";position:absolute;width:112px;height:7px;left:29px;top:5px;background:#07090b}.weapon-body i{position:absolute;width:26px;height:10px;background:#23282e;left:70px;top:23px}.weapon-body b{position:absolute;width:4px;height:4px;background:var(--accent);left:140px;top:24px}.weapon-grip{position:absolute;width:44px;height:100px;background:#0a0c0f;left:94px;top:72px;transform:skew(-8deg);clip-path:polygon(0 0,100% 0,82% 100%,16% 100%)}.weapon-hand{position:absolute;width:95px;height:79px;border-radius:40px 30px 10px 10px;background:#24201e;left:73px;top:106px;transform:rotate(-4deg)}.screen-layer{position:absolute;inset:0;z-index:30;background:rgba(8,10,13,.82);display:grid;place-items:center;cursor:default}.countdown>div{text-align:center}.countdown span{color:var(--accent);font-size:9px;letter-spacing:2px}.countdown strong{display:block;font-size:110px;line-height:1.1}.countdown small{color:var(--muted);font-size:9px}.result-card{width:min(610px,90vw);background:#11151a;border:1px solid #353c45;padding:30px}.result-head{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line)}.result-head small{display:block;color:var(--muted);font-size:8px;margin-bottom:4px}.result-head strong{font-size:32px}.grade{width:64px;height:64px;border:1px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-size:34px;font-weight:800}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.result-metrics>div{padding:20px 0;border-right:1px solid var(--line)}.result-metrics>div:not(:first-child){padding-left:18px}.result-metrics>div:last-child{border:0}.result-metrics span{display:block;color:var(--muted);font-size:8px;margin-bottom:5px}.result-metrics strong{font-size:19px}.result-metrics small{display:block;color:#5d6670;font-size:7px;margin-top:4px}.result-actions{display:flex;gap:10px;margin-top:22px}.result-actions .start-button{width:170px}.plain-button{border:1px solid #343b44;background:transparent;color:var(--muted);padding:0 18px;font-size:9px}.game-footer{display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-top:1px solid var(--line);background:#0d1014;color:#59616a;font-size:7px;letter-spacing:.7px}
@media(max-width:900px){.intro{align-items:start;gap:30px}.workspace{grid-template-columns:1fr 1fr}.settings-panel{grid-column:1/-1;border-top:1px solid var(--line)}.preview-panel{border-right:0}}@media(max-width:620px){.lobby{padding:0 20px}.intro{display:block;padding-top:55px}.intro h1{font-size:52px;letter-spacing:-3px}.intro p{margin-top:25px}.workspace{grid-template-columns:1fr}.panel{border-right:0;border-bottom:1px solid var(--line)}.preview-panel{display:none}.settings-panel{grid-column:auto}.game-protocol{display:none}.hud strong{font-size:18px}.result-card{padding:22px}.result-metrics strong{font-size:16px}}

/* 真实 WebGL 第一人称训练场 */
.range{background:#101419}.webgl-viewport{position:absolute;inset:0;z-index:1}.webgl-viewport canvas{display:block;width:100%;height:100%}.crosshair{left:50%;top:50%;width:24px;height:24px}.crosshair:before{left:11px;top:11px;background:var(--accent)}.crosshair i{width:24px;top:12px}.crosshair b{height:24px;left:12px}.crosshair.firing{transform:translate(-50%,-50%) scale(1.35)}.pointer-prompt>div{text-align:center}.pointer-prompt span{color:var(--accent);font-size:9px;letter-spacing:2px}.pointer-prompt strong{display:block;font-size:28px;margin:10px 0 14px}.pointer-prompt small{color:var(--muted);font-size:9px}.hud,.streak,.crosshair{z-index:12}.screen-layer{z-index:30}
.sensitivity-control{display:grid;grid-template-columns:1fr 46px;align-items:center;gap:12px}.sensitivity-control input{width:100%;height:20px;margin:0;appearance:none;background:transparent}.sensitivity-control input::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,var(--accent) 0 var(--slider-fill,29%),#343a43 var(--slider-fill,29%) 100%)}.sensitivity-control input::-webkit-slider-thumb{appearance:none;width:15px;height:15px;margin-top:-6px;border-radius:50%;border:3px solid var(--panel);background:var(--accent);box-shadow:0 0 0 1px #5b636d}.sensitivity-control input::-moz-range-track{height:3px;background:#343a43}.sensitivity-control input::-moz-range-progress{height:3px;background:var(--accent)}.sensitivity-control input::-moz-range-thumb{width:12px;height:12px;border-radius:50%;border:3px solid var(--panel);background:var(--accent)}.sensitivity-control output{height:31px;display:grid;place-items:center;border:1px solid #343a43;background:#0d1014;color:#fff;font-size:10px;font-variant-numeric:tabular-nums}
.scenario-number{display:none}.scenario{grid-template-columns:1fr 10px}.intro h1{letter-spacing:-3px}.overline{letter-spacing:.4px;color:#9ca4ae;font-weight:500}

/* 主页：轻量训练面板 */
.dashboard{min-height:100vh;padding:0;background:#f6f7f8;color:#17191c}.dash-nav{height:68px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;gap:38px;background:#fff;border-bottom:1px solid #e8e9eb}.dash-brand{display:flex;align-items:center;gap:10px;color:#181a1e;text-decoration:none;font-size:14px;font-weight:800;white-space:nowrap}.dash-brand>span{width:30px;height:30px;border-radius:9px;background:#17191d;color:#fff;display:grid;place-items:center;font-size:20px;font-weight:400}.dash-nav nav{display:flex;align-items:center;gap:4px;margin-right:auto;padding:4px;border-radius:20px;background:#f3f4f5}.dash-nav nav button{height:31px;padding:0 18px;border:0;border-radius:17px;background:transparent;color:#9298a1;font-size:11px}.dash-nav nav button.active{background:#fff;color:#202328;box-shadow:0 1px 5px rgba(20,28,40,.08)}.local-badge{font-size:10px;color:#737a84}.local-badge i{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#37c98c}.dash-content{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:26px 0 44px}.mode-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.dashboard .scenario{min-height:88px;padding:14px 16px;display:grid;grid-template-columns:52px 1fr auto;gap:13px;align-items:center;border:1px solid #252a32;border-radius:12px;background:#151922;color:#fff;text-align:left;box-shadow:none;transform:none}.dashboard .scenario:hover{background:#1b202a}.dashboard .scenario.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.dashboard .scenario>span:nth-child(2){display:grid;gap:5px}.dashboard .scenario strong{font-size:13px}.dashboard .scenario small{font-size:9px;color:#8c95a3}.dashboard .scenario>b{padding:5px 9px;border-radius:12px;background:#242b36;color:#aeb6c2;font-size:8px;font-weight:500}.dashboard .scenario.active>b{background:var(--accent);color:#0c1710}.mode-icon{width:42px;height:42px;border-radius:10px;background:#202735;display:grid;place-items:center}.mode-icon i{display:block;width:18px;height:18px;border:2px solid var(--accent);border-radius:50%;position:relative}.mode-icon i:before,.mode-icon i:after{content:"";position:absolute;background:var(--accent)}.mode-icon i:before{width:24px;height:1px;left:-5px;top:7px}.mode-icon i:after{width:1px;height:24px;left:7px;top:-5px}.micro-icon i{width:11px;height:11px}.reflex-icon i{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 16%,transparent)}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dash-card{border:1px solid #e5e7ea;border-radius:18px;background:#fff;box-shadow:0 2px 12px rgba(24,34,48,.035)}.practice-card{grid-row:span 1;padding:30px 34px}.practice-symbol{width:52px;height:52px;margin:0 auto 14px;border-radius:16px;background:#dcf8fb;display:grid;place-items:center}.practice-symbol i{display:block;width:23px;height:23px;border:2px solid #13abc4;border-radius:50%;position:relative}.practice-symbol i:before,.practice-symbol i:after{content:"";position:absolute;background:#13abc4}.practice-symbol i:before{left:-5px;right:-5px;height:2px;top:9px}.practice-symbol i:after{top:-5px;bottom:-5px;width:2px;left:9px}.practice-card h1{text-align:center;font-size:23px;margin:0 0 6px}.practice-card>p{text-align:center;color:#9298a0;font-size:10px;margin:0 0 24px}.control-row{margin-top:18px}.control-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.control-label label,.control-label span{font-size:9px;color:#858c95}.control-label output{font-size:10px;color:#24282d;font-weight:700}.segmented.light{height:42px;border:1px solid #e4e6e8;background:#f3f4f5;border-radius:10px;padding:4px}.segmented.light button{height:32px;color:#9197a0;border-radius:7px}.segmented.light button.active{background:#fff;color:#202327;box-shadow:0 1px 5px rgba(20,28,40,.08)}.sensitivity-control.light{display:grid;grid-template-columns:auto auto;gap:4px 0}.sensitivity-control.light input{grid-column:1/-1}.sensitivity-control.light>span{font-size:8px;color:#a3a8af}.sensitivity-control.light>span:last-child{text-align:right}.sound-row.compact{margin-top:20px;padding-top:16px;border-top:1px solid #eef0f2}.sound-row.compact label{font-size:10px;color:#6e7580}.challenge-button{width:100%;height:52px;margin-top:22px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:18px;border:0;border-radius:10px;background:#13b8cf;color:#fff;font-size:13px;font-weight:800;box-shadow:0 7px 18px rgba(19,184,207,.2)}.challenge-button kbd{font:inherit;font-size:8px;padding:3px 6px;border:1px solid rgba(255,255,255,.4);border-radius:4px}.summary-column{display:grid;grid-template-rows:auto 1fr;gap:12px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{min-height:88px;padding:16px}.stat-card>span,.best-card span{font-size:8px;color:#9aa0a8}.stat-card strong{display:block;margin:7px 0 2px;font-size:20px;font-variant-numeric:tabular-nums}.stat-card small,.best-card small{font-size:8px;color:#a8adb4}.best-card{padding:23px;display:flex;align-items:center;justify-content:space-between}.best-card>div:first-child{display:grid;gap:6px}.best-card>div:first-child strong{font-size:30px;font-variant-numeric:tabular-nums}.grade-box{width:92px;height:92px;border-radius:14px;background:#181b20;color:#fff;display:grid;place-content:center;text-align:center;gap:3px}.grade-box span{color:#7f8791}.grade-box strong{font-size:32px;color:var(--accent)}.history-card,.progress-card{min-height:230px;padding:22px}.history-card header,.progress-card header{display:flex;align-items:center;justify-content:space-between}.history-card header>div,.progress-card header>div{display:grid;gap:4px}.history-card header strong,.progress-card header strong{font-size:13px}.history-card header small,.progress-card header small{font-size:8px;color:#9da3aa}.history-card header button{border:0;background:#f1f3f4;color:#8e959d;border-radius:7px;padding:7px 10px;font-size:8px}.history-bars{height:146px;margin-top:18px;padding:8px 4px 22px;display:flex;align-items:end;gap:10px;border-bottom:1px solid #eef0f2}.history-bar{flex:1;min-width:18px;max-width:48px;position:relative;border-radius:5px 5px 2px 2px;background:#cceff4}.history-bar i{display:block;position:absolute;left:0;right:0;bottom:0;border-radius:5px 5px 2px 2px;background:#16b7cf}.history-bar span{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font-size:7px;color:#9ba1a8}.empty-history{margin:auto;color:#a1a7ae;font-size:9px}.progress-list{display:grid;gap:9px;margin-top:18px}.progress-list>div{min-height:45px;padding:9px 12px;display:flex;align-items:center;gap:11px;border:1px solid #eceef0;border-radius:10px}.check{width:23px;height:23px;border-radius:50%;background:#f1f3f4;color:#afb4ba;display:grid;place-items:center;font-size:12px}.check.done{background:#dcf7e9;color:#20a66a}.progress-list p{margin:0;display:grid;gap:3px}.progress-list strong{font-size:10px}.progress-list small{font-size:8px;color:#999fa7}.dash-footer{width:min(1120px,calc(100% - 40px));height:55px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e2e4e6;color:#959ba3;font-size:8px}.dashboard .switch{border-color:#d7dbe0;background:#e7e9ec}.dashboard .switch.active{background:#dff5e9}.dashboard .switch.active span{background:#20b672}.dashboard .sensitivity-control input::-webkit-slider-thumb{border-color:#fff}.dashboard .sensitivity-control output{background:#fff;color:#202327;border-color:#e1e4e7}
@media(max-width:900px){.dash-nav{padding:0 20px}.dash-nav nav{display:none}.dash-content{width:min(700px,calc(100% - 28px))}.mode-strip{grid-template-columns:1fr}.dash-grid{grid-template-columns:1fr}.summary-column{grid-row:auto}.dash-footer{width:calc(100% - 28px)}}@media(max-width:560px){.local-badge{display:none}.stat-row{grid-template-columns:1fr}.practice-card{padding:25px 20px}.mode-strip{gap:8px}.history-card,.progress-card{padding:18px}}

/* 模式图标 */
.mode-icon{position:relative;display:block}.mode-icon i,.mode-icon b{position:absolute;border:0;border-radius:0;box-shadow:none;background:var(--accent)}.mode-icon i:before,.mode-icon i:after{display:none}.grid-icon i{width:7px;height:7px;border-radius:50%;top:12px}.grid-icon i:nth-child(1){left:9px}.grid-icon i:nth-child(2){right:9px}.grid-icon i:nth-child(3){left:18px;top:25px}.micro-icon i{width:5px;height:5px;left:19px;top:19px;border-radius:1px}.micro-icon b{inset:9px;background:transparent;border:1px solid #7e899a;clip-path:polygon(0 0,35% 0,35% 8%,8% 8%,8% 35%,0 35%,0 0,65% 0,100% 0,100% 35%,92% 35%,92% 8%,65% 8%,65% 0,100% 65%,100% 100%,65% 100%,65% 92%,92% 92%,92% 65%,100% 65%,35% 100%,0 100%,0 65%,8% 65%,8% 92%,35% 92%,35% 100%)}.reflex-icon{display:flex;align-items:center;justify-content:center;gap:4px}.reflex-icon i{position:static;width:3px;border-radius:3px}.reflex-icon i:nth-child(1){height:12px}.reflex-icon i:nth-child(2){height:24px}.reflex-icon i:nth-child(3){height:17px}.practice-symbol{position:relative}.practice-symbol i{position:absolute;border:0;background:#13abc4;box-shadow:none}.practice-symbol i:before,.practice-symbol i:after{display:none}.symbol-grid i{width:8px;height:8px;border-radius:50%}.symbol-grid i:nth-child(1){left:13px;top:13px}.symbol-grid i:nth-child(2){right:13px;top:13px}.symbol-grid i:nth-child(3){left:22px;bottom:12px}.symbol-micro i:first-child{width:6px;height:6px;left:23px;top:23px;border-radius:1px}.symbol-micro i:not(:first-child){display:none}.symbol-micro:after{content:"";position:absolute;inset:13px;border:1px solid #13abc4;border-radius:7px}.symbol-reflex{display:flex;align-items:center;justify-content:center;gap:5px}.symbol-reflex i{position:static;width:4px;border-radius:3px}.symbol-reflex i:nth-child(1){height:14px}.symbol-reflex i:nth-child(2){height:28px}.symbol-reflex i:nth-child(3){height:19px}

/* 练习页排版 */
#practicePage .dash-grid{grid-template-columns:1.04fr .96fr;align-items:stretch}#practicePage .practice-card{min-height:520px}.summary-column{grid-template-rows:auto auto 1fr}.compact-best{min-height:150px}.mode-bests-card{padding:20px 22px;display:grid;grid-template-columns:1fr auto;align-content:start;gap:0}.mode-bests-card header{grid-column:1/-1;display:flex;align-items:end;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid #eef0f2}.mode-bests-card header strong{font-size:12px}.mode-bests-card header small{font-size:8px;color:#9aa1a9}.mode-bests-card>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f1f3}.mode-bests-card>div:last-child{border:0}.mode-bests-card>div span{font-size:9px;color:#747c85}.mode-bests-card>div strong{font-size:12px;font-variant-numeric:tabular-nums}

/* 页面通用 */
.dash-page{min-height:620px}.page-heading{display:flex;align-items:end;justify-content:space-between;margin:8px 0 24px}.page-heading h1{margin:0 0 8px;font-size:27px;letter-spacing:-1px}.page-heading p{margin:0;color:#9097a0;font-size:10px}.text-button{height:34px;padding:0 13px;border:1px solid #dfe2e5;border-radius:8px;background:#fff;color:#6f7781;font-size:9px}.text-button.danger{color:#d65f5f}

/* 训练记录 */
.record-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.record-summary>div{padding:19px 22px}.record-summary span{display:block;color:#939aa3;font-size:9px}.record-summary strong{display:block;margin-top:8px;font-size:24px;font-variant-numeric:tabular-nums}.records-card{overflow:hidden}.records-card>header{padding:16px 18px;border-bottom:1px solid #eceef0}.record-filters{display:flex;gap:5px}.record-filters button{height:30px;padding:0 13px;border:0;border-radius:7px;background:transparent;color:#8c939c;font-size:9px}.record-filters button.active{background:#edf8fa;color:#0d99ad}.records-table-wrap{position:relative;min-height:370px;overflow-x:auto}.records-card table{width:100%;border-collapse:collapse}.records-card th,.records-card td{padding:15px 18px;text-align:left;border-bottom:1px solid #f0f1f2;font-size:9px;white-space:nowrap}.records-card th{color:#9aa1aa;font-weight:500;background:#fafbfb}.records-card td{color:#5f6872}.records-card td strong{color:#171a1e;font-size:11px}.delete-record{border:0;background:transparent;color:#c66;font-size:8px}.records-empty{position:absolute;inset:50px 0 0;display:grid;place-items:center;color:#9ca3ab;font-size:10px}.records-empty.hidden{display:none!important}

/* 设置页 */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.settings-card{padding:24px}.settings-card>header{margin-bottom:23px}.settings-card h2{margin:0 0 6px;font-size:15px}.settings-card header p{margin:0;color:#999fa7;font-size:9px}.settings-field{padding:17px 0;border-bottom:1px solid #edf0f2}.settings-field>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.settings-field label,.settings-field output{font-size:10px}.settings-field output{font-weight:700}.settings-field input{width:100%;accent-color:#13b8cf}.settings-toggle{min-height:60px;display:flex;align-items:center;justify-content:space-between}.settings-toggle>span{display:grid;gap:5px}.settings-toggle strong{font-size:10px}.settings-toggle small{font-size:8px;color:#9ba1a8}.crosshair-card{grid-row:span 2}.crosshair-preview{width:150px;height:150px;margin:4px auto 15px;border-radius:18px;background:#1a1e23;position:relative;--preview-size:24px;--preview-color:#fff}.crosshair-preview:before{content:"";position:absolute;width:2px;height:2px;left:calc(50% - 1px);top:calc(50% - 1px);background:var(--preview-color)}.crosshair-preview i,.crosshair-preview b{position:absolute;background:var(--preview-color)}.crosshair-preview i{width:var(--preview-size);height:1px;left:calc(50% - var(--preview-size)/2);top:50%}.crosshair-preview b{height:var(--preview-size);width:1px;top:calc(50% - var(--preview-size)/2);left:50%}.color-row{display:flex;align-items:center;justify-content:space-between;padding-top:18px}.color-row>span{font-size:10px}.color-row>div{display:flex;gap:9px}.color-swatch{width:24px;height:24px;border-radius:50%;border:3px solid #fff;background:var(--swatch);box-shadow:0 0 0 1px #d8dce0}.color-swatch.active{box-shadow:0 0 0 2px #1d2228}.audio-card{min-height:145px}.crosshair{--game-crosshair-size:24px;--game-crosshair-color:#fff;width:var(--game-crosshair-size);height:var(--game-crosshair-size)}.crosshair:before{left:calc(50% - 1px);top:calc(50% - 1px);background:var(--game-crosshair-color)}.crosshair i{width:var(--game-crosshair-size);top:50%;background:var(--game-crosshair-color)}.crosshair b{height:var(--game-crosshair-size);left:50%;background:var(--game-crosshair-color)}
@media(max-width:900px){#practicePage .dash-grid,.settings-grid{grid-template-columns:1fr}.settings-card,.crosshair-card{grid-row:auto}.record-summary{grid-template-columns:1fr}.record-filters{overflow-x:auto}.mode-bests-card{min-height:260px}}

/* 扩展训练项目与成绩分析 */
.mode-bests-card>section{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.mode-bests-card>section>div{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f1f3}.mode-bests-card>section>div span{font-size:9px;color:#747c85}.mode-bests-card>section>div strong{font-size:12px;font-variant-numeric:tabular-nums}
.moving-icon i{width:8px;height:8px;left:17px;top:17px;border-radius:50%}.moving-icon b{height:2px;width:28px;left:7px;top:20px;background:#687586}.six-icon i{width:5px;height:5px;border-radius:50%}.six-icon i:nth-child(1){left:9px;top:10px}.six-icon i:nth-child(2){left:19px;top:10px}.six-icon i:nth-child(3){left:29px;top:10px}.six-icon i:nth-child(4){left:9px;top:27px}.six-icon i:nth-child(5){left:19px;top:27px}.six-icon i:nth-child(6){left:29px;top:27px}.distance-icon i{width:6px;height:6px;left:18px;top:18px;border-radius:50%}.distance-icon b{inset:8px;background:transparent;border:1px solid #748091;border-radius:50%}
.symbol-moving i:first-child{width:8px;height:8px;left:22px;top:22px;border-radius:50%}.symbol-moving:after{content:"";position:absolute;left:12px;right:12px;top:25px;height:2px;background:#8dcbd5}.symbol-six{display:grid;grid-template-columns:repeat(3,6px);gap:7px;place-content:center}.symbol-six i{position:static;width:6px;height:6px;border-radius:50%}.symbol-distance i:first-child{width:6px;height:6px;left:23px;top:23px;border-radius:50%}.symbol-distance:after{content:"";position:absolute;inset:12px;border:1px solid #13abc4;border-radius:50%}
.record-summary{grid-template-columns:repeat(4,1fr)}.analytics-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}.trend-card,.detail-card{padding:20px;min-height:300px}.trend-card header,.detail-card header{display:flex;align-items:center;justify-content:space-between}.trend-card header>div,.detail-card header>div{display:grid;gap:4px}.trend-card header strong,.detail-card header strong{font-size:12px}.trend-card header small,.detail-card header small{font-size:8px;color:#9aa1a9}.trend-card header>span{font-size:10px;color:#13a9bf}.trend-canvas-wrap{height:225px;margin-top:13px;position:relative;overflow:hidden}.trend-canvas-wrap canvas{display:block}.trend-empty{position:absolute;inset:0;display:grid;place-items:center;color:#a0a6ad;font-size:9px}.trend-empty.hidden{display:none}.detail-card header>b{width:38px;height:38px;border-radius:10px;background:#171b20;color:#13b8cf;display:grid;place-items:center;font-size:18px}.detail-metrics{display:grid;grid-template-columns:1fr 1fr;margin-top:15px;border-top:1px solid #eef0f2}.detail-metrics>div{padding:13px 8px 10px 0;border-bottom:1px solid #eef0f2}.detail-metrics>div:nth-child(even){padding-left:14px;border-left:1px solid #eef0f2}.detail-metrics span{display:block;color:#9ba1a8;font-size:8px;margin-bottom:5px}.detail-metrics strong{font-size:12px;font-variant-numeric:tabular-nums}.records-card tbody tr{cursor:pointer}.records-card tbody tr:hover,.records-card tbody tr.selected{background:#f2fafb}.records-card tbody tr.selected td:first-child{box-shadow:inset 3px 0 #13b8cf}
.result-metrics>div:nth-child(3){border-right:0}.result-metrics>div:nth-child(-n+3){border-bottom:1px solid var(--line)}
@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}.record-summary{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.record-summary{grid-template-columns:1fr}.mode-bests-card>section{grid-template-columns:1fr}.result-metrics{grid-template-columns:1fr 1fr}.result-metrics>div{border-bottom:1px solid var(--line)!important}.result-metrics>div:nth-child(even){border-right:0}}

/* 上线版导航、每日挑战与成绩发布 */
.site-links{display:flex;align-items:center;gap:18px;margin-left:auto}.site-links a{color:#7e858e;text-decoration:none;font-size:9px;white-space:nowrap}.site-links a:hover,.site-links a.active{color:#171a1e}.daily-challenge{min-height:82px;margin-bottom:16px;padding:15px 18px;display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;background:#171b20;border-color:#252b32;color:#fff}.daily-challenge>div:first-child{display:grid;gap:4px}.daily-challenge>div:first-child>span{color:#13b8cf;font-size:7px;letter-spacing:1.6px}.daily-challenge>div:first-child strong{font-size:14px}.daily-challenge small{font-size:8px;color:#8e98a3}.daily-target{padding-left:24px;border-left:1px solid #313841;display:grid;gap:3px}.daily-target span{font-size:7px;color:#8e98a3}.daily-target strong{font-size:19px;font-variant-numeric:tabular-nums}.daily-challenge>button{height:38px;padding:0 16px;border:0;border-radius:8px;background:#13b8cf;color:#fff;font-size:9px;font-weight:700}.dash-footer a{color:inherit;text-decoration:none}.dash-footer a:hover{color:#636b74}.score-publish{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:16px}.score-publish input{height:38px;padding:0 12px;border:1px solid #343b44;background:#0d1014;color:#fff;font-size:10px;outline:0}.score-publish input:focus{border-color:var(--accent)}.score-publish button{height:38px;padding:0 14px;border:0;background:var(--accent);color:#111;font-size:9px;font-weight:700}.score-publish button:disabled{opacity:.55}.score-publish small{grid-column:1/-1;color:#6f7882;font-size:7px}.result-actions{flex-wrap:wrap}.result-actions .plain-button{min-height:38px}
@media(max-width:1100px){.site-links{display:none}}@media(max-width:620px){.daily-challenge{grid-template-columns:1fr auto}.daily-target{padding-left:12px}.daily-challenge>button{grid-column:1/-1}.score-publish{grid-template-columns:1fr}.score-publish small{grid-column:auto}.result-card{max-height:88vh;overflow-y:auto}}

/* 主页统一为浅色训练面板；深色仅保留在实际训练场中 */
.dashboard{--accent:#13b8cf}
.dashboard .scenario{
  background:#fff;
  color:#171a1e;
  border-color:#e5e7ea;
  box-shadow:0 2px 12px rgba(24,34,48,.035);
}
.dashboard .scenario:hover{background:#f8fafb;border-color:#dfe3e6}
.dashboard .scenario.active{
  background:#fff;
  border-color:#13b8cf;
  box-shadow:0 0 0 1px #13b8cf;
}
.dashboard .scenario small{color:#8c949d}
.dashboard .scenario>b{background:#f0f2f4;color:#737b85}
.dashboard .scenario.active>b{background:#dff7fa;color:#078fa3}
.dashboard .mode-icon{background:#f1f4f6}
.dashboard .micro-icon b,
.dashboard .distance-icon b{border-color:#9ba5ae}
.dashboard .moving-icon b{background:#9ba5ae}

.daily-challenge{
  background:#fff;
  border-color:#e5e7ea;
  color:#171a1e;
  box-shadow:0 2px 12px rgba(24,34,48,.035);
}
.daily-challenge>div:first-child>span{color:#0ca0b5}
.daily-challenge small,
.daily-target span{color:#8e969f}
.daily-target{border-left-color:#e7eaed}
.daily-target strong{color:#171a1e}

.grade-box{background:#edf9fb;color:#171a1e}
.grade-box span{color:#7b858e}
.grade-box strong{color:#0aa4ba}

/* 双语入口与可索引内容 */
.language-links{display:flex;align-items:center;padding:3px;border:1px solid #e5e7ea;border-radius:9px;background:#f6f7f8}
.language-links a{min-width:30px;height:26px;padding:0 7px;display:grid;place-items:center;border-radius:6px;color:#8a9199;text-decoration:none;font-size:8px;font-weight:700}
.language-links a.active{background:#fff;color:#171a1e;box-shadow:0 1px 4px rgba(20,28,40,.08)}
.seo-content{width:min(1120px,calc(100% - 40px));margin:0 auto 38px;padding:34px;border:1px solid #e5e7ea;border-radius:18px;background:#fff;color:#171a1e;box-shadow:0 2px 12px rgba(24,34,48,.035)}
.seo-intro{max-width:760px}.seo-intro>span{color:#0b9fb4;font-size:8px;font-weight:800;letter-spacing:1.3px}.seo-intro h2,.seo-faq h2{margin:9px 0 10px;font-size:22px;letter-spacing:-.5px}.seo-intro p,.seo-features p,.seo-faq p{color:#747c85;font-size:10px;line-height:1.8}
.seo-features{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}.seo-features article{padding:18px;border:1px solid #eceef0;border-radius:12px;background:#fafbfb}.seo-features h3{margin:0 0 7px;font-size:11px}.seo-features p{margin:0}
.seo-faq{margin-top:28px;padding-top:23px;border-top:1px solid #eceef0}.seo-faq h2{font-size:15px}.seo-faq details{border-bottom:1px solid #eceef0}.seo-faq summary{padding:14px 0;cursor:pointer;font-size:10px;font-weight:700}.seo-faq p{margin:0 0 14px}
@media(max-width:900px){.language-links{margin-left:auto}.seo-features{grid-template-columns:1fr}.seo-content{width:calc(100% - 28px);padding:25px}}
@media(max-width:560px){.dash-brand{font-size:0}.dash-brand>span{font-size:20px}.language-links a{min-width:27px}.seo-content{padding:21px}.seo-intro h2{font-size:19px}}
