:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#eef5fd;background:#0b1929;--muted:#93a9c1;--cyan:#64dcff;--gold:#ffcb69;--green:#8af1b4}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#1b3550 0,transparent 68%),#0b1929;min-height:100vh}button{font:inherit;cursor:pointer}button:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.45;cursor:default}.app{max-width:980px;margin:auto;padding:20px 25px 22px}.topbar,.heading,.dashboard,.game-top,.dispatch,footer{display:flex;align-items:center;justify-content:space-between}.icon-button{color:#bed0de;border:1px solid #3c5369;background:#14283b;border-radius:8px;padding:8px 11px;font-size:11px;white-space:nowrap;min-height:34px}.icon-button:hover{border-color:#89a7be}.topbar{justify-content:flex-end}.heading{display:block;margin:19px 0 17px}h1{font-size:28px;letter-spacing:1px;margin:5px 0 0;line-height:1.5}.dashboard{gap:20px;padding:14px 20px;background:#14283b;border:1px solid #344c63;border-radius:13px}.dashboard>div{flex:1}.dashboard>div>span{font-size:11px;color:var(--muted);display:block}.dashboard strong{font-size:26px;display:block;font-variant-numeric:tabular-nums;margin-top:3px;line-height:1.2}.dashboard b{font-weight:800}.dashboard small{font-size:12px;color:var(--muted);font-weight:400}.dashboard .green strong{color:var(--green)}.phases{display:flex;gap:8px;margin:16px 0 12px}.phases span{flex:1;font-size:11px;font-weight:700;color:#7c95ae;border-top:3px solid #2c4359;padding-top:8px}.phases .current{border-color:var(--gold);color:var(--gold)}.phases .done{border-color:var(--green);color:var(--green)}.game-shell{border:1px solid #40586e;background:#102136;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px #0003}.game-top{padding:12px 18px 5px;gap:12px;font-size:11px;color:#a5bbd0}.live{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--green)}.live i{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}canvas{display:block;width:100%;height:auto;touch-action:none;user-select:none;-webkit-user-select:none;image-rendering:auto}.dispatch{min-height:58px;background:#1a3047;border-top:1px solid #354b60;padding:10px 16px;gap:10px}.dispatch-icon{width:25px;height:25px;border:1px solid #58728a;border-radius:8px;display:grid;place-items:center;color:var(--cyan);flex:none}.dispatch p{font-size:12px;line-height:1.6;margin:0;flex:1;color:#d2dfeb}.dispatch #combo{color:var(--gold);font-size:11px;font-weight:700;white-space:nowrap}footer{font-size:10px;color:#7f99b2;margin-top:12px;gap:10px}footer button{background:none;border:0;font-size:11px;color:#c5d8e7;padding:5px 0;white-space:nowrap}.overlay{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:#05111fce;padding:20px;backdrop-filter:blur(7px);overflow-y:auto}.overlay.hidden{display:none}.modal{width:min(470px,100%);padding:28px;border:1px solid #526d82;border-radius:23px;background:linear-gradient(145deg,#203e55,#102337 70%);box-shadow:0 30px 90px #0008}.illustration{display:flex;align-items:center;justify-content:center;gap:13px;height:90px;margin-top:6px}.energy{font-size:48px;color:var(--gold);font-weight:900;text-shadow:0 0 20px #ffc85f55}.flow{font-size:25px;letter-spacing:3px;color:#57aab7}.mini-train{display:flex;align-items:center;gap:7px;justify-content:center;width:104px;height:40px;background:#c9eff9;border:3px solid #71d8f5;border-radius:10px 24px 8px 8px;box-shadow:0 10px 0 -7px #537e98}.mini-train i{width:17px;height:12px;border-radius:3px;background:#295271}.spark{color:var(--green);font-size:35px;margin-left:-5px;margin-top:-30px}.modal h2{font-size:27px;margin:7px 0 11px;line-height:1.35}.modal>p{font-size:13px;line-height:1.8;color:#bcd0e1;margin:0 0 15px}.details{display:grid;gap:9px;margin:16px 0 21px}.detail{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;background:#213b50;border-radius:9px;font-size:12px;line-height:1.6;color:#c9dae6}.detail b{color:var(--gold);font-size:17px;line-height:1.3;min-width:22px}.detail strong{color:#f2f8ff}.primary{width:100%;border:0;border-radius:10px;background:var(--gold);padding:14px;color:#152b3a;font-size:14px;font-weight:900;box-shadow:0 4px 0 #a57b38;min-height:48px}.primary:hover{background:#ffdb96}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #a57b38}.results{display:grid;grid-template-columns:1fr 1fr;gap:9px}.result{background:#233d51;border-radius:10px;padding:13px;text-align:center}.result b{font-size:24px;color:var(--green);display:block}.result span{font-size:11px;color:#b2c8d9}.hidden{display:none!important}
@media(min-width:800px){.app{max-width:920px;padding-top:18px}.heading{margin:13px 0}.game-shell{max-width:100%}}
@media(max-width:600px){.app{padding:12px 12px 18px}.icon-button{font-size:10px;padding:6px 8px}.heading{margin:14px 0 12px}h1{font-size:21px;letter-spacing:0}.dashboard{padding:12px;gap:10px}.dashboard>div>span{font-size:9px}.dashboard strong{font-size:22px}.dashboard small{font-size:10px}.dashboard .icon-button{font-size:0;width:31px;padding:0}.dashboard .icon-button:before{content:'Ⅱ';font-size:15px}.phases{margin:13px 0 9px;gap:7px}.phases span{font-size:10px;padding-top:6px}.game-shell{border-radius:13px}.game-top{padding:10px 12px 0;font-size:10px}.live{font-size:9px}.dispatch{padding:9px 10px;gap:7px;min-height:61px}.dispatch p{font-size:10px}.dispatch #combo{font-size:10px}.dispatch-icon{width:21px;height:21px;font-size:12px}footer{font-size:9px}.modal{padding:23px}.modal h2{font-size:24px}.modal>p{font-size:12px}.illustration{height:76px}.detail{font-size:11px;padding:9px 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.reputation{display:flex;align-items:center;gap:7px;color:#c5d4df;font-size:10px;white-space:nowrap}.reputation b{color:#8af1b4;font-size:15px;min-width:23px;text-align:right}.reputation.warn b{color:#ffcb69}.reputation.danger b{color:#ff8184}.reputation-track{width:45px;height:5px;display:block;border-radius:5px;background:#294259;overflow:hidden}.reputation-track i{display:block;width:100%;height:100%;background:#8af1b4;transition:width .2s,background .2s}.reputation.warn .reputation-track i{background:#ffcb69}.reputation.danger .reputation-track i{background:#ff8184}
@media(max-width:600px){.game-top{flex-wrap:wrap;gap:4px 8px}.game-top>span:first-child{flex:1}.reputation{order:3;width:100%;justify-content:flex-end;font-size:9px}.reputation-track{width:58px}.reputation b{font-size:12px}}
.result.risk b{color:#ff8184}
