*{margin:0;padding:0;box-sizing:border-box}:root{--color-red: #e74c3c;--color-blue: #3498db;--color-green: #27ae60;--color-yellow: #f1c40f;--color-wild: #2c3e50;--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #0f3460;--text-primary: #ffffff;--text-secondary: #a0a0a0;--accent: #e94560;--success: #27ae60;--warning: #f39c12;--error: #e74c3c;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--card-width: 70px;--card-height: 100px;--card-radius: 8px}html,body{height:100%;font-family:Segoe UI,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}#app{height:100%;display:flex;flex-direction:column}.btn{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#d63d5a;transform:translateY(-2px)}.btn-secondary{background:var(--bg-card);color:#fff;border:2px solid var(--accent)}.btn-secondary:hover:not(:disabled){background:var(--accent)}.btn-danger{background:var(--error);color:#fff}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem}.btn-uno{background:var(--color-red);color:#fff;font-size:1.2rem;padding:var(--spacing-md) var(--spacing-xl)}.btn-uno.pulse{animation:pulse 1s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1);box-shadow:0 0 20px var(--color-red)}}.home-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-xl);gap:var(--spacing-xl)}.logo h1{font-size:5rem;font-weight:900;background:linear-gradient(135deg,var(--color-red),var(--color-yellow),var(--color-green),var(--color-blue));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;letter-spacing:-2px}.logo .tagline{text-align:center;color:var(--text-secondary);font-size:1.2rem}.home-actions{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%;max-width:300px}.create-section,.join-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.home-actions input{padding:var(--spacing-md);border:2px solid var(--bg-card);border-radius:6px;background:var(--bg-secondary);color:#fff;font-size:1rem}.home-actions input:focus{outline:none;border-color:var(--accent)}.divider{display:flex;align-items:center;gap:var(--spacing-md);color:var(--text-secondary)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--bg-card)}.connecting-screen,.disconnected-screen,.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-lg);text-align:center;padding:var(--spacing-xl)}.spinner{width:50px;height:50px;border:4px solid var(--bg-card);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lobby-screen{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);gap:var(--spacing-xl);height:100%}.room-header{text-align:center}.room-code{font-size:3rem;font-weight:900;letter-spacing:8px;color:var(--accent);margin:var(--spacing-md) 0}.players-section{flex:1;width:100%;max-width:400px}.players-section h3{margin-bottom:var(--spacing-md);color:var(--text-secondary)}.player-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.player-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:8px;border-left:4px solid transparent}.player-item.host{border-left-color:var(--accent)}.player-name{flex:1;font-weight:500}.host-badge,.you-badge{font-size:.75rem;padding:2px 8px;border-radius:4px;font-weight:600}.host-badge{background:var(--accent)}.you-badge{background:var(--bg-card)}.host-controls,.waiting-message{text-align:center}.hint{color:var(--text-secondary);font-size:.9rem;margin-top:var(--spacing-sm)}.game-screen{display:flex;flex-direction:column;height:100%;padding:var(--spacing-md);gap:var(--spacing-md);background-image:url(/Table_2.png);background-size:cover;background-position:center}.game-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:8px}.turn-indicator{font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border-radius:4px}.turn-indicator.your-turn{background:var(--success);animation:glow 1.5s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 5px var(--success)}50%{box-shadow:0 0 20px var(--success)}}.direction-indicator{font-size:2rem;transition:transform .3s ease}.direction-indicator.direction-changed{animation:flip .5s ease}@keyframes flip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}to{transform:rotateY(180deg)}}.other-players{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-sm)}.other-player{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:8px;border:2px solid transparent;min-width:120px}.other-player.current{border-color:var(--success);box-shadow:0 0 10px #27ae604d}.other-player.disconnected{opacity:.5}.other-player .player-info{display:flex;flex-direction:column;align-items:center;gap:2px}.other-player .card-count{font-size:.85rem;color:var(--text-secondary)}.uno-indicator{background:var(--color-red);color:#fff;padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:700}.challenge-btn{background:var(--warning);color:#fff;border:none;padding:4px 8px;border-radius:4px;font-size:.75rem;cursor:pointer;animation:pulse 1s infinite;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.table-area{flex:1;display:flex;justify-content:center;align-items:center;gap:var(--spacing-xl)}.draw-pile,.discard-pile{position:relative}.draw-pile{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.draw-pile:hover .card-back{transform:translateY(-5px);box-shadow:0 10px 30px #00000080}.draw-hint{position:absolute;bottom:-25px;left:50%;transform:translate(-50%);font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.discard-pile.card-played .card{animation:cardPlayed .3s ease}@keyframes cardPlayed{0%{transform:scale(.8) rotate(-10deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.current-color{position:absolute;top:-10px;right:-10px;width:30px;height:30px;border-radius:50%;border:3px solid white}.my-hand-area{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:12px}.hand-controls{display:flex;gap:var(--spacing-md)}.my-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-xs);max-width:100%;overflow-x:auto;padding:var(--spacing-sm)}.card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;position:relative;transition:transform .15s ease,box-shadow .15s ease;user-select:none;-webkit-user-select:none;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow:hidden}.card-image{width:100%;height:100%;object-fit:contain;pointer-events:none}.card-back .pile-count{position:absolute;font-size:1.5rem;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.8)}.card.in-hand{cursor:default;margin:0 -15px}.card.in-hand:hover{transform:translateY(-10px);z-index:10}.card.in-hand.playable{cursor:pointer;box-shadow:0 0 15px #ffffff4d}.card.in-hand.playable:hover{transform:translateY(-20px) scale(1.05);box-shadow:0 0 25px #ffffff80}.card.in-hand:not(.valid){filter:brightness(.7)}.card.empty{background:var(--bg-card);border:2px dashed var(--text-secondary)}.color-red{background:var(--color-red)}.color-blue{background:var(--color-blue)}.color-green{background:var(--color-green)}.color-yellow{background:var(--color-yellow)}.color-picker{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100}.color-picker.hidden{display:none}.color-picker-content{background:var(--bg-secondary);padding:var(--spacing-xl);border-radius:12px;text-align:center}.color-picker-content h3{margin-bottom:var(--spacing-lg)}.color-options{display:flex;gap:var(--spacing-md)}.color-btn{width:60px;height:60px;border:none;border-radius:50%;cursor:pointer;transition:transform .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.color-btn:hover{transform:scale(1.2)}.color-btn.color-red{background:var(--color-red)}.color-btn.color-blue{background:var(--color-blue)}.color-btn.color-green{background:var(--color-green)}.color-btn.color-yellow{background:var(--color-yellow)}.paused-screen{display:flex;align-items:center;justify-content:center;height:100%;background:#000000e6}.paused-content{text-align:center;padding:var(--spacing-xl)}.paused-content h2{color:var(--warning);margin-bottom:var(--spacing-md)}.host-pause-controls{margin-top:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md)}.finished-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-xl)}.winner-announcement{text-align:center}.winner-announcement h1{font-size:5rem;animation:bounce .5s ease infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-20px)}}.winner-announcement h2{font-size:2rem;color:var(--success)}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100px);padding:var(--spacing-md) var(--spacing-xl);border-radius:8px;font-weight:500;z-index:1000;transition:transform .3s ease}.toast.show{transform:translate(-50%) translateY(0)}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--error);color:#fff}.toast-warning{background:var(--warning);color:#fff}.toast-info{background:var(--bg-card);color:#fff;border:1px solid var(--text-secondary)}.btn-uno.uno-called{animation:unoFlash .5s ease}@keyframes unoFlash{0%,to{background:var(--color-red)}50%{background:var(--color-yellow);transform:scale(1.2)}}@media(max-width:768px){:root{--card-width: 55px;--card-height: 80px}.logo h1{font-size:3rem}.room-code{font-size:2rem;letter-spacing:4px}.other-player{min-width:90px;padding:var(--spacing-xs) var(--spacing-sm)}.card-value{font-size:1.4rem}.my-hand{gap:0}.card.in-hand{margin:0 -20px}.table-area{gap:var(--spacing-lg)}}@media(max-width:480px){:root{--card-width: 45px;--card-height: 65px}.game-header{flex-direction:column;gap:var(--spacing-xs)}.other-players{gap:var(--spacing-xs)}.btn-uno{padding:var(--spacing-sm) var(--spacing-md);font-size:1rem}}
