html,body,#root{margin:0;min-height:100%}body{background:#f3efe9;font-family:system-ui,-apple-system,sans-serif}.app-shell{display:flex;flex-direction:column;gap:10px;max-width:1040px;margin:0 auto;padding:12px}.file-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;background:#2c2c30;color:#fff;font-weight:600;font-size:14px;padding:9px 16px;border-radius:9px}.file-button[data-variant=secondary]{background:#ffffffd1;color:#1c1c20}.file-button.is-compact{padding:7px 12px;font-size:13px}.bac-wrap{display:flex;flex-direction:column;gap:10px}.bac-game{position:relative;width:100%;height:min(78vh,700px);min-height:430px;border-radius:14px;overflow:hidden;background:#1c2830;touch-action:none;user-select:none;-webkit-user-select:none}.bac-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.bac-canvas+.bac-canvas{pointer-events:none}.bac-map{position:absolute;top:10px;right:10px;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:#141a1499}.bac-topbar{position:absolute;top:10px;left:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:calc(100% - 180px)}.bac-area{background:#101418a6;color:#fff;font-weight:600;padding:5px 12px;border-radius:999px;font-size:14px}.bac-pill{background:#1014188c;color:#ffd75e;padding:4px 10px;border-radius:999px;font-size:12.5px}.bac-needs{position:absolute;left:10px;bottom:118px;display:flex;flex-direction:column;gap:5px;background:#10141880;padding:8px 10px;border-radius:10px}.bac-need{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#fff}.bac-need span{width:48px}.bac-needbar{width:90px;height:7px;border-radius:4px;background:#ffffff38;overflow:hidden}.bac-needbar div{height:100%;border-radius:4px}.bac-gps{position:absolute;top:154px;right:10px;display:flex;gap:6px;align-items:center;max-width:calc(100% - 20px)}.bac-gps input{width:170px;padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:#101418b3;color:#fff;font-size:14px}.bac-gps input::placeholder{color:#ffffff8c}.bac-navpill{position:absolute;top:196px;right:10px;background:#101418b3;color:#ffd75e;font-weight:600;padding:5px 12px;border-radius:999px;font-size:13px}.bac-toast{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#101418cc;color:#fff;padding:8px 16px;border-radius:999px;font-size:14px;max-width:86%;text-align:center}.bac-joy{position:absolute;left:14px;bottom:14px;width:108px;height:108px;border-radius:50%;background:#ffffff24;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;touch-action:none}.bac-joyknob{width:44px;height:44px;border-radius:50%;background:#ffffff8c}.bac-buttons{position:absolute;right:10px;bottom:12px;display:flex;flex-direction:column;gap:7px;align-items:stretch}.bac-buttons .file-button{min-height:40px}.bac-action{background:#b8781e;color:#fff}.bac-hint{margin:0;font-size:13px;color:#5c564c}.help{background:#fff;border-radius:12px;padding:12px 16px;font-size:14px;color:#2c2c30}.help summary{font-weight:600;cursor:pointer}.help .fine,.fine{font-size:12.5px;color:#6c665c}.title-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#20242c,#35424e 55%,#6a5a40);padding:20px}.title-card{background:#fffffff7;border-radius:16px;padding:28px 26px;max-width:380px;width:100%;display:flex;flex-direction:column;gap:12px;text-align:center}.title-card h1{margin:0;font-size:26px}.title-card .tag{margin:0;font-size:14px;color:#5c564c}.title-card label{font-size:13px;font-weight:600;text-align:left}.title-card input{padding:11px 12px;font-size:16px;border-radius:9px;border:1px solid #c9c2b4;background:#fff}@media (max-width: 600px){.bac-game{height:72vh;min-height:390px}.bac-gps input{width:130px}}.sw-row{display:flex;align-items:center;gap:8px;margin:4px 0}.sw-label{width:52px;text-align:right;font-size:12px;opacity:.8;flex:none}.sw-list{display:flex;gap:6px;flex-wrap:wrap}.sw{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;padding:0}.sw-on{border-color:#ffd75e;box-shadow:0 0 0 2px #ffd75e66}
