:root{--panel: rgba(16, 24, 12, .82);--panel-border: rgba(140, 190, 110, .35);--ink: #e8f0dc;--accent: #9ed36a;--warn: #ff7a5c;font-family:Noto Sans CJK SC,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#141b10}#app,#app canvas{position:absolute;top:0;right:0;bottom:0;left:0}#app canvas{cursor:crosshair;touch-action:none}#ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;color:var(--ink)}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 4px 18px #00000073}#hud{position:absolute;top:12px;left:12px;padding:10px 14px;min-width:240px;pointer-events:auto}#hud h1{font-size:16px;letter-spacing:1px;color:var(--accent);margin-bottom:6px}#hud .row{display:flex;justify-content:space-between;gap:14px;font-size:13px;line-height:1.75}#hud .row b{font-variant-numeric:tabular-nums}#stamWrap{height:10px;background:#223018;border-radius:5px;overflow:hidden;margin:3px 0 6px;border:1px solid rgba(255,255,255,.12)}#stamBar{height:100%;width:100%;border-radius:5px;background:linear-gradient(90deg,#d8f077,#86c74a);transition:width .25s ease}#stamBar.low{background:linear-gradient(90deg,#ffb46a,#ff6a4a)}#topRight{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:auto}#topRight .tag{font-size:11px;opacity:.85;padding:4px 10px}button.btn{pointer-events:auto;cursor:pointer;font:inherit;font-size:14px;color:var(--ink);background:linear-gradient(180deg,#3d5a28,#2c421d);border:1px solid var(--panel-border);border-radius:8px;padding:8px 18px;letter-spacing:.5px;box-shadow:0 3px 10px #0006}button.btn:hover{filter:brightness(1.18)}button.btn.primary{background:linear-gradient(180deg,#6fa83c,#4c7a28);font-weight:600}button.btn.pulse{animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 5px #9ed36a59}}#hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-size:12.5px;padding:7px 16px;white-space:nowrap;opacity:.92}#toast{position:absolute;top:84px;left:50%;transform:translate(-50%);padding:9px 20px;font-size:15px;color:#ffd9c8;border-color:#ff825a80;opacity:0;transition:opacity .25s;pointer-events:none}#toast.show{opacity:1}.modalBack{position:absolute;top:0;right:0;bottom:0;left:0;background:#080c058c;display:flex;align-items:center;justify-content:center;pointer-events:auto}.modal{max-width:560px;width:calc(100% - 40px);padding:22px 26px;max-height:92vh;overflow-y:auto}.modal h2{color:var(--accent);font-size:20px;margin-bottom:4px}.modal h3{font-size:14px;margin:14px 0 6px;color:#cfe2b0}.modal p,.modal li{font-size:13px;line-height:1.65;opacity:.95}.modal .foot{margin-top:18px;display:flex;gap:12px;justify-content:flex-end}.legend{display:flex;flex-direction:column;gap:8px;margin-top:6px}.legend .item{display:flex;gap:12px;align-items:center}.legend canvas{border-radius:8px;border:1px solid rgba(255,255,255,.15);flex:0 0 auto}.legend .txt b{font-size:13px;color:#e9f2d8}.legend .txt div{font-size:12px;opacity:.8}#results{position:absolute;top:12px;right:12px;bottom:12px;width:380px;max-width:calc(100vw - 24px);padding:18px 20px;overflow-y:auto;pointer-events:auto}#results h2{color:var(--accent);font-size:19px;margin-bottom:10px}#results table{width:100%;border-collapse:collapse;font-size:13px}#results td{padding:5px 2px;border-bottom:1px dashed rgba(255,255,255,.12)}#results td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}#results .big{margin:12px 0 4px;text-align:center}#results .big .score{font-size:40px;font-weight:700;color:#ffe28a;text-shadow:0 2px 8px rgba(0,0,0,.6)}#results .big .rank{font-size:15px;color:var(--accent);margin-top:2px}#results .maplegend{font-size:12px;line-height:1.9;opacity:.92;margin-top:8px}#results .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}#results .foot{margin-top:14px;display:flex;gap:10px;justify-content:center}
