:root{--bg: #0d1117;--bg-card: #161b22;--bg-card-hover: #1c2333;--bg-surface: #21262d;--border: rgba(255,255,255,.08);--border-bright: rgba(255,255,255,.15);--text: #e6edf3;--text-dim: rgba(230,237,243,.55);--text-muted: rgba(230,237,243,.35);--accent: #58a6ff;--accent-glow: rgba(88,166,255,.2);--green: #3fb950;--green-glow: rgba(63,185,80,.2);--red: #f85149;--orange: #d29922;--purple: #bc8cff;--pink: #f778ba;--gold: #ffd60a;--power-color: #f85149;--handling-color: #3fb950;--speed-color: #58a6ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.top-nav{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nav-brand{display:flex;align-items:center;gap:.5rem}.nav-logo{font-size:1.5rem}.nav-title{font-weight:800;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;background:linear-gradient(135deg,var(--accent),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-tabs{display:flex;gap:.25rem}.nav-tab{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:none;background:transparent;color:var(--text-dim);font-size:.85rem;font-weight:600;cursor:pointer;border-radius:.5rem;transition:all .2s}.nav-tab:hover{background:var(--bg-surface);color:var(--text)}.nav-tab.active{background:var(--accent-glow);color:var(--accent)}.nav-tab-icon{font-size:1rem}.nav-coins{display:flex;align-items:center;gap:.4rem;padding:.4rem .8rem;background:var(--bg-surface);border-radius:2rem;border:1px solid var(--border-bright)}.coin-icon{font-size:1.1rem}.coin-amount{font-weight:700;font-size:.95rem;color:var(--gold)}.main-content{flex:1;padding:1.5rem;max-width:1100px;margin:0 auto;width:100%}.screen{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.screen-header{margin-bottom:1.5rem}.screen-header h2{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.subtitle{color:var(--text-dim);font-size:.9rem;margin-top:.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.2rem;border:1px solid var(--border);border-radius:.5rem;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s;background:var(--bg-surface);color:var(--text)}.btn:hover{border-color:var(--border-bright);background:var(--bg-card-hover)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#000;border-color:var(--accent)}.btn-primary:hover{background:#79bbff}.btn-accent{background:var(--green);color:#000;border-color:var(--green)}.btn-accent:hover{background:#56d364}.btn-buy{background:var(--gold);color:#000;border-color:var(--gold);font-weight:700}.btn-buy:hover{background:#ffe066}.btn-race{background:linear-gradient(135deg,var(--accent),var(--purple));color:#fff;border:none;font-weight:700;font-size:.95rem;padding:.7rem 1.5rem}.btn-race:hover{filter:brightness(1.15)}.btn-race:disabled{opacity:.5}.btn-secondary{background:transparent;border-color:var(--border-bright)}.btn-sm{padding:.35rem .7rem;font-size:.8rem}.car-visual-wrap{display:flex;flex-direction:column;align-items:center;gap:.5rem}.car-svg{width:180px;height:90px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}.car-stats-inline{width:100%;display:flex;flex-direction:column;gap:.3rem}.stat-bar{display:flex;align-items:center;gap:.5rem}.stat-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;width:28px;color:var(--text-dim)}.stat-track{flex:1;height:6px;background:var(--bg-surface);border-radius:3px;overflow:hidden}.stat-fill{height:100%;border-radius:3px;transition:width .5s ease}.stat-fill.power{background:var(--power-color)}.stat-fill.handling{background:var(--handling-color)}.stat-fill.speed{background:var(--speed-color)}.stat-val{font-size:.7rem;font-weight:700;width:24px;text-align:right;color:var(--text-dim)}.selected-car-display{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;margin-bottom:1.5rem}.selected-car-visual{transform:scale(1.1)}.selected-car-name{font-size:1.3rem;font-weight:800}.selected-car-actions{display:flex;gap:.75rem}.car-grid{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:2rem}.car-card{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem 1rem;background:var(--bg-card);border:2px solid var(--border);border-radius:.75rem;cursor:pointer;transition:all .2s;color:var(--text)}.car-card:hover{border-color:var(--border-bright)}.car-card.selected{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.car-card-name{font-size:.8rem;font-weight:600}.section-divider{margin:1.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.section-divider h3{font-size:1.1rem;font-weight:700}.dealer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.dealer-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;transition:border-color .2s}.dealer-card:hover{border-color:var(--border-bright)}.dealer-info{text-align:center}.dealer-info h4{font-weight:700;margin-bottom:.25rem}.dealer-price{color:var(--gold);font-weight:700;font-size:.95rem}.empty-msg{color:var(--text-muted);font-style:italic;padding:1rem}.customize-preview{display:flex;justify-content:center;padding:1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;margin-bottom:1.5rem}.customize-section{margin-bottom:1.5rem}.customize-section h3{font-size:1rem;font-weight:700;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.paint-grid{display:flex;flex-wrap:wrap;gap:.5rem}.paint-swatch{width:40px;height:40px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .2s;box-shadow:0 2px 6px #0000004d}.paint-swatch:hover{transform:scale(1.15)}.paint-swatch.active{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.parts-list{display:flex;flex-direction:column;gap:.5rem}.part-card{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;transition:all .2s}.part-card.equipped{border-color:var(--green);background:#3fb9500d}.part-name{font-weight:600;font-size:.9rem}.part-stats{display:flex;gap:.5rem;margin-top:.25rem;flex-wrap:wrap}.ps{font-size:.7rem;font-weight:700;padding:.15rem .4rem;border-radius:.25rem;background:var(--bg-surface)}.ps.power{color:var(--power-color)}.ps.handling{color:var(--handling-color)}.ps.speed{color:var(--speed-color)}.equipped-badge{font-size:.75rem;font-weight:700;color:var(--green);padding:.3rem .6rem;background:var(--green-glow);border-radius:.25rem}.shop-section{margin-bottom:2rem}.shop-section h3{font-size:1rem;font-weight:700;margin-bottom:.75rem}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.shop-card{padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;display:flex;flex-direction:column;gap:.5rem;transition:border-color .2s}.shop-card:hover{border-color:var(--border-bright)}.shop-card.owned{opacity:.6}.shop-card-header{display:flex;align-items:center;justify-content:space-between}.shop-part-name{font-weight:700;font-size:.9rem}.owned-badge{font-size:.7rem;font-weight:700;color:var(--green);background:var(--green-glow);padding:.15rem .5rem;border-radius:.25rem}.shop-part-stats{display:flex;gap:.4rem;flex-wrap:wrap}.race-car-preview{display:flex;align-items:center;gap:2rem;padding:1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;margin-bottom:1.5rem}.total-score{display:flex;flex-direction:column;align-items:center}.total-label{font-size:.75rem;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.total-value{font-size:2.5rem;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.race-progress{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;background:var(--accent-glow);border:1px solid var(--accent);border-radius:.75rem;margin-bottom:1.5rem}.race-spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.race-progress p{font-weight:600;color:var(--accent)}.tracks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.track-card{padding:1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s}.track-card:hover{border-color:var(--border-bright)}.track-header{display:flex;align-items:center;justify-content:space-between}.track-header h4{font-size:1rem;font-weight:700}.track-difficulty{display:flex;gap:.25rem}.diff-dot{width:8px;height:8px;border-radius:50%;background:var(--bg-surface)}.diff-dot.active{background:var(--orange)}.track-desc{font-size:.85rem;color:var(--text-dim);line-height:1.4}.track-info{display:flex;justify-content:space-between;align-items:center}.track-reward{font-weight:700;font-size:.9rem}.track-chance{font-size:.75rem;font-weight:700;padding:.2rem .5rem;border-radius:.25rem}.track-chance.good{color:var(--green);background:var(--green-glow)}.track-chance.risky{color:var(--red);background:#f8514926}.result-screen{text-align:center}.result-banner{padding:2.5rem 1.5rem;border-radius:1rem;margin-bottom:1.5rem}.result-banner.win{background:linear-gradient(135deg,#ffd60a26,#3fb95026);border:1px solid rgba(255,214,10,.3)}.result-banner.podium{background:linear-gradient(135deg,var(--accent-glow),rgba(188,140,255,.15));border:1px solid rgba(88,166,255,.3)}.result-banner.lose{background:var(--bg-card);border:1px solid var(--border)}.result-position{font-size:4rem;font-weight:900;line-height:1;margin-bottom:.5rem}.result-banner.win .result-position{color:var(--gold)}.result-banner.podium .result-position{color:var(--accent)}.result-banner.lose .result-position{color:var(--text-dim)}.result-title{font-size:1.5rem;font-weight:800;margin-bottom:.25rem}.result-track{color:var(--text-dim);font-size:.9rem}.result-details{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.result-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.result-stat-label{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.result-stat-value{font-size:1.5rem;font-weight:800}.result-stat-value.reward{color:var(--gold)}.result-actions{display:flex;justify-content:center;gap:.75rem}@media(max-width:700px){.top-nav{flex-wrap:wrap;gap:.5rem}.nav-tabs{order:3;width:100%;justify-content:center}.nav-tab-label{display:none}.nav-tab{padding:.5rem .75rem}.dealer-grid,.tracks-grid,.shop-grid{grid-template-columns:1fr}.race-car-preview{flex-direction:column;text-align:center}}
