:root{--uno-red:#E53935;--uno-yellow:#FFD600;--uno-green:#43A047;--uno-blue:#4A90D9;--uno-black:#1a1a1a;--uno-white:#ffffff;--uno-table-felt:#1B5E20;--uno-table-felt-light:#2E7D32;--uno-table-border:#0D3311;--uno-table-highlight:#388E3C;--uno-bg-primary:#0d0d0d;--uno-bg-secondary:#1a1a1a;--uno-bg-tertiary:#252525;--uno-accent:#FF8700;--uno-accent-light:#FF9D2F;--uno-text-primary:#ffffff;--uno-text-secondary:#888888;--uno-text-muted:#555555;--uno-card-glow:rgba(255,135,0,0.6);--uno-card-glow-strong:rgba(255,135,0,0.8);--uno-card-hover-lift:-20px;--uno-card-shadow:0 4px 12px rgba(0,0,0,0.4);--uno-card-shadow-hover:0 8px 20px rgba(0,0,0,0.5);--uno-card-width:100px;--uno-card-height:150px;--uno-card-border-radius:16.7px;--uno-card-scale-main:0.8;--uno-card-scale-opponent:0.5;--uno-card-scale-table:1.2;--uno-timer-normal:#43A047;--uno-timer-warning:#FFD600;--uno-timer-critical:#E53935;--uno-chat-width:clamp(260px,22vw,360px);--uno-table-min-height:600px;--uno-opponent-area-height:180px;--uno-main-player-height:200px;--uno-center-area-size:300px;--uno-opponent-radius-x:520px;--uno-opponent-radius-y:300px;--uno-card-animation-duration:300ms;--uno-draw-animation-duration:250ms;--uno-fan-animation-duration:150ms;--uno-turn-change-duration:200ms;--uno-color-change-duration:200ms;--uno-direction-change-duration:400ms;--uno-win-animation-duration:1500ms;--uno-glass-bg:rgba(255,255,255,0.03);--uno-glass-bg-light:rgba(255,255,255,0.05);--uno-glass-border:rgba(255,255,255,0.10);--uno-glass-blur:blur(12px);--uno-glass-shadow:0 8px 32px rgba(0,0,0,0.2);--uno-glass-radius:12px;--uno-gap-sm:8px;--uno-gap-md:16px;--uno-gap-lg:24px;--uno-gap-xl:32px}.uno-card{position:relative;cursor:pointer;transition:transform .15s ease-out,filter .15s ease-out;-moz-user-select:none;user-select:none;-webkit-user-select:none;--uno-card-scale:1}.uno-card--hovered:not(.uno-card--disabled),.uno-card:hover:not(.uno-card--disabled){transform:translateY(var(--uno-card-hover-lift)) scale(1.02);filter:drop-shadow(0 8px 12px rgba(0,0,0,.4))}.uno-card--selected{transform:translateY(var(--uno-card-hover-lift));filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.uno-card__glow{position:absolute;inset:0;border-radius:calc(var(--uno-card-border-radius) * var(--uno-card-scale));box-shadow:0 0 calc(12px * var(--uno-card-scale)) var(--uno-card-glow),0 0 calc(24px * var(--uno-card-scale)) rgba(255,135,0,.35);pointer-events:none;animation:cardGlowPulse 1.5s ease-in-out infinite}@keyframes cardGlowPulse{0%,to{opacity:1}50%{opacity:.6}}.uno-card--disabled{pointer-events:none}.uno-card-back{overflow:hidden}.uno-card-back__image{width:100%;height:100%;object-fit:contain}.uno-game{width:100%;background:var(--uno-bg-primary);color:var(--uno-text-primary)}.uno-game,.uno-unavailable{min-height:calc(100vh - var(--app-header-height, 60px))}.uno-unavailable{display:none;background:linear-gradient(135deg,rgba(10,10,15,.95),rgba(0,0,0,.98));color:var(--uno-accent);align-items:center;justify-content:center;text-align:center;padding:20px}.uno-unavailable__message{display:flex;flex-direction:column;align-items:center;gap:24px}.uno-unavailable__text{font-family:var(--font-primary);font-weight:900;font-size:clamp(22px,4.8vw,38px);letter-spacing:.06em;text-transform:uppercase}.uno-unavailable__emoji{font-size:clamp(42px,12vw,96px)}@media (max-width:1024px){.uno-container{display:none}.uno-unavailable{display:flex}}.uno-container{display:grid;grid-template-columns:1fr var(--uno-chat-width);height:calc(100vh - var(--app-header-height, 60px));max-width:1800px;margin:0 auto;padding:var(--uno-gap-md);grid-gap:var(--uno-gap-md);gap:var(--uno-gap-md)}.uno-table{position:relative;display:flex;flex-direction:column;min-height:var(--uno-table-min-height)}.uno-table__felt{flex:1 1;background:radial-gradient(ellipse at center,var(--uno-table-highlight) 0,var(--uno-table-felt) 40%,var(--uno-table-border) 100%);border:4px solid var(--uno-table-border);border-radius:var(--uno-glass-radius);position:relative;padding:var(--uno-gap-lg);overflow:visible}.uno-table__opponents{position:absolute;inset:0;pointer-events:none;overflow:visible}.uno-table__opponent,.uno-table__opponent--active:before{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:0}.uno-table__opponent--active:before{content:"";left:50%;top:50%;width:320px;height:240px;border-radius:999px;background:radial-gradient(ellipse at center,rgba(255,135,0,.56) 0,rgba(255,135,0,0) 75%)}.uno-table__opponent .opponent-player{position:relative;z-index:1}.uno-table__center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-content:center;width:100%;grid-column-gap:50px;column-gap:50px}.uno-table__center-item{display:flex;align-items:center;justify-content:center}.uno-table__center-item--left{flex-direction:column;align-items:flex-end;justify-content:center}.uno-table__center-item--center{flex-direction:column;align-items:center;justify-content:center}.uno-table__center-item--right{flex-direction:column;align-items:flex-start;justify-content:center}.uno-table__main-player{bottom:16px;width:-moz-fit-content;width:fit-content;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--uno-gap-md);padding:var(--uno-gap-md) var(--uno-gap-lg)}.uno-table__main-player,.uno-table__main-player--active:before{position:absolute;left:50%;transform:translateX(-50%);z-index:0}.uno-table__main-player--active:before{content:"";bottom:0;width:calc(100% + 120px);height:calc(100% + 120px);border-radius:999px;background:radial-gradient(ellipse at center,rgba(255,135,0,.44) 0,rgba(255,135,0,0) 75%);pointer-events:none}.uno-table__main-player-group{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--uno-gap-md);width:-moz-fit-content;width:fit-content;max-width:100%}.uno-table__timer{margin-bottom:var(--uno-gap-sm)}.uno-action-overlay,.uno-table__main-player-info{display:flex;justify-content:center}.uno-action-overlay{position:absolute;left:50%;top:50%;width:258px;height:258px;transform:translate(-50%,-50%) scale(.35);opacity:0;pointer-events:none;z-index:50;align-items:center;animation:unoActionPop 2.3s cubic-bezier(.22,1.15,.36,1) forwards}.uno-table__main-player .uno-action-overlay{width:330px;height:330px}.uno-action-overlay__icon{width:100%;height:100%}@keyframes unoActionPop{0%{transform:translate(-50%,-50%) scale(.15);opacity:0}20%{transform:translate(-50%,-50%) scale(1.05);opacity:1}to{transform:translate(-50%,-50%) scale(.7);opacity:0}}.uno-table__actions{display:flex;gap:var(--uno-gap-md)}.uno-table__action-button{padding:12px 24px;border-radius:8px;font-family:var(--font-primary);font-size:14px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .2s ease;border:none}.uno-table__action-button--play{background:var(--uno-accent);color:var(--uno-bg-primary)}.uno-table__action-button--play:hover:not(:disabled){background:var(--uno-accent-light)}.uno-table__action-button--draw{background:var(--uno-accent);color:var(--uno-bg-primary)}.uno-table__action-button--draw:hover:not(:disabled){background:var(--uno-accent-light)}.uno-table__action-button:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.2)}.uno-table__action-button--loading{opacity:.7;cursor:wait;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:.4}}.uno-game__settings{position:absolute;bottom:var(--uno-gap-md);right:var(--uno-gap-md);z-index:100}.uno-game__settings-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;cursor:pointer;transition:all .2s ease}.uno-game__settings-button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}.uno-game__settings-button img{filter:invert(1) brightness(.8);opacity:.7;transition:opacity .2s ease}.uno-game__settings-button:hover img{opacity:1}.uno-game__settings-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:rgba(20,20,25,.95);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:6px;min-width:160px;box-shadow:0 8px 32px rgba(0,0,0,.5);animation:settingsMenuFadeIn .15s ease-out}@keyframes settingsMenuFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.uno-game__settings-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:var(--uno-text-primary);font-family:var(--font-primary);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background .15s ease}.uno-game__settings-item:hover{background:rgba(255,255,255,.08)}.uno-game__settings-item img{filter:invert(1) brightness(.9);opacity:.8;flex-shrink:0}.uno-toggle{position:relative;display:inline-block;width:36px;height:20px;background:rgba(255,255,255,.2);border-radius:10px;transition:background .2s ease;flex-shrink:0}.uno-toggle--on{background:#34c759}.uno-toggle__knob{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s ease}.uno-toggle--on .uno-toggle__knob{transform:translateX(16px)}.uno-game__resign-button{position:absolute;bottom:var(--uno-gap-md);left:var(--uno-gap-md);display:flex;align-items:center;justify-content:center;padding:8px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:rgba(255,255,255,.7);font-family:var(--font-primary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.uno-game__resign-button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:rgba(255,255,255,1)}.uno-game__error{position:fixed;bottom:var(--uno-gap-lg);left:50%;transform:translateX(-50%);background:var(--uno-timer-critical);color:white;padding:12px 24px;border-radius:8px;font-weight:600;animation:slideUp .3s ease;z-index:1000}@keyframes slideUp{0%{transform:translateX(-50%) translateY(20px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}.uno-chat{display:flex;flex-direction:column;position:relative;z-index:101}.uno-chat__room{flex:1 1;max-height:100%}.main-player-hand{width:100%}.main-player-hand,.main-player-hand__cards{display:flex;justify-content:center;position:relative}.main-player-hand__cards{height:calc(var(--uno-card-height) * var(--uno-card-scale-main))}.main-player-hand__card-wrapper{position:absolute;left:50%;top:0;transition:transform var(--uno-fan-animation-duration) ease-out}.main-player-hand__card-wrapper--selected{z-index:101!important}.main-player-hand__card-wrapper--anchor{width:80px;height:120px;visibility:hidden;pointer-events:none}.main-player-hand__card-wrapper--pending{position:absolute;left:50%;top:0;transition:transform var(--uno-fan-animation-duration) ease-out;pointer-events:none}.main-player-hand__decrypting-overlay{position:absolute;top:-35px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.7);padding:4px 12px;border-radius:12px;white-space:nowrap}.main-player-hand__decrypting-text{color:var(--uno-color-primary,#ff8700);font-size:12px;font-weight:500;animation:decryptingTextPulse 1.5s ease-in-out infinite}@keyframes decryptingTextPulse{0%,to{opacity:1}50%{opacity:.5}}.opponent-player{display:flex;flex-direction:column;align-items:center;gap:8px}.opponent-player--inactive{opacity:.4}.opponent-player__cards{position:relative;display:flex;justify-content:center;align-items:center;height:70px;width:180px}.opponent-player__card{position:absolute;left:50%;top:50%;margin-left:-20px;margin-top:-30px}.opponent-player__card--anchor{width:40px;height:60px;visibility:hidden;pointer-events:none}.opponent-player__info{background:var(--uno-glass-bg);border:1px solid var(--uno-glass-border);border-radius:8px;overflow:hidden;min-width:100px}.opponent-player--active .opponent-player__info{border-color:var(--uno-accent);box-shadow:0 0 8px rgba(255,135,0,.4)}.opponent-player__details{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600}.opponent-player__name{color:var(--uno-text-primary)}.opponent-player__balance{color:var(--uno-text-secondary);font-weight:700}.opponent-player__balance:before,.opponent-player__count:before{content:":";color:var(--uno-text-muted);margin-right:8px}.opponent-player__count{color:var(--uno-accent);font-weight:700}.opponent-player__timer-bar{height:3px;background:var(--uno-bg-tertiary);width:100%}.opponent-player__timer-bar--hidden{opacity:0}.opponent-player__timer-bar--hidden .opponent-player__timer-fill{transition:none}.opponent-player__timer-fill{height:100%;background:var(--uno-text-secondary);transition:width .1s linear}.uno-chip-stacks{display:flex;flex-direction:column;align-items:center;gap:4px}.uno-chip-stacks__area{position:relative;width:180px;height:100px;margin-top:12px}.uno-chip-stacks__chip,.uno-chip-stacks__stack{position:absolute;width:var(--uno-chip-size);height:var(--uno-chip-size)}.uno-chip-stacks__chip{left:50%;transform:translateX(-50%);-moz-user-select:none;user-select:none;-webkit-user-select:none;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.uno-chip-stacks__count{font-size:12px;font-weight:900;color:var(--uno-text-secondary)}.discard-pile{position:relative}.discard-pile__card{position:relative;z-index:3}.discard-pile__color-indicator{position:absolute;bottom:-36px;left:50%;transform:translateX(-50%);padding:4px 12px;border-radius:12px;font-size:11px;font-weight:700;color:#ffffff;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.3)}.draw-pile{position:relative;cursor:default;transition:transform .2s ease}.draw-pile--clickable{cursor:pointer}.draw-pile--clickable:hover{transform:scale(1.05)}.draw-pile__stack{position:relative;width:100px;height:150px}.draw-pile__card{position:absolute;top:0;left:0;width:100px;height:150px}.draw-pile__card--top{z-index:1}.draw-pile__indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--uno-accent);color:var(--uno-black);padding:8px 16px;border-radius:6px;font-weight:700;font-size:12px;z-index:10;pointer-events:none;animation:drawIndicatorPulse 1.5s ease-in-out infinite}@keyframes drawIndicatorPulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}.draw-pile__count{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--uno-text-secondary)}.prize-pool{flex-direction:column;align-items:center;height:150px;transform:translate(20px,10px)}.prize-pool,.prize-pool__chips{display:flex;justify-content:flex-end;gap:0}.prize-pool__chips{flex:1 1;flex-direction:column}.prize-pool__chips .uno-chip-stacks__area{width:140px;height:100px;margin-top:0}.prize-pool__amount{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:4px;height:24px;flex-shrink:0}.prize-pool__value{font-size:18px;font-weight:900;color:var(--uno-accent)}.game-over-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;transition:opacity .2s ease;overflow:hidden}.game-over-overlay--visible{opacity:1}.color-picker-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;transition:opacity .25s ease;pointer-events:none}.color-picker-overlay--visible{opacity:1;pointer-events:auto}.confirm-forfeit-overlay{position:absolute;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.color-picker-wheel{display:flex;flex-direction:column;align-items:center;gap:16px;opacity:0;transform:scale(.9);transition:opacity .2s ease,transform .2s ease}.color-picker-wheel--visible{opacity:1;transform:scale(1)}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.color-picker-wheel__title{font-size:18px;font-weight:600;color:var(--uno-text-primary);margin:0;text-shadow:0 2px 4px rgba(0,0,0,.5)}.color-picker-wheel__container{position:relative;width:360px;height:360px;display:flex;align-items:center;justify-content:center}.color-picker-wheel__svg{display:block;overflow:visible}.color-picker-wheel__segment{transition:transform .2s ease,filter .2s ease}.color-picker-wheel__segment:focus{outline:none}.color-picker-wheel__segment:focus-visible{filter:url(#color-picker-glow)}.game-over{background:var(--uno-bg-secondary);border:1px solid var(--uno-glass-border);border-radius:var(--uno-glass-radius);padding:var(--uno-gap-xl);max-width:420px;width:90%;display:flex;flex-direction:column;align-items:center;gap:var(--uno-gap-lg);animation:scaleIn .3s ease;position:relative;z-index:1}.game-over--win{max-width:520px;border-color:rgba(255,214,102,.5);background:radial-gradient(circle at top,rgba(255,214,102,.15),transparent 55%),var(--uno-bg-secondary);box-shadow:0 20px 60px rgba(0,0,0,.45)}.game-over--loss{max-width:420px}.game-over__loss{display:flex;flex-direction:column;align-items:center;padding-bottom:var(--uno-gap-sm)}.game-over__loss-title{font-size:28px;font-weight:700;color:var(--uno-text-secondary)}.game-over__confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.game-over__confetti-piece{position:absolute;top:-10%;left:var(--confetti-left);width:var(--confetti-size);height:calc(var(--confetti-size) * .6);background:hsl(var(--confetti-hue),85%,60%);opacity:.9;border-radius:2px;animation:confetti-fall var(--confetti-duration) linear var(--confetti-delay) infinite;transform:rotate(var(--confetti-rotation))}@keyframes confetti-fall{0%{transform:translate3d(0,-20px,0) rotate(var(--confetti-rotation));opacity:0}10%{opacity:1}to{transform:translate3d(0,110vh,0) rotate(calc(var(--confetti-rotation) + 1turn));opacity:0}}.game-over__win{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--uno-gap-lg)}.game-over__win-title{font-size:36px;font-weight:900;letter-spacing:2px;color:var(--uno-accent);text-transform:uppercase;text-shadow:0 0 12px rgba(255,214,102,.55),0 0 24px rgba(255,214,102,.35)}.game-over__win-subtitle{font-size:14px;text-transform:uppercase;letter-spacing:4px;color:var(--uno-text-secondary)}.game-over__victory-stack{display:contents}.game-over__trophy{font-size:40px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4))}.game-over__chip-stack{transform:scale(1.05)}.game-over__card-fan{position:relative;width:220px;height:110px}.game-over__fan-card{position:absolute;left:50%;top:50%;--fan-rotate:0deg;--fan-x:0px;transform:translate(-50%,-50%) translateX(var(--fan-x)) rotate(var(--fan-rotate));animation:fan-spread .6s ease both;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4))}.game-over__fan-card--left{--fan-rotate:-18deg;--fan-x:-55px;animation-delay:.05s}.game-over__fan-card--center{--fan-rotate:0deg;--fan-x:0px}.game-over__fan-card--right{--fan-rotate:18deg;--fan-x:55px;animation-delay:.1s}@keyframes fan-spread{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}to{transform:translate(-50%,-50%) translateX(var(--fan-x)) rotate(var(--fan-rotate)) scale(1);opacity:1}}.game-over__win-prize{display:flex;align-items:center;gap:var(--uno-gap-sm);padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,214,102,.35)}.game-over__win-prize-label{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--uno-text-secondary)}.game-over__win-prize-value{font-size:18px;font-weight:700;color:var(--uno-text-primary)}.game-over__header{display:flex;align-items:center;gap:var(--uno-gap-md)}.game-over__emoji{font-size:32px}.game-over__title{font-size:28px;font-weight:900;color:var(--uno-accent);margin:0;text-transform:uppercase}.game-over__winner-box{background:var(--uno-glass-bg);border:2px solid var(--uno-accent);border-radius:12px;padding:var(--uno-gap-lg);text-align:center;width:100%}.game-over__winner-label{font-size:12px;color:var(--uno-text-secondary);text-transform:uppercase;margin-bottom:8px}.game-over__winner-address{font-size:24px;font-weight:900;color:var(--uno-accent)}.game-over__prize{display:flex;flex-direction:column;gap:4px;margin-top:var(--uno-gap-md)}.game-over__prize-label{font-size:11px;color:var(--uno-text-secondary);text-transform:uppercase}.game-over__prize-value{font-size:20px;font-weight:700;color:var(--uno-text-primary)}.game-over__result{font-size:18px;font-weight:600}.game-over__result--win{color:var(--uno-timer-normal)}.game-over__result--loss{color:var(--uno-text-secondary)}.game-over__rematch-section{width:100%;border-top:1px solid var(--uno-glass-border);padding-top:var(--uno-gap-lg);display:flex;flex-direction:column;align-items:center;gap:var(--uno-gap-md)}.game-over__rematch-section--solo{border-top:none;padding-top:0}.game-over__rematch-title{font-size:14px;font-weight:600;color:var(--uno-text-primary);margin:0}.game-over__players{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;width:100%}.game-over__player{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--uno-glass-bg);border-radius:6px;border:1px solid var(--uno-glass-border)}.game-over__player--ready{border-color:var(--uno-timer-normal)}.game-over__player-name{font-size:13px;color:var(--uno-text-primary)}.game-over__player-status{font-size:16px}.game-over__waiting{font-size:13px;color:var(--uno-text-secondary);margin:0}.game-over__buttons{display:flex;gap:var(--uno-gap-md);width:100%}.game-over__button{flex:1 1;padding:14px 24px;border-radius:8px;font-family:var(--font-primary);font-size:14px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .2s ease;border:none}.game-over__button--rematch{background:var(--uno-accent);color:var(--uno-bg-primary)}.game-over__button--rematch:hover:not(:disabled){background:var(--uno-accent-light)}.game-over__button--ready{background:var(--uno-timer-normal);cursor:default}.game-over__button--leave{background:transparent;color:var(--uno-text-secondary);border:1px solid var(--uno-glass-border)}.game-over__button--leave:hover:not(:disabled){border-color:var(--uno-text-primary);color:var(--uno-text-primary)}.game-over__button:disabled{opacity:.5;cursor:not-allowed}.confirm-forfeit{background:var(--uno-bg-secondary);border:1px solid var(--uno-glass-border);border-radius:var(--uno-glass-radius);padding:var(--uno-gap-xl);max-width:380px;width:90%;display:flex;flex-direction:column;align-items:center;gap:var(--uno-gap-md);text-align:center;animation:scaleIn .2s ease}.confirm-forfeit__icon{font-size:48px}.confirm-forfeit__title{font-size:22px;font-weight:700;color:var(--uno-timer-critical);margin:0}.confirm-forfeit__message{font-size:14px;color:var(--uno-text-secondary);line-height:1.5;margin:0}.confirm-forfeit__buttons{display:flex;gap:var(--uno-gap-md);width:100%;margin-top:var(--uno-gap-sm)}.confirm-forfeit__button{flex:1 1;padding:12px 24px;border-radius:8px;font-family:var(--font-primary);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;border:none}.confirm-forfeit__button--cancel{background:var(--uno-glass-bg);color:var(--uno-text-primary);border:1px solid var(--uno-glass-border)}.confirm-forfeit__button--cancel:hover{background:var(--uno-glass-bg-light)}.confirm-forfeit__button--confirm{background:var(--uno-timer-critical);color:white}.confirm-forfeit__button--confirm:hover{filter:brightness(1.1)}.uno-lobby{max-width:800px;margin:0 auto;padding:48px var(--uno-gap-xl) var(--uno-gap-xl);min-height:calc(100vh - var(--app-header-height, 60px));height:calc(100vh - var(--app-header-height, 60px));display:flex;flex-direction:column;box-sizing:border-box}.uno-lobby__loading{flex:1 1;font-size:1.25rem;color:var(--uno-text-muted)}.uno-lobby__header,.uno-lobby__loading{display:flex;align-items:center;justify-content:center}.uno-lobby__header{margin-bottom:48px;position:relative}.uno-lobby__title{display:flex;align-items:center;gap:var(--uno-gap-lg);font-size:56px;font-weight:900;color:var(--uno-accent);margin:0}.uno-lobby__title-text{letter-spacing:.12em}.uno-lobby__title-cards{position:relative;width:100px;height:72px}.uno-lobby__title-card{position:absolute;width:48px;height:72px;top:0;left:0;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}.uno-lobby__title-cards--left .uno-lobby__title-card:first-child{transform:rotate(-18deg) translateX(-8px)}.uno-lobby__title-cards--left .uno-lobby__title-card:nth-child(2){transform:rotate(0deg) translateX(18px)}.uno-lobby__title-cards--left .uno-lobby__title-card:nth-child(3){transform:rotate(18deg) translateX(44px)}.uno-lobby__title-cards--right .uno-lobby__title-card:first-child{transform:rotate(18deg) translateX(-8px)}.uno-lobby__title-cards--right .uno-lobby__title-card:nth-child(2){transform:rotate(0deg) translateX(18px)}.uno-lobby__title-cards--right .uno-lobby__title-card:nth-child(3){transform:rotate(-18deg) translateX(44px)}.uno-lobby__back-button{background:transparent;border:1px solid var(--uno-glass-border);color:var(--uno-text-secondary);padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;position:absolute;right:0}.uno-lobby__back-button:hover{border-color:var(--uno-text-primary);color:var(--uno-text-primary)}.uno-lobby__content{flex:1 1;display:flex;flex-direction:column;gap:var(--uno-gap-lg);justify-content:flex-start;overflow-y:auto}.uno-lobby__divider{display:flex;align-items:center;gap:var(--uno-gap-md);color:var(--uno-text-muted);font-size:12px;text-transform:uppercase}.uno-lobby__divider:after,.uno-lobby__divider:before{content:"";flex:1 1;height:1px;background:var(--uno-glass-border)}.uno-lobby__create-button{width:100%;padding:16px 32px;background:var(--uno-accent);color:var(--uno-bg-primary);border:none;border-radius:8px;font-family:var(--font-primary);font-size:16px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.uno-lobby__create-button:hover{background:var(--uno-accent-light)}.uno-lobby__back-link{background:none;border:none;color:var(--uno-text-secondary);cursor:pointer;font-size:14px;padding:0;margin-bottom:var(--uno-gap-md);transition:color .2s ease}.uno-lobby__back-link:hover{color:var(--uno-text-primary)}.game-list{background:var(--uno-glass-bg);border:1px solid var(--uno-glass-border);border-radius:var(--uno-glass-radius);padding:var(--uno-gap-lg)}.game-list--empty,.game-list--loading{text-align:center;color:var(--uno-text-secondary);padding:var(--uno-gap-xl)}.game-list__spinner{width:40px;height:40px;border:3px solid var(--uno-glass-border);border-top-color:var(--uno-accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--uno-gap-md)}@keyframes spin{to{transform:rotate(1turn)}}.game-list__empty-text{font-size:16px;color:var(--uno-text-primary);margin-bottom:8px}.game-list__empty-subtext{font-size:14px;color:var(--uno-text-secondary)}.game-list__title{font-size:16px;font-weight:700;color:var(--uno-text-primary);margin:0 0 var(--uno-gap-md);text-align:center;text-transform:uppercase}.game-list__items{display:flex;flex-direction:column;gap:8px}.game-list__header{display:grid;grid-template-columns:1fr minmax(120px,auto) 1fr;grid-gap:8px;gap:8px;padding:0 16px;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--uno-text-secondary);text-transform:uppercase;letter-spacing:.04em}.game-list__header-cell--buyin{text-align:right}.game-list__header-cell--players{text-align:center;justify-self:center}.game-list__row{display:grid;grid-template-columns:1fr minmax(120px,auto) 1fr;grid-gap:8px;gap:8px;padding:12px 16px;background:var(--uno-bg-secondary);border:1px solid var(--uno-glass-border);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%;position:relative}.game-list__row--selected,.game-list__row:hover:not(:disabled){border-color:var(--uno-accent)}.game-list__row--selected{background:rgba(255,135,0,.1)}.game-list__row--full{opacity:.5;cursor:not-allowed}.game-list__cell{font-size:14px;color:var(--uno-text-secondary)}.game-list__cell--id{font-weight:600;color:var(--uno-text-primary)}.game-list__cell--buyin{font-weight:700;color:var(--uno-accent);text-align:right}.game-list__cell--players{text-align:center;justify-self:center}.game-list__full-badge{position:absolute;top:8px;right:8px;background:var(--uno-timer-critical);color:white;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.create-game{background:var(--uno-glass-bg);border:1px solid var(--uno-glass-border);border-radius:var(--uno-glass-radius);padding:var(--uno-gap-lg)}.create-game__title{font-size:18px;font-weight:700;color:var(--uno-text-primary);margin:0 0 var(--uno-gap-md)}.create-game__presets{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-bottom:var(--uno-gap-md)}.create-game__preset{padding:12px;background:var(--uno-bg-secondary);border:1px solid var(--uno-glass-border);border-radius:8px;color:var(--uno-text-primary);font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease}.create-game__preset:hover{border-color:var(--uno-accent)}.create-game__preset--selected{background:var(--uno-accent);color:var(--uno-bg-primary);border-color:var(--uno-accent)}.create-game__custom{margin-bottom:var(--uno-gap-md)}.create-game__label{display:block;font-size:13px;color:var(--uno-text-secondary);margin-bottom:8px}.create-game__input-wrapper{display:flex;align-items:center;background:var(--uno-bg-secondary);border:1px solid var(--uno-glass-border);border-radius:8px;padding:0 12px}.create-game__input-prefix,.create-game__input-suffix{color:var(--uno-text-secondary);font-size:14px}.create-game__input{flex:1 1;background:transparent;border:none;padding:12px 8px;color:var(--uno-text-primary);font-size:16px;font-family:var(--font-primary);outline:none}.create-game__summary{background:var(--uno-bg-tertiary);border-radius:8px;padding:var(--uno-gap-md);margin-bottom:var(--uno-gap-md)}.create-game__summary-row{display:flex;justify-content:space-between;font-size:14px;color:var(--uno-text-secondary);padding:4px 0}.create-game__summary-row--highlight{color:var(--uno-accent);font-weight:700;border-top:1px solid var(--uno-glass-border);margin-top:8px;padding-top:8px}.create-game__button{width:100%;padding:14px 24px;background:var(--uno-accent);color:var(--uno-bg-primary);border:none;border-radius:8px;font-family:var(--font-primary);font-size:16px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.create-game__button:hover:not(:disabled){background:var(--uno-accent-light)}.create-game__button:disabled{opacity:.5;cursor:not-allowed}.create-game__error{color:var(--uno-timer-critical);font-size:13px;margin-top:8px;text-align:center}.waiting-room{background:var(--uno-glass-bg);border:1px solid var(--uno-glass-border);border-radius:var(--uno-glass-radius);padding:var(--uno-gap-lg)}.waiting-room__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--uno-gap-lg)}.waiting-room__title{font-size:22px;font-weight:700;color:var(--uno-accent);margin:0}.waiting-room__info{display:flex;gap:var(--uno-gap-md);font-size:14px;color:var(--uno-text-secondary)}.waiting-room__entry-fee{font-weight:700;color:var(--uno-text-primary)}.waiting-room__players{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;margin-bottom:var(--uno-gap-lg)}.waiting-room__slot{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--uno-bg-secondary);border:1px dashed var(--uno-glass-border);border-radius:8px;min-height:48px}.waiting-room__slot--filled{border-style:solid;border-color:var(--uno-glass-border)}.waiting-room__slot--you{border-color:var(--uno-accent);background:rgba(255,135,0,.1)}.waiting-room__player-name{font-weight:600;color:var(--uno-text-primary)}.waiting-room__host-badge{background:var(--uno-accent);color:var(--uno-bg-primary);font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.waiting-room__empty-slot{color:var(--uno-text-muted);font-size:13px;font-style:italic}.waiting-room__prize-preview{text-align:center;padding:var(--uno-gap-md);background:var(--uno-bg-tertiary);border-radius:8px;margin-bottom:var(--uno-gap-lg)}.waiting-room__countdown{width:100%;display:flex;flex-direction:column;gap:6px;margin-bottom:var(--uno-gap-lg);text-align:center}.waiting-room__countdown-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--uno-text-secondary)}.waiting-room__countdown-track{height:8px;background:var(--uno-bg-secondary);border-radius:999px;overflow:hidden;border:1px solid var(--uno-glass-border)}.waiting-room__countdown-bar{height:100%;background:var(--uno-accent);transition:width .2s ease}.waiting-room__prize-label{display:block;font-size:12px;color:var(--uno-text-secondary);text-transform:uppercase;margin-bottom:4px}.waiting-room__prize-value{font-size:24px;font-weight:900;color:var(--uno-accent)}.waiting-room__copy-link{display:block;width:100%;padding:10px;margin-bottom:var(--uno-gap-lg);background:transparent;border:1px dashed var(--uno-glass-border);border-radius:8px;color:var(--uno-text-secondary);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.waiting-room__copy-link:hover{border-color:var(--uno-accent);color:var(--uno-accent);background:rgba(255,255,255,.02)}.waiting-room__copy-link:active{transform:scale(.98)}.waiting-room__actions{display:flex;gap:var(--uno-gap-md)}.waiting-room__button{flex:1 1;padding:14px 24px;border-radius:8px;font-family:var(--font-primary);font-size:14px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.uno-button__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top:2px solid var(--uno-bg-primary);border-radius:50%;animation:spin 1s linear infinite}.waiting-room__button--join,.waiting-room__button--start{background:var(--uno-accent);color:var(--uno-bg-primary)}.waiting-room__button--join:hover:not(:disabled),.waiting-room__button--start:hover:not(:disabled){background:var(--uno-accent-light)}.waiting-room__button--join-full{opacity:.6;cursor:not-allowed}.waiting-room__button--join-error{background:var(--uno-bg-primary);color:var(--uno-accent);border:1px solid var(--uno-accent);text-shadow:var(--glow-sm);opacity:1}.waiting-room__button--join-error:hover:not(:disabled){background:var(--uno-bg-primary)}@keyframes waitingRoomJoinErrorFlash{0%{background-color:var(--uno-bg-primary);color:var(--uno-accent)}30%{background-color:var(--uno-white);color:var(--uno-accent)}70%{background-color:var(--uno-white);color:var(--uno-accent)}to{background-color:var(--uno-bg-primary);color:var(--uno-accent)}}.waiting-room__button--join-error-flash{animation:waitingRoomJoinErrorFlash .8s ease-out 1}.waiting-room__button--leave{background:transparent;color:var(--uno-text-secondary);border:1px solid var(--uno-glass-border)}.waiting-room__button--leave:hover:not(:disabled){border-color:var(--uno-text-primary);color:var(--uno-text-primary)}.waiting-room__button:disabled{opacity:.5;cursor:not-allowed}.waiting-room__status{text-align:center;color:var(--uno-text-secondary);font-size:14px;margin-top:var(--uno-gap-md)}.rematch-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);padding:var(--uno-gap-lg);padding-right:calc(var(--uno-chat-width, 320px) + var(--uno-gap-lg))}.rematch-overlay__content{max-width:500px;width:100%;animation:rematch-overlay-fade-in .3s ease-out}@keyframes rematch-overlay-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){.rematch-overlay{padding-right:var(--uno-gap-lg)}}