@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@600;700&family=Space+Mono:wght@400;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:Space Mono,monospace;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;overflow-x:hidden}.app{min-height:100vh;padding:clamp(1rem,3vw,2rem);position:relative}.app:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,.05) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.05) 0%,transparent 50%);animation:float 20s ease-in-out infinite;pointer-events:none;z-index:0}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(30px,-30px) rotate(120deg)}66%{transform:translate(-20px,20px) rotate(240deg)}}.header{text-align:center;margin-bottom:clamp(2rem,5vw,3rem);position:relative;z-index:1}.main-title{font-family:Fredoka,sans-serif;font-size:clamp(2.5rem,8vw,5rem);font-weight:700;color:#fff;text-shadow:4px 4px 0px rgba(0,0,0,.2),8px 8px 0px rgba(0,0,0,.1);letter-spacing:-.02em;margin-bottom:.5rem;animation:slideDown .6s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.subtitle{font-size:clamp(.9rem,3vw,1.1rem);color:#ffffffe6;font-weight:400;animation:fadeIn .8s ease-out .2s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:clamp(1.5rem,4vw,2rem);max-width:1400px;margin:0 auto;position:relative;z-index:1}@media(max-width:768px){.games-grid{grid-template-columns:1fr}}.game-card{position:relative;cursor:pointer;animation:cardEnter .5s ease-out both;-webkit-tap-highlight-color:transparent}.game-card:nth-child(1){animation-delay:.1s}.game-card:nth-child(2){animation-delay:.2s}.game-card:nth-child(3){animation-delay:.3s}.game-card:nth-child(4){animation-delay:.4s}@keyframes cardEnter{0%{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.card-inner{background:#fffffff2;border-radius:20px;padding:clamp(1.5rem,4vw,2rem);position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);border:3px solid transparent;box-shadow:0 10px 30px #0003;min-height:200px}.card-inner:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--card-color);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.card-inner.hovered:before{transform:scaleX(1)}.card-inner.hovered{transform:translateY(-8px) scale(1.02);border-color:var(--card-color);box-shadow:0 20px 40px #0000004d,0 0 0 3px var(--card-color)}.card-glow{position:absolute;top:-100%;left:-100%;width:300%;height:300%;background:radial-gradient(circle,var(--card-color) 0%,transparent 70%);opacity:0;transition:opacity .3s ease}.card-inner.hovered .card-glow{opacity:.1}.game-title{font-family:Fredoka,sans-serif;font-size:clamp(1.5rem,5vw,2rem);font-weight:700;color:#2d3748;margin-bottom:.75rem;position:relative;z-index:1}.game-description{color:#4a5568;line-height:1.6;margin-bottom:clamp(1rem,3vw,1.5rem);font-size:clamp(.85rem,2.5vw,.95rem);position:relative;z-index:1}.game-meta{display:flex;align-items:center;gap:clamp(.75rem,2vw,1rem);position:relative;z-index:1}.player-count{background:var(--card-color);color:#fff;padding:clamp(.3rem,1.5vw,.4rem) clamp(.7rem,2vw,.9rem);border-radius:20px;font-size:clamp(.75rem,2.2vw,.85rem);font-weight:700;letter-spacing:.02em}.play-arrow{position:absolute;bottom:1.5rem;right:1.5rem;font-size:2rem;color:var(--card-color);opacity:0;transform:translate(-10px);transition:all .3s ease;z-index:1}.card-inner.hovered .play-arrow{opacity:1;transform:translate(0)}.name-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto clamp(1.5rem,4vw,2rem);padding:10px 16px;background:#fffffff2;border-radius:50px;box-shadow:0 4px 15px #0000001a;max-width:fit-content;min-width:200px}.name-label{color:#6b7280;font-size:.9rem;font-family:Fredoka,sans-serif;white-space:nowrap}.name-display{font-weight:600;color:#1f2937;font-size:1rem;font-family:Fredoka,sans-serif;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-input-inline{font-weight:600;color:#1f2937;font-size:1rem;font-family:Fredoka,sans-serif;border:none;outline:none;background:transparent;width:120px;padding:2px 4px;border-bottom:2px solid #667eea}.name-edit-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:4px;cursor:pointer;color:#9ca3af;border-radius:4px;transition:color .2s,background .2s}.name-edit-btn:hover{color:#667eea;background:#667eea1a}.name-edit-btn:active{transform:scale(.95)}.join-room-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto clamp(1rem,3vw,1.5rem);flex-wrap:wrap}.join-code-input{padding:10px 16px;font-size:1rem;font-family:Space Mono,monospace;font-weight:600;text-transform:uppercase;letter-spacing:.15em;border:2px solid #e5e7eb;border-radius:50px;outline:none;width:160px;text-align:center;transition:border-color .2s,box-shadow .2s;background:#fffffff2}.join-code-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea33}.join-code-input::placeholder{text-transform:none;letter-spacing:normal;font-family:Fredoka,sans-serif;font-weight:400;font-size:.85rem;color:#9ca3af}.join-code-input:disabled{opacity:.6}.join-room-btn{padding:10px 20px;font-size:1rem;font-family:Fredoka,sans-serif;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50px;cursor:pointer;transition:transform .2s,box-shadow .2s}.join-room-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 15px #667eea66}.join-room-btn:active:not(:disabled){transform:scale(.98)}.join-room-btn:disabled{opacity:.5;cursor:not-allowed}.join-error{width:100%;text-align:center;color:#ef4444;font-size:.85rem;font-family:Fredoka,sans-serif;margin-top:4px}.divider-row{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto clamp(1.5rem,4vw,2rem);max-width:300px;padding:0 1rem}.divider-line{flex:1;height:1px;background:#ffffff4d}.divider-text{color:#ffffffb3;font-size:.85rem;font-family:Fredoka,sans-serif;white-space:nowrap}@media(max-width:480px){.name-row{padding:8px 14px;gap:6px}.name-label{font-size:.85rem}.name-display{font-size:.95rem;max-width:120px}.name-input-inline{font-size:.95rem;width:100px}.join-code-input{width:140px;padding:8px 14px;font-size:.95rem}.join-code-input::placeholder{font-size:.75rem}.join-room-btn{padding:8px 16px;font-size:.95rem}.divider-row{max-width:260px}.divider-text{font-size:.8rem}}.home-button{position:absolute;top:10px;left:10px;padding:6px 10px;background:#fffffff2;color:var(--home-btn-color, #6b7280);border:2px solid transparent;border-radius:12px;cursor:pointer;font-size:1rem;z-index:10;min-height:36px;min-width:36px;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 12px #00000026;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.home-button:hover{transform:translateY(-3px) scale(1.05);border-color:var(--home-btn-color, #6b7280);box-shadow:0 8px 20px #0003,0 0 0 2px var(--home-btn-color, #6b7280)}.home-button:active{transform:translateY(-1px) scale(1.02)}.confirm-backdrop{position:fixed;inset:0;background:#00000085;display:flex;align-items:center;justify-content:center;z-index:9999;animation:confirm-bg-in .18s ease}@keyframes confirm-bg-in{0%{opacity:0}to{opacity:1}}.confirm-modal{background:#fff;border-radius:18px;padding:28px 28px 22px;max-width:340px;width:90%;box-shadow:0 12px 48px #00000047;font-family:Fredoka,sans-serif;animation:confirm-modal-in .22s cubic-bezier(.34,1.56,.64,1)}@keyframes confirm-modal-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}.confirm-message{font-size:1.15rem;font-weight:700;color:#1f2937;margin:0 0 6px;text-align:center;line-height:1.35}.confirm-sub{font-size:.88rem;color:#6b7280;margin:0 0 4px;text-align:center}.confirm-buttons{display:flex;gap:10px;justify-content:center;margin-top:22px}.confirm-cancel{flex:1;padding:10px 16px;border-radius:10px;border:2px solid #e5e7eb;background:#fff;color:#374151;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.confirm-cancel:hover{background:#f3f4f6}.confirm-ok{flex:1;padding:10px 16px;border-radius:10px;border:none;background:#3b82f6;color:#fff;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.confirm-ok:hover{background:#2563eb}.confirm-ok.danger{background:#ef4444}.confirm-ok.danger:hover{background:#dc2626}.chat-panel{position:fixed;bottom:80px;right:16px;width:clamp(280px,85vw,350px);max-height:min(400px,calc(100vh - 160px));max-height:min(400px,calc(100dvh - 160px));background:var(--chat-color, #3b82f6);border-radius:20px;box-shadow:0 8px 32px #0003,0 4px 12px #0000001a;display:flex;flex-direction:column;z-index:1000;animation:slideUp .2s ease-out;overflow:hidden}.chat-panel:after{content:"";position:absolute;bottom:-8px;right:24px;width:16px;height:16px;background:var(--chat-color, #3b82f6);border-radius:0 0 4px;transform:rotate(45deg);box-shadow:4px 4px 8px #0000001a}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;color:#fff;font-weight:700;font-size:1.1rem;font-family:Fredoka,sans-serif;background:transparent!important;border-bottom:1px solid rgba(255,255,255,.2)}.chat-close-btn{background:none;border:none;color:#fff;cursor:pointer;padding:0;line-height:1;opacity:.8;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.chat-close-btn:hover{opacity:1}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:150px;max-height:220px;background:#fff;margin:0 8px;border-radius:12px}.chat-empty{text-align:center;color:#9ca3af;font-size:.9rem;padding:20px}.chat-message{padding:3px 0;font-size:.72rem;max-width:100%;word-wrap:break-word;animation:fadeIn .2s ease-out;line-height:1.4}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-message.player{background:none;color:#374151;align-self:flex-start}.chat-message.player.own{background:var(--chat-color, #3b82f6);color:#fff;align-self:flex-end;padding:6px 10px;border-radius:10px 10px 3px;max-width:80%}.chat-message-author{font-weight:700;margin-right:4px;color:var(--chat-color, #3b82f6);font-size:.65rem}.chat-message.player.own .chat-message-author{color:#ffffffd9}.chat-message-content{color:inherit;font-size:.7rem}.chat-message.player.own .chat-message-content{font-size:.7rem}.chat-message.system{background:none;color:#9ca3af;text-align:left;align-self:flex-start;font-size:.65rem;font-style:italic;max-width:100%}.chat-message.system .chat-message-content{color:#9ca3af}.chat-input-container{display:flex;gap:8px;padding:12px;background:transparent;border-top:none}.chat-input{flex:1;padding:10px 14px;border:none;border-radius:20px;font-size:.9rem;transition:box-shadow .2s;font-family:inherit;background:#fff;color:#374151}.chat-input:focus{outline:none;box-shadow:0 0 0 2px #ffffff80}.chat-input:disabled{background:#ffffffb3;color:#9ca3af}.chat-send-btn{padding:10px 18px;border:none;border-radius:20px;font-weight:700;cursor:pointer;transition:all .2s;font-family:Fredoka,sans-serif;color:var(--chat-color, #3b82f6);background:#fff!important}.chat-send-btn:disabled{background:#ffffff80!important;color:#9ca3af;cursor:not-allowed}.chat-send-btn:not(:disabled):hover{background:#f0f9ff!important;transform:scale(1.05)}.chat-toggle-btn{position:fixed;bottom:16px;right:16px;width:44px;height:44px;border-radius:12px;border:2px solid transparent;background:#fffffff2;color:var(--chat-color, #6b7280);font-size:1.5rem;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.chat-toggle-btn:hover{transform:translateY(-3px) scale(1.05);border-color:var(--chat-color, #6b7280);box-shadow:0 8px 20px #0003,0 0 0 2px var(--chat-color, #6b7280)}.chat-toggle-btn:active{transform:translateY(-1px) scale(1.02)}.chat-unread-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:.75rem;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px;animation:pop .2s ease-out}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}.chat-alerts{position:fixed;bottom:70px;right:16px;display:flex;flex-direction:column;gap:6px;z-index:999;max-width:clamp(250px,70vw,320px);pointer-events:none}.chat-alert{background:#fffffff2;border-radius:12px;padding:10px 16px;box-shadow:0 4px 12px #00000026;font-family:Fredoka,sans-serif;font-size:1rem;animation:alertSlideIn .25s ease-out;border-left:3px solid var(--chat-color, #3b82f6)}.chat-alert.fading{animation:alertFadeOut .3s ease-in forwards}.chat-alert-author{font-weight:700;color:var(--chat-color, #3b82f6);margin-right:6px;font-size:.95rem}.chat-alert-content{color:#374151}@keyframes alertSlideIn{0%{opacity:0;transform:translateY(10px) translate(20px)}to{opacity:1;transform:translateY(0) translate(0)}}@keyframes alertFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.chat-rate-limit{font-size:.75rem;color:#f59e0b;text-align:center;padding:4px}@media(max-width:480px){.chat-panel{bottom:70px;right:8px;left:8px;width:auto;max-height:min(350px,calc(100vh - 140px));max-height:min(350px,calc(100dvh - 140px));border-radius:16px}.chat-panel:after{right:20px;width:14px;height:14px}.chat-header{padding:12px 14px;font-size:1rem}.chat-messages{min-height:120px;max-height:180px;margin:0 6px;padding:10px}.chat-input-container{padding:10px}.chat-toggle-btn{bottom:12px;right:12px;width:40px;height:40px}.chat-alerts{bottom:62px;right:8px;left:8px;max-width:none}}.lobby-card-wrapper{position:relative;max-width:600px;width:calc(100% - 2rem);margin:clamp(.5rem,1.5vw,.75rem) auto}.lobby-card-inner{background:#fffffff2;border-radius:20px;padding:clamp(1rem,3vw,1.5rem);position:relative;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);border:3px solid transparent;box-shadow:0 10px 30px #0003}.lobby-card-inner:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--card-color);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.lobby-card-inner.hovered:before{transform:scaleX(1)}.lobby-card-inner.hovered{transform:translateY(-8px) scale(1.02);border-color:var(--card-color);box-shadow:0 20px 40px #0000004d,0 0 0 3px var(--card-color)}.lobby-card-glow{position:absolute;top:-100%;left:-100%;width:300%;height:300%;background:radial-gradient(circle,var(--card-color) 0%,transparent 70%);opacity:0;transition:opacity .3s ease;pointer-events:none}.lobby-card-inner.hovered .lobby-card-glow{opacity:.1}.lobby-card-title{font-family:Fredoka,sans-serif;font-size:clamp(1.3rem,4vw,1.6rem);font-weight:700;color:#2d3748;margin:0 0 .5rem;position:relative;z-index:1}.lobby-card-content{position:relative;z-index:1}.invite-friends .share-hint{color:#666;font-size:clamp(.8rem,2.5vw,.9rem);margin-top:.5rem}.game-options{display:flex;flex-direction:column;align-items:center;gap:clamp(.75rem,2vw,1rem)}.game-option-row{display:flex;align-items:center;justify-content:center;gap:clamp(.5rem,2vw,1rem);flex-wrap:wrap}.game-option-row .option-label{color:#6b7280;font-size:clamp(.85rem,2.5vw,.95rem);font-family:Fredoka,sans-serif;font-weight:400}.option-buttons{display:flex;gap:.4rem;flex-wrap:wrap}.option-buttons .option-btn{padding:clamp(.35rem,1vw,.45rem) clamp(.6rem,1.5vw,.8rem);border:2px solid #e5e7eb;border-radius:8px;background:#f3f4f6;font-family:Space Mono,monospace;font-size:clamp(.8rem,2.2vw,.9rem);font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s;min-height:36px;-webkit-tap-highlight-color:transparent}.option-buttons .option-btn:hover:not(.active):not(:disabled){border-color:var(--card-color);color:var(--card-color)}.option-buttons .option-btn.active{background:var(--card-color);border-color:var(--card-color);color:#fff}.option-buttons .option-btn:disabled{cursor:default;opacity:.7}.host-only-hint{color:#9ca3af;font-size:clamp(.75rem,2vw,.8rem);font-style:italic;text-align:center;margin-top:.25rem}.player-list-section .game-in-progress-banner{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:.9rem;font-weight:600;color:#92400e;text-align:center}.player-list-section .player-item.player-disconnected{opacity:.6}.player-list-section .player-item .disconnected-badge{display:inline-flex;align-items:center;color:#ef4444;animation:wifi-pulse 1.5s ease-in-out infinite}@keyframes wifi-pulse{0%,to{opacity:1}50%{opacity:.35}}.player-list-section .name-error-box{margin-bottom:1rem;padding:1rem;background:#fee;border:1px solid #f88;border-radius:10px;color:#c00}.player-list-section .name-error-box p{margin:0;font-weight:700}.player-list-section .name-error-box button{margin-top:.5rem;padding:.5rem 1rem;background:var(--card-color);color:#fff;border:none;border-radius:5px;cursor:pointer;font-weight:700}.player-list-section .players-header{font-size:clamp(1rem,3vw,1.15rem);margin:0 0 .5rem;color:#4a5568;font-family:Fredoka,sans-serif;font-weight:500}.player-list-section .players-header .syncing{font-size:.8rem;color:#666;margin-left:.5rem}.player-list-section .players-list{list-style:none;padding:0;margin:0}.player-list-section .players-list .connecting{padding:clamp(.4rem,1.5vw,.5rem);color:#999;font-size:clamp(.9rem,2.5vw,1rem)}.player-list-section .player-item{padding:clamp(.25rem,1vw,.4rem);font-size:clamp(1rem,3vw,1.1rem);display:flex;align-items:center;justify-content:center;gap:.5rem}.player-list-section .player-item .host-crown{color:var(--card-color);display:inline-flex;align-items:center}.player-list-section .player-item .color-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.player-list-section .player-item .you-indicator{color:#666;font-size:.85em}.player-list-section .player-item .ready-status{display:inline-flex;align-items:center;color:var(--card-color)}.player-list-section .player-item .edit-btn{padding:2px 6px;background:var(--card-color);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.8em;transition:all .2s;min-height:28px;min-width:28px;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center}.player-list-section .player-item .edit-btn:hover{filter:brightness(.9)}.player-list-section .inline-edit{display:inline-flex;align-items:center;gap:4px}.player-list-section .inline-edit-input{padding:4px 8px;font-size:clamp(.9rem,2.5vw,1rem);font-weight:600;border:2px solid var(--card-color);border-radius:6px;outline:none;width:120px;max-width:150px;box-sizing:border-box}.player-list-section .inline-save-btn{padding:2px 6px;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85em;font-weight:700;min-height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.player-list-section .inline-cancel-btn{padding:2px 6px;background:#6b7280;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85em;font-weight:700;min-height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.player-list-section .player-item .kick-btn{padding:2px 6px;background:#ef4444;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.8em;transition:all .2s;min-height:28px;min-width:28px;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center}.player-list-section .player-item .kick-btn:hover{filter:brightness(.9)}.player-list-section .action-area{margin-top:clamp(.75rem,2vw,1rem);text-align:center}.player-list-section .action-area .waiting-text{color:#f87171;font-size:clamp(.9rem,2.5vw,1rem);font-style:italic}.player-list-section .action-area .start-btn,.player-list-section .action-area .ready-btn{padding:clamp(.75rem,2.5vw,1rem) clamp(1.5rem,4vw,2rem);font-size:clamp(1rem,3vw,1.2rem);color:#fff;border:none;border-radius:10px;font-weight:700;min-height:48px;-webkit-tap-highlight-color:transparent;transition:all .2s}.player-list-section .action-area .start-btn:not(:disabled){cursor:pointer}.player-list-section .action-area .start-btn:disabled{cursor:not-allowed}.player-list-section .action-area .ready-btn:not(:disabled){cursor:pointer}.player-list-section .action-area .ready-btn:disabled{cursor:default}.player-list-section .action-area .waiting-ready-text{color:#999;font-size:clamp(.8rem,2.5vw,.9rem);margin-top:.5rem}.room-lobby-page{text-align:center;padding:clamp(1rem,3vw,2rem);position:relative}.lobby-instructions{text-align:center}.lobby-instruction-text{color:#4a5568;font-size:clamp(.9rem,2.5vw,1rem);margin:0 0 .5rem}.lobby-instruction-hint{color:#9ca3af;font-size:clamp(.8rem,2vw,.85rem);font-style:italic;margin:0}.disconnect-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.disconnect-card{background:#fff;border-radius:20px;padding:clamp(1.5rem,5vw,2.5rem);text-align:center;max-width:380px;width:100%;box-shadow:0 20px 60px #0000004d}.disconnect-icon{color:#ef4444;margin-bottom:1rem}.disconnect-title{font-family:Fredoka,sans-serif;font-size:clamp(1.4rem,5vw,1.8rem);font-weight:700;color:#2d3748;margin-bottom:.5rem}.disconnect-message{font-family:Fredoka,sans-serif;font-size:clamp(.9rem,3vw,1rem);color:#666;margin-bottom:1.5rem;line-height:1.5}.disconnect-error{display:block;margin-top:.25rem;font-size:.85rem;color:#ef4444}.disconnect-actions{display:flex;gap:.75rem;justify-content:center}.disconnect-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.7rem 1.4rem;border:none;border-radius:10px;font-family:Fredoka,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .2s;min-height:44px;-webkit-tap-highlight-color:transparent}.disconnect-btn:hover{opacity:.9;transform:translateY(-1px)}.disconnect-btn:active{transform:translateY(0)}.disconnect-btn.retry{background:#3b82f6;color:#fff}.disconnect-btn.home{background:#f3f4f6;color:#2d3748}.disconnect-spinner{display:flex;justify-content:center;color:#3b82f6}.spinning{animation:spin 1.2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
