*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--car-width:80px;--track-height:56px;--color-bg:#0f0f13;--color-surface:#1a1a24;--color-surface-2:#22222f;--color-border:#2e2e3e;--color-primary:#6c63ff;--color-primary-hover:#5a52e0;--color-danger:#ff4d4d;--color-danger-hover:#e03e3e;--color-success:#4caf50;--color-text:#e8e8f0;--color-text-muted:#7a7a99;--radius:8px;--font:"Segoe UI", system-ui, sans-serif}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font);font-size:14px;line-height:1.5}button{cursor:pointer;border-radius:var(--radius);border:none;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,opacity .15s}button:disabled{opacity:.4;cursor:not-allowed}input[type=text],input[type=color]{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:6px 10px;font-family:inherit;font-size:13px}input[type=color]{cursor:pointer;width:40px;height:32px;padding:2px 4px}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app{flex-direction:column;min-height:100%;display:flex}.view{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px 16px}.view__title{color:var(--color-text);margin-bottom:20px;font-size:22px;font-weight:700}.nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:24px;padding:12px 24px;display:flex}.nav__logo{color:var(--color-primary);letter-spacing:.5px;font-size:18px;font-weight:800}.nav__links{gap:4px;display:flex}.nav__link{border-radius:var(--radius);color:var(--color-text-muted);padding:6px 16px;font-weight:600;transition:background .15s,color .15s}.nav__link:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}.nav__link--active{background:var(--color-surface-2);color:var(--color-primary)}.nav__link--disabled{opacity:.4;pointer-events:none;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-border)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn--ghost{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.btn--start{background:var(--color-success);color:#fff;min-width:32px}.btn--stop{background:var(--color-danger);color:#fff;min-width:32px}.car-form{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.car-form__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.car-form__row input[type=text]{flex:1;min-width:140px}.race-controls{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.garage-section__page{color:var(--color-text-muted);margin-bottom:12px;font-size:13px}.garage-section__empty{color:var(--color-text-muted);text-align:center;padding:32px 0;font-style:italic}.car-list{flex-direction:column;gap:8px;list-style:none;display:flex}.car-track{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:12px;padding:10px 12px;display:flex;overflow:hidden}.car-track__lane{flex:1;min-width:0}.car-track__info{margin-bottom:4px}.car-track__name{color:var(--color-text);font-size:13px;font-weight:600}.car-track--broken{border-color:var(--color-danger)}.car-track__broken{color:var(--color-danger);text-transform:uppercase;letter-spacing:.4px;margin-left:8px;font-size:11px;font-weight:600}.car-track__road{height:var(--track-height);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:4px;align-items:center;display:flex;position:relative;overflow:hidden}.car-track__car{width:var(--car-width);flex-shrink:0;align-items:center;display:flex;position:absolute;left:0}.car-track__finish{font-size:20px;line-height:1;position:absolute;right:4px}.car-controls{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.car-controls__engine,.car-controls__manage{gap:4px;display:flex}.pagination{justify-content:center;align-items:center;gap:12px;margin-top:20px;display:flex}.pagination__info{color:var(--color-text-muted);text-align:center;min-width:64px;font-size:13px}.winners-view__empty{color:var(--color-text-muted);text-align:center;padding:32px 0;font-style:italic}.winners-table{border-collapse:collapse;width:100%;margin-bottom:4px}.winners-table__th{text-align:left;background:var(--color-surface);border-bottom:2px solid var(--color-border);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);padding:10px 12px;font-size:12px;font-weight:700}.winners-table__th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.winners-table__th--sortable:hover{color:var(--color-text)}.sort-indicator{margin-left:4px;font-size:11px}.sort-indicator--inactive{opacity:.4}.winners-row td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:10px 12px}.winners-row:hover td{background:var(--color-surface)}.winners-row__name{font-weight:600}.winners-row__time{font-variant-numeric:tabular-nums}.winner-banner-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.winner-banner{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:16px;padding:40px 60px;box-shadow:0 24px 64px #00000080}.winner-banner__title{color:var(--color-primary);margin-bottom:12px;font-size:36px;font-weight:800}.winner-banner__name{color:var(--color-text);margin-bottom:8px;font-size:22px;font-weight:600}.winner-banner__time{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-bottom:28px;font-size:16px}@media (width<=600px){.car-track{flex-direction:column;align-items:stretch}.car-controls{flex-flow:wrap}.car-controls__engine,.car-controls__manage{flex:1}}@keyframes drive{0%{transform:translate(0)}to{transform:translateX(calc(100% - var(--car-width)))}}
