*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:'Segoe UI',Tahoma,sans-serif;background:#1a1a2e;color:#fff;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.screen{position:fixed;inset:0;display:none}
.screen.active{display:block}#menu-screen.active,#end-screen.active{display:flex;justify-content:center;align-items:center}
#menu-screen{background:linear-gradient(135deg,#667eea,#764ba2)}
.menu-container{background:rgba(0,0,0,.4);backdrop-filter:blur(10px);border-radius:20px;padding:30px 20px;max-width:400px;width:90%;text-align:center;border:2px solid rgba(255,255,255,.1)}
.menu-container h1{font-size:2.2em;margin-bottom:5px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}
.subtitle{opacity:.8;margin-bottom:20px;font-size:.95em}
input[type=text]{width:100%;padding:12px 15px;border:none;border-radius:10px;background:rgba(255,255,255,.15);color:#fff;font-size:16px;margin-bottom:12px;text-align:center;outline:none}
input::placeholder{color:rgba(255,255,255,.6)}
.menu-buttons{display:flex;flex-direction:column;gap:10px}
button{padding:14px 20px;border:none;border-radius:10px;background:#ff6b6b;color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.2);transition:transform .1s}
button:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.2)}
.join-row{display:flex;gap:8px}
.join-row input{flex:1;text-transform:uppercase}
.join-row button{flex:0 0 110px}
#lobby-info{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}
#lobby-info p{margin-bottom:8px}
#room-code-display{font-weight:700;font-size:1.3em;letter-spacing:3px;color:#ffd93d}
#players-list{list-style:none;text-align:left;margin:15px 0;background:rgba(0,0,0,.2);border-radius:10px;padding:10px}
#players-list li{padding:8px 12px;margin:4px 0;background:rgba(255,255,255,.1);border-radius:6px;display:flex;justify-content:space-between}
.error{color:#ff6b6b;margin-top:10px;font-weight:700;min-height:20px}
.hidden{display:none!important}
#game-screen{background:#000}
#game-canvas{display:block;width:100%;height:100%}
#hud{position:absolute;top:0;left:0;width:100%;pointer-events:none;z-index:10}
.hud-top{display:flex;justify-content:space-between;padding:12px;gap:10px}
.hud-left,.hud-right{background:rgba(0,0,0,.6);backdrop-filter:blur(8px);border-radius:12px;padding:10px 14px}
#score{font-size:1.3em;font-weight:700;color:#4ade80}
#timer{font-size:1.5em;font-weight:700;color:#ffd93d}
#ranking-mini{font-size:.85em;margin-top:5px;opacity:.8}
#mission-panel{background:rgba(0,0,0,.7);backdrop-filter:blur(8px);margin:0 12px;border-radius:12px;padding:10px 14px;border:2px solid #ffd93d}
#mission-title{font-size:.8em;color:#ffd93d;font-weight:700;margin-bottom:4px}
#mission-plate,#mission-color{font-size:.95em;margin:2px 0}
#plate-val{font-family:'Courier New',monospace;font-weight:700;color:#fff;letter-spacing:1px}
#color-val{font-weight:700}
#car-info{position:absolute;top:50%;left:50%;transform:translate(-50%,-180%);background:rgba(0,0,0,.85);padding:12px 20px;border-radius:10px;border:2px solid #ffd93d;z-index:15;text-align:center;pointer-events:none}
#car-info-plate{font-family:'Courier New',monospace;font-size:1.4em;font-weight:700;letter-spacing:2px}
#car-info-color{font-size:1em;margin-top:4px}
#car-info.match{border-color:#4ade80;background:rgba(34,197,94,.4)}
#joystick-container{position:absolute;bottom:40px;left:30px;z-index:20}
#joystick-base{width:120px;height:120px;background:rgba(255,255,255,.15);border:3px solid rgba(255,255,255,.3);border-radius:50%;position:relative;touch-action:none}
#joystick-stick{width:55px;height:55px;background:radial-gradient(circle,#fff 30%,#ccc);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 8px rgba(0,0,0,.4);touch-action:none}
#btn-pickup{position:absolute;bottom:50px;right:30px;width:130px;height:130px;border-radius:50%;background:#4ade80;font-size:16px;font-weight:700;box-shadow:0 6px 0 #22824a,0 8px 12px rgba(0,0,0,.4);z-index:20}
#btn-pickup:active{transform:translateY(4px);box-shadow:0 2px 0 #22824a}
#btn-pickup.disabled{background:#666;box-shadow:0 6px 0 #333;color:#aaa}
#btn-pickup.carrying{background:#ef4444;box-shadow:0 6px 0 #991b1b}
#mission-feedback{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%) scale(0);background:linear-gradient(135deg,#4ade80,#22c55e);color:#fff;padding:20px 40px;border-radius:15px;font-size:1.8em;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.5);z-index:100;animation:popFeedback 1.2s ease-out forwards}
@keyframes popFeedback{0%{transform:translate(-50%,-50%) scale(0);opacity:0}30%{transform:translate(-50%,-50%) scale(1.1);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
#end-screen{background:linear-gradient(135deg,#f093fb,#f5576c)}
#final-ranking{list-style:none;margin:20px 0;width:100%}
#final-ranking li{background:rgba(0,0,0,.3);padding:12px 18px;margin:6px 0;border-radius:10px;font-size:1.1em;display:flex;justify-content:space-between;align-items:center}
#final-ranking li:first-child{background:linear-gradient(135deg,#ffd700,#ffaa00);color:#000;font-size:1.3em;font-weight:700;padding:16px 18px}
#final-ranking .medal{font-size:1.4em;margin-right:8px}
#btn-restart{width:100%;margin-top:15px}
@media(max-width:400px){.menu-container h1{font-size:1.8em}#joystick-base{width:100px;height:100px}#joystick-stick{width:45px;height:45px}#btn-pickup{width:110px;height:110px;font-size:14px}}
