:root{color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#101418;color:#e8ecf1;overflow:hidden;user-select:none}button,input{font:inherit}.game-root{position:fixed;inset:0;overflow:hidden;background:#0d0f14}.splash{height:100%;display:grid;place-items:center;align-content:center;gap:8px;background:#101418}.splash-title{font-size:40px;letter-spacing:2px}.splash-sub{color:#8aa}.menu-screen,.auth-screen{height:100%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#1d262c,#0b0e11 70%)}.menu-card,.auth-card{background:#141a1eeb;border:1px solid #2c3842;border-radius:14px;padding:28px 26px;width:min(420px,92vw);text-align:center;box-shadow:0 12px 40px #00000080}.title{margin:0 0 6px;font-size:34px}.subtitle{color:#9fb;margin:0 0 18px}.menu-actions{display:grid;gap:10px;margin:18px 0}.menu-foot{font-size:12px;color:#7c8a94;display:grid;gap:4px;margin-top:14px}.dim{color:#76838d}.menu-desktop{margin-top:16px;border-top:1px solid #2c3842;padding-top:12px;text-align:left}.menu-desktop-title{font-weight:700;font-size:14px;color:#e8ecf1;margin-bottom:6px}.menu-desktop-sub{font-size:12.5px;color:#aab8c2;margin:0 0 8px;line-height:1.5}.menu-desktop-wins{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:7px;font-size:12px;color:#c8d3d9;line-height:1.45}.menu-desktop-wins strong{color:#e8ecf1}.menu-desktop-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}a.btn{text-decoration:none;display:inline-block}.auth-card input{width:100%;margin:6px 0;padding:9px 10px;border-radius:8px;border:1px solid #33424d;background:#12181d;color:#e8ecf1}.auth-actions{display:flex;gap:8px;margin-top:8px}.auth-card .auth-actions .btn{flex:1}.auth-logo{font-size:30px;font-weight:700}.auth-sub{color:#9fb;margin-top:4px}.err{color:#ff6b6b;font-size:13px}.btn{padding:9px 14px;border-radius:9px;border:1px solid #3a4a56;background:#22303a;color:#e8ecf1;cursor:pointer;transition:background .12s}.btn:hover{background:#2c3d49}.btn.primary{background:#1f7a4d;border-color:#2f9e65}.btn.primary:hover{background:#23905a}.btn.small{padding:3px 8px;font-size:12px;background:transparent;border-color:#33424d}.btn:disabled{opacity:.45;cursor:not-allowed}.link{background:none;border:none;color:#7fc4e8;cursor:pointer;padding:0;font-size:13px}.row-btns{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.hud{position:absolute;inset:0;pointer-events:none;z-index:5}.hud-top-left{position:absolute;top:14px;left:14px;display:grid;gap:4px}.money{font-weight:700;font-size:20px;background:#0f1418b8;padding:5px 12px;border-radius:10px;border:1px solid #22303a;width:fit-content}.clock{font-size:13px;background:#0f1418b3;padding:3px 10px;border-radius:9px;width:fit-content;color:#cfe0ea}.hud-top-right{position:absolute;top:14px;right:14px;display:grid;gap:5px;min-width:150px}.need{display:flex;align-items:center;gap:7px;background:#0f1418b3;border-radius:8px;padding:3px 9px}.need-track{background:#2a343c;height:8px;flex:1;border-radius:4px;overflow:hidden}.need-fill{height:100%;border-radius:4px}.prompt{position:absolute;bottom:22%;left:50%;transform:translate(-50%);background:#141c22e6;border:1px solid #4d5f6c;padding:8px 16px;border-radius:12px;font-size:15px;color:#d9e7f0}.car-cluster{position:absolute;bottom:26px;left:50%;transform:translate(-50%);background:#0c1115d1;border:1px solid #2c3a45;border-radius:14px;padding:12px 18px;min-width:280px;text-align:center}.speeds{display:flex;align-items:baseline;justify-content:center;gap:6px}.speed{font-size:44px;font-weight:800;font-variant-numeric:tabular-nums}.unit{color:#8aa}.row{display:flex;justify-content:space-between;font-size:13px;color:#b9c8d3;margin-top:4px}.bars{display:flex;gap:10px;justify-content:center;margin-top:6px}.bars span{display:flex;gap:5px;align-items:center;font-size:12px}.bar{width:70px;height:8px;background:#2a343c;border-radius:4px;overflow:hidden}.engine{margin-top:8px;font-size:12px;letter-spacing:2px;color:#9aa}.engine.on{color:#7ce8a8}.hint{font-size:11px;color:#648;margin-top:6px}.fps{position:absolute;bottom:10px;right:14px;font-size:12px;color:#7aa;background:#0006;padding:2px 8px;border-radius:6px}.hud-buttons{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:grid;gap:8px;pointer-events:auto}.hud-buttons button{width:42px;height:42px;border-radius:10px;background:#141c22bf;border:1px solid #33424d;color:#e8ecf1;font-size:17px;cursor:pointer}.hud-buttons button:hover{background:#2a3a45}.crosshair{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:#ffffffe6;z-index:4;pointer-events:none;box-shadow:0 0 4px #000c}.toast{position:absolute;top:74px;left:50%;transform:translate(-50%);background:#182026f2;border:1px solid #3b4b59;padding:8px 16px;border-radius:10px;font-size:14px;animation:fadein .18s ease;pointer-events:auto}.toast.good{border-color:#2f9e65;color:#a8f0c5}.toast.bad{border-color:#d05454;color:#ffb3b3}@keyframes fadein{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1}}.panel-backdrop{position:absolute;inset:0;z-index:6;display:grid;place-items:center;background:#06090b73;overflow:auto;padding:20px}.panel{background:#141b21;border:1px solid #2c3a45;border-radius:14px;width:min(680px,94vw);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 14px 50px #0009}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #22303a}.panel-head h2{margin:0;font-size:19px}.panel-body{padding:16px 18px;overflow:auto}.inv-grid,.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:8px}.item-card{background:#1a232a;border:1px solid #2a3a45;border-radius:10px;padding:10px}.item-name{font-weight:600}.qty{color:#9db0bd;font-size:13px}.map-canvas{width:min(420px,80vw);height:min(420px,80vw);border-radius:10px;border:1px solid #2c3a45;display:block;margin:8px auto}.area-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.tab{padding:5px 10px;border-radius:8px;border:1px solid #33424d;background:#1a232a;color:#c8d6df;cursor:pointer}.tab.on{background:#1f7a4d;color:#fff;border-color:#2f9e65}.parts-list{display:grid;gap:6px}.part-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#182127;border:1px solid #23313c;border-radius:9px;padding:8px 10px}.part-row.installed{border-color:#2f6b4a}.ch{font-size:12px;color:#ff9d7a;text-transform:uppercase}.ch.ok{color:#7ce8a8}.diagnosis{background:#171d22;border:1px solid #2c3a45;border-radius:8px;padding:8px 12px;font-size:13px;color:#ffcc9a;margin-bottom:10px}.job-card{background:#172026;border:1px solid #26343f;border-radius:10px;padding:12px;margin-bottom:10px}.job-title{display:flex;justify-content:space-between}.job-desc{font-size:13px;color:#b7c7d2;margin:4px 0}.dialogue-portrait{font-size:42px;margin-bottom:6px}.dialogue-line{font-size:16px;font-style:italic;color:#d4e2ec;margin-bottom:12px}.tune-row{display:flex;align-items:center;gap:10px;margin:8px 0}.tune-row .dim{flex:0 0 130px}.tune-row input[type=range]{flex:1}.check{display:block;margin:8px 0;color:#c8d6df}.footnote{margin-top:12px}code{background:#0d1217;padding:1px 5px;border-radius:5px}h4{margin:16px 0 8px;color:#cfe0ea}
