@font-face{font-family:Twemoji Country Flags;unicode-range:U+1F1E6-1F1FF,U+1F3F4,U+E0062-E0063,U+E0065,U+E0067,U+E006C,U+E006E,U+E0073-E0074,U+E0077,U+E007F;src:url(https://cdn.jsdelivr.net/npm/country-flag-emoji-polyfill@0.1.8/dist/TwemojiCountryFlags.woff2) format("woff2");font-display:swap}:root{color-scheme:dark;--bg: #0f1115;--panel: #1a1d24;--panel-alt: #22262f;--border: #2b303a;--text: #e8eaed;--muted: #9aa0ab;--accent: #f4a261;--accent-2: #2a9d8f;--danger: #e63946;font-family:Twemoji Country Flags,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button{cursor:pointer;background:var(--accent);color:#1a1200;border:none;border-radius:6px;padding:8px 14px;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}input{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px}a{color:var(--accent)}h1,h2,h3{margin:0 0 12px}.app-shell{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-weight:800;font-size:1.2rem;color:var(--accent)}.topbar nav{display:flex;gap:16px;flex:1}.topbar nav a{color:var(--muted);text-decoration:none;padding:6px 4px}.topbar nav a.active{color:var(--text);border-bottom:2px solid var(--accent)}.account{display:flex;align-items:center;gap:12px}.account .money{color:var(--accent-2);font-weight:700}.content{padding:24px;max-width:1100px;width:100%;margin:0 auto}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.auth-form{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}.auth-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--muted)}.subtitle{color:var(--muted);margin-top:-8px}.switch{font-size:.85rem;color:var(--muted)}.error{background:#e6394626;border:1px solid var(--danger);color:#ffb3ba;padding:8px 12px;border-radius:6px}.banner{background:#2a9d8f26;border:1px solid var(--accent-2);padding:8px 12px;border-radius:6px;margin-bottom:16px}.active-team{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.active-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.driver-line{display:flex;gap:12px;align-items:flex-start}.driver-photo{width:56px;height:56px;border-radius:50%;object-fit:cover}.driver-photo-lg{width:96px;height:96px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 8px}.stat-bar{margin-top:6px}.stat-bar-head{display:flex;justify-content:space-between;gap:8px}.stat-value{font-size:.75rem;color:var(--text);font-variant-numeric:tabular-nums}.stat-label{font-size:.75rem;color:var(--muted)}.stat-track{background:var(--panel-alt);border-radius:4px;height:6px;overflow:hidden}.stat-fill{background:var(--accent-2);height:100%}.owned-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.owned-list li{display:flex;justify-content:space-between;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.owned-list li.active{border-color:var(--accent-2)}.hint{color:var(--muted);margin-bottom:16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.market-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;text-align:center}.market-card .price{color:var(--accent-2);font-weight:700;margin:8px 0}.nickname{color:var(--muted);font-style:italic;margin:0}.section-header{display:flex;justify-content:space-between;align-items:center}.races-table{width:100%;border-collapse:collapse}.races-table th,.races-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.status{padding:2px 8px;border-radius:999px;font-size:.75rem;text-transform:uppercase}.status-scheduled{background:#f4a26133;color:var(--accent)}.status-running{background:#2a9d8f33;color:var(--accent-2)}.status-finished{background:#9aa0ab33;color:var(--muted)}.countdown{color:var(--muted);font-size:.85rem}.class-badge{padding:2px 8px;border-radius:999px;font-size:.75rem;border:1px solid var(--border)}.class-badge.class-citadine{color:#8ecae6;border-color:#8ecae6}.class-badge.class-compacte{color:#90be6d;border-color:#90be6d}.class-badge.class-berline{color:#b8c0cc;border-color:#b8c0cc}.class-badge.class-suv{color:#c9a66b;border-color:#c9a66b}.class-badge.class-sportive{color:var(--accent);border-color:var(--accent)}.class-badge.class-gt{color:#f28482;border-color:#f28482}.class-badge.class-hypercar{color:#c77dff;border-color:#c77dff}.track-wrapper{position:relative;user-select:none;-webkit-user-select:none}.track-zoom-controls{position:absolute;top:12px;right:12px;z-index:2;display:flex;gap:6px}.track-zoom-controls button{padding:4px 10px;font-size:.85rem}.track-svg{width:100%;max-height:480px;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;touch-action:none;cursor:grab}.track-path{fill:none;stroke:var(--border);stroke-width:24;stroke-linejoin:round}.car-marker{transition:transform .12s linear}.car-highlight{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:3 3}.car-label{font-size:18px;font-weight:700;fill:var(--text)}.race-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px}.ranking{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.ranking li{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.ranking li.you{border-color:var(--accent)}.ranking-row{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.you-tag{color:var(--accent);font-size:.75rem}.car-name{color:var(--muted);font-size:.8rem}.ranking-meta{display:flex;gap:10px;align-items:center}.laps-badge{color:var(--muted)}.lap-info{color:var(--muted);font-size:.85rem}.sector-badges{display:flex;gap:3px}.sector-badge{width:8px;height:8px;border-radius:2px;background:var(--border)}.sector-badge.rating-purple{background:#b565f5}.sector-badge.rating-green{background:#2a9d8f}.sector-badge.rating-yellow{background:#f4d35e}span.rating-purple,td.rating-purple{color:#b565f5}span.rating-green,td.rating-green{color:#2a9d8f}span.rating-yellow,td.rating-yellow{color:#f4d35e}.best-lap{color:var(--accent);font-size:.8rem;min-width:128px;display:inline-block;text-align:right}.speed{color:var(--muted);font-size:.85rem;min-width:56px;display:inline-block;text-align:right}.lap-info{min-width:76px;display:inline-block}.finished-tag{color:var(--accent-2);font-size:.75rem}.payout{color:var(--accent-2);font-weight:700}.timing-section{margin-top:16px}.timing-tower-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:12px}.timing-tower{width:100%;min-width:760px;table-layout:fixed;border-collapse:collapse;font-size:.85rem;white-space:nowrap;font-variant-numeric:tabular-nums}.timing-tower th{text-align:left;padding:8px 12px;color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--panel-alt);position:sticky;top:0;overflow:hidden;text-overflow:ellipsis}.timing-tower td{padding:8px 12px;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis}.timing-tower tbody tr:not(.details-row){cursor:pointer}.timing-tower tbody tr:not(.details-row):hover{background:var(--panel-alt)}.timing-tower tr.you{background:#f4a26114}.timing-tower .driver-cell{display:flex;align-items:center;gap:8px;min-width:0}.timing-tower .driver-cell>div{min-width:0;overflow:hidden}.driver-name,.team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-cell{display:flex;align-items:center;gap:2px}.rank-number{min-width:14px}.overtake-badge{display:inline-block;width:22px;font-size:.7rem;font-weight:700}.overtake-badge.up{color:var(--accent-2)}.overtake-badge.down{color:var(--danger)}.team-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.driver-name{font-weight:600}.team-name{color:var(--muted);font-size:.78rem}.timing-tower .details-row td{background:var(--panel-alt);padding:12px}.timing-tower .details-row .driver-details{margin-top:0}.driver-details{width:100%;margin-top:8px;border-collapse:collapse;font-size:.8rem}.driver-details.empty{color:var(--muted);padding:8px 0}.driver-details th,.driver-details td{text-align:center;padding:4px 6px;border-top:1px solid var(--border)}.driver-details th:first-child,.driver-details td:first-child{text-align:left;color:var(--muted)}select,button,input{font-family:inherit}select{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:7px 8px}button.secondary{background:var(--panel-alt);color:var(--text);border:1px solid var(--border)}.muted{color:var(--muted)}.small{font-size:.8rem}.grow{flex:1}.warning{color:#ffb3ba;font-size:.85rem}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs .tab{background:none;color:var(--muted);border-radius:0;border-bottom:2px solid transparent;padding:8px 16px}.tabs .tab.active{color:var(--text);border-bottom-color:var(--accent)}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}.filters .checkbox{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem}.filters-count{margin-left:auto;color:var(--muted);font-size:.85rem}.card-grid .car-card{text-align:left;display:flex;flex-direction:column}.car-photo-card{display:block;width:100%;height:140px;object-fit:contain;background:#fff;border-radius:8px;margin-bottom:8px}.car-card h3{margin:2px 0 6px}.car-card-brand{color:var(--muted);font-size:.85rem}.car-card-stats{margin:8px 0}.car-card button{margin-top:auto}.flag{font-size:1.05em}.data-table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:.9rem}.data-table th,.data-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table th{color:var(--muted);font-weight:600;font-size:.8rem}.price-cell{color:var(--accent-2);font-weight:700;white-space:nowrap}.row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.row-actions button,.install-control button{padding:5px 10px;font-size:.8rem;white-space:nowrap}.install-control{display:flex;gap:6px}.install-control select{max-width:180px}.data-table tr.missing{opacity:.55}.price-was{color:var(--muted);text-decoration:line-through;margin-right:6px;font-weight:400}.tier-badge{padding:1px 6px;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;background:var(--panel-alt);color:var(--muted)}.tier-badge.tier-sport{color:#90be6d}.tier-badge.tier-course{color:var(--accent)}.tier-badge.tier-elite{color:#c77dff}.produced-badge{border:1px solid currentColor}.production-panel{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.submenu-toggle{font-size:.85rem}.submenu-body{margin-top:12px}.production-result{background:var(--panel-alt);border:1px solid var(--accent-2);border-radius:8px;padding:12px;margin-bottom:12px}.production-result-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.production-result-stats{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.9rem;font-weight:600}.stat-up{color:var(--accent-2)}.stat-down{color:var(--danger)}.production-search{display:flex;align-items:center;gap:8px;background:var(--panel-alt);border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin-bottom:10px;color:var(--muted)}.production-search input{flex:1;background:none;border:none;color:var(--text);font-size:.9rem}.production-search input:focus{outline:none}.production-sort{display:flex;align-items:center;gap:6px;color:var(--muted)}.production-cards{display:flex;flex-direction:column;gap:14px}.production-card{display:grid;grid-template-columns:1.1fr 1.3fr 1.1fr .8fr;gap:18px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.production-card-col{min-width:0}.production-card-main h3{margin:0 0 8px;font-size:1.05rem}.production-card-tags{display:flex;flex-wrap:wrap;gap:6px}.production-stat-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px}.production-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.stat-chip{--chip-color: var(--accent-2);display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--chip-color) 15%,var(--panel-alt));border:1px solid var(--chip-color);color:var(--chip-color);border-radius:8px;padding:6px 8px;font-size:.82rem;font-weight:600}.stat-chip.strong{font-weight:800}.production-life-range{font-size:1.2rem;font-weight:700;margin-bottom:6px}.production-life-bar{height:6px;border-radius:4px;background:var(--panel-alt);overflow:hidden;margin-bottom:6px}.production-life-bar div{height:100%;background:var(--accent-2)}.production-card-buy{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.production-price{font-size:1.3rem;font-weight:800;color:var(--accent-2);margin-bottom:6px}.production-card-buy button{width:100%}@media (max-width: 900px){.production-card{grid-template-columns:1fr 1fr}}@media (max-width: 560px){.production-card{grid-template-columns:1fr}}.condition{display:flex;align-items:center;gap:8px;min-width:120px}.condition-track{flex:1;height:6px;border-radius:4px;background:var(--panel-alt);overflow:hidden}.condition-fill{height:100%}.condition-value{font-size:.8rem;font-variant-numeric:tabular-nums;min-width:44px;text-align:right}.condition-good .condition-fill{background:var(--accent-2)}.condition-worn .condition-fill{background:#e9c46a}.condition-critical .condition-fill{background:var(--danger)}.condition-critical .condition-value{color:#ffb3ba}.condition-broken .condition-fill{background:repeating-linear-gradient(45deg,var(--danger) 0 4px,transparent 4px 8px)}.condition-broken .condition-value{color:var(--danger);font-weight:700}.risk-high{color:#ffb3ba;font-weight:600}.car-panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.car-panel.active{border-color:var(--accent-2)}.car-panel-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.car-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px}.car-panel-actions{display:flex;align-items:center;gap:8px}.car-panel-body{display:grid;grid-template-columns:220px 1fr;gap:20px}.slots-table{margin-bottom:0}.active-tag,.not-ready-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:999px}.active-tag{background:#2a9d8f33;color:var(--accent-2)}.not-ready-tag{background:#e6394626;color:#ffb3ba}.car-photo-hero,.car-photo-panel{display:block;width:100%;max-height:220px;object-fit:contain;background:#fff;border-radius:8px;margin-bottom:12px}.car-photo-hero{max-height:180px}.dnf-tag{color:var(--danger);font-size:.75rem;font-weight:700}.timing-tower tr.retired td{opacity:.55}.ranking li.dnf{opacity:.6}.dnf-reason{color:#ffb3ba;font-size:.85rem}.car-marker-retired{opacity:.35}@media (max-width: 760px){.content{padding:16px}.active-team,.car-panel-body{grid-template-columns:1fr}.data-table{display:block;overflow-x:auto}}.brand-logo{object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.brand-logo-fallback{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #8a909b;background:radial-gradient(circle at 35% 30%,#5a606b,#2b303a);color:#d7dbe2;font-weight:800;letter-spacing:.02em;filter:none}.dealer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-bottom:24px}.dealer-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 14px 16px;background:radial-gradient(ellipse at 50% 0%,#262b35 0%,var(--panel) 70%);border:1px solid var(--border);border-radius:12px;color:var(--text);font-weight:400;text-align:center;transition:border-color .15s,transform .15s}.dealer-card:hover{border-color:var(--accent);transform:translateY(-2px)}.dealer-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dealer-name{font-size:1.1rem;font-weight:700;margin-top:4px}.dealer-meta{color:var(--muted);font-size:.8rem}.dealer-platforms{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.back-button{margin-bottom:16px}.showroom-header{display:flex;align-items:center;gap:20px;padding:16px 20px;margin-bottom:16px;background:radial-gradient(ellipse at 0% 50%,#262b35 0%,var(--panel) 60%);border:1px solid var(--border);border-radius:12px}.showroom-header h2{margin:0 0 4px;font-size:1.6rem}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.chip{background:var(--panel-alt);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-weight:500;font-size:.85rem}.chip.active{color:var(--text);border-color:var(--accent)}.infra-panel .car-title{gap:10px}.infra-panel .tier-badge{font-size:.75rem}.infra-panel .condition{max-width:320px;margin:8px 0}.infra-effects{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.85rem;color:var(--muted)}.infra-effects strong{color:var(--accent-2)}.coming-soon{background:var(--panel);border:1px dashed var(--border);border-radius:12px;padding:24px}
