.game-board{max-width:100%;margin:0 auto;padding:10px 20px 80px;font-family:Arial,sans-serif;font-size:17px;min-height:100vh;color:#1a1a2e;background:#f5f5f5}.exit-fab-container{position:fixed;top:16px;left:22px;z-index:1000}.exit-fab{width:50px;height:50px;border-radius:50%;background:#e74c3c;border:2px solid #c0392b;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0006;transition:all .3s;padding:0}.exit-fab .exit-icon{width:24px;height:24px}.exit-fab:hover{transform:scale(1.1);background:#c0392b}.afk-banner{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;padding:12px 20px;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border-radius:8px;box-shadow:0 4px 15px #e74c3c66;animation:afkSlideIn .3s ease-out}.afk-message{font-size:14px}.leave-without-penalty-btn{padding:8px 16px;background:#fff;color:#e74c3c;border:none;border-radius:5px;font-weight:700;cursor:pointer;transition:all .2s ease}.leave-without-penalty-btn:hover{background:#f8f8f8;transform:scale(1.05)}.game-header{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 20px;min-height:50px;background:#2c3e50;color:#fff;border-radius:8px 8px 0 0;margin-bottom:0}.header-top-row{display:flex;align-items:center;gap:8px;font-size:14px}.header-top-row .game-id{opacity:1}.header-separator{opacity:.8}.header-message-row{width:100%;text-align:center}.game-message-inline{font-size:13px;padding:5px 10px;background:#ffffff1a;border-radius:4px;display:inline-block}.current-user{font-weight:700}.game-status-bar{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#34495e;color:#fff;border-radius:8px;margin-bottom:10px}.team-score{text-align:center}.game-status-bar .team-score.team-1{text-align:left}.game-status-bar .team-score.team-2{text-align:right}.team-name{font-size:12px;opacity:.8;display:block}.team-score .score{font-size:28px;font-weight:700}.briscola-badge{text-align:center}.briscola-badge .set-by{display:block;font-size:11px;opacity:.7}.players-order{display:flex;justify-content:space-around;padding:0;background:#ecf0f1;border-radius:8px;margin-bottom:10px}.player-slot{text-align:center;padding:8px 15px;border-radius:6px;color:#ecf0f1;min-width:100px}.player-slot .player-name-row{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}@media (min-width: 769px){.player-slot{padding:6px 12px}.player-slot .player-name-row{flex-direction:row;gap:6px}.card-btn{width:108px!important;height:205px!important}.game-board .table-cards{min-height:235px}}.player-slot.team-1{background:#34495e}.player-slot.team-2{background:#d4a017;color:#1a1a1a}.player-slot.team-2 .player-position{color:#5a4a0a}.player-slot.current-turn{border:4px solid #2ecc71;box-shadow:inset 0 0 0 4px #2ecc71}.player-slot.current-turn.team-1{background:#34495e;color:#ecf0f1}.player-slot.current-turn.team-2{background:#d4a017;color:#1a1a1a}.player-slot.disconnected{background:#fadbd8!important;color:#c0392b!important}.player-slot.is-me{border:2px solid #3498db}.player-position{font-size:10px;color:#bdc3c7;display:block}.game-board .player-name{font-weight:700;display:block;color:inherit}.turn-indicator{font-size:10px;animation:blink 1s infinite}@keyframes blink{50%{opacity:.5}}.game-board .table{background:#27ae60;padding:20px;border-radius:12px;text-align:center;margin-bottom:15px;min-height:100px}.game-board .table.showing-trick{animation:pulse .5s}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.game-board .table h4{color:#fff;margin:0 0 10px;font-size:18px}.table-briscola{color:#f1c40f;font-weight:700}.table-turn{color:#ecf0f1}.table-trick{color:#f39c12;font-weight:700}.hand-score{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.hand-score .team-score{font-weight:700;font-size:16px}.hand-score .team-1-score{color:#fff}.hand-score .team-2-score{color:#000}.hand-score .team-players{font-size:14px;font-weight:700}.hand-score .team-1-players{color:#fff}.hand-score .team-2-players{color:#000}.hand-score .score-separator{color:#f1c40f;font-weight:700}.hand-summary{display:flex;justify-content:center;align-items:center;gap:30px;padding:20px}.hand-summary-team{display:flex;flex-direction:column;align-items:center;gap:5px}.hand-summary-team .summary-player{font-size:16px;font-weight:500}.hand-summary-team .summary-points{font-size:48px;font-weight:700;line-height:1}.hand-summary-team .summary-figures{font-size:14px;opacity:.8}.team-1-summary{color:#fff}.team-2-summary{color:#f1c40f}.hand-summary-separator{font-size:48px;font-weight:700;color:#f1c40f}.game-board .table-cards{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap;min-height:260px}.table-card-wrapper{display:flex;flex-direction:column;align-items:center;gap:5px}.card-player-name{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:700}.card-player-name.team-1{background:#34495e;color:#ecf0f1}.card-player-name.team-2{background:#d4a017;color:#1a1a1a}.card-player-name{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-btn{padding:0;border-radius:6px;border:2px solid #8b7355;background:#fff;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0003;overflow:hidden;width:120px!important;height:228px!important}.card-btn .card-img{width:100%;height:100%;object-fit:contain;display:block}.card-btn .card-code{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:14px;font-weight:700;color:#1a1a1a}.card-btn.on-table{border-color:#d4af37;box-shadow:0 3px 8px #0000004d;cursor:default;opacity:1!important;filter:none!important}.card-btn.on-table:disabled{opacity:1;filter:none}.card-btn.in-hand{border-color:#8b7355}.card-btn.in-hand.playable{border-color:#27ae60;box-shadow:0 2px 8px #27ae6066;cursor:pointer}.card-btn.in-hand.playable:hover{transform:translateY(-10px);box-shadow:0 8px 16px #0000004d;border-color:#1e8449}.card-btn.in-hand.not-playable{cursor:default;pointer-events:none}.card-btn.in-hand.not-playable:hover{transform:none}.game-board .my-hand{padding:15px;border-radius:12px;text-align:center;transition:background .3s ease}.game-board .my-hand.not-my-turn{background:#3498db}.game-board .my-hand.my-turn{background:#f1c40f;box-shadow:0 0 20px #f1c40f80}.game-board .my-hand h4{margin:0 0 10px}.game-board .my-hand.not-my-turn h4{color:#fff}.game-board .my-hand.my-turn h4{color:#1a1a1a}.spectator-banner{background:linear-gradient(135deg,#8e44ad,#9b59b6);padding:20px;border-radius:12px;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px;color:#fff}.spectator-icon{font-size:24px}.spectator-text{font-size:16px;font-weight:600}.your-turn-badge{background:#e74c3c;color:#fff;padding:3px 8px;border-radius:4px;font-size:12px;animation:blink 1s infinite}.game-board .hand-cards{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.empty-table{color:#fff9;font-style:italic}.game-board .waiting-room{background:#fff;padding:24px;border-radius:12px;text-align:center;color:#1a1a2e;border:1px solid #d0e0f0;box-shadow:0 4px 15px #0000001a;font-size:19px}.game-board .waiting-room h3{margin-top:0;color:#1a1a2e;font-size:26px}.game-board .waiting-room h4{color:#1a1a2e;margin-bottom:12px;font-size:20px}.game-board .players-section{background:#f8fbfd;padding:20px;border-radius:10px;border:1px solid #d0e0f0;margin-top:15px}.game-board .players-section h4{margin:0 0 15px;color:#1a1a2e;font-size:20px}.game-board .players-list{list-style:none;padding:0;margin:0}.game-board .players-list li{padding:14px 18px;margin:8px 0;background:#fff;border-radius:8px;color:#1a1a2e;font-weight:500;font-size:18px;display:flex;justify-content:space-between;align-items:center;border:2px solid #c0d8ec;box-shadow:0 2px 4px #0000000d}.game-board .players-list li .player-info{display:flex;align-items:center;gap:12px;flex:1;text-align:left}.game-board .players-list li .player-info .player-name{font-size:20px;font-weight:600;color:#1a1a2e}.game-board .players-list li .player-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.game-board .players-list li .player-actions .info-stats-btn{background:none;border:none;cursor:pointer;padding:4px;color:#888;transition:color .2s;display:flex;align-items:center;justify-content:center}.game-board .players-list li .player-actions .info-stats-btn:hover{color:#2980b9}.game-board .players-list li .player-actions .info-stats-btn svg{width:18px;height:18px}.game-board .players-list li .team-indicator{font-size:13px;background:#9b59b6;padding:3px 8px;border-radius:10px;color:#fff}.game-board .players-list li.you{background:#d4edda;border-color:#27ae60;color:#1a1a2e;font-weight:700}.game-board .players-list li.in-team{border:2px solid #9b59b6}.game-board .players-list li.empty-slot{background:#f8f9fa;color:#6c757d;font-style:italic;border-color:#dee2e6}.game-board .players-list li .invite-btn{background:#2980b9;color:#fff;border:none;padding:5px 14px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 4px #0003}.game-board .players-list li .invite-btn:hover{background:#1a5276;transform:scale(1.05)}.game-board .players-list li .kick-btn{background:#c0392b;color:#fff;border:none;padding:5px 7px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0003;margin-left:5px}.game-board .players-list li .kick-btn:hover{background:#922b21;transform:scale(1.1)}.game-board .players-list li .invite-pending-badge{font-size:13px;background:#f39c12;padding:5px 10px;border-radius:10px;color:#1a1a1a;white-space:nowrap}.team-selection-section{background:#f0f6fc;padding:18px;border-radius:8px;margin-bottom:15px;border:1px solid #b8d4e8;font-size:17px}.team-selection-section h4{margin:0 0 14px;color:#1a1a2e;font-size:22px;font-weight:600}.my-team-status{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:6px;margin-bottom:10px}.my-team-status.confirmed{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}.my-team-status.pending{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.my-team-status.received{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;flex-direction:column;gap:10px}.my-team-status .invite-actions{display:flex;gap:10px}.my-team-status .dissolve-btn,.my-team-status .cancel-invite-btn{background:#0000004d;color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.my-team-status .dissolve-btn:hover,.my-team-status .cancel-invite-btn:hover{background:#00000080}.my-team-status .accept-btn{background:#27ae60;color:#fff;border:none;padding:8px 20px;border-radius:4px;font-weight:700;cursor:pointer;transition:all .2s}.my-team-status .accept-btn:hover{background:#2ecc71;transform:scale(1.05)}.my-team-status .decline-btn{background:#e74c3c;color:#fff;border:none;padding:8px 20px;border-radius:4px;font-weight:700;cursor:pointer;transition:all .2s}.my-team-status .decline-btn:hover{background:#c0392b}.confirmed-teams{margin-top:10px;padding-top:10px;border-top:1px solid #34495e}.confirmed-teams h5{margin:0 0 8px;color:#9b59b6;font-size:12px}.team-badge{display:inline-block;background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff;padding:6px 12px;border-radius:15px;font-size:12px;margin:3px 5px 3px 0}.announcement.team{background:linear-gradient(135deg,#9b59b6,#8e44ad)}.spectators-section{margin-top:18px;padding-top:18px;border-top:1px solid #d0e0f0}.spectators-section h4{font-size:18px;color:#1a1a2e}.spectators-list{list-style:none;padding:0;margin:0}.spectators-list li{padding:8px 14px;margin:4px 0;background:#f0f6fc;border-radius:4px;color:#1a1a2e;font-size:17px;border:1px solid #d0e0f0}.start-button{background:#27ae60;color:#fff;border:none;padding:18px 36px;font-size:20px;border-radius:8px;cursor:pointer;margin-top:15px;font-weight:700;box-shadow:0 4px 6px #0003}.start-button:hover{background:#2ecc71;transform:translateY(-2px);box-shadow:0 6px 8px #0000004d}.waiting-message{color:#bdc3c7;font-style:italic;margin-top:15px}.game-board .briscola-selector{background:#9b59b6;padding:20px;border-radius:12px;text-align:center;margin-bottom:15px}.game-board .briscola-selector h3{color:#fff;margin-top:0;margin-bottom:4px}.briscola-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:400px;margin:0 auto}.briscola-btn{padding:12px 16px;font-size:14px;border:none;border-radius:8px;cursor:pointer;transition:transform .2s}.briscola-btn:hover{transform:scale(1.05)}.briscola-btn.denari{background:#f1c40f;color:#1a1a1a;font-weight:700}.briscola-btn.coppe{background:#e74c3c;color:#fff;font-weight:700}.briscola-btn.bastoni{background:#27ae60;color:#fff;font-weight:700}.briscola-btn.spade{background:#3498db;color:#fff;font-weight:700}.briscola-btn.selected{outline:3px solid white;outline-offset:2px;transform:scale(1.05)}.briscola-hint{margin-top:12px;font-size:13px;color:#bdc3c7;font-style:italic}.waiting-briscola{background:#34495e;padding:20px;border-radius:12px;text-align:center;color:#fff;margin-bottom:15px}.waiting-briscola h3{margin:0;color:#ecf0f1}.announcements-container{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.announcement{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 24px;border-radius:25px;font-size:16px;font-weight:500;box-shadow:0 4px 15px #0000004d;animation:slideInDown .3s ease-out,fadeOut .5s ease-in 2.5s forwards;text-align:center;min-width:200px}.announcement.briscola{background:linear-gradient(135deg,#f093fb,#f5576c)}.announcement.call{background:linear-gradient(135deg,#4facfe,#00f2fe)}.announcement.leave{background:linear-gradient(135deg,#e74c3c,#c0392b)}.announcement.rejoin{background:linear-gradient(135deg,#27ae60,#2ecc71)}.announcement.maraffa{background:linear-gradient(135deg,#f1c40f,#f39c12);font-size:20px;font-weight:700;text-transform:uppercase;animation:slideInDown .3s ease-out,pulse .5s ease-in-out 3,fadeOut .5s ease-in 3s forwards}.announcement strong{font-weight:700}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.call-section{margin-top:0;padding-top:15px;border-top:1px solid rgba(255,255,255,.2);text-align:center}.call-label{color:#1a1a1a;font-size:14px;display:block;margin-bottom:10px}.call-buttons-row{display:flex;justify-content:center;gap:8px;margin-bottom:8px}.call-buttons-row:last-child{margin-bottom:0}.call-btn{padding:10px 16px;font-size:12px;border:none;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:600;text-transform:uppercase}.call-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #0000004d}.call-btn.busso,.call-btn.volo,.call-btn.striscio,.call-btn.ristriscio,.call-btn.ristriscio-busso{background:#2980b9;color:#fff}.call-btn.busso:hover,.call-btn.volo:hover,.call-btn.striscio:hover,.call-btn.ristriscio:hover,.call-btn.ristriscio-busso:hover{background:#1a5276}.game-end-screen{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:15px;padding:25px;text-align:center;color:#fff;box-shadow:0 10px 40px #00000080}.winner-celebration{margin-bottom:25px}.trophy-icon{font-size:60px;animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.winner-title{font-size:32px;margin:15px 0;background:linear-gradient(135deg,gold,#ffb347);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.winner-players{display:flex;flex-direction:column;gap:5px}.winner-label{font-size:14px;color:#ffffffb3}.winner-names{font-size:20px;font-weight:700;color:#4facfe}.final-score-box{background:#ffffff1a;border-radius:12px;padding:20px;margin-bottom:20px}.final-score-box h3{margin:0 0 15px;font-size:18px;color:#ffffffe6}.final-score-display{display:flex;justify-content:center;align-items:center;gap:20px}.team-final{display:flex;flex-direction:column;align-items:center;padding:15px 20px;border-radius:10px;min-width:120px}.team-final.winner{background:linear-gradient(135deg,#4caf504d,#388e3c4d);border:2px solid #4caf50}.team-final.loser{background:#ffffff0d;border:2px solid rgba(255,255,255,.2)}.team-final .team-label{font-size:12px;color:#ffffffb3;margin-bottom:5px}.team-final .team-players{font-size:11px;color:#fff9;margin-bottom:10px}.team-final .team-score{font-size:36px;font-weight:700}.team-final.winner .team-score{color:#4caf50}.team-final.loser .team-score{color:#ffffff80}.vs-divider{font-size:16px;font-weight:700;color:#fff6}.hand-history-box{background:#ffffff1a;border-radius:12px;padding:15px;margin-bottom:20px;max-height:200px;overflow-y:auto}.hand-history-box h3{margin:0 0 10px;font-size:16px;color:#ffffffe6}.hand-history-table{font-size:12px}.history-header,.history-row{display:grid;grid-template-columns:60px 1fr 1fr;gap:10px;padding:8px 5px;text-align:center}.history-header{font-weight:700;color:#ffffffb3;border-bottom:1px solid rgba(255,255,255,.2)}.history-row{border-bottom:1px solid rgba(255,255,255,.1)}.history-row:last-child{border-bottom:none}.history-row small{color:#ffffff80}.end-game-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.rematch-btn,.leave-btn{padding:15px 30px;font-size:16px;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:all .3s}.rematch-btn{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.rematch-btn:hover{transform:scale(1.05);box-shadow:0 5px 20px #4facfe66}.leave-btn{background:#ffffff1a;color:#fff;border:2px solid rgba(255,255,255,.3)}.leave-btn:hover{background:#fff3}.mobile-footer{display:flex;position:fixed;bottom:0;left:0;right:0;height:50px;background:#1a1a2e;z-index:100;padding:5px 20px;gap:10px}.footer-left{flex:1;min-width:0}.footer-right{width:150px;flex-shrink:0}.mobile-footer .chat-container{position:relative!important;bottom:auto!important;right:auto!important;left:auto!important;width:100%!important;height:40px!important;max-height:none!important}.mobile-footer .chat-container.minimized .chat-header{height:100%;border-radius:8px;padding:8px 12px}.mobile-footer .chat-container .chat-title{font-size:12px}.mobile-footer:has(.chat-container:not(.minimized)) .footer-right{display:none}.mobile-footer:has(.chat-container:not(.minimized)) .footer-left{position:fixed;bottom:0;left:0;right:0;height:50vh;max-height:400px;z-index:200}.mobile-footer:has(.chat-container:not(.minimized)) .chat-container{height:100%!important;max-height:100%!important;border-radius:12px 12px 0 0;display:flex!important;flex-direction:column!important}.mobile-footer .chat-container:not(.minimized) .chat-header{height:auto;flex-shrink:0;border-radius:12px 12px 0 0;padding:12px 16px}.mobile-footer .chat-container:not(.minimized) .chat-messages{flex:1;min-height:0;max-height:none}.mobile-footer .chat-container:not(.minimized) .chat-input{flex-shrink:0}.voice-chat-fab-container{position:fixed;top:16px;right:22px;z-index:100}.previous-trick-btn{width:100%;height:100%;padding:10px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s}.previous-trick-btn:hover:not(.disabled){transform:scale(1.02);box-shadow:0 4px 15px #667eea66}.previous-trick-btn.disabled{background:#555;opacity:.5;cursor:not-allowed}.previous-trick-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1001}.previous-trick-content{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:15px;padding:20px 20px 25px;text-align:center;color:#fff;min-width:280px;max-width:90vw}.previous-trick-content h4{margin:0 0 15px;font-size:16px}.previous-trick-content h4 span{font-weight:400;font-size:14px;color:#ffffffb3}.previous-trick-cards{display:flex;justify-content:center;gap:10px;margin-bottom:20px;flex-wrap:wrap;padding:5px}.previous-trick-cards .card,.previous-trick-cards .previous-card{flex-shrink:0;width:60px!important;height:auto!important;min-height:0!important;max-height:none!important}.previous-trick-cards .card img,.previous-trick-cards .previous-card img{width:60px!important;height:auto!important;display:block}.close-modal-btn{padding:10px 25px;background:#fff3;border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s}.close-modal-btn:hover{background:#ffffff4d}.lobby-btn{width:100%;height:100%;padding:10px;background:linear-gradient(135deg,#00b894,#00cec9);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s}.lobby-btn:hover{transform:scale(1.02);box-shadow:0 4px 15px #00b89466}.lobby-btn .btn-icon{font-size:18px}.lobby-btn .btn-icon-svg{width:20px;height:20px;stroke:#fff;flex-shrink:0}.lobby-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:flex-end;justify-content:center;z-index:1001}.lobby-content{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:15px 15px 0 0;width:100%;max-height:70vh;color:#fff;display:flex;flex-direction:column;overflow:hidden}.lobby-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:linear-gradient(135deg,#00b894,#00cec9)}.lobby-header h3{margin:0;font-size:18px;display:flex;align-items:center;gap:8px}.lobby-header-icon{width:22px;height:22px}.close-lobby-btn{background:#fff3;border:none;border-radius:50%;width:30px;height:30px;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.lobby-sections{flex:1;overflow-y:auto;padding:15px}.lobby-section{margin-bottom:20px}.lobby-section:last-child{margin-bottom:0}.lobby-section h4{margin:0 0 10px;font-size:14px;color:#ffffffe6;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:8px}.lobby-list{display:flex;flex-direction:column;gap:8px}.lobby-players-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px}.lobby-player-item{background:#ffffff1a;border-radius:8px;padding:8px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.lobby-player-item .player-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.lobby-modal .invite-btn{background:linear-gradient(135deg,#f39c12,#e67e22);border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0}.lobby-modal .invite-btn:hover{transform:scale(1.1);box-shadow:0 2px 8px #f39c1266}.empty-list{color:#ffffff80;font-style:italic;font-size:13px;text-align:center;padding:10px;grid-column:1 / -1}.lobby-item{background:#ffffff1a;border-radius:8px;padding:10px 12px}.lobby-modal .player-item{display:flex;align-items:center}.lobby-modal .player-name{font-size:14px}.game-item{display:flex;justify-content:space-between;align-items:center}.lobby-modal .game-info{display:flex;flex-direction:column;gap:2px;background:transparent;padding:0;border-radius:0;margin-bottom:0;text-align:left;color:#fff;box-shadow:none}.lobby-modal .game-id{font-size:14px;font-weight:600}.game-players{font-size:12px;color:#ffffffb3}.game-status{font-size:12px;padding:4px 8px;border-radius:4px}.game-status.waiting{background:#f1c40f4d;color:#f1c40f}.game-status.started{background:#2ecc714d;color:#2ecc71}@media (max-width: 768px){.exit-fab-container{top:16px;left:22px}.voice-chat-fab-container{top:16px;right:22px}.lobby-players-grid{grid-template-columns:repeat(4,1fr)}.mobile-footer{padding:5px;gap:5px}.footer-right{flex:1;width:auto}.previous-trick-btn{height:40px;padding:8px 12px;font-size:13px}.previous-trick-btn .btn-text{font-size:12px}.lobby-btn{height:40px;padding:8px 12px;font-size:12px}.lobby-btn .btn-icon{font-size:16px}.lobby-btn .btn-text{font-size:11px}.call-buttons-row{flex-wrap:nowrap;gap:5px}.call-btn{padding:10px 8px;font-size:13px;flex:1;min-width:0}.game-board{padding:10px}.game-status-bar{padding:8px;flex-wrap:wrap;gap:5px;margin-bottom:8px}.team-name{font-size:10px}.team-score .score{font-size:20px}.players-order{gap:5px;margin-bottom:8px}.player-slot{padding:6px 10px;min-width:70px;font-size:12px}.player-position{font-size:9px}.game-board .table{padding:15px}.game-board .table h4{font-size:14px}.game-board .my-hand{padding:10px}.card-btn{width:100px!important;height:190px!important}.game-board .table-cards{min-height:220px}.game-board .hand-cards{gap:8px;justify-content:center}}@media (max-width: 480px){.exit-fab-container{top:8px;left:10px}.voice-chat-fab-container{top:8px;right:10px}.exit-fab{width:45px;height:45px}.exit-fab .exit-icon{width:20px;height:20px}.game-board{padding:5px 5px 70px}.game-header{padding:8px 15px;min-height:45px}.header-top-row{font-size:12px;flex-wrap:wrap}.game-message-inline{font-size:11px;padding:3px 6px}.game-status-bar{padding:6px;flex-direction:row;justify-content:space-between}.team-score{flex:1}.team-name{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.team-score .score{font-size:18px}.briscola-badge{font-size:12px}.briscola-badge .set-by{font-size:9px}.players-order{gap:3px;flex-wrap:nowrap;overflow-x:auto}.player-slot{padding:4px 6px;min-width:0;flex:1;font-size:10px;max-width:none}.player-position{font-size:8px}.game-board .player-name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.turn-indicator{font-size:8px}.game-board .table{padding:10px;min-height:80px;margin-bottom:10px}.game-board .table h4{font-size:12px;margin-bottom:5px}.game-board .table-cards{gap:5px;min-height:155px}.card-btn{border-radius:4px;width:64px!important;height:122px!important}.game-board .hand-cards{gap:6px;max-width:100%}.game-board .my-hand{padding:8px}.game-board .my-hand h4{font-size:12px}.game-board .briscola-selector h3{font-size:14px}.briscola-buttons{gap:6px;max-width:320px}.briscola-btn{padding:8px 6px;font-size:11px}.call-buttons-row{flex-wrap:nowrap;gap:4px}.call-btn{padding:6px 8px;font-size:12px;flex:1;min-width:0}.game-board .waiting-room{padding:15px}.game-board .waiting-room h3{font-size:16px}.game-board .waiting-room h4{font-size:13px}.team-selection-section{padding:10px}.team-selection-section h4{font-size:12px}.game-board .players-list li{padding:8px 10px;font-size:13px}.game-board .players-list li .invite-btn{padding:4px 8px;font-size:11px}.game-board .players-list li .kick-btn{padding:4px 6px;font-size:11px}.start-button{padding:12px 20px;font-size:16px}}@media (max-width: 360px){.team-name{font-size:8px;max-width:70px}.team-score .score{font-size:16px}.player-slot{padding:3px 5px;font-size:10px}.game-board .player-name{font-size:10px}}.game-board-1v1{display:flex;flex-direction:column;min-height:100vh;background:#1a5f2a;color:#fff}.game-mode-badge-1v1{background:#9b59b6;color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:700}.game-status-bar-1v1{display:flex;justify-content:space-between;align-items:center;gap:10px}.game-status-bar-1v1 .player-score{display:flex;flex-direction:column;align-items:center;padding:8px 16px;background:#f0f0f0;border-radius:8px;min-width:80px}.game-status-bar-1v1 .player-score .player-name{font-size:12px;color:#666}.game-status-bar-1v1 .player-score .score{font-size:24px;font-weight:700;color:#2c3e50}.hand-summary-1v1{display:flex;justify-content:center;align-items:center;gap:30px}.hand-summary-1v1 .hand-summary-player{text-align:center}.hand-summary-1v1 .summary-player{font-size:16px;margin-bottom:8px}.hand-summary-1v1 .summary-points{font-size:32px;font-weight:700;color:#2c3e50}.hand-summary-1v1 .hand-summary-separator{font-size:24px;color:#999}.hand-score-1v1{display:flex;justify-content:center;gap:20px}.player-hand-score{font-size:14px}.table-1v1{padding:15px}.table-area-1v1{position:relative;display:flex;align-items:center;justify-content:center;min-height:240px}.played-cards-area{display:flex;gap:15px;min-width:200px;min-height:120px;align-items:center;justify-content:center}.deck-area{position:absolute;right:20px;top:46%;transform:translateY(-50%)}.played-cards-area .empty-table{text-align:center;color:#666;font-size:14px}.played-cards-area .table-card-wrapper.drawn{animation:cardDraw .5s ease}@keyframes cardDraw{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.deck-pile{position:relative;display:flex;flex-direction:column;align-items:center}.deck-back{width:120px!important;height:228px!important;border-radius:6px;box-shadow:2px 2px 8px #0000004d;object-fit:cover}.deck-count{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);background:#2c3e50;color:#fff;font-size:14px;font-weight:700;padding:2px 10px;border-radius:12px;min-width:28px;text-align:center}.deck-empty{width:120px!important;height:228px!important;border:2px dashed #ccc;border-radius:6px;display:flex;align-items:center;justify-content:center;background:#ffffff4d}.deck-empty-text{font-size:10px;color:#999;text-align:center}.game-end-screen-1v1 .final-score-display-1v1{display:flex;align-items:center;justify-content:center;gap:20px}.game-end-screen-1v1 .player-final{padding:15px 25px;border-radius:10px;text-align:center}.game-end-screen-1v1 .player-final .player-label{display:block;font-size:14px;margin-bottom:5px}.game-end-screen-1v1 .player-final .player-score{font-size:28px;font-weight:700}.waiting-room-1v1{max-width:400px;margin:10px auto 0}@media (min-width: 769px){.game-board-1v1 .card-btn,.deck-back,.deck-empty{width:108px!important;height:205px!important}}@media (max-width: 768px){.game-board-1v1 .card-btn,.deck-back,.deck-empty{width:100px!important;height:190px!important}.table-area-1v1{min-height:200px}.deck-area{right:15px}}@media (max-width: 480px){.game-board-1v1 .card-btn,.deck-back,.deck-empty{width:64px!important;height:122px!important}.deck-count{font-size:11px;padding:1px 6px;bottom:-10px}.deck-empty-text{font-size:8px}.table-area-1v1{min-height:140px}.deck-area{right:10px}.game-mode-badge-1v1{font-size:10px;padding:3px 8px}.hand-summary-1v1{gap:15px}.hand-summary-1v1 .summary-points{font-size:24px}.hand-score-1v1{gap:10px;font-size:12px}.game-status-bar-1v1 .player-score{padding:6px 10px;min-width:60px}.game-status-bar-1v1 .player-score .score{font-size:18px}.game-status-bar-1v1 .player-score .player-name{font-size:10px}}@media (max-width: 360px){.deck-area{right:5px}.game-mode-badge-1v1{font-size:9px;padding:2px 6px}}:root{--table-card-ratio: 1.9}.game-board-table-view{--tv-header-height: 50px;--tv-status-bar-height: 55px;--tv-footer-height: 56px;--tv-table-height: 320px;--tv-table-card-size: 70px;--tv-side-player-width: 40px;--tv-hand-card-width: calc((100vw - 100px)*.1) ;--tv-hand-card-height: calc(var(--tv-hand-card-width) * 1.9);--tv-top-card-width: 40px;--tv-font-base: 15px;--tv-font-small: 13px;--tv-font-large: 18px;--tv-font-xlarge: 24px;--tv-exit-fab-size: 44px;--tv-exit-icon-size: 22px;--tv-show-top-cards: flex}@media (min-width: 1200px){.game-board-table-view{--tv-hand-card-width: 70px;--tv-table-height: 350px;--tv-table-card-size: 75px}}@media (max-width: 768px){.game-board-table-view{--tv-header-height: 42px;--tv-status-bar-height: 48px;--tv-footer-height: 52px;--tv-table-height: 280px;--tv-table-card-size: 60px;--tv-side-player-width: 32px;--tv-hand-card-width: calc((100vw - 90px)*.1) ;--tv-hand-card-height: calc(var(--tv-hand-card-width) * 1.9);--tv-top-card-width: 0;--tv-font-base: 14px;--tv-font-small: 12px;--tv-font-large: 16px;--tv-font-xlarge: 22px;--tv-exit-fab-size: 40px;--tv-exit-icon-size: 20px;--tv-show-top-cards: none}}@media (max-width: 480px){.game-board-table-view{--tv-header-height: 36px;--tv-status-bar-height: 44px;--tv-footer-height: 50px;--tv-table-height: 240px;--tv-table-card-size: 55px;--tv-side-player-width: 26px;--tv-hand-card-width: calc((100vw - 40px)/5) ;--tv-hand-card-height: calc(var(--tv-hand-card-width) * 1.9);--tv-top-card-width: 0;--tv-font-base: 13px;--tv-font-small: 11px;--tv-font-large: 15px;--tv-font-xlarge: 20px;--tv-exit-fab-size: 32px;--tv-exit-icon-size: 16px;--tv-show-top-cards: none}}@media (max-width: 360px){.game-board-table-view{--tv-table-height: 200px;--tv-table-card-size: 48px;--tv-side-player-width: 22px;--tv-exit-fab-size: 28px;--tv-exit-icon-size: 14px}}.game-board-table-view{height:100vh;height:100dvh;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#ecf0f1;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;overflow:hidden;padding-bottom:var(--tv-footer-height)}.game-board-table-view .exit-fab-container{flex:0 0 auto}.game-board-table-view .exit-fab{width:var(--tv-exit-fab-size);height:var(--tv-exit-fab-size);border-radius:50%;background:#e74c3c;border:2px solid #c0392b;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #0006;transition:all .3s;padding:0}.game-board-table-view .exit-fab .exit-icon{width:var(--tv-exit-icon-size);height:var(--tv-exit-icon-size)}.game-board-table-view .exit-fab:hover{transform:scale(1.1);background:#c0392b}.game-board-table-view .afk-banner{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;padding:12px 20px;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border-radius:8px;box-shadow:0 4px 15px #e74c3c66;animation:afkSlideIn .3s ease-out}@keyframes afkSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.game-board-table-view .afk-message{font-size:14px}.game-board-table-view .afk-buttons{display:flex;gap:8px}.game-board-table-view .leave-without-penalty-btn{padding:8px 16px;background:#fff;color:#e74c3c;border:none;border-radius:5px;font-weight:700;cursor:pointer;transition:all .2s ease}.game-board-table-view .leave-without-penalty-btn:hover{background:#f8f8f8;transform:scale(1.05)}.game-board-table-view .ignore-afk-btn{padding:8px 16px;background:transparent;color:#fff;border:1px solid white;border-radius:5px;font-weight:700;cursor:pointer;transition:all .2s ease}.game-board-table-view .ignore-afk-btn:hover{background:#ffffff1a}.game-board-table-view .game-header{flex:0 0 auto;min-height:74px;height:74px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;background:#0006;border:0;gap:12px}.game-board-table-view .header-center-content{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.game-board-table-view .header-left,.game-board-table-view .header-center,.game-board-table-view .header-right,.game-board-table-view .game-id{display:none}.game-board-table-view .spectator-badge{background:#9b59b6;padding:2px 8px;border-radius:4px;font-size:var(--tv-font-small)}.game-board-table-view .current-user{font-weight:700;font-size:var(--tv-font-large);color:#3498db}.game-board-table-view .game-status-bar{flex:0 0 auto;min-height:var(--tv-status-bar-height);display:grid;grid-template-columns:1fr minmax(80px,auto) 1fr;align-items:center;gap:8px;padding:6px 12px;background:#34495e;color:#fff;border-radius:8px;margin:0 8px 8px}.game-board-table-view .team-score{display:flex;flex-direction:column;gap:2px}.game-board-table-view .team-score.team-1{align-items:flex-start;text-align:left}.game-board-table-view .team-score.team-2{align-items:flex-end;text-align:right;grid-column:3}.game-board-table-view .team-name{font-size:var(--tv-font-small);opacity:.8;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.game-board-table-view .team-prefix{display:none}}.game-board-table-view .team-score .score{font-size:var(--tv-font-xlarge);font-weight:700;line-height:1}.game-board-table-view .header-center-content .briscola-badge{text-align:center;font-size:var(--tv-font-base);padding:4px 12px;background:#f1c40f4d;border-radius:6px;color:#f1c40f}.game-board-table-view .header-center-content .briscola-badge span{display:block}.game-board-table-view .header-center-content .briscola-badge strong{font-size:calc(var(--tv-font-base) + 2px);color:#fff}.game-board-table-view .game-status-bar .current-user{font-size:var(--tv-font-small);color:#fff9;font-weight:400;padding:2px 8px}.game-board-table-view .leave-header-btn{display:none}.game-board-table-view .game-message{flex:0 0 auto;text-align:center;padding:6px 12px;background:#3498db4d;font-size:var(--tv-font-base)}.game-board-table-view .announcements,.game-board-table-view .notifications{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px}.game-board-table-view .announcement{background:#2ecc71e6;padding:10px 20px;border-radius:8px;font-weight:700;animation:slideIn .3s ease}.game-board-table-view .announcement.briscola{background:#f1c40fe6;color:#1a1a2e}.game-board-table-view .announcement.call{background:#3498dbe6}.game-board-table-view .announcement.maraffa{background:#e74c3ce6}.game-board-table-view .announcement.warning{background:#e74c3cf2;color:#fff;border:2px solid #c0392b;box-shadow:0 4px 20px #e74c3c80}.game-board-table-view .announcement.info{background:#2ecc71f2;color:#fff;border:2px solid #27ae60;box-shadow:0 4px 20px #2ecc7180}.game-board-table-view .notification{background:#34495ef2;padding:8px 16px;border-radius:6px;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.game-board-table-view .briscola-selector{flex:0 0 auto;text-align:center;padding:12px;background:#0006}.game-board-table-view .briscola-selector h3{margin:0 0 10px;font-size:15px}.game-board-table-view .briscola-options{display:flex;justify-content:center;gap:8px;flex-wrap:nowrap;width:100%;box-sizing:border-box;padding:0 8px}.game-board-table-view .briscola-btn{flex:0 0 25%;padding:12px 8px;font-size:14px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:transform .2s;box-sizing:border-box}.game-board-table-view .briscola-btn:hover{transform:scale(1.05)}.game-board-table-view .briscola-btn.denari{background:#f1c40f;color:#1a1a1a}.game-board-table-view .briscola-btn.coppe{background:#e74c3c;color:#fff}.game-board-table-view .briscola-btn.bastoni{background:#27ae60;color:#fff}.game-board-table-view .briscola-btn.spade{background:#3498db;color:#fff}.game-board-table-view .briscola-btn.selected{outline:3px solid white;outline-offset:2px;transform:scale(1.05)}.game-board-table-view .call-section{flex:0 0 auto;display:flex;justify-content:center;align-items:center;gap:8px;padding:8px 12px;background:#0000004d;width:100%;box-sizing:border-box}.game-board-table-view .call-btn{padding:10px 16px;font-size:12px;border:none;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:600;text-transform:uppercase;background:#2980b9;color:#fff;white-space:nowrap}.game-board-table-view .call-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px #0000004d;background:#1a5276}.game-board-table-view .table-wrapper{flex:1;display:flex;flex-direction:column;justify-content:flex-start;padding:8px;min-height:0;overflow-x:hidden;overflow-y:visible}.game-board-table-view .table-layout{display:flex;flex-direction:column;flex:0 0 auto;gap:6px;width:100%;max-width:800px;margin:0 auto}.game-board-table-view .player-left-area,.game-board-table-view .player-right-area{display:none!important}.game-board-table-view .table-middle-row{flex:0 0 auto;display:flex;flex-direction:column}.game-board-table-view .player-top-area{flex:0 0 auto;padding:4px 0;min-height:auto}.game-board-table-view .player-top-area.disconnected{background:#e74c3c4d;border-radius:6px}.game-board-table-view .player-top-area .player-area{flex-direction:row;justify-content:center;gap:8px}.game-board-table-view .player-top-area .player-info{font-size:var(--tv-font-large)}.game-board-table-view .player-top-area .player-cards-horizontal{display:var(--tv-show-top-cards);gap:2px}.game-board-table-view .player-top-area .game-card.horizontal{width:var(--tv-top-card-width);height:calc(var(--tv-top-card-width) * var(--table-card-ratio))}.game-board-table-view .table-center-area{flex:0 0 var(--tv-table-height);height:var(--tv-table-height);display:flex;flex-direction:row;align-items:stretch;justify-content:center;gap:0;padding:0}.game-board-table-view .mobile-player-left,.game-board-table-view .mobile-player-right{flex:0 0 var(--tv-side-player-width);display:flex;align-items:center;justify-content:center;background:#34495e80;transition:all .3s}.game-board-table-view .mobile-player-left{border-radius:6px 0 0 6px}.game-board-table-view .mobile-player-right{border-radius:0 6px 6px 0}.game-board-table-view .player-name-vertical{writing-mode:vertical-rl;text-orientation:mixed;font-size:var(--tv-font-base);font-weight:600;color:#ffffffe6;max-height:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:10px 4px}.game-board-table-view .mobile-player-left .player-name-vertical{transform:rotate(180deg)}.game-board-table-view .mobile-player-left.current-turn,.game-board-table-view .mobile-player-right.current-turn{background:#2ecc7199;animation:side-pulse 1.5s ease-in-out infinite}.game-board-table-view .mobile-player-left.current-turn .player-name-vertical,.game-board-table-view .mobile-player-right.current-turn .player-name-vertical{color:#fff;font-weight:700}@keyframes side-pulse{0%,to{background:#2ecc7199}50%{background:#2ecc71e6}}.game-board-table-view .mobile-player-left.disconnected,.game-board-table-view .mobile-player-right.disconnected{background:#e74c3ccc!important}.game-board-table-view .mobile-player-left.disconnected .player-name-vertical,.game-board-table-view .mobile-player-right.disconnected .player-name-vertical{color:#fff;text-decoration:line-through}.game-board-table-view .player-bottom-area{flex:0 0 auto;min-height:auto;padding:8px 0;border-radius:10px;transition:all .3s}.game-board-table-view .player-bottom-area.my-turn{background:linear-gradient(180deg,rgba(46,204,113,.2) 0%,transparent 100%)}.game-board-table-view .player-bottom-area .player-area{padding:6px 0}.game-board-table-view .player-bottom-area .player-info{margin-bottom:6px;justify-content:center}.game-board-table-view .player-bottom-area .player-name{display:none}.game-board-table-view .player-bottom-area .turn-indicator,.game-board-table-view .player-bottom-area .turn-text{font-size:var(--tv-font-large)}.game-board-table-view .player-bottom-area .turn-text{background:#2ecc714d;padding:4px 16px;border-radius:6px;animation:pulse 1s ease-in-out infinite}.game-board-table-view .player-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:100%}.game-board-table-view .player-area.current-turn{background:#2ecc7126;border-radius:8px;box-shadow:0 0 0 2px #2ecc7180}.game-board-table-view .player-area.disconnected{opacity:.7;background:#e74c3c66!important;border-radius:6px}.game-board-table-view .player-info{display:flex;align-items:center;gap:6px;font-size:var(--tv-font-base)}.game-board-table-view .player-name{font-weight:700;cursor:pointer;color:#ecf0f1}.game-board-table-view .player-name:hover{text-decoration:underline}.game-board-table-view .turn-indicator{color:#2ecc71;font-size:12px}.game-board-table-view .turn-text{color:#2ecc71;font-size:11px;font-weight:700;text-transform:uppercase;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.game-board-table-view .player-cards-horizontal{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;padding:4px 8px;max-width:100%;overflow:visible}.game-board-table-view .player-cards-vertical{display:none}.game-board-table-view .game-card{border:none;border-radius:6px;cursor:pointer;padding:0;overflow:hidden;transition:transform .15s,box-shadow .15s;background:#2c3e50;flex-shrink:0;box-shadow:0 2px 8px #0000004d}.game-board-table-view .player-bottom-area .game-card.horizontal{width:var(--tv-hand-card-width);height:var(--tv-hand-card-height);max-width:75px;max-height:142.5px}.game-board-table-view .game-card:hover:not(:disabled){transform:translateY(-6px);box-shadow:0 6px 16px #00000080;z-index:10}.game-board-table-view .game-card:not(:disabled):active{transform:scale(.95)}.game-board-table-view .player-bottom-area.my-turn .game-card.horizontal:not(:disabled){box-shadow:0 0 10px #2ecc7180,0 2px 8px #0000004d}.game-board-table-view .game-card:disabled{cursor:default;opacity:.9}.game-board-table-view .game-card img{width:100%;height:100%;object-fit:contain}.game-board-table-view .game-card.card-back{background:linear-gradient(135deg,#8e44ad,#3498db);cursor:default}.game-board-table-view .card-back-design{width:100%;height:100%;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.1) 4px,rgba(255,255,255,.1) 8px)}.game-board-table-view .table-center{flex:1;height:var(--tv-table-height);min-height:var(--tv-table-height);max-height:var(--tv-table-height);display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at center,#1e5631,#0d2818);border-radius:0;padding:12px;box-shadow:inset 0 0 40px #00000080;position:relative}.game-board-table-view .table-card{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px}.game-board-table-view .table-card.from-bottom{bottom:15px;left:50%;transform:translate(-50%)}.game-board-table-view .table-card.from-top{top:15px;left:50%;transform:translate(-50%)}.game-board-table-view .table-card.from-left{left:15px;top:50%;transform:translateY(-50%)}.game-board-table-view .table-card.from-right{right:15px;top:50%;transform:translateY(-50%)}.game-board-table-view .table-card.center{top:50%;left:50%;transform:translate(-50%,-50%)}.game-board-table-view .table-card .played-card{width:var(--tv-table-card-size);height:calc(var(--tv-table-card-size) * var(--table-card-ratio));border-radius:6px;overflow:hidden;box-shadow:0 4px 12px #0006}.game-board-table-view .table-card .played-card img{width:100%;height:100%;object-fit:cover}.game-board-table-view .card-player-name{display:none}.game-board-table-view .game-footer{position:fixed;bottom:0;left:0;right:0;height:var(--tv-footer-height);padding:6px 12px;gap:10px;display:grid;grid-template-columns:1fr auto auto;align-items:center;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100}.game-board-table-view .footer-left{min-width:0}.game-board-table-view .footer-center,.game-board-table-view .footer-right{flex:0 0 auto}.game-board-table-view .game-footer .chat-container{position:relative!important;bottom:auto!important;right:auto!important;left:auto!important;width:100%!important;height:44px!important;max-height:none!important}.game-board-table-view .game-footer .chat-container.minimized .chat-header{height:100%;border-radius:8px;padding:8px 14px}.game-board-table-view .game-footer .chat-container .chat-title{font-size:var(--tv-font-base)}.game-board-table-view .game-footer:has(.chat-container:not(.minimized)){position:fixed;bottom:0;left:0;right:0;height:50vh;max-height:400px;z-index:200;display:flex;flex-direction:column}.game-board-table-view .game-footer:has(.chat-container:not(.minimized)) .footer-center,.game-board-table-view .game-footer:has(.chat-container:not(.minimized)) .footer-right{display:none}.game-board-table-view .game-footer:has(.chat-container:not(.minimized)) .footer-left{flex:1;width:100%}.game-board-table-view .game-footer:has(.chat-container:not(.minimized)) .chat-container{height:100%!important;max-height:100%!important;border-radius:12px 12px 0 0;display:flex!important;flex-direction:column!important}.game-board-table-view .game-footer .chat-container:not(.minimized) .chat-header{height:auto;flex-shrink:0;border-radius:12px 12px 0 0;padding:12px 16px}.game-board-table-view .game-footer .chat-container:not(.minimized) .chat-messages{flex:1;min-height:0;max-height:none;justify-content:flex-end;overflow-y:auto}.game-board-table-view .game-footer .chat-container:not(.minimized) .chat-input{flex-shrink:0}.game-board-table-view .footer-right{flex:0 0 auto;display:flex;gap:8px}.game-board-table-view .previous-trick-btn,.game-board-table-view .lobby-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:var(--tv-font-base);cursor:pointer;display:flex;align-items:center;gap:6px;transition:transform .2s,box-shadow .2s;justify-content:center;white-space:nowrap;flex-shrink:0;min-width:44px;height:44px}.game-board-table-view .lobby-btn{background:linear-gradient(135deg,#00b894,#00cec9)}.game-board-table-view .lobby-btn .btn-icon-svg,.game-board-table-view .previous-trick-btn .btn-icon-svg{width:20px;height:20px;flex-shrink:0}@media (max-width: 768px){.game-board-table-view .previous-trick-btn .btn-text,.game-board-table-view .lobby-btn .btn-text{display:none}}.game-board-table-view .previous-trick-btn:hover,.game-board-table-view .lobby-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.game-board-table-view .lobby-btn:hover{box-shadow:0 4px 12px #00b89466}.game-board-table-view .previous-trick-btn.disabled{opacity:.5;cursor:not-allowed}.game-board-table-view .previous-trick-btn.disabled:hover{transform:none;box-shadow:none}.game-board-table-view .voice-chat-fab-container{flex:0 0 auto}.game-board-table-view .voice-chat-fab-container .voice-chat-fab{width:var(--tv-exit-fab-size)!important;height:var(--tv-exit-fab-size)!important;min-width:var(--tv-exit-fab-size)!important;max-width:var(--tv-exit-fab-size)!important;padding:0!important;border-radius:50%!important;box-shadow:0 2px 10px #0000004d}.game-board-table-view .voice-chat-fab-container .voice-chat-fab .fab-icon{font-size:16px!important}.game-board-table-view .voice-chat-fab-container .voice-chat-fab .fab-badge{width:14px!important;height:14px!important;font-size:9px!important;top:-3px!important;right:-3px!important}.game-board-table-view .voice-chat-fab-container .voice-chat-container{position:fixed!important;top:60px!important;right:10px!important;bottom:auto!important;width:280px!important;max-width:calc(100vw - 20px)!important;height:auto!important;min-height:auto!important;max-height:calc(100vh - 80px)!important;z-index:1001!important}.game-board-table-view .previous-trick-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000}.game-board-table-view .previous-trick-content{background:#2c3e50;padding:24px;border-radius:12px;text-align:center}.game-board-table-view .previous-trick-content h4{margin:0 0 16px;font-size:16px}.game-board-table-view .previous-trick-cards{display:flex;justify-content:center;gap:10px;margin-bottom:16px}.game-board-table-view .previous-trick-cards .previous-card{width:60px;height:114px;max-width:none;max-height:none}.game-board-table-view .close-modal-btn{background:#3498db;color:#fff;border:none;padding:10px 24px;border-radius:6px;cursor:pointer;font-size:14px}.game-board-table-view .lobby-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:flex-end;justify-content:center;z-index:1001}.game-board-table-view .lobby-content{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:15px 15px 0 0;width:100%;max-height:70vh;color:#fff;display:flex;flex-direction:column;overflow:hidden}.game-board-table-view .lobby-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:linear-gradient(135deg,#00b894,#00cec9)}.game-board-table-view .lobby-header h3{margin:0;font-size:18px;display:flex;align-items:center;gap:8px}.game-board-table-view .lobby-header-icon{width:22px;height:22px}.game-board-table-view .close-lobby-btn{background:#fff3;border:none;border-radius:50%;width:30px;height:30px;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.game-board-table-view .lobby-sections{flex:1;overflow-y:auto;padding:15px}.game-board-table-view .lobby-section{margin-bottom:20px}.game-board-table-view .lobby-section:last-child{margin-bottom:0}.game-board-table-view .lobby-section h4{margin:0 0 10px;font-size:14px;color:#ffffffe6;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:8px}.game-board-table-view .lobby-players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.game-board-table-view .lobby-player-item{background:#ffffff1a;border-radius:8px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.game-board-table-view .lobby-player-item.in-game{opacity:.6}.game-board-table-view .lobby-player-item .player-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.game-board-table-view .lobby-player-item .player-status{font-size:10px;color:#fff9}.game-board-table-view .lobby-player-item .invite-btn{background:linear-gradient(135deg,#f39c12,#e67e22);border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s;margin-top:4px}.game-board-table-view .lobby-player-item .invite-btn:hover{transform:scale(1.1)}.game-board-table-view .lobby-list{display:flex;flex-direction:column;gap:8px}.game-board-table-view .lobby-item{background:#ffffff1a;border-radius:8px;padding:10px 12px}.game-board-table-view .game-item{display:flex;justify-content:space-between;align-items:center}.game-board-table-view .lobby-modal .game-info{display:flex;flex-direction:column;gap:2px}.game-board-table-view .lobby-modal .game-id{font-size:14px;font-weight:600}.game-board-table-view .game-players{font-size:12px;color:#ffffffb3}.game-board-table-view .game-status{font-size:12px;padding:4px 8px;border-radius:4px}.game-board-table-view .game-status.waiting{background:#f1c40f4d;color:#f1c40f}.game-board-table-view .game-status.started{background:#2ecc714d;color:#2ecc71}.game-board-table-view .empty-list{color:#ffffff80;font-style:italic;font-size:13px;text-align:center;padding:10px;grid-column:1 / -1}.game-board-table-view .hand-summary-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:100}.game-board-table-view .hand-summary{background:#2c3e50;padding:24px 40px;border-radius:12px;text-align:center;min-width:280px}.game-board-table-view .hand-summary h3{margin:0 0 20px;font-size:18px;color:#ecf0f1;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:12px}.game-board-table-view .hand-summary-team{margin:16px 0}.game-board-table-view .hand-summary-team .team-players{font-size:16px;color:#bdc3c7;margin-bottom:4px}.game-board-table-view .hand-summary-team .team-points{font-size:48px;font-weight:700;color:#fff;line-height:1}.game-board-table-view .hand-summary-team .team-figures{font-size:14px;color:#95a5a6;margin-top:4px}.game-board-table-view .hand-summary-team.my-team .team-points{color:#2ecc71}.game-board-table-view .hand-summary-team.opponent-team .team-points{color:#e74c3c}.game-board-table-view .hand-summary-total{font-size:16px;font-weight:700;margin-top:20px;padding-top:12px;border-top:1px solid rgba(255,255,255,.2);color:#f1c40f}@media (max-width: 768px){.game-board-table-view .announcements,.game-board-table-view .notifications{top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:350px}.game-board-table-view .announcement{padding:12px 20px;font-size:18px;text-align:center}}@media (max-width: 480px){.game-board-table-view{--mobile-header-height: 36px;--mobile-status-bar-height: 44px;--mobile-footer-height: 50px;--mobile-table-height: 240px;--mobile-table-card-size: 55px;--mobile-side-player-width: 26px;--mobile-card-width: calc((100vw - 40px)/5) ;--mobile-card-height: calc(var(--mobile-card-width) * 1.9)}.game-board-table-view .voice-chat-fab-container .voice-chat-fab{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;padding:0!important;border-radius:50%!important;box-shadow:0 2px 8px #0000004d}.game-board-table-view .voice-chat-fab-container .voice-chat-fab .fab-icon{font-size:14px!important}.game-board-table-view .voice-chat-fab-container .voice-chat-fab .fab-badge{width:12px!important;height:12px!important;font-size:8px!important;top:-2px!important;right:-2px!important}.game-board-table-view .voice-chat-fab-container .voice-chat-container{position:fixed!important;top:55px!important;right:5px!important;width:calc(100vw - 10px)!important;max-width:300px!important}.game-board-table-view .game-header{flex:0 0 auto;min-height:50px;height:50px;display:flex!important;justify-content:space-between;align-items:center;padding:0 8px;gap:8px}.game-board-table-view .exit-fab-container{flex:0 0 auto}.game-board-table-view .exit-fab{width:32px;height:32px}.game-board-table-view .exit-fab .exit-icon{width:16px;height:16px}.game-board-table-view .current-user{font-size:14px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-board-table-view .spectator-badge{font-size:13px;padding:1px 5px}.game-board-table-view .game-id{display:none}.game-board-table-view .game-status-bar{flex:0 0 auto;min-height:var(--mobile-status-bar-height);padding:4px 8px;margin:0 4px;border-radius:6px;display:grid;grid-template-columns:1fr minmax(60px,auto) 1fr;align-items:center;gap:4px}.game-board-table-view .team-prefix{display:none}.game-board-table-view .team-score{display:flex;flex-direction:column;gap:0}.game-board-table-view .team-score.team-1{align-items:flex-start}.game-board-table-view .team-score.team-2{align-items:flex-end;text-align:right;grid-column:3}.game-board-table-view .team-score .score{font-size:24px;line-height:1}.game-board-table-view .team-name{font-size:12px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.7}.game-board-table-view .header-center-content .briscola-badge{font-size:12px;text-align:center;padding:2px 8px;background:#f1c40f4d;border-radius:4px}.game-board-table-view .header-center-content .briscola-badge strong{font-size:13px}.game-board-table-view .game-status-bar .current-user{font-size:10px;color:#ffffff80}.game-board-table-view .game-message{flex:0 0 auto;padding:4px 8px;font-size:15px;background:#3498db4d}.game-board-table-view .briscola-selector{flex:0 0 auto;padding:8px}.game-board-table-view .briscola-selector h3{font-size:17px;margin-bottom:8px}.game-board-table-view .briscola-options{gap:6px;padding:0 4px}.game-board-table-view .briscola-btn{padding:10px 4px;font-size:15px;border-radius:6px}.game-board-table-view .call-section{flex:0 0 auto;padding:4px 6px;gap:3px;flex-wrap:wrap;justify-content:center}.game-board-table-view .call-btn{padding:5px 8px;font-size:10px;border-radius:5px;min-width:0}.game-board-table-view .table-wrapper{flex:1;min-height:0;padding:4px;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}.game-board-table-view .table-layout{display:flex;flex-direction:column;flex:0 0 auto;gap:4px}.game-board-table-view .player-left-area,.game-board-table-view .player-right-area{display:none!important}.game-board-table-view .table-middle-row{flex:0 0 auto;display:flex;flex-direction:column}.game-board-table-view .player-top-area{flex:0 0 auto;padding:2px 0;min-height:auto}.game-board-table-view .player-top-area.disconnected{background:#e74c3c4d;border-radius:4px}.game-board-table-view .player-top-area .player-area{flex-direction:row;justify-content:center;gap:6px}.game-board-table-view .player-top-area .player-info{font-size:16px}.game-board-table-view .player-top-area .player-cards-horizontal{display:none}.game-board-table-view .table-center-area{flex:0 0 var(--mobile-table-height);height:var(--mobile-table-height);display:flex;flex-direction:row;align-items:stretch;justify-content:center;gap:0;padding:0}.game-board-table-view .mobile-player-left,.game-board-table-view .mobile-player-right{flex:0 0 var(--mobile-side-player-width);display:flex;align-items:center;justify-content:center;background:#34495e80;border-radius:4px;transition:all .3s}.game-board-table-view .mobile-player-left{border-radius:4px 0 0 4px}.game-board-table-view .mobile-player-right{border-radius:0 4px 4px 0}.game-board-table-view .player-name-vertical{writing-mode:vertical-rl;text-orientation:mixed;font-size:15px;font-weight:600;color:#ffffffe6;max-height:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 2px}.game-board-table-view .mobile-player-left .player-name-vertical{transform:rotate(180deg)}.game-board-table-view .mobile-player-left.current-turn,.game-board-table-view .mobile-player-right.current-turn{background:#2ecc7199;animation:side-pulse 1.5s ease-in-out infinite}.game-board-table-view .mobile-player-left.current-turn .player-name-vertical,.game-board-table-view .mobile-player-right.current-turn .player-name-vertical{color:#fff;font-weight:700}@keyframes side-pulse{0%,to{background:#2ecc7199}50%{background:#2ecc71e6}}.game-board-table-view .mobile-player-left.disconnected,.game-board-table-view .mobile-player-right.disconnected{background:#e74c3ccc!important}.game-board-table-view .mobile-player-left.disconnected .player-name-vertical,.game-board-table-view .mobile-player-right.disconnected .player-name-vertical{color:#fff;text-decoration:line-through}.game-board-table-view .player-top-area.disconnected .player-area{background:#e74c3c66!important;border-radius:6px}.game-board-table-view .table-center{flex:1;height:var(--mobile-table-height);min-height:var(--mobile-table-height);max-height:var(--mobile-table-height);padding:8px;border-radius:0;position:relative}.game-board-table-view .table-card{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px}.game-board-table-view .table-card.from-bottom{bottom:10px;left:50%;transform:translate(-50%)}.game-board-table-view .table-card.from-top{top:10px;left:50%;transform:translate(-50%)}.game-board-table-view .table-card.from-left{left:10px;top:50%;transform:translateY(-50%)}.game-board-table-view .table-card.from-right{right:10px;top:50%;transform:translateY(-50%)}.game-board-table-view .table-card.center{top:50%;left:50%;transform:translate(-50%,-50%)}.game-board-table-view .table-card .played-card{width:var(--mobile-table-card-size);height:calc(var(--mobile-table-card-size) * 1.9);border-radius:4px}.game-board-table-view .card-player-name{display:none}.game-board-table-view .player-bottom-area{flex:0 0 auto;min-height:auto;padding:4px 0;border-radius:8px}.game-board-table-view .player-bottom-area .player-area{padding:4px 0}.game-board-table-view .player-bottom-area .player-info{margin-bottom:4px;justify-content:center}.game-board-table-view .player-bottom-area .player-name{display:none}.game-board-table-view .player-bottom-area .turn-indicator,.game-board-table-view .player-bottom-area .turn-text{font-size:16px}.game-board-table-view .player-bottom-area .turn-text{background:#2ecc714d;padding:2px 12px;border-radius:4px;animation:pulse 1s ease-in-out infinite}.game-board-table-view .player-bottom-area .player-cards-horizontal{flex-wrap:wrap;justify-content:center;gap:4px;padding:0 4px;max-width:100%}.game-board-table-view .player-bottom-area .game-card.horizontal{width:var(--mobile-card-width);height:var(--mobile-card-height);max-width:62px;max-height:117.8px;flex:0 0 var(--mobile-card-width);border-radius:4px;box-shadow:0 2px 6px #0000004d}.game-board-table-view .player-bottom-area .game-card.horizontal:not(:disabled):active{transform:scale(.95)}.game-board-table-view .player-bottom-area.my-turn{background:linear-gradient(180deg,rgba(46,204,113,.2) 0%,transparent 100%)}.game-board-table-view .player-bottom-area.my-turn .game-card.horizontal:not(:disabled){box-shadow:0 0 8px #2ecc7180,0 2px 6px #0000004d}.game-board-table-view .game-footer{position:fixed;bottom:0;left:0;right:0;height:var(--mobile-footer-height);padding:4px 8px;gap:8px;display:grid;grid-template-columns:1fr auto auto;align-items:center;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100}.game-board-table-view .footer-left{min-width:0}.game-board-table-view .footer-center,.game-board-table-view .footer-right{flex:0 0 auto}.game-board-table-view .previous-trick-btn,.game-board-table-view .lobby-btn{padding:10px 12px;font-size:15px;min-width:44px;height:40px;border-radius:8px}.game-board-table-view .previous-trick-btn .btn-text,.game-board-table-view .lobby-btn .btn-text{display:none}.game-board-table-view .lobby-btn .btn-icon-svg,.game-board-table-view .previous-trick-btn .btn-icon-svg{width:20px;height:20px}.game-board-table-view .game-footer .chat-container.minimized{height:40px!important}.game-board-table-view .game-footer .chat-container.minimized .chat-header{padding:6px 10px}.game-board-table-view .game-footer .chat-container .chat-title{font-size:15px}.game-board-table-view .game-footer:has(.chat-container:not(.minimized)){height:60vh!important;max-height:450px!important}.game-board-table-view .game-footer .chat-container:not(.minimized){height:100%!important;max-height:100%!important;display:flex!important;flex-direction:column!important}.game-board-table-view .game-footer .chat-container:not(.minimized) .chat-messages{flex:1!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;justify-content:flex-end!important}.game-board-table-view .game-footer .chat-container:not(.minimized) .chat-input{flex-shrink:0!important;position:relative!important;bottom:0!important;background:#fff!important;border-top:1px solid #e0e0e0!important;padding:8px!important}.game-board-table-view .announcements,.game-board-table-view .notifications{top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:350px}.game-board-table-view .announcement{padding:12px 20px;font-size:18px;font-weight:700;border-radius:8px;text-align:center}.game-board-table-view .notification{padding:10px 16px;font-size:16px;text-align:center}.game-board-table-view .afk-banner{top:45px;flex-direction:column;gap:8px;padding:10px 14px;max-width:90vw;text-align:center;border-radius:6px}.game-board-table-view .afk-message{font-size:11px}.game-board-table-view .leave-without-penalty-btn{padding:6px 12px;font-size:12px}.game-board-table-view .lobby-players-grid{grid-template-columns:repeat(2,1fr)}.game-board-table-view .lobby-player-item{padding:8px}.game-board-table-view .lobby-player-item .player-name{font-size:12px}.game-board-table-view .previous-trick-content{padding:16px;max-width:90vw}.game-board-table-view .previous-trick-content h4{font-size:14px;margin-bottom:12px}.game-board-table-view .previous-trick-cards{gap:6px}.game-board-table-view .previous-trick-cards .previous-card{width:50px;height:95px}.game-board-table-view .hand-summary{padding:20px 24px;max-width:85vw;min-width:auto}.game-board-table-view .hand-summary h3{font-size:16px;margin-bottom:16px}.game-board-table-view .hand-summary-team{margin:12px 0}.game-board-table-view .hand-summary-team .team-players{font-size:14px}.game-board-table-view .hand-summary-team .team-points{font-size:36px}.game-board-table-view .hand-summary-team .team-figures{font-size:12px}.game-board-table-view .hand-summary-total{font-size:14px}.game-board-table-view .waiting-room{margin:8px 8px 65px;padding:16px;font-size:14px}.game-board-table-view .waiting-room h3{font-size:18px}.game-board-table-view .waiting-room h4{font-size:14px}.game-board-table-view .players-section{padding:12px}.game-board-table-view .players-section h4{font-size:14px}.game-board-table-view .players-list li{padding:10px 12px;font-size:14px;flex-wrap:wrap}.game-board-table-view .players-list li .player-info .player-name{font-size:14px}.game-board-table-view .players-list li .player-actions{gap:6px}.game-board-table-view .players-list li .invite-btn{padding:4px 10px;font-size:11px}.game-board-table-view .team-selection-section{padding:12px;font-size:13px}.game-board-table-view .team-selection-section h4{font-size:16px}.game-board-table-view .my-team-status{padding:10px;font-size:13px}.game-board-table-view .start-button{padding:14px 28px;font-size:16px}.game-board-table-view .waiting-room .leave-btn{padding:10px 20px;font-size:14px}.game-board-table-view .game-end-screen{padding:16px 16px 70px}.game-board-table-view .game-end-screen h2{font-size:22px}.game-board-table-view .winner-info h3{font-size:18px}.game-board-table-view .end-actions{flex-direction:column;width:100%;max-width:250px}.game-board-table-view .rematch-btn,.game-board-table-view .end-actions .leave-btn{width:100%;padding:14px 24px;font-size:15px}}@media (max-width: 360px){.game-board-table-view{--mobile-card-width: calc((100vw - 32px)/5) ;--mobile-table-card-width: calc((100vw - 48px)/5) }.game-board-table-view .exit-fab{width:28px;height:28px}.game-board-table-view .exit-fab .exit-icon{width:14px;height:14px}.game-board-table-view .current-user{font-size:11px;max-width:60px}.game-board-table-view .team-score .score{font-size:18px}.game-board-table-view .team-name{font-size:7px;max-width:70px}.game-board-table-view .header-center-content .briscola-badge{font-size:9px;padding:2px 6px}.game-board-table-view .header-center-content .briscola-badge strong{font-size:10px}.game-board-table-view .game-status-bar .current-user{font-size:8px}.game-board-table-view .mobile-side-players{font-size:10px;padding:3px 8px}.game-board-table-view .side-player{max-width:65px;padding:2px 6px}.game-board-table-view .player-top-area .game-card.horizontal{width:24px;height:calc(24px * var(--table-card-ratio))}.game-board-table-view .player-top-area .player-name{max-width:60px;font-size:10px}.game-board-table-view .table-card .played-card{max-width:48px;max-height:calc(48px * var(--table-card-ratio))}.game-board-table-view .card-player-name{font-size:7px}.game-board-table-view .player-bottom-area .game-card.horizontal{max-width:58px;max-height:calc(58px * var(--table-card-ratio))}.game-board-table-view .player-bottom-area .player-cards-horizontal{gap:3px;padding:0 4px}.game-board-table-view .call-btn{padding:5px 8px;font-size:9px}.game-board-table-view .briscola-btn{padding:8px 3px;font-size:10px}.game-board-table-view .previous-trick-btn,.game-board-table-view .lobby-btn{padding:8px 10px;min-width:40px;height:36px}.game-board-table-view .lobby-btn .btn-icon-svg,.game-board-table-view .previous-trick-btn .btn-icon-svg{width:18px;height:18px}}@media (max-height: 500px) and (orientation: landscape){.game-board-table-view{--mobile-header-height: 32px;--mobile-status-bar-height: 36px;--mobile-footer-height: 40px}.game-board-table-view .game-status-bar{height:var(--mobile-status-bar-height);min-height:var(--mobile-status-bar-height)}.game-board-table-view .team-score .score{font-size:16px}.game-board-table-view .team-name,.game-board-table-view .player-top-area{display:none}.game-board-table-view .mobile-side-players{margin-bottom:2px;padding:2px 10px}.game-board-table-view .table-center{padding:4px}.game-board-table-view .table-card .played-card{max-width:45px;max-height:calc(45px * var(--table-card-ratio))}.game-board-table-view .player-bottom-area .game-card.horizontal{max-width:50px;max-height:calc(50px * var(--table-card-ratio))}.game-board-table-view .player-bottom-area .player-cards-horizontal{gap:2px}.game-board-table-view .game-footer{height:var(--mobile-footer-height);min-height:var(--mobile-footer-height);padding:2px 6px}.game-board-table-view .previous-trick-btn,.game-board-table-view .lobby-btn{height:32px;padding:6px 8px}}@media (max-width: 480px) and (max-height: 850px){.game-board-table-view{--mobile-table-height: 250px;--mobile-card-width: calc((100vw - 24px)/5) ;--mobile-card-height: calc(var(--mobile-card-width) * 1.6)}.game-board-table-view .player-bottom-area .game-card.horizontal{max-width:66px;max-height:calc(66px * 1.6)}.game-board-table-view .player-bottom-area .player-cards-horizontal{gap:4px;padding:0 4px}.game-board-table-view .table-center{height:var(--mobile-table-height);min-height:var(--mobile-table-height);max-height:var(--mobile-table-height)}.game-board-table-view .table-card .played-card{max-width:52px;max-height:98.8px}.game-board-table-view .game-status-bar{height:36px;min-height:36px;padding:2px 8px}.game-board-table-view .game-message{padding:3px 8px;font-size:11px}}@media (max-width: 480px) and (max-height: 700px){.game-board-table-view{--mobile-table-height: 170px;--mobile-card-width: calc((100vw - 32px)/5) ;--mobile-card-height: calc(var(--mobile-card-width) * 1.5);--mobile-footer-height: 44px}.game-board-table-view .player-bottom-area .game-card.horizontal{max-width:50px;max-height:75px}.game-board-table-view .player-bottom-area .player-cards-horizontal{gap:2px;padding:0 2px}.game-board-table-view .table-center{height:var(--mobile-table-height);min-height:var(--mobile-table-height);max-height:var(--mobile-table-height);padding:6px}.game-board-table-view .table-card .played-card{max-width:42px;max-height:79.8px}.game-board-table-view .game-header{height:32px;min-height:32px;padding:2px 8px}.game-board-table-view .game-status-bar{height:36px;min-height:36px;padding:2px 6px}.game-board-table-view .team-score .score{font-size:16px}.game-board-table-view .header-center-content .briscola-badge{font-size:8px;padding:2px 4px}.game-board-table-view .game-status-bar .current-user{font-size:7px}.game-board-table-view .game-message{padding:3px 6px;font-size:10px}.game-board-table-view .call-section{padding:4px;gap:4px}.game-board-table-view .call-btn{padding:4px 6px;font-size:9px}.game-board-table-view .game-footer{height:var(--mobile-footer-height);min-height:var(--mobile-footer-height);padding:2px 4px}}.game-board-table-view .waiting-room{background:#fff;padding:20px;border-radius:12px;text-align:center;color:#1a1a2e;border:1px solid #d0e0f0;box-shadow:0 4px 15px #0000001a;font-size:var(--tv-font-base);max-width:600px;margin:20px auto 70px;max-height:calc(100vh - 140px);overflow-y:auto}.game-board-table-view:has(.waiting-room) .game-footer{position:fixed;bottom:0;left:0;right:0;height:50px;background:#1a1a2e;z-index:100;padding:5px 20px}.game-board-table-view:has(.waiting-room) .game-footer .footer-right{display:none}.game-board-table-view:has(.waiting-room) .game-footer .footer-center{flex:1;display:flex;justify-content:flex-end}.game-board-table-view:has(.waiting-room) .game-footer .lobby-btn{min-width:120px}.game-board-table-view .waiting-room h3{margin-top:0;color:#1a1a2e;font-size:var(--tv-font-xlarge)}.game-board-table-view .waiting-room h4{color:#1a1a2e;margin-bottom:10px;font-size:var(--tv-font-large)}.game-board-table-view .players-section{background:#f8fbfd;padding:15px;border-radius:10px;border:1px solid #d0e0f0;margin-top:12px}.game-board-table-view .players-section h4{margin:0 0 12px;color:#1a1a2e;font-size:var(--tv-font-large)}.game-board-table-view .players-list{list-style:none;padding:0;margin:0}.game-board-table-view .players-list li{padding:10px 14px;margin:6px 0;background:#fff;border-radius:8px;color:#1a1a2e;font-weight:500;font-size:var(--tv-font-base);display:flex;justify-content:space-between;align-items:center;border:2px solid #c0d8ec;box-shadow:0 2px 4px #0000000d}.game-board-table-view .players-list li .player-info{display:flex;align-items:center;gap:12px;flex:1;text-align:left}.game-board-table-view .players-list li .player-info .player-name{font-size:20px;font-weight:600;color:#1a1a2e}.game-board-table-view .players-list li .player-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.game-board-table-view .players-list li .player-actions .info-stats-btn{background:none;border:none;cursor:pointer;padding:4px;color:#888;transition:color .2s;display:flex;align-items:center;justify-content:center}.game-board-table-view .players-list li .player-actions .info-stats-btn:hover{color:#2980b9}.game-board-table-view .players-list li .player-actions .info-stats-btn svg{width:18px;height:18px}.game-board-table-view .players-list li .team-indicator{font-size:13px;background:#9b59b6;padding:3px 8px;border-radius:10px;color:#fff}.game-board-table-view .players-list li.you{background:#d4edda;border-color:#27ae60;color:#1a1a2e;font-weight:700}.game-board-table-view .players-list li.in-team{border:2px solid #9b59b6}.game-board-table-view .players-list li.empty-slot{background:#f8f9fa;color:#6c757d;font-style:italic;border-color:#dee2e6}.game-board-table-view .players-list li .invite-btn{background:#2980b9;color:#fff;border:none;padding:5px 14px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 4px #0003}.game-board-table-view .players-list li .invite-btn:hover{background:#1a5276;transform:scale(1.05)}.game-board-table-view .players-list li .kick-btn{background:#c0392b;color:#fff;border:none;padding:5px 7px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0003;margin-left:5px}.game-board-table-view .players-list li .kick-btn:hover{background:#922b21;transform:scale(1.1)}.game-board-table-view .players-list li .invite-pending-badge{font-size:13px;background:#f39c12;padding:5px 10px;border-radius:10px;color:#1a1a1a;white-space:nowrap}.game-board-table-view .team-selection-section{background:#f0f6fc;padding:14px;border-radius:8px;margin-bottom:12px;border:1px solid #b8d4e8;font-size:var(--tv-font-base)}.game-board-table-view .team-selection-section h4{margin:0 0 10px;color:#1a1a2e;font-size:var(--tv-font-large);font-weight:600}.game-board-table-view .my-team-status{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:6px;margin-bottom:10px}.game-board-table-view .my-team-status.confirmed{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}.game-board-table-view .my-team-status.pending{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.game-board-table-view .my-team-status.received{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;flex-direction:column;gap:10px}.game-board-table-view .my-team-status .invite-actions{display:flex;gap:10px}.game-board-table-view .my-team-status .dissolve-btn,.game-board-table-view .my-team-status .cancel-invite-btn{background:#0000004d;color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.game-board-table-view .my-team-status .dissolve-btn:hover,.game-board-table-view .my-team-status .cancel-invite-btn:hover{background:#00000080}.game-board-table-view .my-team-status .accept-btn{background:#27ae60;color:#fff;border:none;padding:8px 20px;border-radius:4px;font-weight:700;cursor:pointer;transition:all .2s}.game-board-table-view .my-team-status .accept-btn:hover{background:#2ecc71;transform:scale(1.05)}.game-board-table-view .my-team-status .decline-btn{background:#e74c3c;color:#fff;border:none;padding:8px 20px;border-radius:4px;font-weight:700;cursor:pointer;transition:all .2s}.game-board-table-view .my-team-status .decline-btn:hover{background:#c0392b}.game-board-table-view .confirmed-teams{margin-top:10px;padding-top:10px;border-top:1px solid #b8d4e8}.game-board-table-view .confirmed-teams h5{margin:0 0 8px;color:#9b59b6;font-size:12px}.game-board-table-view .team-badge{display:inline-block;background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff;padding:6px 12px;border-radius:15px;font-size:12px;margin:3px 5px 3px 0}.game-board-table-view .spectators-section{margin-top:18px;padding-top:18px;border-top:1px solid #d0e0f0}.game-board-table-view .spectators-section h4{font-size:18px;color:#1a1a2e}.game-board-table-view .spectators-list{list-style:none;padding:0;margin:0}.game-board-table-view .spectators-list li{padding:8px 14px;margin:4px 0;background:#f0f6fc;border-radius:4px;color:#1a1a2e;font-size:17px;border:1px solid #d0e0f0}.game-board-table-view .start-button{background:#27ae60;color:#fff;border:none;padding:14px 28px;font-size:var(--tv-font-large);border-radius:8px;cursor:pointer;margin-top:12px;font-weight:700;box-shadow:0 4px 6px #0003}.game-board-table-view .start-button:hover{background:#2ecc71;transform:translateY(-2px);box-shadow:0 6px 8px #0000004d}.game-board-table-view .waiting-message{color:#7f8c8d;font-style:italic;margin-top:12px;font-size:var(--tv-font-small)}.game-board-table-view .waiting-room .leave-btn{margin-top:15px;background:#e74c3c;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:var(--tv-font-base)}.game-board-table-view .waiting-room .leave-btn:hover{background:#c0392b}.game-board-table-view .game-end-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px}.game-board-table-view .winner-info{text-align:center;margin:30px 0}.game-board-table-view .end-actions{display:flex;gap:15px}.game-board-table-view .rematch-btn{padding:12px 30px;background:#27ae60;border:none;border-radius:8px;color:#fff;font-size:16px;cursor:pointer}.game-board-table-view .leave-btn{padding:12px 30px;background:#e74c3c;border:none;border-radius:8px;color:#fff;font-size:16px;cursor:pointer}.game-board-table-view .table-layout-1v1{max-width:600px;margin:0 auto}.game-board-table-view .middle-row-1v1{justify-content:center}.game-board-table-view .table-1v1{max-width:350px;min-width:250px;flex-direction:row;justify-content:space-around;align-items:center}.game-board-table-view .pile-info{display:flex;flex-direction:column;align-items:center;gap:5px}.game-board-table-view .pile-stack{position:relative;width:50px;height:95px}.game-board-table-view .pile-card{position:absolute;top:0;left:0}.game-board-table-view .pile-count{position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:14px;font-weight:700;color:#f1c40f;background:#0009;padding:2px 8px;border-radius:10px}.game-board-table-view .table-cards-area{display:flex;gap:15px;flex-wrap:wrap;justify-content:center;align-items:center}@media (max-width: 480px){.game-board-table-view .table-1v1{min-width:200px;padding:15px}.game-board-table-view .pile-stack{width:40px;height:76px}.game-board-table-view .pile-count{font-size:12px}}.game-board-table-view-1v1 .game-header{flex:0 0 auto;min-height:54px;height:54px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;background:#0006;border:0;gap:12px}.game-board-table-view-1v1 .exit-fab-container{flex:0 0 auto}.game-board-table-view-1v1 .exit-fab{width:40px;height:40px;border-radius:50%;background:#e74c3c;border:2px solid #c0392b;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #0006;padding:0}.game-board-table-view-1v1 .exit-fab .exit-icon{width:20px;height:20px}.game-board-table-view-1v1 .header-center-content{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.game-board-table-view-1v1 .game-status-bar-1v1 .current-user{font-size:12px;font-weight:400;color:#ffffff80;padding:2px 8px}.game-board-table-view-1v1 .spectator-badge{background:#9b59b6;color:#fff;padding:2px 8px;border-radius:4px;font-size:11px}.game-board-table-view-1v1 .voice-chat-fab-container{flex:0 0 auto}.game-mode-badge-1v1{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;margin-left:8px}.game-board-table-view-1v1 .game-status-bar.game-status-bar-1v1{display:flex!important;grid-template-columns:unset!important;justify-content:space-between;align-items:center;padding:6px 12px;background:#1a1a2e!important;gap:10px;min-height:36px}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;background:transparent!important;padding:0!important;border-radius:0!important}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score:first-child{flex-direction:row-reverse}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score:last-child{flex-direction:row}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score .player-name{font-size:14px;color:#fff;font-weight:500}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score .score{font-size:20px;font-weight:700;color:#fff}.game-board-table-view-1v1 .header-center-content .briscola-badge{font-size:13px;color:#f1c40f;background:#f1c40f33;padding:4px 12px;border-radius:6px}.game-board-table-view-1v1 .header-center-content .briscola-badge span{color:#f1c40f}.game-board-table-view-1v1 .header-center-content .briscola-badge strong{color:#fff;font-size:14px}.table-wrapper-1v1{flex:1;display:flex;flex-direction:column;padding:8px;overflow:hidden}.table-layout-1v1{display:flex;flex-direction:column;height:100%;gap:8px}.game-board-table-view-1v1 .player-top-area{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px}.game-board-table-view-1v1 .player-top-area .player-name-label{font-size:14px;font-weight:600;color:#ecf0f1;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.game-board-table-view-1v1 .player-top-area.current-turn .player-name-label{color:#f1c40f}.game-board-table-view-1v1 .player-top-area.disconnected .player-name-label{color:#e74c3c;opacity:.7}.opponent-cards{display:flex;justify-content:center;gap:-15px}.opponent-cards .game-card{width:35px;height:66.5px;margin-left:-15px;border:none;border-radius:4px;padding:0;overflow:hidden}.opponent-cards .game-card img,.opponent-cards .game-card .card-img{width:100%;height:100%;object-fit:contain;display:block}.opponent-cards .game-card:first-child{margin-left:0}.table-center-1v1{position:relative;width:100%;height:var(--tv-table-height, 240px);background:radial-gradient(ellipse at center,#1e6b3a,#145a2c,#0d4a23);border-radius:16px;border:4px solid #8B4513;box-shadow:inset 0 2px 10px #0000004d,0 4px 15px #0006;display:flex;flex-direction:column;justify-content:center;align-items:center}.table-center-1v1 .table-card{position:absolute}.table-center-1v1 .table-card .game-card{height:calc(var(--tv-table-height, 240px) / 2 - 20px);width:auto;aspect-ratio:1 / 1.9;border:none;border-radius:6px;padding:0;overflow:hidden;background:#2c3e50}.table-center-1v1 .table-card .game-card img,.table-center-1v1 .table-card .game-card .card-img{width:100%;height:100%;object-fit:contain;display:block}.table-center-1v1 .table-card.from-bottom{bottom:8px;left:50%;transform:translate(-50%)}.table-center-1v1 .table-card.from-top{top:8px;left:50%;transform:translate(-50%)}.empty-table-message{color:#fff9;font-size:14px;text-align:center}.game-board-table-view-1v1 .deck-indicator{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}.game-board-table-view-1v1 .deck-indicator .deck-image{width:var(--tv-hand-card-width, 60px);border-radius:4px;box-shadow:0 2px 8px #0006}.game-board-table-view-1v1 .deck-indicator .deck-count{background:#000c;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}.table-center-1v1 .drawn-cards-display{position:absolute;top:0;left:0;right:0;bottom:0}.table-center-1v1 .drawn-card-wrapper{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}.table-center-1v1 .drawn-card-wrapper:first-child{top:8px}.table-center-1v1 .drawn-card-wrapper:last-child{bottom:8px}.table-center-1v1 .drawn-card-wrapper .game-card{height:calc(var(--tv-table-height, 240px) / 2 - 20px);width:auto;aspect-ratio:1 / 1.9;border:none;border-radius:6px;padding:0;overflow:hidden;background:#2c3e50}.table-center-1v1 .drawn-card-wrapper .game-card img,.table-center-1v1 .drawn-card-wrapper .game-card .card-img{width:100%;height:100%;object-fit:contain;display:block}.table-center-1v1 .drawn-card-wrapper .card-player-name{font-size:10px;color:#fff;background:#0009;padding:2px 6px;border-radius:3px}.table-center-1v1 .drawn-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;color:#fffc;font-style:italic;background:#00000080;padding:2px 8px;border-radius:4px}.game-board-table-view-1v1 .player-bottom-area{display:flex;flex-direction:column;align-items:center;padding:8px;transition:all .3s ease}.game-board-table-view-1v1 .player-bottom-area.my-turn{background:#2ecc7126;border-radius:12px}.player-cards-horizontal{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}.player-cards-horizontal .game-card{width:var(--tv-hand-card-width, 60px);height:calc(var(--tv-hand-card-width, 60px) * 1.9);border:none;border-radius:6px;padding:0;overflow:hidden;background:#2c3e50;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 2px 8px #0000004d}.player-cards-horizontal .game-card.playable{cursor:pointer}.player-cards-horizontal .game-card img,.player-cards-horizontal .game-card .card-img{width:100%;height:100%;object-fit:contain;display:block}.pile-indicator{background:#0000004d;padding:4px 12px;border-radius:12px;font-size:12px;color:#ecf0f1}.game-board-table-view-1v1 .hand-summary-overlay{z-index:1000!important}.game-board-table-view-1v1 .hand-summary{min-width:200px!important}.game-board-table-view-1v1 .previous-trick-btn{background:#34495ee6;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:6px}.game-board-table-view-1v1 .previous-trick-btn:hover{background:#34495e}.game-board-table-view-1v1 .previous-trick-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000}.game-board-table-view-1v1 .previous-trick-content{background:#2c3e50;padding:24px;border-radius:12px;text-align:center}.game-board-table-view-1v1 .previous-trick-content h4{margin:0 0 16px;font-size:16px;color:#fff}.game-board-table-view-1v1 .previous-trick-content h4 span{color:#bdc3c7;font-weight:400}.game-board-table-view-1v1 .previous-trick-cards{display:flex;justify-content:center;gap:10px;margin-bottom:16px}.game-board-table-view-1v1 .previous-trick-cards .game-card,.game-board-table-view-1v1 .previous-trick-cards .game-card img{width:60px;height:auto}.game-board-table-view-1v1 .close-modal-btn{background:#3498db;color:#fff;border:none;padding:10px 24px;border-radius:6px;cursor:pointer;font-size:14px}.game-board-table-view-1v1 .close-modal-btn:hover{background:#2980b9}.game-board-table-view-1v1 .hand-history{width:100%;max-width:300px;margin-bottom:20px}.game-board-table-view-1v1 .hand-history h4{margin:0 0 8px;font-size:14px;color:#bdc3c7}.game-board-table-view-1v1 .history-row{display:flex;justify-content:space-between;padding:4px 8px;background:#0003;border-radius:4px;margin-bottom:4px;font-size:12px;color:#ecf0f1}.game-board-table-view-1v1 .end-actions{display:flex;gap:12px}.game-board-table-view-1v1 .rematch-btn{padding:12px 24px;background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease}.game-board-table-view-1v1 .rematch-btn:hover{transform:scale(1.05)}.game-board-table-view-1v1 .waiting-room{max-width:500px}@media (max-width: 480px){.game-mode-badge-1v1{padding:1px 6px;font-size:10px}.game-status-bar-1v1{padding:6px 12px}.game-status-bar-1v1 .player-score .player-name{font-size:11px}.game-status-bar-1v1 .player-score .score{font-size:18px}.table-center-1v1{height:var(--mobile-table-height, 200px)}.table-center-1v1 .table-card .game-card,.table-center-1v1 .drawn-card-wrapper .game-card{height:calc(var(--mobile-table-height, 200px) / 2 - 15px);width:auto}.opponent-cards .game-card{width:28px;height:calc(28px * 1.9);margin-left:-12px}.game-board-table-view-1v1 .deck-indicator .deck-image{width:calc((100vw - 40px)/5)}.game-board-table-view-1v1 .deck-indicator .deck-count{font-size:9px}.game-board-table-view-1v1 .game-status-bar.game-status-bar-1v1{padding:4px 8px;min-height:32px}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score .player-name{font-size:12px}.game-board-table-view-1v1 .game-status-bar-1v1 .player-score .score{font-size:16px}.game-board-table-view-1v1 .header-center-content .briscola-badge{font-size:10px;padding:2px 8px}.game-board-table-view-1v1 .game-status-bar-1v1 .current-user{font-size:9px}.player-cards-horizontal .game-card{width:calc((100vw - 40px)/5);height:calc((100vw - 40px)*.38)}.game-board-table-view-1v1 .end-trophy{font-size:48px}.game-board-table-view-1v1 .end-title{font-size:22px}.game-board-table-view-1v1 .final-score{gap:12px}.game-board-table-view-1v1 .final-score .player-score{padding:8px 12px}.game-board-table-view-1v1 .final-score .player-score .score{font-size:24px}.game-board-table-view-1v1 .end-actions{flex-direction:column;width:100%}.game-board-table-view-1v1 .rematch-btn,.game-board-table-view-1v1 .leave-btn{width:100%}}@media (min-width: 481px) and (max-width: 768px){.table-center-1v1{height:260px}.opponent-cards .game-card{width:40px;height:76px}}@media (min-width: 769px){.table-center-1v1{height:300px;max-width:500px;margin:0 auto}.opponent-cards .game-card{width:45px;height:85.5px}.player-cards-horizontal .game-card{width:70px;height:133px}}.player-profile-page{min-height:100vh;background:#fff;padding:20px 20px 80px;color:#1a1a2e}.player-profile-container{max-width:800px;margin:0 auto}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;color:#1a1a2e;text-align:center}.loading-spinner{width:50px;height:50px;border:4px solid #e0e0e0;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.error-container h2{color:#e74c3c;margin-bottom:12px}.back-btn{margin-top:20px;padding:12px 24px;background:#3498db;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px}.back-btn:hover{background:#2980b9}.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:20px;background:#f0f6fc;border-radius:12px;border:1px solid #d0e0f0}.back-button{width:44px;height:44px;border-radius:50%;background:#e8f4fc;border:1px solid #b8d4e8;color:#1a1a2e;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.back-button:hover{background:#d0e8f8}.back-button svg{width:24px;height:24px}.header-content{flex:1;display:flex;flex-direction:column;gap:8px}.player-profile-page .player-name{font-size:28px;font-weight:700;color:#1a1a2e;margin:0;display:flex;align-items:center;gap:12px}.own-badge{font-size:12px;padding:4px 10px;background:#3498db;color:#fff;border-radius:12px;font-weight:600}.elo-level{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:14px;font-weight:600;color:#000;width:fit-content}.level-icon{font-size:16px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.stat-card{background:#f0f6fc;border:1px solid #d0e0f0;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.stat-icon{font-size:28px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#e8f4fc;border-radius:12px;flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:2px;min-width:0}.stat-value{font-size:24px;font-weight:700;color:#1a1a2e}.stat-label{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px}.stat-detail{font-size:12px;color:#888}.winrate-bar{width:100%;height:6px;background:#e0e0e0;border-radius:3px;margin-top:4px;overflow:hidden}.winrate-fill{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:3px;transition:width .5s ease}.stat-card.high-abandon{background:#fef2f2;border:1px solid #fecaca}.stat-card.high-abandon .stat-value{color:#e74c3c}.elo-chart-section{background:#f0f6fc;border:1px solid #d0e0f0;border-radius:12px;padding:20px;margin-bottom:24px}.elo-chart-section h2{color:#1a1a2e;font-size:18px;margin:0 0 16px;display:flex;align-items:center;gap:8px}.chart-container{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:12px}.elo-chart-svg{display:block}.chart-placeholder{padding:40px;text-align:center;color:#888;background:#fff;border:1px solid #e0e0e0;border-radius:12px}.games-history-section{background:#f0f6fc;border:1px solid #d0e0f0;border-radius:12px;padding:20px}.games-history-section h2{color:#1a1a2e;font-size:18px;margin:0 0 16px;display:flex;align-items:center;gap:8px}.games-count{font-size:14px;font-weight:400;color:#888}.games-list{display:flex;flex-direction:column;gap:8px}.game-row{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:10px;border-left:4px solid transparent;transition:background .2s,box-shadow .2s}.game-row:hover{box-shadow:0 2px 8px #0000000f}.game-row.win{border-left-color:#27ae60}.game-row.loss{border-left-color:#e74c3c}.game-result-badge{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}.game-row.win .game-result-badge{background:#e8f8f0;color:#27ae60}.game-row.loss .game-result-badge{background:#fef2f2;color:#e74c3c}.game-info{flex:1;min-width:0}.game-main{display:flex;align-items:center;gap:10px;margin-bottom:4px}.game-mode{font-size:11px;padding:2px 8px;background:#e8f4fc;border-radius:4px;color:#3498db;font-weight:600}.game-score{font-size:16px;font-weight:700;color:#1a1a2e}.game-abandoned{font-size:10px;padding:2px 6px;background:#fef2f2;color:#e74c3c;border-radius:4px;font-weight:600}.game-forfeit{font-size:14px;cursor:help;margin-left:4px}.forfeit-icon{display:inline}.forfeit-text{display:none}.game-players{font-size:13px;color:#666;display:flex;flex-wrap:wrap;gap:4px 12px}.game-players a{color:#3498db;text-decoration:none}.game-players a:hover{text-decoration:underline}.teammate{color:#888}.game-date{font-size:12px;color:#999;white-space:nowrap;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.game-code{font-size:10px;color:#aaa;font-family:monospace}.load-more-btn{width:100%;margin-top:16px;padding:14px;background:#e8f4fc;border:1px solid #b8d4e8;color:#3498db;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.load-more-btn:hover:not(:disabled){background:#d0e8f8}.load-more-btn:disabled{opacity:.6;cursor:not-allowed}.no-games{padding:40px;text-align:center;color:#888}@media (max-width: 600px){.player-profile-page{padding:12px 12px 80px}.profile-header{padding:16px;gap:12px}.back-button{width:38px;height:38px}.back-button svg{width:20px;height:20px}.player-profile-page .player-name{font-size:22px}.own-badge{font-size:10px;padding:3px 8px}.elo-level{font-size:12px;padding:5px 12px}.stats-grid{gap:8px}.stat-card{padding:12px;gap:10px}.stat-icon{width:40px;height:40px;font-size:22px}.stat-value{font-size:20px}.stat-label{font-size:11px}.elo-chart-section,.games-history-section{padding:16px;border-radius:12px}.game-row{padding:10px;gap:10px}.game-result-badge{width:28px;height:28px;font-size:12px}.game-score{font-size:14px}.game-players{font-size:12px}.game-date{font-size:10px}.forfeit-icon{display:none}.forfeit-text{display:inline;font-size:10px;padding:2px 6px;background:#e8f4fc;color:#3498db;border-radius:4px;font-weight:600}}@media (max-width: 400px){.stats-grid{grid-template-columns:1fr}.game-date{display:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;min-height:100vh;font-size:16px;color:#1a1a2e}#root{min-height:100vh}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background:#f5f8fc}.login-box{background:#fff;padding:40px;border-radius:10px;box-shadow:0 4px 20px #0000001a;max-width:400px;width:100%;border:1px solid #e0e8f0}.login-box h1{text-align:center;color:#2980b9;margin-bottom:10px;font-size:2rem}.login-box h2{text-align:center;margin-bottom:30px;color:#333}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;color:#333;font-weight:500}.form-group input{width:100%;padding:12px;border:2px solid #d0d8e0;border-radius:5px;font-size:16px;transition:border-color .3s;color:#1a1a2e}.form-group input:focus{outline:none;border-color:#2980b9}button{width:100%;padding:12px;background:#2980b9;color:#fff;border:none;border-radius:5px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s}button:hover:not(:disabled){background:#1f6dad}button:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#ffe0e0;color:#d32f2f;padding:10px;border-radius:5px;margin-bottom:20px;text-align:center}.divider{text-align:center;margin:30px 0;color:#999;position:relative}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:#e0e0e0}.divider:before{left:0}.divider:after{right:0}.oauth-buttons{display:flex;flex-direction:column;gap:10px}.oauth-btn{background:#fff;color:#333;border:2px solid #e0e0e0}.oauth-btn:hover{background:#f5f5f5}.oauth-btn.google{border-color:#4285f4;color:#4285f4}.oauth-btn.github{border-color:#333;color:#333}.oauth-btn.facebook{border-color:#1877f2;color:#1877f2}.switch-mode{text-align:center;margin-top:20px}.switch-mode button{background:none;color:#2980b9;width:auto;padding:0;font-size:14px;text-decoration:underline}.home-container{min-height:100vh;padding:20px;color:#1a1a2e;background:#fff}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;background:#f0f6fc;padding:20px;border-radius:10px;border:1px solid #d0e0f0}.disclaimer-banner{display:flex;align-items:center;gap:10px;background:#fff3cd;color:#856404;padding:8px 15px;border-radius:8px;margin-bottom:10px;border:1px solid #ffeeba}.disclaimer-banner .disclaimer-icon{font-size:18px;flex-shrink:0}.disclaimer-banner p{margin:0;font-size:12px;line-height:1.3}.disclaimer-banner a{color:#533f03;font-weight:700;text-decoration:underline}.disclaimer-banner a:hover{color:#1a1a2e}.user-info{display:flex;align-items:center;gap:15px}.user-info button{width:auto;padding:8px 20px;background:#2980b9}.user-profile-btn{display:flex;align-items:center;gap:10px;background:#e8f4fc!important;border-radius:25px!important;padding:8px 16px!important;cursor:pointer;transition:all .3s;color:#1a1a2e!important;border:1px solid #b8d4e8!important}.user-profile-btn:hover{background:#d0e8f8!important;transform:scale(1.02)}.logout-btn{display:flex;align-items:center;justify-content:center;gap:8px}.logout-icon{display:none;width:20px;height:20px}@media (max-width: 768px){.logout-text{display:none}.logout-icon{display:inline-block}.logout-btn{padding:8px 12px!important;min-width:40px}}.user-info .username{font-weight:600;font-size:16px;color:#1a1a2e}.connection-dot{width:12px;height:12px;border-radius:50%;display:inline-block;transition:background-color .3s}.connection-dot.online{background-color:#27ae60;box-shadow:0 0 8px #27ae60}.connection-dot.offline{background-color:#e74c3c;box-shadow:0 0 8px #e74c3c;animation:pulse-offline 1.5s infinite}@keyframes pulse-offline{0%,to{opacity:1}50%{opacity:.5}}main{display:grid;grid-template-columns:1fr 300px;gap:10px}.games-section{background:#e8f4fc;padding:20px;border-radius:10px;border:1px solid #b8d4e8}.games-section h2{color:#2980b9;margin-bottom:4px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;padding:10px}.section-header button{width:auto;padding:5px 10px}.create-game-controls{display:flex;align-items:center;gap:15px}.game-mode-toggle{display:flex;flex-direction:column;border-radius:4px;overflow:hidden;border:2px solid #3498db;padding:0;min-width:35px}.game-mode-toggle .mode-btn{padding:4px 8px;border:none;border-radius:0;background:#fff;color:#3498db;font-size:11px;font-weight:700;cursor:pointer;transition:all .2s;width:auto;min-width:32px}.game-mode-toggle .mode-btn:first-child{border-right:none;border-bottom:1px solid #3498db}.game-mode-toggle .mode-btn.active{background:#3498db;color:#fff}.game-mode-toggle .mode-btn:hover:not(.active){background:#e8f4fc}.points-wrapper{display:flex;flex-direction:row;align-items:center;gap:6px}.points-label{font-size:11px;color:#7f8c8d;font-weight:500;text-transform:uppercase}.points-select{padding:8px 12px;border:2px solid #3498db;border-radius:6px;background:#fff;font-size:14px;font-weight:700;color:#2c3e50;cursor:pointer;transition:all .2s}.points-select:hover{border-color:#2980b9}.points-select:focus{outline:none;border-color:#2980b9;box-shadow:0 0 0 3px #3498db33}.create-game-btn{padding:10px}.create-game-btn .btn-text-short{display:none}@media (max-width: 480px){.create-game-controls{gap:8px}.game-mode-toggle .mode-btn{padding:3px 6px;font-size:12px}.points-wrapper{flex-direction:column;gap:2px}.points-label{font-size:9px}.points-select{padding:6px 10px;font-size:13px}.create-game-btn .btn-text-full{display:none}.create-game-btn .btn-text-short{display:inline}.create-game-btn{padding:10px}}.games-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.game-card{background:#fff;padding:20px;border-radius:10px;border:2px solid #d0e0f0;transition:all .3s;color:#1a1a2e}.game-card.waiting-players{background:#e8f8f0;border-color:#27ae60}.game-card.waiting-start{background:#fff8e8;border-color:#f39c12}.game-card.in-progress{background:#f8f8f8;border-color:#bdc3c7}.game-card h3{margin-bottom:10px;color:#1a1a2e}.game-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.game-card-header h3{margin-bottom:0}.game-mode-badge{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase}.game-mode-badge.2v2{background:#3498db;color:#fff}.game-mode-badge.1v1{background:#9b59b6;color:#fff}.game-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#1a5f2a;color:#fff;gap:20px}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.game-card button{margin-top:10px;width:100%}.game-card .play-button{background:#27ae60;color:#fff;font-weight:600}.game-card .play-button:hover{background:#1f8c4d}.players-section{background:#e8f4fc;padding:20px;border-radius:10px;border:1px solid #b8d4e8}.players-section h2{color:#2980b9;margin-bottom:4px}.players-grid{display:flex;flex-direction:column;gap:8px}.player-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff;border-radius:8px;font-size:14px;border:1px solid #d0e0f0;color:#1a1a2e}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.wave-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;transition:all .2s;width:auto;min-width:unset}.wave-btn:hover{background:#e8f4fc;transform:scale(1.2)}.players-list{list-style:none}.players-list li{padding:10px;background:#fff;margin-bottom:5px;border-radius:5px;border:1px solid #d0e0f0}@media (max-width: 768px){.players-grid{gap:6px}}.notifications-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.notification-popup{background:#27ae60;color:#fff;padding:15px 25px;border-radius:12px;box-shadow:0 4px 20px #0003;font-size:16px;font-weight:600;animation:slideDown .3s ease-out,fadeOut .5s ease-in 3.5s forwards;pointer-events:auto;border:2px solid rgba(255,255,255,.3)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.home-footer{display:flex;position:fixed;bottom:0;left:0;right:0;height:50px;background:#f0f6fc;border-top:1px solid #d0e0f0;z-index:100;padding:5px 20px;gap:10px}.home-footer .footer-left{flex:1;min-width:0}.home-footer .footer-right{width:120px;flex-shrink:0}.home-footer .chat-container{position:relative!important;bottom:auto!important;right:auto!important;left:auto!important;width:100%!important;height:40px!important;max-height:none!important}.home-footer .chat-container.minimized .chat-header{height:100%;border-radius:8px;padding:8px 12px}.home-footer .chat-container .chat-title{font-size:12px}.home-footer:has(.chat-container:not(.minimized)) .footer-right{display:none}.home-footer:has(.chat-container:not(.minimized)) .footer-left{position:fixed;bottom:0;left:0;right:0;height:50vh;max-height:400px;z-index:200}.home-footer:has(.chat-container:not(.minimized)) .chat-container{height:100%!important;max-height:100%!important;border-radius:12px 12px 0 0;display:flex!important;flex-direction:column!important}.home-footer .chat-container:not(.minimized) .chat-header{height:auto;flex-shrink:0;border-radius:12px 12px 0 0;padding:12px 16px}.home-footer .chat-container:not(.minimized) .chat-messages{flex:1;min-height:0;max-height:none}.home-footer .chat-container:not(.minimized) .chat-input{flex-shrink:0}.home-container{padding-bottom:60px}@media (max-width: 768px){.home-footer{padding:5px;gap:5px}.home-footer .footer-right{flex:1;width:auto}}.credits-btn{width:100%;height:40px;padding:8px 12px;background:#27ae60;border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s;font-size:12px}.credits-btn:hover{transform:scale(1.02);background:#1f8c4d}.credits-btn .btn-icon{font-size:16px}.credits-btn .btn-icon-svg{width:16px;height:16px;flex-shrink:0}.credits-btn .btn-icon-svg.heart-pulse{animation:heartPulse 1.5s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}.credits-btn .btn-text{font-size:14px}.credits-page{min-height:100vh;padding:20px;color:#1a1a2e;max-width:800px;margin:0 auto;background:#fff}.credits-page .back-btn{background:#e8f4fc;border:1px solid #b8d4e8;color:#2980b9;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:14px;margin-bottom:30px;transition:all .2s}.credits-page .back-btn:hover{background:#d0e8f8}.credits-content{text-align:center}.credits-content h1{font-size:2.5rem;margin-bottom:40px;color:#2980b9}.credits-logo{max-width:300px;width:100%;height:auto;margin-bottom:40px}.credits-section{background:#f0f6fc;border-radius:15px;padding:25px;margin-bottom:20px;text-align:left;border:1px solid #d0e0f0}.credits-section h2{font-size:1.3rem;margin-bottom:15px;color:#2980b9}.credits-section p{line-height:1.7;color:#333;margin-bottom:10px}.credits-section.developer{text-align:center;background:#2980b9}.credits-section.developer h2{color:#fff;font-size:1.5rem}.credits-section.developer p{color:#fff;font-size:.9rem;font-weight:600}.coffee-btn{display:inline-flex;align-items:center;gap:10px;background:#f39c12;color:#fff;padding:15px 30px;border-radius:10px;text-decoration:none;font-weight:700;font-size:16px;margin-top:15px;transition:all .3s;box-shadow:0 4px 15px #f39c124d}.coffee-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #f39c1266}.coffee-btn .coffee-icon{font-size:24px}.email-btn{display:inline-flex;align-items:center;gap:10px;background:#27ae60;color:#fff;padding:15px 30px;border-radius:10px;text-decoration:none;font-weight:600;font-size:16px;margin-top:15px;transition:all .3s;box-shadow:0 4px 15px #27ae604d}.email-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #27ae6066}.email-btn .email-icon{font-size:20px}.press-section{text-align:center}.press-quote{margin:0 0 20px;padding:20px;background:#2980b91a;border-left:4px solid #2980b9;border-radius:0 8px 8px 0;font-style:italic}.press-quote p{margin:0 0 10px;font-size:1rem;line-height:1.6;color:#34495e}.press-quote cite{display:block;font-size:.9rem;color:#7f8c8d;font-style:normal;font-weight:600}.press-link{display:inline-block;color:#2980b9;text-decoration:none;font-weight:600;padding:10px 20px;border:2px solid #2980b9;border-radius:8px;transition:all .3s}.press-link:hover{background:#2980b9;color:#fff}.stats-section{text-align:center;background:#e8f4fc!important;border:1px solid #b8d4e8!important}.game-counter{display:flex;flex-direction:column;align-items:center;gap:5px}.game-counter .counter-value{font-size:3rem;font-weight:800;color:#2980b9;text-shadow:none;line-height:1}.game-counter .counter-label{font-size:1.2rem;font-weight:600;color:#1a1a2e;text-transform:uppercase;letter-spacing:2px}.game-counter .counter-today{font-size:1rem;color:#667eea;font-weight:500;margin-top:5px}.game-counter .counter-date{font-size:.9rem;color:#666;font-style:italic}.auth-callback{display:flex;justify-content:center;align-items:center;min-height:100vh;color:#1a1a2e;font-size:20px;background:#f5f8fc}@media (max-width: 768px){main{grid-template-columns:1fr}.games-list{grid-template-columns:1fr}}.chat-container{position:fixed;bottom:20px;right:20px;width:350px;max-height:450px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;display:flex;flex-direction:column;z-index:1000;overflow:hidden;transition:all .3s ease;border:1px solid #d0e0f0}.chat-container.minimized{max-height:50px}.chat-header{background:#2980b9;color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.chat-header:hover{filter:brightness(1.1)}.chat-header-right{display:flex;align-items:center;gap:8px}.unread-indicator{display:flex;align-items:center;animation:pulse-unread 1.5s infinite}.unread-indicator svg{display:block}@keyframes pulse-unread{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.chat-title{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px}.chat-title .chat-icon{width:18px;height:18px;stroke:#fff;flex-shrink:0}.chat-toggle{font-size:12px;opacity:.8}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;max-height:300px;min-height:200px;background:#f8fafc}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:silver;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.no-messages{color:#999;text-align:center;font-style:italic;padding:20px}.chat-message{background:#e8f4fc;border-radius:8px;padding:8px 12px;max-width:85%;word-wrap:break-word;color:#1a1a2e}.chat-message.own{background:#2980b9;margin-left:auto;color:#fff}.chat-message.server{background:#f39c12;text-align:center;max-width:100%;color:#fff}.chat-message.system{background:#f0f0f0;text-align:center;font-style:italic;color:#666;max-width:100%}.chat-message.voice{background:#27ae60;color:#fff}.chat-message.admin-message{background:#1a5f2a;color:#fff}.chat-message.admin-message .message-username{color:#90ee90;font-weight:700}.chat-message.admin-message .message-time{color:#ffffffb3}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;gap:8px}.message-username{font-weight:600;font-size:12px;color:inherit}.message-time{font-size:10px;opacity:.7}.delete-message-btn{background:none;border:none;width:20px;height:20px;padding:2px;cursor:pointer;opacity:.6;transition:opacity .2s;margin-left:auto;display:flex;align-items:center;justify-content:center}.delete-message-btn:hover{opacity:1}.delete-message-btn svg{width:14px;height:14px;stroke:#333}.delete-message-btn:hover svg{stroke:#dc3545}.message-content{font-size:13px;line-height:1.4}.message-text{white-space:pre-wrap}.voice-message{display:flex;align-items:center;gap:10px}.voice-message audio{width:150px;height:32px}.voice-duration{font-size:11px;opacity:.8}.chat-input{display:flex;gap:8px;padding:12px;background:#f0f6fc;border-top:1px solid #d0e0f0}.chat-input input{flex:1;padding:10px 14px;border:1px solid #d0e0f0;border-radius:20px;background:#fff;color:#1a1a2e;font-size:13px;outline:none;transition:border-color .3s}.chat-input input::placeholder{color:#999}.chat-input input:focus{border-color:#2980b9}.chat-input input:disabled{opacity:.5;cursor:not-allowed}.chat-input .send-btn,.chat-input .voice-btn{width:40px;height:40px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}.chat-input .send-btn{background:#2980b9}.chat-input .send-btn:disabled{opacity:.4}.chat-input .voice-btn{background:#27ae60}.chat-input .voice-btn.recording{background:#e74c3c;animation:pulse-recording 1s infinite;width:auto;padding:0 15px;border-radius:20px}@keyframes pulse-recording{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (max-width: 600px){.chat-container{width:calc(100% - 20px);right:10px;bottom:10px;max-height:400px}.chat-messages{max-height:250px;min-height:150px}.voice-message audio{width:120px}}.game-board .chat-container{position:fixed;bottom:20px;left:20px;right:auto;background:#fffffffa}@media (max-width: 900px){.game-board .chat-container{left:10px;bottom:10px}}.header-logo{display:flex;align-items:center}.header-logo img{height:45px;width:auto;max-width:200px}.login-box .login-logo{display:block;margin:0 auto 15px}@media (max-width: 768px){.header-logo img{height:35px;max-width:150px}}.player-stats-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.player-stats-modal{background:#fff;border-radius:12px;padding:24px;max-width:360px;width:100%;position:relative;box-shadow:0 10px 40px #0003;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.player-stats-modal .modal-close-btn{position:absolute;top:12px;right:12px;left:auto;width:28px;height:28px;background:none;border:none;cursor:pointer;padding:4px;color:#666;transition:color .2s;z-index:10;display:flex;align-items:center;justify-content:center}.player-stats-modal .modal-close-btn:hover{color:#333}.player-stats-modal .modal-close-btn svg{width:20px;height:20px}.player-stats-modal .modal-header{text-align:center;margin-bottom:20px}.player-stats-modal .modal-header h3{font-size:1.4rem;color:#1a1a2e;margin-bottom:8px}.player-stats-modal .elo-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.85rem;color:#fff;font-weight:500}.player-stats-modal .modal-loading,.player-stats-modal .modal-error{text-align:center;padding:40px 20px;color:#666}.player-stats-modal .modal-error{color:#e74c3c}.player-stats-modal .stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.player-stats-modal .stat-item{background:#f8f9fa;border-radius:10px;padding:14px;text-align:center}.player-stats-modal .stat-item .stat-label{display:block;font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.player-stats-modal .stat-item .stat-value{display:block;font-size:1.5rem;font-weight:700;color:#1a1a2e}.player-stats-modal .stat-item .stat-sub{display:block;font-size:.75rem;color:#888;margin-top:2px}.player-stats-modal .stat-item.elo{background:linear-gradient(135deg,#e8f4fd,#d0e8f8)}.player-stats-modal .stat-item.elo .stat-value{color:#2980b9}.player-stats-modal .stat-item.games{background:linear-gradient(135deg,#f0f0f0,#e8e8e8)}.player-stats-modal .stat-bar{height:6px;background:#ddd;border-radius:3px;margin-top:8px;overflow:hidden}.player-stats-modal .stat-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.player-stats-modal .stat-bar-fill.win{background:linear-gradient(90deg,#27ae60,#2ecc71)}.player-stats-modal .stat-bar-fill.abandon{background:linear-gradient(90deg,#e74c3c,#c0392b)}.info-stats-btn{background:none;border:none;cursor:pointer;padding:4px;color:#888;transition:color .2s;display:flex;align-items:center;justify-content:center}.info-stats-btn:hover{color:#2980b9}.info-stats-btn svg{width:18px;height:18px}.players-grid .player-item{display:flex;align-items:center;gap:6px}.players-grid .player-item .player-actions{display:flex;align-items:center;gap:4px;margin-left:auto}@media (max-width: 768px){.player-stats-modal{max-width:320px;padding:20px}.player-stats-modal .stats-grid{gap:12px}.player-stats-modal .stat-item{padding:12px}.player-stats-modal .stat-item .stat-value{font-size:1.3rem}}.quick-actions-bar{display:flex;justify-content:center;gap:12px;padding:12px 20px;background:#f8f9fa;border-bottom:1px solid #e0e8f0}.quick-actions-bar .action-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.quick-actions-bar .action-btn svg{width:18px;height:18px}.quick-actions-bar .action-btn.leaderboard-btn{background:linear-gradient(135deg,#ffd93d,#ff9f1c);color:#1a1a2e}.quick-actions-bar .action-btn.leaderboard-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff9f1c66}.quick-actions-bar .action-btn.info-btn{background:linear-gradient(135deg,#4d96ff,#2980b9);color:#fff}.quick-actions-bar .action-btn.info-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2980b966}.leaderboard-container{min-height:100vh;background:#f5f8fc}.leaderboard-header{display:flex;align-items:center;gap:20px;padding:20px;background:#fff;border-bottom:1px solid #e0e8f0}.leaderboard-header h1{font-size:1.5rem;color:#1a1a2e;margin:0}.back-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f0f0f0;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;color:#666;transition:all .2s}.back-btn:hover{background:#e0e0e0;color:#333}.back-btn svg{width:18px;height:18px}.leaderboard-content{padding:20px;max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center}.leaderboard-loading,.leaderboard-error,.leaderboard-empty{text-align:center;padding:60px 20px;color:#666;font-size:1.1rem}.leaderboard-error{color:#e74c3c}.leaderboard-table-wrapper{width:100%;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;overflow:hidden}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table th{background:#f8f9fa;padding:14px 12px;text-align:left;font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e0e8f0}.leaderboard-table td{padding:14px 12px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.leaderboard-table tbody tr:hover{background:#f8f9fa}.leaderboard-table tbody tr.top-1{background:linear-gradient(90deg,rgba(255,215,0,.15) 0%,transparent 100%)}.leaderboard-table tbody tr.top-2{background:linear-gradient(90deg,rgba(192,192,192,.15) 0%,transparent 100%)}.leaderboard-table tbody tr.top-3{background:linear-gradient(90deg,rgba(205,127,50,.15) 0%,transparent 100%)}.leaderboard-table tbody tr.current-user{background:linear-gradient(90deg,rgba(41,128,185,.1) 0%,transparent 100%);border-left:3px solid #2980b9}.leaderboard-table .col-rank{width:60px;text-align:center}.leaderboard-table .rank-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#f0f0f0;font-weight:600;font-size:14px;color:#666}.leaderboard-table .rank-badge.medal{background:transparent;font-size:24px}.leaderboard-table .col-player .player-info{display:flex;flex-direction:column;gap:4px}.leaderboard-table .col-player .player-name,.leaderboard-table .col-player .player-name-link{font-weight:600;color:#1a1a2e;text-decoration:none;transition:color .2s}.leaderboard-table .col-player .player-name-link:hover{color:#3498db;text-decoration:underline}.leaderboard-table .col-player .elo-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;color:#fff;font-weight:500;width:fit-content}.leaderboard-table .col-elo .elo-info,.leaderboard-table .col-games .games-info{display:flex;flex-direction:column;gap:2px}.leaderboard-table .col-elo .elo-current,.leaderboard-table .col-games .games-total{font-weight:700;font-size:1.1rem;color:#1a1a2e}.leaderboard-table .col-elo .elo-peak,.leaderboard-table .col-games .games-detail{font-size:11px;color:#888}.leaderboard-table .rate-info{display:flex;flex-direction:column;gap:4px}.leaderboard-table .rate-value{font-weight:600;font-size:14px}.leaderboard-table .rate-bar{height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden;width:80px}.leaderboard-table .rate-bar-fill{height:100%;border-radius:3px}.leaderboard-table .rate-bar-fill.win{background:linear-gradient(90deg,#27ae60,#2ecc71)}.leaderboard-table .rate-bar-fill.abandon{background:linear-gradient(90deg,#e74c3c,#c0392b)}.leaderboard-table .mobile-only{display:none}.leaderboard-table .desktop-only{display:table-cell}.leaderboard-table .elo-badge.desktop-only{display:inline-block}.leaderboard-table .elo-badge.mobile-only{display:none}.leaderboard-table .rate-value-compact{font-weight:600;font-size:13px}.leaderboard-table .col-abandon-mobile{text-align:center}@media (max-width: 768px){.leaderboard-content{padding:10px}.leaderboard-table th,.leaderboard-table td{padding:8px 4px}.leaderboard-table .col-elo{display:none}.leaderboard-table .desktop-only{display:none!important}.leaderboard-table .mobile-only{display:table-cell}.leaderboard-table .elo-badge.mobile-only{display:inline-block;font-size:9px;padding:2px 6px}.leaderboard-table .rate-bar,.leaderboard-table .col-rank{width:40px}.leaderboard-table .rank-badge{width:28px;height:28px;font-size:12px}.leaderboard-table .rank-badge.medal{font-size:20px}.leaderboard-table .col-player .player-name{font-size:15px}.leaderboard-table .col-games .games-total{font-size:14px}.leaderboard-table .col-games .games-detail{font-size:10px}.leaderboard-table .col-winrate .rate-value{font-size:12px}}.info-rules-container{min-height:100vh;background:#f5f8fc}.info-rules-header{display:flex;align-items:center;gap:20px;padding:20px;background:#fff;border-bottom:1px solid #e0e8f0}.info-rules-header h1{font-size:1.5rem;color:#1a1a2e;margin:0;white-space:nowrap}.info-rules-header h1 .title-mobile{display:none}.info-rules-header h1 .title-desktop{display:inline}.info-rules-content{padding:20px;max-width:80%;margin:0 auto}@media (min-width: 1024px){.info-rules-content{display:flex;gap:30px;align-items:flex-start}.info-rules-content .rules-section,.info-rules-content .features-section{flex:1;min-width:0}}.info-rules-content h2{display:flex;align-items:center;gap:10px;font-size:1.3rem;color:#1a1a2e;margin:30px 0 20px;padding-bottom:10px;border-bottom:2px solid #2980b9}.info-rules-content h2:first-child{margin-top:0}.info-rules-content h2 svg{width:24px;height:24px;color:#2980b9}.rule-card,.feature-card{background:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.rule-card h3,.feature-card h3{display:flex;align-items:center;gap:8px;font-size:1.1rem;color:#1a1a2e;margin:0 0 12px}.feature-card h3 svg{width:20px;height:20px;color:#2980b9}.rule-card p,.feature-card p{color:#555;line-height:1.6;margin:8px 0}.rule-card ul,.feature-card ul{margin:12px 0;padding-left:20px}.rule-card li,.feature-card li{color:#555;line-height:1.8}.rule-card .card-hierarchy{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.rule-card .card-hierarchy span{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:8px;font-weight:700;color:#1a1a2e}.feature-card.warning{background:linear-gradient(135deg,#fff5f5,#ffe8e8);border-left:4px solid #e74c3c}.feature-card.warning h3 svg{color:#e74c3c}.elo-levels{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;list-style:none;padding:0;margin-top:12px}.elo-levels li{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f9fa;border-radius:8px;font-size:13px}.elo-calculation{margin-top:20px;padding-top:20px;border-top:1px solid #e0e8f0}.elo-calculation h4{font-size:1rem;color:#1a1a2e;margin:0 0 12px}.elo-calculation .formula{background:linear-gradient(135deg,#e8f4fd,#d0e8f8);padding:12px 16px;border-radius:8px;text-align:center;font-family:Courier New,monospace;font-size:14px;margin:12px 0}.elo-calculation .calc-details{list-style:none;padding:0;margin:12px 0}.elo-calculation .calc-details li{padding:6px 0;font-size:14px;border-bottom:1px solid #f0f0f0}.elo-calculation .calc-details li:last-child{border-bottom:none}.elo-example{background:#f8f9fa;border-radius:10px;padding:16px;margin-top:16px}.elo-example h5{font-size:.95rem;color:#1a1a2e;margin:0 0 10px}.elo-example p{font-size:14px;margin:8px 0}.elo-example em{display:block;background:#fff;padding:8px 12px;border-radius:6px;font-family:Courier New,monospace;font-size:12px;color:#555;overflow-x:auto}.elo-example ul{list-style:none;padding:0;margin:12px 0}.elo-example ul li{padding:6px 0;font-size:14px}.elo-gain{color:#27ae60;font-weight:700}.elo-loss{color:#e74c3c;font-weight:700}.feature-card.support{text-align:center}.feature-card.support h3 svg{stroke:#e74c3c}@media (max-width: 768px){.info-rules-header h1 .title-mobile{display:inline}.info-rules-header h1 .title-desktop{display:none}.info-rules-content{padding:15px}.rule-card,.feature-card{padding:16px}.elo-levels{grid-template-columns:1fr}.quick-actions-bar{padding:10px 15px}.quick-actions-bar .action-btn{padding:8px 14px;font-size:13px}.quick-actions-bar .action-btn svg{width:16px;height:16px}}
