:root{--bg: #101318;--panel: #1a2029;--panel2: #232b37;--edge: #33404f;--text: #e8edf3;--dim: #8fa0b3;--accent: #ff6b35;--accent2: #ffc857;--good: #4caf7d;--bad: #e05252;--blue: #5aa9e6}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}#app{position:relative;width:100%;height:100%}canvas.game{position:absolute;inset:0;width:100%;height:100%;display:block}.topbar{position:absolute;top:0;left:0;right:0;height:46px;z-index:30;display:flex;align-items:center;gap:10px;padding:0 12px;background:linear-gradient(180deg,#0a0d12f2,#0a0d12bf);border-bottom:1px solid var(--edge)}.topbar .logo{font-weight:800;letter-spacing:1px;color:var(--accent);text-transform:uppercase;font-size:15px}.topbar .stat{background:var(--panel);border:1px solid var(--edge);border-radius:6px;padding:4px 10px;font-size:13px}.topbar .stat b{color:var(--accent2)}.topbar .spacer{flex:1}.btn{background:var(--panel2);color:var(--text);border:1px solid var(--edge);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px;font-weight:600}.btn:hover{border-color:var(--accent);color:var(--accent2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#14100c}.btn.primary:hover{filter:brightness(1.1);color:#14100c}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:3px 8px;font-size:12px}.screen{position:absolute;inset:46px 0 0;overflow:hidden}.menu-wrap{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(1200px 500px at 50% -10%,rgba(255,107,53,.16),transparent),repeating-linear-gradient(45deg,#12161d 0 40px,#141922 40px 80px)}.menu-wrap h1{font-size:56px;letter-spacing:4px;text-transform:uppercase;background:linear-gradient(180deg,#ffd9c4,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.menu-wrap .sub{color:var(--dim);max-width:520px;text-align:center;line-height:1.5}.menu-card{background:var(--panel);border:1px solid var(--edge);border-radius:10px;padding:22px 26px;width:380px;display:flex;flex-direction:column;gap:12px}.menu-card input{background:var(--bg);border:1px solid var(--edge);color:var(--text);border-radius:6px;padding:8px 10px;font-size:14px}.menu-features{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.menu-features span{background:var(--panel);border:1px solid var(--edge);color:var(--dim);border-radius:20px;padding:4px 12px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:10px;padding:14px}.panel h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--dim);margin-bottom:10px}.garage-layout{display:grid;grid-template-columns:340px 1fr 300px;gap:12px;height:100%;padding:12px;overflow:hidden}.col{display:flex;flex-direction:column;gap:12px;overflow-y:auto}.slot-row{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--edge);border-radius:7px;margin-bottom:6px;background:var(--panel2);cursor:pointer}.slot-row:hover{border-color:var(--accent)}.slot-row .slot-name{width:108px;color:var(--dim);font-size:12px;text-transform:uppercase}.slot-row .slot-part{flex:1;font-size:13px}.slot-row .slot-part.empty{color:#5b6a7c;font-style:italic}.badge{font-size:10px;border-radius:4px;padding:1px 6px;border:1px solid var(--edge);color:var(--dim)}.badge.rusty{color:#c98a4b;border-color:#c98a4b}.badge.worn{color:#b3a15a;border-color:#b3a15a}.badge.ok{color:var(--good);border-color:var(--good)}.inv-row{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--edge);border-radius:7px;margin-bottom:6px;background:var(--panel2)}.inv-row .inv-name{flex:1;font-size:13px}.inv-row .inv-meta{color:var(--dim);font-size:11px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-cell{background:var(--panel2);border:1px solid var(--edge);border-radius:7px;padding:8px 10px}.stat-cell .k{color:var(--dim);font-size:11px;text-transform:uppercase}.stat-cell .v{font-size:18px;font-weight:700;color:var(--accent2)}.stat-cell .v small{font-size:11px;color:var(--dim);font-weight:400}.slider-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.slider-row label{width:110px;color:var(--dim);font-size:12px}.slider-row input[type=range]{flex:1;accent-color:var(--accent)}.slider-row .val{width:52px;text-align:right;font-size:12px;color:var(--accent2)}.hud{position:absolute;z-index:20;pointer-events:none}.hud>*{pointer-events:auto}.hud-race{right:16px;bottom:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.speedo{font-size:44px;font-weight:800;line-height:1;text-shadow:0 2px 12px rgba(0,0,0,.8)}.speedo small{font-size:14px;color:var(--dim);font-weight:400}.race-pill{background:#0a0d12cc;border:1px solid var(--edge);border-radius:8px;padding:6px 12px;font-size:13px}.tires{display:flex;gap:5px}.tire-bar{width:8px;height:54px;background:var(--panel);border:1px solid var(--edge);border-radius:3px;position:relative;overflow:hidden}.tire-bar .fill{position:absolute;bottom:0;left:0;right:0;background:var(--good)}.tire-bar.hot .fill{background:var(--accent)}.tire-bar.over .fill{background:var(--bad)}.minimap{background:#0a0d12cc;border:1px solid var(--edge);border-radius:8px}.overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#080a0eb8;backdrop-filter:blur(3px)}.overlay .card{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:26px 30px;min-width:420px;max-width:640px;max-height:82vh;overflow-y:auto}.overlay h2{margin-bottom:14px;letter-spacing:1px}.countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:35;pointer-events:none;font-size:130px;font-weight:900;color:var(--accent2);text-shadow:0 0 40px rgba(255,200,87,.5)}.toast{position:absolute;top:58px;left:50%;transform:translate(-50%);z-index:60;background:var(--panel);border:1px solid var(--accent);border-radius:8px;padding:10px 18px;font-size:14px;box-shadow:0 8px 30px #00000080}.progress-outer{height:10px;background:var(--bg);border:1px solid var(--edge);border-radius:5px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0%;transition:width .1s linear}.stall-card{border:1px solid var(--edge);border-radius:9px;padding:12px;margin-bottom:10px;background:var(--panel2)}.stall-card .vendor{font-weight:700;color:var(--accent2);margin-bottom:8px;font-size:15px}.item-card{display:flex;gap:10px;align-items:center;border:1px solid var(--edge);border-radius:7px;padding:8px;margin-bottom:6px;background:var(--panel)}.item-card .grow{flex:1}.item-card .price{color:var(--accent2);font-weight:700}.item-card .taken{color:#5b6a7c;text-decoration:line-through}.patience{height:5px;background:var(--bg);border-radius:3px;margin-top:5px;overflow:hidden}.patience .fill{height:100%;background:var(--good)}.extractor-card{border:1px solid var(--edge);border-radius:9px;padding:12px;margin-bottom:10px;background:var(--panel2)}.mat-row{display:flex;align-items:center;gap:8px;font-size:13px;margin:3px 0}.mat-row .dot{width:10px;height:10px;border-radius:50%}.results-table{width:100%;border-collapse:collapse;margin:12px 0}.results-table td{padding:6px 8px;border-bottom:1px solid var(--edge);font-size:13px}.results-table tr.me td{color:var(--accent2);font-weight:700}.tab-row{display:flex;gap:6px;margin-bottom:10px}.tab-row .btn.active{background:var(--accent);color:#14100c;border-color:var(--accent)}.muted{color:var(--dim);font-size:12px}.right{text-align:right}.scroll{overflow-y:auto}
