:root{font-family:Montserrat,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.4;font-weight:400;color:#f5f7fa;background:radial-gradient(circle at top left,#253c78,#121826 65%);height:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:transparent}#root{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit}.app-shell{flex:1;display:flex;flex-direction:row;gap:16px;padding:20px;max-width:1280px;margin:0 auto}.panel{background:#141c2ee0;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px 20px;box-shadow:0 10px 40px #050c2459}.track-panel{flex:1;display:flex;flex-direction:column;gap:12px}.sidebar-panel{width:320px;display:flex;flex-direction:column;gap:16px}.power-feed{display:flex;flex-direction:column;gap:10px}.power-feed__list{display:flex;flex-direction:column;gap:6px}.power-feed__item{display:flex;gap:10px;font-size:13px;border-radius:10px;background:#0c101cbf;padding:6px 10px}.power-feed__time{opacity:.6;min-width:62px;font-variant-numeric:tabular-nums}.leaderboard{display:flex;flex-direction:column;gap:12px}.leaderboard--final{border:1px solid rgba(255,215,0,.35);box-shadow:0 0 25px #ffd70040}.leaderboard__header{display:flex;justify-content:space-between;align-items:baseline}.leaderboard__list{display:flex;flex-direction:column;gap:6px}.leaderboard__row{display:grid;grid-template-columns:28px 1fr 70px;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:#0a0f1aad;border:1px solid rgba(255,255,255,.06)}.leaderboard__row--highlight{border-color:#ffffff59;box-shadow:0 0 8px #ffffff59,0 0 18px #fff3}.leaderboard__rank{font-weight:700;font-size:16px;opacity:.85}.leaderboard__info{display:flex;flex-direction:column;gap:2px}.leaderboard__name{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}.leaderboard__status{font-size:11px;opacity:.55;letter-spacing:.02em}.leaderboard__trophy{font-size:16px}.leaderboard__trophy--1{filter:drop-shadow(0 0 6px rgba(255,215,0,.6))}.leaderboard__trophy--2{filter:drop-shadow(0 0 6px rgba(148,163,184,.55))}.leaderboard__trophy--3{filter:drop-shadow(0 0 6px rgba(251,146,60,.55))}.leaderboard__points{font-weight:600;font-size:12px;text-align:right}.token-panel{display:flex;flex-direction:column;gap:12px}.token-panel__header{display:flex;justify-content:space-between;align-items:center}.token-panel__hint{font-size:12px;opacity:.6}.token-panel__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.post-stage-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:40}.post-stage-overlay__inner{padding:36px 56px;border-radius:20px;background:#050a19e0;border:1px solid rgba(255,255,255,.15);box-shadow:0 25px 55px #05081499,inset 0 0 30px #ffffff0d;text-align:center;min-width:420px}.post-stage-overlay--waiting_animation .post-stage-overlay__inner,.post-stage-overlay--animation .post-stage-overlay__inner{background:#0a101ecc;border-style:dashed}.post-stage-overlay__text{font-size:20px;font-weight:600;margin:0}.countdown-lights{display:flex;gap:22px;margin-bottom:18px;justify-content:center}.countdown-light{width:58px;height:58px;border-radius:50%;background:#ffffff14;box-shadow:inset 0 0 15px #000000b3;border:3px solid rgba(255,255,255,.08)}.countdown-light--active{background:#f87171;box-shadow:0 0 24px #f87171d9,inset 0 0 14px #550000e6;border-color:#f8717199}.countdown-light--go{background:#4ade80;box-shadow:0 0 24px #4ade80d9,inset 0 0 14px #003c16e6;border-color:#4ade80a6}.countdown-hint{margin:0;opacity:.9;font-size:18px;font-weight:600;letter-spacing:.04em}.admin-race-controls{margin-top:8px;display:flex;flex-direction:column;gap:8px}.admin-race-controls__title{font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.08em}.admin-race-controls__status{margin:0;font-size:13px;opacity:.75}.admin-race-controls__actions{display:flex;gap:10px;flex-wrap:wrap}.admin-race-controls__actions button{flex:1;min-width:170px}.token-button{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:#12182de6;color:#eaf1ff;font-weight:600;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.token-button:hover:not(:disabled){border-color:#775cf7e6;background:#775cf738;transform:translateY(-1px)}.token-button:disabled{opacity:.45;cursor:not-allowed}.token-button--active{border-color:#f9a8d4e6;background:#f9a8d42e}.token-button__icon{width:40px;height:40px;border-radius:12px;background:#ffffff1f;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;letter-spacing:.05em;text-transform:uppercase}.token-button__icon--double{background:radial-gradient(circle at 30% 30%,#c084fc,#7c3aed);color:#fff}.token-button__icon--sabotage{background:radial-gradient(circle at 30% 20%,#fda4af,#fb7185 55%,#ef4444);color:#fff5f7;font-size:12px}.token-button__icon--block{background:radial-gradient(circle at 30% 20%,#fde68a,#fbbf24 55%,#f97316);color:#2b1100;font-size:11px;letter-spacing:.12em}.token-button__icon--ghost{background:radial-gradient(circle at 30% 20%,#bae6fd,#7dd3fc,#38bdf8);font-size:20px;color:#082f49}.token-button__text{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1}.token-button__label{font-size:13px;font-weight:600;text-align:left}.token-button__count{background:#ffffff1f;border-radius:999px;padding:2px 8px;font-size:12px}.token-panel__targets{border-top:1px solid rgba(255,255,255,.08);padding-top:12px;font-size:14px;display:flex;flex-direction:column;gap:10px}.token-panel__target-grid{display:flex;flex-wrap:wrap;gap:8px}.token-target{border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#0f1928e6;color:#fff;padding:6px 12px;cursor:pointer;font-weight:500;transition:border-color .18s ease,transform .18s ease}.token-target:hover{border-color:#775cf7e6;transform:translateY(-1px)}.gameover-panel{display:flex;flex-direction:column;gap:12px}.gameover-panel__table{display:flex;flex-direction:column;gap:6px}.gameover-panel__row{display:grid;grid-template-columns:28px 1fr 70px 70px;gap:8px;align-items:center;background:#0b101ccc;border-radius:12px;padding:6px 10px}.gameover-panel__rank{font-weight:700;font-size:16px}.gameover-panel__name{font-weight:600}.gameover-panel__miles,.gameover-panel__points{text-align:right;opacity:.8}.results-banner{display:flex;flex-direction:column;gap:10px}.results-banner__list{display:flex;flex-direction:column;gap:6px}.results-banner__row{display:grid;grid-template-columns:32px 1fr 100px 40px;align-items:center;gap:8px;background:#0d121ecc;border-radius:12px;padding:6px 10px}.results-banner__status{font-size:18px}.results-banner__status.ok{color:#34d399}.results-banner__status.ko{color:#f87171}.results-banner__name{font-weight:600}.results-banner__points{font-size:13px;opacity:.8}.results-banner__badge{background:#ffffff2e;border-radius:999px;padding:2px 6px;font-size:11px;text-align:center}.restart-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:#0b111ed9;border:1px solid rgba(255,255,255,.08)}.restart-panel__content h3{margin:0}.restart-panel__content p{margin:4px 0 0;opacity:.75}.restart-panel__button{white-space:nowrap}.restart-panel__hint{margin:0;opacity:.6}.question-panel{display:flex;flex-direction:column;gap:12px}.question-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.question-panel__subtitle{font-size:13px;letter-spacing:.05em;text-transform:uppercase;opacity:.6}.question-panel__title{margin:4px 0 0;font-size:20px;line-height:1.2}.question-panel__timer{position:relative;width:160px;height:8px;background:#ffffff14;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.question-panel__timer-bar{position:absolute;left:0;top:0;bottom:0;width:100%;transform-origin:left center;background:linear-gradient(135deg,#4c8bf5,#775cf7);transition:transform .1s linear}.question-panel__choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.choice-button{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#0f1423cc;color:#e8f0ff;font-size:15px;font-weight:500;cursor:pointer;transition:border-color .18s ease,transform .18s ease,background .18s ease}.choice-button:hover:not(:disabled){border-color:#775cf7b3;transform:translateY(-1px);background:#775cf71f}.choice-button:disabled{opacity:.6;cursor:not-allowed}.choice-button--selected{border-color:#775cf7e6;background:#775cf72e}.choice-button--correct{border-color:#48bb78e6;background:#48bb782e;box-shadow:0 0 14px #48bb7859}.choice-button--incorrect{border-color:#f87171cc;background:#f871711a;opacity:.8}.choice-button__index{width:28px;height:28px;border-radius:8px;background:#ffffff1f;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.button-primary{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:12px;background:linear-gradient(135deg,#4c8bf5,#775cf7);color:#fff;font-weight:600;padding:12px 18px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.button-primary:disabled{cursor:not-allowed;opacity:.6}.button-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #4c8bf54d}.button-outline{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#e7f0ff;font-weight:500;padding:10px 16px;cursor:pointer;transition:border-color .18s ease,background .18s ease}.button-outline:hover:not(:disabled){border-color:#775cf7cc;background:#775cf714}.race-track{position:relative;flex:1;border-radius:16px;border:1px solid rgba(255,255,255,.08);padding:24px 32px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent calc(var(--lane-height, 40px))),linear-gradient(180deg,#161e34f2,#101624f2);overflow:hidden}.race-track:before,.race-track:after{content:"";position:absolute;left:0;right:0;height:1px;background:#ffffff14}.race-track:before{top:24px}.race-track:after{bottom:24px}.race-track__finish{position:absolute;top:24px;bottom:24px;right:3%;width:10px;background-image:linear-gradient(135deg,#fffc 25%,#0000 25%,#0000 50%,#fffc 50%,#fffc 75%,#0000 75%,#0000);background-size:12px 12px;opacity:.5;pointer-events:none}.race-track__lane{position:relative;min-height:var(--lane-height, 40px)}.race-track__lane-highlight{position:absolute;left:0;right:0;border-radius:999px;opacity:.35;z-index:0;pointer-events:none}.race-track__lane-highlight--ok{background:linear-gradient(90deg,#48bb781a,#48bb7859,#48bb781a);box-shadow:0 0 18px #48bb7859}.race-track__lane-highlight--ko{background:linear-gradient(90deg,#f8717114,#f8717159,#f8717114);box-shadow:0 0 18px #f8717159}.race-track__vehicle{position:absolute;width:var(--vehicle-length, 80px);transform-origin:left center;transition:opacity .2s ease;z-index:1}.race-track__vehicle--bounce{animation:race-track-bounce .55s cubic-bezier(.34,1.56,.64,1)}@keyframes race-track-bounce{0%{transform:translateY(0)}35%{transform:translateY(-18px)}70%{transform:translateY(0)}to{transform:translateY(0)}}.car-sprite{display:block;width:100%;height:100%;filter:drop-shadow(0 6px 12px rgba(5,8,20,.45))}.car-sprite--highlight{filter:drop-shadow(0 6px 12px rgba(5,8,20,.45)) drop-shadow(0 0 12px rgba(255,255,255,.55)) drop-shadow(0 0 24px rgba(255,255,255,.4))}.car-sprite svg{display:block;width:100%;height:100%}.race-track__badge{position:absolute;top:-14px;left:4px;background:#ffffffe6;color:#1a1f2c;font-size:12px;font-weight:700;padding:2px 6px;border-radius:999px;box-shadow:0 4px 12px #0000004d}.badge--stop{left:54px;background:linear-gradient(135deg,#ff4d6d,#ff1a3c);color:#fff4f4;border:1px solid rgba(255,255,255,.4)}.badge--slow{left:102px;background:linear-gradient(135deg,#facc15,#ef4444);color:#1f1302;border:1px solid rgba(255,255,255,.35)}.race-track__points-label{position:absolute;top:50%;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;z-index:2;background:#0c1221e6;border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 14px #00000059;white-space:nowrap;transform:translateY(-50%)}.race-track__points-label--ok{color:#b0ffcf;border-color:#48bb7873}.race-track__points-label--ko{color:#ffd4d4;border-color:#f8717173}.race-track__label{position:absolute;display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#0c1221d9;border-radius:999px;border:1px solid rgba(255,255,255,.08);font-size:13px;box-shadow:0 6px 18px #03050c80}.race-track__label--inline{top:50%;left:calc(100% + 8px);transform:translateY(-50%);white-space:nowrap}.race-track__nickname{font-weight:600}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;padding:32px;display:flex;align-items:center;justify-content:center;background:#060914d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50}.admin-panel{width:100%;max-width:980px;max-height:90vh;overflow-y:auto;padding:32px;box-shadow:0 24px 60px #00000073}.admin-panel__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.admin-panel__hint{font-size:13px;opacity:.7;margin-top:4px}.admin-panel__fieldset{border:none;padding:0;margin:0}.admin-panel__section{margin-top:24px}.admin-panel__grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:16px}.admin-panel__grid input,.admin-panel__grid select,.admin-panel__token-card input,.admin-panel__token-card textarea{width:100%;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#0b101ce6;color:#f5f7fa;padding:10px 12px;font-size:15px}.admin-panel__grid select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.admin-panel__token-card textarea{resize:vertical}.admin-panel__toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#0b101ca6}.admin-panel__toggle input[type=checkbox]{width:42px;height:22px}.admin-panel__tokens-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:16px}.admin-panel__token-card{background:#ffffff0a;border-radius:16px;border:1px solid rgba(255,255,255,.06);padding:16px;display:flex;flex-direction:column;gap:12px}.admin-panel__token-type{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.admin-panel__actions{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}.admin-panel__alert{margin-top:16px;padding:12px 16px;border-radius:12px;font-weight:500}.admin-panel__alert--error{background:#e9565629;border:1px solid rgba(233,86,86,.4);color:#ff9f9f}.admin-panel__alert--success{background:#38bf762e;border:1px solid rgba(56,191,118,.4);color:#7ff0be}.admin-panel__alert--info{background:#788aff29;border:1px solid rgba(120,138,255,.4);color:#b8c2ff}.admin-panel label{display:flex;flex-direction:column;gap:8px;font-weight:500;font-size:14px}.admin-mode-page{min-height:100vh;padding:48px;background:radial-gradient(circle at top,rgba(36,55,120,.45),transparent 65%),#080c18f0;color:#f5f7fa;display:flex;flex-direction:column;gap:32px}.admin-mode-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:16px}.admin-mode-subtitle{margin-top:6px;font-size:16px;opacity:.75}.admin-mode-actions{display:flex;gap:12px;flex-wrap:wrap}.admin-mode-hint{font-size:15px;opacity:.75}.admin-mode-section{background:#151c2d99;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:20px}.admin-mode-options{display:grid;gap:16px}.admin-mode-option{display:grid;grid-template-columns:auto 1fr;align-items:flex-start;gap:16px;padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#080c1873;cursor:pointer}.admin-mode-option input{margin-top:6px}.admin-mode-option--active{border-color:#775cf7b3;background:#775cf71f}.admin-mode-option__title{font-weight:600;font-size:17px}.admin-mode-option__description{font-size:14px;opacity:.75;margin-top:4px}.admin-mode-room-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.admin-mode-room{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.admin-mode-room__title{font-weight:600;margin-bottom:6px}.admin-mode-room__meta{font-size:13px;opacity:.75;display:flex;gap:12px;flex-wrap:wrap}.button-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
