.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;padding:48px 40px;width:100%;max-width:440px;animation:fadeInUp .4s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.auth-header{text-align:center;margin-bottom:32px}.auth-title{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 8px;letter-spacing:-.5px}.auth-subtitle{font-size:14px;color:#718096;margin:0}.auth-error{background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c53030;padding:12px 16px;margin-bottom:20px;font-size:14px;display:flex;align-items:center;gap:8px}.auth-error:before{content:"⚠";font-size:16px}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-form-group{display:flex;flex-direction:column;gap:8px}.auth-label{font-size:14px;font-weight:600;color:#2d3748;letter-spacing:.3px}.auth-input{width:100%;padding:12px 16px;font-size:15px;border:2px solid #e2e8f0;border-radius:8px;transition:all .2s ease;background:#fff;color:#1a202c;box-sizing:border-box}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .auth-input{padding-right:48px}.password-toggle-btn{position:absolute;right:12px;background:none;border:none;cursor:pointer;font-size:20px;padding:4px 8px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .2s ease;-webkit-user-select:none;user-select:none}.password-toggle-btn:hover{opacity:1}.password-toggle-btn:focus{outline:none;opacity:1}.auth-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-input::placeholder{color:#a0aec0}.auth-input-hint{font-size:12px;color:#718096;margin-top:4px}.auth-submit-btn{width:100%;padding:14px 24px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;margin-top:8px;position:relative;overflow:hidden}.auth-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #667eea4d}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.password-toggle-icon{width:20px;height:20px;display:block}.auth-footer{text-align:center;margin-top:28px;padding-top:24px;border-top:1px solid #e2e8f0}.auth-footer-text{font-size:14px;color:#718096}.auth-footer-link{color:#667eea;font-weight:600;text-decoration:none;cursor:pointer;transition:color .2s ease;background:none;border:none;padding:0;font-size:14px}.auth-footer-link:hover{color:#764ba2;text-decoration:underline}.auth-back-btn{display:inline-flex;align-items:center;gap:8px;color:#667eea;font-size:14px;font-weight:600;text-decoration:none;margin-bottom:24px;transition:all .2s ease;background:none;border:none;cursor:pointer;padding:0}.auth-back-btn:hover{color:#764ba2;transform:translate(-4px)}@media (max-width: 1024px){.auth-card{padding:40px 32px;max-width:400px}.auth-title{font-size:26px}}@media (max-width: 768px){.auth-container{padding:16px}.auth-card{padding:32px 24px;border-radius:12px}.auth-title{font-size:24px}.auth-subtitle{font-size:13px}.auth-input{padding:11px 14px;font-size:16px}.auth-submit-btn{padding:13px 20px;font-size:15px}.auth-footer{margin-top:24px;padding-top:20px}}@media (max-width: 400px){.auth-container{padding:12px}.auth-card{padding:28px 20px}.auth-title{font-size:22px}.auth-header{margin-bottom:28px}.auth-form{gap:18px}}.match-history-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.match-history-modal{background:#fff;border-radius:24px;width:90%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden;animation:slideUp .4s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.match-history-header{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:space-between;align-items:center;padding:28px 32px;border-bottom:none}.match-history-header h2{margin:0;color:#fff;font-size:28px;font-weight:700;letter-spacing:-.5px}.close-btn{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:12px;color:#fff;font-size:28px;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-weight:300;line-height:1}.close-btn:hover{background:#ffffff4d;transform:scale(1.05)}.match-history-content{padding:24px 32px;overflow-y:auto;flex:1;background:#f8f9fa}.loading-text,.error-text,.empty-text{text-align:center;color:#64748b;font-size:16px;padding:60px 20px;font-weight:500}.error-text{color:#ef4444}.matches-list{display:flex;flex-direction:column;gap:16px}.match-card{background:#fff;border-radius:16px;padding:20px;border:2px solid #e2e8f0;transition:all .3s ease;box-shadow:0 2px 8px #0000000a}.match-card.won{border-left:4px solid #10b981}.match-card.lost{border-left:4px solid #ef4444}.match-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea26;border-color:#667eea}.match-header-row{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.result-badge{font-size:12px;font-weight:700;padding:6px 14px;border-radius:8px;text-transform:uppercase;letter-spacing:.5px}.result-badge.victory{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 8px #10b9814d}.result-badge.defeat{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 8px #ef44444d}.mode-badge{font-size:12px;font-weight:700;padding:6px 14px;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;letter-spacing:.5px;box-shadow:0 2px 8px #667eea40}.time-text{font-size:13px;color:#94a3b8;margin-left:auto;font-weight:500}.match-details{display:flex;flex-direction:column;gap:12px}.teams-section{display:flex;align-items:center;gap:20px;padding:0 16px}.team-box{flex:1;background:#f1f5f9;padding:16px;border-radius:12px;min-width:0;border:2px solid #e2e8f0;transition:all .3s ease}.team-box.user-team{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:2px solid #667eea;box-shadow:0 0 0 4px #667eea1a}.team-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;margin-bottom:8px;letter-spacing:.5px}.player-name{font-size:14px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.team-box .player-name{margin-bottom:4px}.player-name:last-child{margin-bottom:0}.score-divider{display:flex;align-items:center;justify-content:center;min-width:70px}.score-text{font-size:22px;font-weight:800;color:#1e293b;letter-spacing:-.5px}.duration-text{font-size:13px;color:#64748b;text-align:right;font-weight:500}.match-history-content::-webkit-scrollbar{width:10px}.match-history-content::-webkit-scrollbar-track{background:transparent}.match-history-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;border:2px solid #f8f9fa}.match-history-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 768px){.match-history-modal{width:95%;max-height:90vh}.match-history-header{padding:20px 16px}.match-history-header h2{font-size:20px}.close-btn{width:36px;height:36px;font-size:24px}.match-history-content,.match-card{padding:16px}.match-header-row{gap:8px}.result-badge,.mode-badge{font-size:11px;padding:5px 10px}.time-text{font-size:12px;flex-basis:100%;margin-left:0;margin-top:4px}.teams-section{flex-direction:column;gap:12px}.team-box{width:100%;padding:16px}.team-label{font-size:10px;margin-bottom:6px}.player-name{font-size:13px;white-space:normal;word-break:break-word}.score-divider{min-width:100%;padding:8px 0}.score-text{font-size:20px}.duration-text{text-align:center;font-size:12px}}.lobby-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:40px 20px}.lobby-content{max-width:1400px;margin:0 auto}.lobby-header{text-align:center;margin-bottom:48px}.lobby-header-content{display:flex;align-items:center;justify-content:space-between;gap:32px}.lobby-header-left{text-align:left}.lobby-logo{height:130px;width:auto;filter:drop-shadow(0 2px 20px rgba(0,0,0,.2))}.lobby-header-right{flex-shrink:0}.lobby-title{font-size:56px;font-weight:800;color:#fff;margin:0 0 12px;letter-spacing:-1px;text-shadow:0 2px 20px rgba(0,0,0,.2)}.lobby-player-info{font-size:18px;color:#ffffffe6;margin:0;font-weight:500}.lobby-player-name{color:#fff;font-weight:700;text-shadow:0 1px 10px rgba(0,0,0,.15)}.lobby-nav{display:flex;gap:8px;background:#ffffffd9;padding:8px;border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 20px #0000001a}.lobby-nav-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:transparent;border:1px solid rgba(0,0,0,.1);border-radius:12px;cursor:pointer;transition:all .2s ease;font-family:inherit;font-size:15px;font-weight:600;color:#1a202c}.lobby-nav-btn:hover{background:#fff9;border-color:#667eea66;transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.lobby-nav-btn:active{transform:translateY(0)}.lobby-nav-btn-logout{border-color:#ff64644d}.lobby-nav-btn-logout:hover{background:#ffc8c84d;border-color:#ff646480;box-shadow:0 2px 8px #ff646426}.lobby-nav-guest{gap:12px}.lobby-nav-btn-login{background:linear-gradient(135deg,#667eea66,#764ba266);border-color:#ffffff80;box-shadow:0 4px 12px #667eea4d}.lobby-nav-btn-login:hover{background:linear-gradient(135deg,#667eea99,#764ba299);border-color:#ffffffb3;box-shadow:0 6px 16px #667eea66}.lobby-nav-btn-register{background:linear-gradient(135deg,#667eea66,#764ba266);border-color:#ffffff80;box-shadow:0 4px 12px #667eea4d}.lobby-nav-btn-register:hover{background:linear-gradient(135deg,#667eea99,#764ba299);border-color:#ffffffb3;box-shadow:0 6px 16px #667eea66}.nav-icon{font-size:20px;line-height:1;position:relative;display:flex;align-items:center;justify-content:center}.nav-icon img{width:20px;height:20px;object-fit:contain;filter:brightness(.3)}.nav-notification-badge{position:absolute;top:-4px;right:-4px;width:10px;height:10px;background:#10b981;border:2px solid white;border-radius:50%}.nav-label{white-space:nowrap}.lobby-main-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px}.lobby-card{background:#fff;border-radius:20px;padding:48px 40px;box-shadow:0 10px 40px #00000026;transition:transform .3s ease,box-shadow .3s ease}.lobby-card:hover{transform:translateY(-4px);box-shadow:0 15px 50px #0003}.lobby-card-icon{width:64px;height:64px;background:#fffffff2;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:32px;margin-bottom:24px;box-shadow:0 4px 12px #667eea26}.lobby-card-icon img{width:48px;height:48px;object-fit:contain;filter:brightness(.7) saturate(1.2)}.lobby-card-title{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 12px;letter-spacing:-.5px}.lobby-card-description{font-size:15px;color:#718096;margin:0 0 32px;line-height:1.6}.mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}.mode-option{padding:20px;border-radius:12px;cursor:pointer;transition:all .2s ease;background:#f7fafc;border:3px solid transparent;text-align:center}.mode-option input[type=radio]{display:none}.mode-option:hover{background:#edf2f7;transform:translateY(-2px)}.mode-option.active{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea;box-shadow:0 4px 12px #667eea33}.mode-option-emoji{font-size:32px;display:block}.mode-option-emoji img{width:40px;height:40px;object-fit:contain}.mode-option-label{font-size:16px;font-weight:700;color:#1a202c;display:block;cursor:pointer}.lobby-btn{width:100%;padding:16px 32px;font-size:17px;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;font-family:inherit;letter-spacing:.3px}.lobby-btn-primary{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea66}.lobby-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea80}.lobby-btn-primary:active:not(:disabled){transform:translateY(0)}.lobby-btn-secondary{color:#667eea;background:#fff;border:3px solid #667eea;box-shadow:0 2px 8px #0000000d}.lobby-btn-secondary:hover:not(:disabled){background:#667eea;color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #667eea4d}.lobby-btn-secondary:active:not(:disabled){transform:translateY(0)}.lobby-btn:disabled{opacity:.5;cursor:not-allowed}.searching-status{text-align:center;padding:20px 0}.searching-animation{margin-bottom:24px}.searching-spinner{width:56px;height:56px;border:5px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.searching-text{font-size:20px;font-weight:700;color:#1a202c;margin:0 0 8px}.queue-position{font-size:15px;color:#718096;margin:0 0 28px}.lobby-join-section{background:#fff;border-radius:20px;padding:40px;box-shadow:0 10px 40px #00000026}.lobby-join-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.lobby-join-icon{width:48px;height:48px;background:#fffffff2;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 3px 10px #667eea26}.lobby-join-icon img{width:32px;height:32px;filter:brightness(.7) saturate(1.2);object-fit:contain}.lobby-join-title{font-size:24px;font-weight:700;color:#1a202c;margin:0}.join-input-group{display:flex;gap:16px}.join-input{flex:1;padding:16px 20px;font-size:16px;border:3px solid #e2e8f0;border-radius:12px;transition:all .2s ease;font-family:inherit;font-weight:500}.join-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.join-input::placeholder{color:#a0aec0}.join-btn{padding:16px 48px;white-space:nowrap;min-width:140px}.lobby-error{background-color:#fff5f5;border:2px solid #fc8181;border-radius:12px;color:#c53030;padding:14px 20px;margin-top:20px;font-size:15px;font-weight:600;display:flex;align-items:center;gap:12px}.credentials-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.credentials-modal-content{background:#fff;border-radius:24px;padding:48px;max-width:600px;width:100%;box-shadow:0 25px 70px #0006;animation:slideUp .4s ease-out}.credentials-modal-title{font-size:32px;font-weight:800;color:#1a202c;margin:0 0 12px;letter-spacing:-.5px}.credentials-modal-subtitle{font-size:16px;color:#718096;margin:0 0 36px}.credential-item{margin-bottom:28px}.credential-label{display:block;font-size:15px;font-weight:700;color:#2d3748;margin-bottom:10px;letter-spacing:.3px}.credential-row{display:flex;gap:12px}.credential-input{flex:1;padding:14px 18px;font-size:15px;border:3px solid #e2e8f0;border-radius:12px;background:#f7fafc;color:#1a202c;font-family:Courier New,monospace;font-weight:700}.credential-copy-btn{padding:14px 28px;font-size:15px;font-weight:700;color:#667eea;background:#fff;border:3px solid #667eea;border-radius:12px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.credential-copy-btn:hover{background:#667eea;color:#fff;transform:translateY(-2px)}.credential-copy-btn:active{transform:translateY(0)}.credentials-enter-btn{margin-top:20px}@media (max-width: 1200px){.lobby-main-grid{grid-template-columns:1fr;gap:24px}.lobby-card{padding:40px 32px}.lobby-logo{height:115px}.lobby-title{font-size:48px}.lobby-header-content{flex-direction:column;align-items:center;gap:24px}.lobby-header-left{text-align:center}.lobby-nav{width:100%;justify-content:center;flex-wrap:wrap}}@media (max-width: 768px){.lobby-container{padding:24px 16px}.lobby-header{margin-bottom:32px}.lobby-logo{height:100px}.lobby-title{font-size:40px}.lobby-player-info{font-size:16px}.lobby-nav{padding:6px;gap:6px;max-width:100%;justify-content:center;box-sizing:border-box}.lobby-nav-btn{padding:10px 16px;font-size:14px}.nav-label{display:none}.nav-icon{font-size:22px}.lobby-main-grid{gap:20px;margin-bottom:20px}.lobby-card{padding:32px 24px}.lobby-card-title{font-size:24px}.lobby-card-icon{width:56px;height:56px;font-size:28px}.mode-selector{gap:10px}.mode-option{padding:16px}.mode-option-emoji{font-size:28px}.mode-option-label{font-size:15px}.lobby-join-section{padding:28px 24px}.lobby-join-header{margin-bottom:20px}.lobby-join-title{font-size:20px}.join-input-group{flex-direction:column;gap:12px}.join-btn{width:100%;padding:16px 24px}.credentials-modal-content{padding:36px 28px}.credentials-modal-title{font-size:28px}.credential-row{flex-direction:column;gap:10px}.credential-copy-btn{width:100%}.lobby-btn{font-size:16px;padding:15px 28px}.lobby-header-content{flex-direction:column;align-items:stretch;gap:24px}.lobby-header-left{text-align:center}.lobby-header-right{width:100%}}@media (max-width: 400px){.lobby-container{padding:20px 12px}.lobby-title{font-size:36px}.lobby-nav{padding:4px;gap:4px}.lobby-nav-btn{padding:8px 10px}.nav-icon{font-size:20px}.lobby-card{padding:28px 20px}.lobby-card-title{font-size:22px}.lobby-join-section{padding:24px 20px}.credentials-modal-content{padding:32px 24px}}.rules-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rules-modal{background:#fff;border-radius:16px;max-width:800px;max-height:90vh;width:100%;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden}.rules-modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:2px solid #f0f0f0;background:linear-gradient(135deg,#667eea,#764ba2)}.rules-modal-header h2{margin:0;font-size:28px;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.rules-modal-content{padding:32px;overflow-y:auto;flex:1;line-height:1.7;color:#333}.rules-intro{font-size:16px;color:#555;margin:0 0 32px;padding:20px;background:#f8f9ff;border-left:4px solid #667eea;border-radius:8px;font-style:italic}.rules-section{margin-bottom:32px}.rules-section h3{font-size:22px;font-weight:700;color:#764ba2;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid #f0f0f0}.rules-section h4{font-size:18px;font-weight:600;color:#667eea;margin:20px 0 12px}.rules-section p{margin:0 0 12px;color:#444;font-size:15px}.rules-section ul{margin:12px 0;padding-left:24px}.rules-section li{margin-bottom:8px;color:#444;font-size:15px}.rules-table{width:100%;border-collapse:collapse;margin:16px 0;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014}.rules-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;font-size:15px}.rules-table td:first-child{font-weight:600;color:#667eea;width:60%}.rules-table td:last-child{color:#764ba2;font-weight:600;text-align:right}.rules-table tr:last-child td{border-bottom:none}.rules-table tr:hover{background:#f8f9ff}@media (max-width: 767px){.rules-modal-overlay{padding:12px}.rules-modal{max-height:90vh}.rules-modal-header{padding:20px}.rules-modal-header h2{font-size:22px}.rules-modal-content{padding:16px}.rules-intro{padding:16px;font-size:14px}.rules-section h3{font-size:19px}.rules-section h4{font-size:16px}.rules-section p,.rules-section li{font-size:14px}.rules-table td{padding:10px 12px;font-size:14px}}.invite-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.invite-modal{background-color:#fff;border-radius:8px;padding:2rem;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 4px 16px #0000004d}.invite-modal__header{margin-bottom:1.5rem}.invite-modal__header h3{margin:0;color:#333}.invite-modal__list{display:flex;flex-direction:column;gap:1rem}.invite-item{border:1px solid #ddd;border-radius:8px;padding:1rem;background-color:#f9f9f9}.invite-item__info{margin-bottom:1rem}.invite-item__inviter{margin:0 0 .5rem;font-size:1.1rem}.invite-item__inviter strong{color:#4caf50}.invite-item__room,.invite-item__expiry{margin:.25rem 0;font-size:.9rem;color:#666}.invite-item__actions{display:flex;gap:.5rem}.invite-item__btn{flex:1;padding:.75rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.invite-item__btn--accept{background-color:#4caf50;color:#fff}.invite-item__btn--accept:hover{background-color:#45a049}.invite-item__btn--decline{background-color:#f44336;color:#fff}.invite-item__btn--decline:hover{background-color:#d32f2f}.invite-modal__confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1001}.invite-modal__confirm{background-color:#fff;border-radius:8px;padding:2rem;max-width:400px;width:90%;box-shadow:0 4px 16px #0000004d}.invite-modal__confirm h4{margin-top:0;color:#333}.invite-modal__confirm p{color:#666;margin-bottom:1.5rem}.invite-modal__confirm-actions{display:flex;gap:.5rem}.invite-modal__confirm-btn{flex:1;padding:.75rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer}.invite-modal__confirm-btn--yes{background-color:#4caf50;color:#fff}.invite-modal__confirm-btn--yes:hover{background-color:#45a049}.invite-modal__confirm-btn--no{background-color:#9e9e9e;color:#fff}.invite-modal__confirm-btn--no:hover{background-color:#757575}.team-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000}.team-modal{background:linear-gradient(135deg,#0f172a,#1e1b4b);border:1px solid rgba(147,51,234,.3);border-radius:16px;padding:2rem;max-width:800px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.team-modal__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(139,92,246,.2)}.team-modal__header h3{margin:0;color:#fff;font-size:1.5rem;font-weight:600}.team-modal__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#fff9;transition:color .2s}.team-modal__close:hover{color:#fff}.team-modal__content{display:flex;flex-direction:column;gap:1.5rem}.team-modal__unassigned{padding:1.25rem;background:#1e1b4b80;border:1px solid rgba(139,92,246,.2);border-radius:12px}.team-modal__unassigned h4{margin-top:0;margin-bottom:1rem;color:#ffffffb3;font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.player-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.player-list__item{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:#0f172a99;border:1px solid rgba(139,92,246,.2);border-radius:8px;transition:all .2s}.player-list__item:hover{background:#0f172acc;border-color:#9333ea66}.player-list__item span{font-weight:500;color:#fff}.player-list__actions{display:flex;gap:.5rem}.player-list__btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.player-list__btn:disabled{opacity:.4;cursor:not-allowed}.player-list__btn--team0{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.player-list__btn--team0:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf666}.player-list__btn--team1{background:linear-gradient(135deg,#a855f7,#9333ea);color:#fff}.player-list__btn--team1:hover:not(:disabled){background:linear-gradient(135deg,#9333ea,#7e22ce);transform:translateY(-1px);box-shadow:0 4px 12px #a855f766}.team-modal__team{padding:1.25rem;border-radius:12px;border:1px solid;background:#1e1b4b66}.team-modal__team--0{border-color:#8b5cf666}.team-modal__team--1{border-color:#a855f766}.team-modal__team h4{margin-top:0;margin-bottom:1rem;color:#fff;font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.team-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.team-list__item{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:#0f172a99;border:1px solid rgba(139,92,246,.2);border-radius:8px;transition:all .2s}.team-list__item:hover:not(.team-list__item--empty){background:#0f172acc;border-color:#9333ea66}.team-list__item--empty{color:#fff6;font-style:italic;justify-content:center;border:1px dashed rgba(139,92,246,.3);background:#1e1b4b4d}.team-list__item span{font-weight:500;color:#fff}.team-list__remove{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.team-list__remove:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 12px #ef444466}.team-modal__footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(139,92,246,.2);display:flex;flex-direction:column;align-items:center;gap:1rem}.team-modal__hint{margin:0;color:#fff9;font-size:.875rem}.team-modal__confirm{padding:.875rem 2.5rem;font-size:1rem;font-weight:600;background:linear-gradient(135deg,#9333ea,#7e22ce);color:#fff;border:1px solid rgba(147,51,234,.3);border-radius:50px;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px #9333ea4d}.team-modal__confirm:hover:not(:disabled){background:linear-gradient(135deg,#7e22ce,#6b21a8);transform:translateY(-2px);box-shadow:0 6px 24px #9333ea80}.team-modal__confirm:disabled{background:#1e1b4b80;border-color:#8b5cf633;color:#ffffff4d;cursor:not-allowed;box-shadow:none}.friend-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:flex-end;align-items:flex-start;z-index:999;padding:1rem}.friend-panel{background-color:#fff;border-radius:8px;padding:1.5rem;width:350px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 16px #0000004d;margin-top:60px}.friend-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #f0f0f0}.friend-panel__header h3{margin:0;color:#333}.friend-panel__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.friend-panel__close:hover{color:#333}.friend-panel__loading,.friend-panel__empty{padding:2rem;text-align:center;color:#666}.friend-panel__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.friend-panel__item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border:1px solid #ddd;border-radius:4px;background-color:#fafafa}.friend-panel__info{display:flex;flex-direction:column;gap:.25rem}.friend-panel__name{font-weight:600;color:#333}.friend-panel__status{font-size:.85rem;text-transform:capitalize}.friend-panel__status--online{color:#4caf50}.friend-panel__status--offline{color:#9e9e9e}.friend-panel__status--in_game{color:#ff9800}.friend-panel__invite-btn{padding:.5rem 1rem;background-color:#4caf50;color:#fff;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s}.friend-panel__invite-btn:hover:not(:disabled){background-color:#45a049}.friend-panel__invite-btn:disabled{background-color:#ccc;color:#666;cursor:not-allowed}.room-screen{max-width:1200px;margin:0 auto;padding:2rem;min-height:100vh;animation:fadeIn .3s ease-out}.room-screen--empty{display:flex;justify-content:center;align-items:center;min-height:400px;text-align:center;color:#64748b;font-size:18px;font-weight:600}.room-screen__error{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:2px solid #fecaca;border-radius:16px;padding:16px 20px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;color:#dc2626;font-weight:600;box-shadow:0 2px 8px #ef44441a}.room-screen__error button{background:#ef44441a;border:none;border-radius:8px;width:32px;height:32px;font-size:20px;cursor:pointer;color:#dc2626;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.room-screen__error button:hover{background:#ef444433;transform:scale(1.1)}.room-screen__matchmaking{background:linear-gradient(135deg,#667eea14,#764ba214);border:2px solid #667eea;border-radius:16px;padding:16px 20px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #3b82f61a}.room-screen__matchmaking p{margin:0;font-weight:700;color:#1e293b;font-size:16px}.room-screen__matchmaking button{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:10px 24px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:700;transition:all .3s ease;box-shadow:0 4px 12px #ef444440}.room-screen__matchmaking button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444459}.room-screen__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:24px 32px;background:#fff;border-radius:20px;border:2px solid #e2e8f0;box-shadow:0 2px 8px #0000000a}.room-screen__header h2{margin:0;font-size:28px;font-weight:800;color:#667eea}.room-screen__player{margin:4px 0 0;font-size:15px;color:#64748b;font-weight:500}.room-screen__credentials{background:linear-gradient(135deg,#667eea14,#764ba214);border:2px solid #667eea;border-radius:20px;padding:24px 32px;margin-bottom:2rem;box-shadow:0 2px 8px #9333ea1a}.room-screen__credentials h3{margin:0 0 20px;font-size:20px;font-weight:700;color:#1e293b}.credential-item{margin-bottom:16px}.credential-item:last-child{margin-bottom:0}.credential-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600;color:#475569}.credential-row{display:flex;gap:12px;align-items:center}.credential-input{flex:1;padding:12px 16px;font-size:14px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:500;background:#fff;border-radius:12px;color:#1e293b;transition:all .2s ease}.credential-input:focus{outline:none;border:2px solid #667eea;box-shadow:0 0 0 3px #667eea1a}.credential-copy-wrapper{position:relative;display:flex;align-items:center}.credential-copy-icon{width:24px;height:24px;cursor:pointer;opacity:.7;transition:all .2s ease}.credential-copy-icon:hover{opacity:1;transform:scale(1.1)}.credential-copy-icon:active{transform:scale(.95)}.credential-tooltip{position:absolute;right:0;top:-40px;background:#1e293b;color:#fff;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 4px 12px #00000026;animation:tooltipFadeIn .2s ease-out;pointer-events:none}.credential-tooltip:after{content:"";position:absolute;bottom:-6px;right:8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #1e293b}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.room-screen__members{color:#1e293b;letter-spacing:-.5px}.room-screen__invite-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 28px;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;transition:all .3s ease;box-shadow:0 4px 12px #667eea40}.room-screen__invite-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea59}.room-screen__members{margin-bottom:2rem;background:#fff;border-radius:20px;border:2px solid #e2e8f0;padding:24px 32px;box-shadow:0 2px 8px #0000000a}.room-screen__members h3{margin:0 0 1.5rem;font-size:20px;font-weight:700;color:#1e293b}.member-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.member-list__item{display:flex;justify-content:space-between;align-items:center;padding:20px;border-radius:16px;background:#f8f9fa;border:2px solid #e2e8f0;transition:all .3s ease}.member-list__item:hover{transform:translateY(-4px);border-color:#667eea;box-shadow:0 8px 24px #667eea26}.member-list__info{display:flex;align-items:center;gap:12px}.member-list__name{font-weight:700;font-size:18px;color:#1e293b}.member-list__badge{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 8px #0000001a}.member-list__badge--host{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.member-list__badge--player{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.member-list__badge--spectator{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.member-list__controls{display:flex;gap:12px}.member-list__btn{padding:10px 20px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:700;transition:all .3s ease}.member-list__btn--role{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f640}.member-list__btn--role:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f659}.member-list__btn--kick{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 12px #ef444440}.member-list__btn--kick:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444459}.room-screen__start-controls{margin-bottom:2rem;padding:28px 32px;border-radius:20px;background:#fff;border:2px solid #e2e8f0;box-shadow:0 2px 8px #0000000a}.room-screen__start-controls h3{margin:0 0 1rem;font-size:20px;font-weight:700;color:#1e293b}.room-screen__start-controls label{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:600;color:#475569;font-size:14px}.room-screen__start-controls input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.start-controls__buttons{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap}.start-controls__btn{flex:1;min-width:180px;padding:16px;font-size:16px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #667eea40}.start-controls__btn:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 8px 24px #667eea59}.start-controls__btn:disabled{background:#cbd5e1;color:#94a3b8;cursor:not-allowed;box-shadow:none}.start-controls__hint{margin:12px 0 0;color:#64748b;font-size:14px;font-weight:500}.room-screen__actions{display:flex;justify-content:center}.room-screen__leave-btn{padding:14px 48px;font-size:16px;font-weight:700;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #ef444440}.room-screen__leave-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444459}@media (max-width: 768px){.room-screen{padding:1rem}.room-screen__header{flex-direction:column;align-items:flex-start;gap:16px;padding:20px}.room-screen__header h2{font-size:20px}.room-screen__invite-btn{width:100%;font-size:14px;padding:12px 20px}.credential-row{flex-direction:row}.room-screen__members{padding:16px}.room-screen__members h3{font-size:18px}.member-list__item{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.member-list__info{width:100%;flex-wrap:wrap;gap:8px}.member-list__name{font-size:16px;flex-basis:100%}.member-list__badge{padding:4px 10px;font-size:11px}.member-list__controls{width:100%;flex-direction:row;gap:8px}.member-list__btn{flex:1;width:100%;padding:12px;font-size:13px}.room-screen__start-controls{padding:16px}.room-screen__start-controls h3{font-size:18px}.room-screen__start-controls label{font-size:13px}.start-controls__buttons{flex-direction:column}.start-controls__btn{width:100%;min-width:auto;font-size:14px}}.card{width:72px;height:100px;cursor:pointer;transition:all .3s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.card-front{cursor:pointer}.card-front.disabled{opacity:.45;cursor:not-allowed}.card-back{cursor:default}@media (hover: hover) and (pointer: fine){.card:hover:not(.card-back){filter:drop-shadow(0 4px 8px rgba(0,0,0,.3)) brightness(1.05)}}.game-view{width:100vw;height:100vh;background:linear-gradient(135deg,#0f172a,#1e1b4b);position:relative;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;color:#fff}.game-header{position:absolute;top:0;left:0;right:0;height:70px;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding:16px 32px 0;z-index:100;pointer-events:none}.game-header>*{pointer-events:auto}.game-info{display:flex;flex-direction:column;gap:4px;justify-self:start}.game-info-text{font-size:17px;font-weight:500;color:#fffc;letter-spacing:.3px;background:#ffffff1a;border-radius:6px;padding:4px 8px}.scoreboard{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;background:#1e1b4be6;border-radius:50px;padding:12px 0;border:2px solid rgba(139,92,246,.3);box-shadow:0 4px 20px #8b5cf633;justify-self:center;min-width:360px;position:relative}.scoreboard:before,.scoreboard:after{content:"";position:absolute;top:10%;bottom:10%;width:1px;background:#8b5cf64d}.scoreboard:before{left:33.33%}.scoreboard:after{right:33.33%}.scoreboard-team{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 16px}.scoreboard-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#fff9}.scoreboard-value{font-size:24px;font-weight:800;color:#fff}.scoreboard-target{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 16px}.scoreboard-target-icon{font-size:20px}.scoreboard-target-value{font-size:24px;font-weight:900;color:#fbbf24;text-shadow:0 2px 8px rgba(251,191,36,.4)}.game-timer-container{display:flex;flex-direction:column;align-items:center;gap:4px;justify-self:end;transition:all .3s ease}.game-timer-container.hidden{visibility:hidden}.game-timer-circle{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:3px solid #8b5cf6;transition:all .3s ease}.game-timer-container.warning .game-timer-circle{border-color:#ef4444;animation:timerPulse 1s ease-in-out infinite}.game-timer-icon{width:28px;height:28px;color:#8b5cf6;transition:color .3s ease}.game-timer-container.warning .game-timer-icon{color:#ef4444}.game-timer-text{font-size:20px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.game-table{position:absolute;top:70px;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.talon-area{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:350px;min-height:200px;display:flex;align-items:center;justify-content:center;z-index:10}.zing-flash{position:absolute;top:-80px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#fbbf24,#f59e0b);padding:12px 20px;border-radius:12px;box-shadow:0 4px 16px #fbbf2480;animation:zingBounce .5s ease-out;z-index:1000}.zing-flash-stars{font-size:20px;animation:zingSpin 1s ease-in-out infinite}.zing-flash-text{display:flex;flex-direction:column;align-items:center;gap:2px}.zing-flash-player{font-size:12px;font-weight:500;color:#78350f}.zing-flash-points{font-size:16px;font-weight:700;color:#1f2937;letter-spacing:.5px}@keyframes zingBounce{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.8)}50%{transform:translate(-50%) translateY(-5px) scale(1.05)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes zingSpin{0%,to{transform:rotate(0)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}.talon-area:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:300px;border-radius:50%;background:#47556926;border:2px dashed rgba(148,163,184,.3);box-shadow:0 0 25px #64748b14,inset 0 0 30px #8b5cf60a;z-index:-1;pointer-events:none}.talon-area:before{animation:rotateCircle 60s linear infinite}.talon-initial{display:flex;gap:0;align-items:center;justify-content:center}.talon-initial .card{margin-left:-43px}.talon-initial .card:first-child{margin-left:0}.talon-stack{position:relative;min-width:120px;min-height:150px}.talon-stack .card-wrapper{position:absolute;top:50%;left:50%;transition:all .5s cubic-bezier(.34,1.56,.64,1)}.talon-stack .card-wrapper:nth-child(odd){transform:translate(-50%,-50%) translate(-3px,-5px) rotate(-2deg)}.talon-stack .card-wrapper:nth-child(2n){transform:translate(-50%,-50%) translate(3px,1px) rotate(2deg)}.talon-stack .card-wrapper:nth-child(1){z-index:1}.talon-stack .card-wrapper:nth-child(2){z-index:2}.talon-stack .card-wrapper:nth-child(3){z-index:3}.talon-stack .card-wrapper:nth-child(4){z-index:4}.talon-stack .card-wrapper:nth-child(5){z-index:5}.talon-stack .card-wrapper:nth-child(6){z-index:6}.talon-stack .card-wrapper:nth-child(7){z-index:7}.talon-stack .card-wrapper:nth-child(8){z-index:8}.talon-stack .card-wrapper:nth-child(n+9){z-index:9}@keyframes cardToTalon{0%{opacity:.8}to{opacity:1}}.talon-stack .card.played{animation:cardToTalon .5s ease-out}.deck-container{position:absolute;display:flex;flex-direction:column;align-items:center;z-index:50;transform-origin:center}.game-view.mode-1v1 .deck-container{top:50%;left:50%;transform:translate(calc(-50% - 300px),-50%)}.game-view.mode-2v2 .deck-container{bottom:150px;left:150px}.deck-last-card{height:100px;position:relative;z-index:1;display:flex;align-items:center}.deck-last-card>*+*{margin-left:-12px}.deck-pile{position:absolute;bottom:20px;z-index:2;display:flex;flex-direction:column}.deck-pile-card{width:72px;height:100px;border-radius:8px;border:2px solid rgba(255,255,255,.15);box-shadow:0 2px 8px #0000004d;display:flex;align-items:center;justify-content:center;transform:rotate(90deg);transform-origin:center;overflow:hidden}.deck-pile-card svg{width:100%;height:100%}.deck-pile-card:nth-child(1){margin-top:0;z-index:3}.deck-pile-card:nth-child(2){margin-top:-97px;z-index:2}.deck-pile-card:nth-child(3){margin-top:-97px;z-index:1}.player-area{position:absolute;display:flex;flex-direction:column;align-items:center;gap:16px}.player-area.position-bottom{bottom:50px;left:50%;transform:translate(-50%)}.player-area.position-top{top:75px;left:50%;transform:translate(-50%)}.player-area.position-left{left:32px;top:50%;transform:translateY(-50%);flex-direction:row;gap:44px}.player-area.position-right{right:32px;top:50%;transform:translateY(-50%);flex-direction:row-reverse;gap:44px}.player-area.position-top>div:not(.player-hand),.player-area.position-left>div:not(.player-hand),.player-area.position-right>div:not(.player-hand){display:flex;flex-direction:column;align-items:center;gap:16px}.player-avatar{width:64px;height:64px;border-radius:50%;background:#555;border:3px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;transition:all .3s ease;position:relative}.player-avatar svg{width:32px;height:32px;color:#fff}.player-avatar.active{border:4px solid #7661f3;box-shadow:0 0 25px #7661f399}.game-view .player-name{font-size:15px;font-weight:600;color:#ffffffe6!important;padding:6px 12px;background:#1e1b4bb3;border-radius:12px;border:1px solid rgba(139,92,246,.3);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.player-hand{display:flex;transition:all .3s ease}.player-area.position-top .player-hand{flex-direction:row;gap:0}.player-area.position-left .player-hand,.player-area.position-right .player-hand{flex-direction:column;gap:0}.player-area.position-top .player-hand .card{margin-left:-22px}.player-area.position-left .player-hand .card,.player-area.position-right .player-hand .card{margin-top:-50px;transform:rotate(90deg)}.player-area.position-top .player-hand .card:first-child{margin-left:0}.player-area.position-left .player-hand .card:first-child,.player-area.position-right .player-hand .card:first-child{margin-top:0}.player-area.position-bottom .player-hand{flex-direction:row;position:relative}.hand-wrapper{display:flex;flex-wrap:wrap}.player-area.position-bottom .player-hand .card{transition:all .3s cubic-bezier(.34,1.56,.64,1);cursor:pointer;position:relative;transform-origin:center}.player-area.position-bottom .player-hand .card:nth-child(1){transform:rotate(-8deg) scale(1.2)}.player-area.position-bottom .player-hand .card:nth-child(2){transform:rotate(-4deg) scale(1.2)}.player-area.position-bottom .player-hand .card:nth-child(3){transform:rotate(0) scale(1.2)}.player-area.position-bottom .player-hand .card:nth-child(4){transform:rotate(4deg) scale(1.2)}.player-area.position-bottom .player-hand .card:nth-child(5){transform:rotate(8deg) scale(1.2)}@media (hover: hover) and (pointer: fine){.player-area.position-bottom .player-hand .card:hover{transform:translateY(-20px) rotate(0) scale(1.26);z-index:100;filter:brightness(1.1)}}.player-area.position-bottom .player-hand .card:active:not(.disabled){transform:translateY(-15px) rotate(0) scale(1.224)}.player-area.position-bottom .player-hand .card.disabled{opacity:.6;cursor:not-allowed}.recap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059;z-index:9999}.recap-modal{--team0: #7c3aed;--team1: #0ea5e9;background:linear-gradient(180deg,#1d1436fa,#181030fa);color:#f8f7ff;border-radius:12px;width:760px;max-width:calc(100% - 40px);box-shadow:0 14px 40px #13072cb3;border:1px solid rgba(124,58,237,.18);padding:20px}@media (max-width: 1024px){.recap-modal{max-width:calc(100% - 40px);padding-left:20px;padding-right:20px;margin-left:20px;margin-right:20px}}@media (max-width: 480px){.recap-modal{max-width:calc(100% - 20px);padding-left:10px;padding-right:10px;margin-left:10px;margin-right:10px}}.recap-grid{display:flex;gap:20px;margin-top:14px;align-items:flex-start}.recap-grid-2v2{flex-direction:column}.recap-teams{flex:1;display:flex;gap:12px;flex-direction:column}.recap-team{padding:12px;border-radius:8px;background:#ffffff05}.recap-team-title{font-weight:800;margin-bottom:6px;color:#efe6ff}.recap-team-line{margin-top:6px}.recap-players{flex:2;display:grid;gap:12px}.recap-players-1v1{grid-template-columns:repeat(2,1fr)}.recap-players-2v2{grid-template-columns:repeat(4,1fr)}.recap-player{padding:14px;border-radius:10px;background:#ffffff08;border:2px solid rgba(255,255,255,.03);position:relative}.recap-player.team-0{border-color:#7c3aede6;box-shadow:0 6px 16px #7c3aed0f}.recap-player.team-1{border-color:#0ea5e9e6;box-shadow:0 6px 16px #0ea5e90f}.recap-player-name{font-weight:600;margin-bottom:8px;font-size:20px}.recap-player-points{font-size:16px}.recap-player-points.large-score{font-size:20px;font-weight:800;color:#fbbf24;margin:4px 0}.recap-player-zings{font-size:15px;color:#e6dfff}.recap-player-taken{font-size:15px;color:#dcd6ff}.recap-player-bonus{margin-top:6px;color:#ffd6e8;font-weight:700}.recap-crown{position:absolute;top:-27px;right:-21px;transform:rotate(30deg);width:40px;height:40px}.recap-player.winner-1v1{border:3px solid #fbbf24!important;background:#fbbf241a;box-shadow:0 0 20px #fbbf2440}.recap-grid.final-recap .recap-player:not(.winner-1v1){border-width:0;background:#ffffff0d}.recap-inner{max-width:680px;margin:0 auto;width:100%}.recap-team-row{display:flex;gap:16px;margin-bottom:25px;justify-content:center}.recap-players{justify-content:center}@media (max-width: 640px){.recap-players-2v2{grid-template-columns:repeat(2,1fr)}.recap-team-row{flex-direction:column}}.recap-team-row{display:flex;gap:16px;margin-bottom:25px}.recap-team{padding:14px;border-radius:10px;background:#ffffff05;flex:1}.recap-team.team-0{border-left:4px solid var(--team0)}.recap-team.team-1{border-left:4px solid var(--team1)}.recap-team-bonus{margin-top:8px;color:#ffd6e8;font-weight:700}.recap-team.winner-team{border:2px solid #fbbf24;border-left:4px solid #fbbf24;background:#fbbf2426;box-shadow:0 4px 20px #fbbf2440;transform:scale(1.02);transition:all .3s ease;position:relative;z-index:5}.recap-player.winner-card{border:2px solid #fbbf24!important;background:#fbbf241a;box-shadow:0 4px 15px #fbbf2433;z-index:10}.large-score{font-size:1.1em}.large-score strong{font-size:22px;color:#fbbf24}.recap-countdown{margin-top:18px;text-align:center}.recap-count{display:inline-block;background:linear-gradient(90deg,#7c3aed,#6366f1);padding:10px 18px;border-radius:999px;font-size:22px;font-weight:900;color:#fff;box-shadow:0 8px 24px #6366f12e;animation:pulse 1.2s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 8px 24px #6366f12e}50%{transform:scale(1.04);box-shadow:0 12px 36px #6366f142}to{transform:scale(1);box-shadow:0 8px 24px #6366f12e}}.recap-bonus{margin-top:8px;font-weight:700;color:#ffd6e8}.game-controls{position:absolute;bottom:32px;right:32px;z-index:100}.surrender-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:12px;padding:12px 24px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #ef444466;display:flex;align-items:center;gap:8px}.surrender-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444499}.surrender-btn:active{transform:translateY(0)}.surrender-btn svg{width:16px;height:16px}.surrender-notification{position:absolute;bottom:80px;right:0;padding:10px 16px;background:#fbbf24f2;color:#1e1b4b;border-radius:8px;font-size:12px;font-weight:600;box-shadow:0 4px 12px #0000004d;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.game-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.game-modal{background:linear-gradient(135deg,#1e1b4b,#312e81);border-radius:20px;padding:32px;max-width:650px;width:90%;box-shadow:0 20px 60px #0009;border:2px solid rgba(139,92,246,.3);animation:modalSlideUp .3s ease}@media (max-width: 767px){.game-modal{width:calc(100% - 20px);box-sizing:border-box}}@keyframes modalSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.game-modal h2,.game-modal h3{font-size:26px;font-weight:800;color:#fff;margin:0 0 16px;text-align:center}.game-modal p{font-size:15px;color:#fffc;margin:0 0 24px;text-align:center;line-height:1.5}.modal-buttons{display:flex;gap:12px}.modal-btn{flex:1;padding:14px;border-radius:12px;font-size:15px;font-weight:700;border:none;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}.modal-btn.primary{background:linear-gradient(135deg,#9333ea,#7e22ce);color:#fff;box-shadow:0 4px 15px #9333ea66}.modal-btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #9333ea99}.modal-btn.secondary{background:#ffffff1a;color:#fff;border:2px solid rgba(255,255,255,.2)}.modal-btn.secondary:hover{background:#ffffff26;border-color:#ffffff4d}.modal-btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 15px #ef444466}.modal-btn.danger:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444499}.game-over-scores{display:flex;gap:16px;justify-content:center;margin:20px 0}.game-over-score{padding:12px 20px;border-radius:12px;font-weight:700;min-width:120px;text-align:center}.game-over-score.winner{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1e1b4b;box-shadow:0 0 25px #fbbf2480}.game-over-score.loser{background:#ffffff1a;color:#ffffffb3}.game-over-score-label{font-size:15px;margin-bottom:4px}.game-over-score-value{font-size:24px;font-weight:800}.game-over-result{font-size:26px;font-weight:700;margin-bottom:16px;color:#fbbf24;text-align:center}@media (max-width: 767px){.game-over-result{margin-bottom:10px}}.surrender-modal-note{font-size:.85rem;color:#ffffffb3}.rematch-notification{margin-bottom:16px;padding:8px 12px;background:linear-gradient(135deg,#667eea14,#764ba214);border-radius:8px;border:2px solid #667eea}.rematch-notification-text{margin:0!important;font-size:13px;color:#ffffffe6}.game-timer.hidden{visibility:hidden}.spectator-bottom-name{margin-bottom:8px;text-align:center}.spectator-hand-container{display:flex;gap:30px;justify-content:center}@media (max-width: 1024px){.game-header{padding:16px 32px 0;height:60px}.scoreboard-value,.scoreboard-target-value{font-size:24px}.game-timer{width:48px;height:48px;font-size:16px}.game-view .player-name{font-size:13px;padding:4px 10px}.player-avatar{width:56px;height:56px}.player-avatar svg{width:28px;height:28px}.game-view.mode-2v2 .deck-container{bottom:150px;left:150px}.game-controls{bottom:24px;right:24px}.player-area.position-bottom{bottom:50px}.player-area.position-top{top:60px}.player-area.position-left{gap:22px;left:12px}.player-area.position-right{gap:22px;right:12px}.player-area.position-bottom .player-hand .card{margin-left:-10px}.player-area.position-bottom .player-hand .card:first-child{margin-left:0}.game-view .card{transform:scale(.9)}.deck-pile-card{transform:rotate(90deg) scale(.8625)}.player-area.position-bottom .player-hand .card:nth-child(1){transform:rotate(-8deg)}.player-area.position-bottom .player-hand .card:nth-child(2){transform:rotate(-4deg)}.player-area.position-bottom .player-hand .card:nth-child(3){transform:rotate(0)}.player-area.position-bottom .player-hand .card:nth-child(4){transform:rotate(4deg)}.player-area.position-bottom .player-hand .card:nth-child(5){transform:rotate(8deg)}@media (hover: hover) and (pointer: fine){.player-area.position-bottom .player-hand .card:hover{transform:translateY(-20px) rotate(0) scale(1.26)}}.player-area.position-bottom .player-hand .card:active:not(.disabled){transform:translateY(-15px) rotate(0) scale(1.224)}.talon-area:before{width:255px;height:255px}.player-area.position-left .player-hand .card,.player-area.position-right .player-hand .card{transform:rotate(90deg) scale(.875)}}@media (max-width: 767px){.game-header{padding:8px 12px;height:auto;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}.game-info{display:flex;gap:8px;justify-self:end;padding-right:15px}.game-info-text{font-size:10px;padding:4px 8px;background:#ffffff1a;border-radius:6px}.game-timer-container{gap:2px;justify-self:start;padding-left:15px}.game-timer-circle{width:36px;height:36px;border-width:2px}.game-timer-icon{width:18px;height:18px}.game-timer-text{font-size:12px}.scoreboard{width:auto;max-width:320px;padding:6px 8px;gap:2px;min-width:auto;border-radius:30px;justify-self:center}.scoreboard-team{padding:4px 8px;min-width:50px}.scoreboard-label{font-size:9px;margin-bottom:1px;overflow:hidden;text-overflow:ellipsis;max-width:100px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;max-height:calc(9px * 1.2 * 2);word-break:break-word}.scoreboard-value{font-size:15px}.scoreboard-target{padding:4px 6px;min-width:40px;margin:0 1px}.scoreboard-target-icon{font-size:14px;margin-bottom:1px}.scoreboard-target-value{font-size:16px}.game-table{top:60px}.player-area.position-top{top:35px;gap:8px}.player-area.position-bottom{bottom:8px}.player-area.position-left,.player-area.position-right{flex-direction:column!important;gap:8px;top:50%;transform:translateY(-50%)}.player-area.position-left{left:-5px}.player-area.position-right{right:-5px}.player-area.position-left>div:not(.player-hand),.player-area.position-right>div:not(.player-hand){flex-direction:column;gap:8px}.player-avatar{width:40px;height:40px}.player-avatar svg{width:20px;height:20px}.player-name{font-size:10px;padding:3px 8px}.talon-area{min-width:220px;min-height:140px}.talon-area:before{display:none}.talon-area:before{width:180px;height:180px}.game-view .card{transform:scale(.75)}.talon-initial .card{margin-left:-45px}.talon-initial .card:first-child{margin-left:0}.player-area.position-top .player-hand,.player-area.position-left .player-hand,.player-area.position-right .player-hand{flex-direction:row!important;gap:0}.player-area.position-top .player-hand .card,.player-area.position-left .player-hand .card,.player-area.position-right .player-hand .card{margin-left:-55px;margin-top:0;transform:rotate(0) scale(.7)}.player-area.position-top .player-hand .card:first-child,.player-area.position-left .player-hand .card:first-child,.player-area.position-right .player-hand .card:first-child{margin-left:0!important}.game-view.mode-1v1 .deck-container{position:absolute;top:50%;left:50%;bottom:auto;transform:translate(calc(-50% - 140px),-50%)}.game-view.mode-2v2 .deck-container{position:absolute;bottom:150px;left:0;transform:none}.deck-last-card{height:70px}.deck-pile{bottom:15px}.deck-pile-card{width:60px;height:84px;transform:rotate(90deg) scale(.77)}.hand-wrapper{margin-bottom:30px;flex-wrap:nowrap}.player-area.position-bottom .player-hand .card{margin-left:-23px}.player-area.position-bottom .player-hand .card:first-child{margin-left:0}.player-area.position-bottom .player-hand .card:nth-child(n){scale:.85}.game-controls{bottom:12px;right:12px}.surrender-btn{width:44px;height:44px;padding:0;border-radius:20%;display:flex;align-items:center;justify-content:center;font-size:0;background:linear-gradient(135deg,#ef4444,#dc2626);position:relative}.surrender-btn:before{content:"";position:absolute;width:20px;height:20px;background:url(/assets/leave-B0HarqEm.png) center/contain no-repeat;margin-left:3px;filter:brightness(0) invert(.9)}.surrender-btn svg{display:none}.surrender-btn span{display:none}.deck-last-card>*+*{margin-left:-30px}}.game-view.mode-1v1 .player-area.position-left,.game-view.mode-1v1 .player-area.position-right{display:none}@media (max-height: 880px){.game-view.mode-2v2 .deck-container{bottom:40px}}@media (min-width: 768px) and (max-width: 1024px) and (max-height: 925px){.player-area.position-top{flex-direction:row}.player-area.position-top>div:not(.player-hand){display:flex;flex-direction:column;align-items:center;gap:16px}.talon-area:before{width:275px;height:275px}}@media (min-width: 1025px) and (max-height: 1050px){.player-area.position-top{flex-direction:row}.player-area.position-top>div:not(.player-hand){display:flex;flex-direction:column;align-items:center;gap:16px}.talon-area:before{width:275px;height:275px}}.friends-page{max-width:900px;margin:0 auto;padding:2rem;min-height:100vh;animation:fadeIn .3s ease-out}.friends-header{margin-bottom:2rem}.friends-header h1{margin:0 0 1rem;font-size:32px;font-weight:800;color:#1e293b;letter-spacing:-.5px}.friends-back-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer;border-radius:12px;border:2px solid #e2e8f0;background:#fff;color:#64748b;transition:all .3s ease}.friends-back-btn:hover{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea40}.add-friend-section{background:#fff;padding:24px;border-radius:16px;margin-bottom:2rem;border:2px solid #e2e8f0;box-shadow:0 2px 8px #0000000a}.add-friend-section h2{margin:0 0 1rem;font-size:20px;font-weight:700;color:#1e293b}.add-friend-form{display:flex;gap:12px}.add-friend-input{flex:1;padding:12px 16px;font-size:16px;border-radius:12px;border:2px solid #e2e8f0;background:#f8f9fa;color:#1e293b;transition:all .3s ease;font-weight:500}.add-friend-input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 4px #667eea1a}.add-friend-submit{padding:12px 28px;font-size:16px;font-weight:700;cursor:pointer;border-radius:12px;border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transition:all .3s ease;box-shadow:0 4px 12px #667eea40}.add-friend-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea59}.add-friend-submit:disabled{background:#cbd5e1;cursor:not-allowed;box-shadow:none}.add-friend-error{color:#ef4444;margin-top:12px;font-size:14px;font-weight:600}.add-friend-success{color:#10b981;margin-top:12px;font-size:14px;font-weight:600}.friends-tabs{display:flex;gap:12px;margin-bottom:1.5rem;flex-wrap:wrap}.friends-tab{padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer;border-radius:12px;border:2px solid #e2e8f0;background:#fff;color:#64748b;transition:all .3s ease}.friends-tab:hover{border-color:#667eea;color:#667eea}.friends-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 4px 12px #667eea40}.friends-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#dc2626;padding:16px 20px;border-radius:12px;margin-bottom:1.5rem;font-weight:600;border:2px solid #fecaca}.friends-loading{text-align:center;color:#64748b;font-size:18px;padding:60px 20px;font-weight:600}.friends-content-section h2{margin:0 0 1.5rem;font-size:24px;font-weight:700;color:#1e293b}.friends-empty{color:#94a3b8;font-size:16px;text-align:center;padding:60px 20px;font-weight:500}.friends-list{display:flex;flex-direction:column;gap:12px}.friend-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:20px;display:flex;justify-content:space-between;align-items:center;transition:all .3s ease;box-shadow:0 2px 8px #0000000a}.friend-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea26;border-color:#667eea}.friend-card-info{display:flex;align-items:center;gap:16px;flex:1}.friend-online-indicator{width:12px;height:12px;border-radius:50%;background:#10b981;flex-shrink:0;box-shadow:0 0 0 3px #10b98133;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #10b98133}50%{box-shadow:0 0 0 6px #10b9811a}}.friend-details strong{font-size:18px;font-weight:700;color:#1e293b;display:block}.friend-details p{color:#64748b;font-size:14px;margin:6px 0 0;font-weight:500}.friend-remove-btn{padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;border-radius:10px;border:2px solid #ef4444;background:#fff;color:#ef4444;transition:all .3s ease}.friend-remove-btn:hover{background:#ef4444;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #ef444440}.friend-accept-btn{padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;border-radius:10px;border:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;transition:all .3s ease;box-shadow:0 4px 12px #10b98140}.friend-accept-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98159}.friend-reject-btn{padding:10px 20px;font-size:14px;font-weight:700;cursor:pointer;border-radius:10px;border:2px solid #ef4444;background:#fff;color:#ef4444;transition:all .3s ease}.friend-reject-btn:hover{background:#ef4444;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #ef444440}.request-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:20px;display:flex;justify-content:space-between;align-items:center;transition:all .3s ease;box-shadow:0 2px 8px #0000000a}.request-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea26;border-color:#667eea}.request-details strong{font-size:18px;font-weight:700;color:#1e293b;display:block}.request-details p{color:#64748b;font-size:14px;margin:6px 0 0;font-weight:500}.request-details p.pending{color:#94a3b8;font-style:italic;font-size:13px}.request-actions{display:flex;gap:12px}.sent-request-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;padding:20px;transition:all .3s ease;box-shadow:0 2px 8px #0000000a}.sent-request-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea26;border-color:#667eea}@media (max-width: 768px){.friends-page{padding:1rem}.friends-header h1{font-size:24px}.add-friend-form{flex-direction:column}.add-friend-submit{width:100%}.friends-tabs{gap:8px}.friends-tab{padding:10px 16px;font-size:14px}.friend-card,.request-card{flex-direction:column;align-items:flex-start;gap:16px}.request-actions{width:100%}.friend-accept-btn,.friend-reject-btn,.friend-remove-btn{flex:1}}.achievements-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.achievements-modal{background:#fff;border-radius:24px;max-width:900px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 25px 70px #0006;animation:slideUp .4s ease-out;display:flex;flex-direction:column}.achievements-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:32px 40px;display:flex;align-items:center;justify-content:space-between}.achievements-title-section{display:flex;align-items:center;gap:16px}.achievements-icon{font-size:48px;line-height:1}.achievements-title{font-size:36px;font-weight:800;color:#fff;margin:0;letter-spacing:-.5px}.achievements-close-btn{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:12px;color:#fff;font-size:28px;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-weight:300;line-height:1}.achievements-close-btn:hover{background:#ffffff4d;transform:scale(1.05)}.achievements-content{padding:32px 40px;overflow-y:auto;flex:1}.stats-summary{background:linear-gradient(135deg,#667eea14,#764ba214);border:2px solid rgba(102,126,234,.2);border-radius:16px;padding:24px 28px;margin-bottom:32px}.stats-summary-title{font-size:20px;font-weight:700;color:#1a202c;margin:0 0 20px;letter-spacing:-.3px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-item{display:flex;align-items:center;gap:8px;font-size:15px;color:#2d3748}.stat-label{font-weight:600;color:#718096}.stat-value{font-weight:800;color:#667eea;font-size:16px}.achievement-card{background:#fff;border:3px solid #e2e8f0;border-radius:16px;padding:24px 28px;margin-bottom:20px;transition:all .2s ease}.achievement-card:hover{border-color:#667eea;transform:translate(4px);box-shadow:0 4px 12px #667eea26}.achievement-card.completed{border-color:#48bb78;background:linear-gradient(135deg,#48bb780d,#38a1690d)}.achievement-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.achievement-title-group{flex:1}.achievement-category{font-size:22px;font-weight:800;color:#1a202c;margin:0 0 6px;letter-spacing:-.3px}.achievement-description{font-size:14px;color:#718096;margin:0;line-height:1.5}.achievement-stars{display:flex;gap:6px;align-items:center}.star{font-size:32px;transition:all .2s ease}.star.unlocked{color:#fbbf24;text-shadow:0 2px 8px rgba(251,191,36,.4)}.star.locked{color:#2d3748;opacity:.3;filter:grayscale(100%)}.achievement-progress-section{margin-top:16px}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.progress-text{font-size:14px;font-weight:600;color:#2d3748}.progress-fraction{font-weight:800;color:#667eea}.progress-status{font-size:13px;font-weight:700;padding:4px 12px;border-radius:8px;text-transform:uppercase;letter-spacing:.5px}.progress-status.in-progress{background:#667eea26;color:#667eea}.progress-status.completed{background:#48bb7826;color:#48bb78}.progress-bar-container{width:100%;height:12px;background:#e2e8f0;border-radius:8px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:8px;transition:width .4s ease;position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent)}.progress-bar-fill.completed{background:linear-gradient(90deg,#48bb78,#38a169)}.achievements-loading,.achievements-error,.achievements-empty{text-align:center;padding:60px 20px}.achievements-loading{color:#718096;font-size:18px;font-weight:600}.achievements-error{color:#e53e3e;font-size:16px;font-weight:600;background:#fff5f5;border:2px solid #fc8181;border-radius:12px;padding:20px}.achievements-empty{color:#a0aec0;font-size:16px}@media (max-width: 768px){.achievements-modal{max-height:90vh}.achievements-header{padding:24px}.achievements-title{font-size:28px}.achievements-icon{font-size:36px}.achievements-content{padding:24px}.stats-grid{grid-template-columns:1fr 1fr;gap:12px}.stat-item{font-size:14px}.achievement-card{padding:20px}.achievement-category{font-size:18px}.star{font-size:28px}}@media (max-width: 480px){.achievements-overlay{padding:20px 12px}.achievements-modal{border-radius:20px}.achievements-header{padding:20px}.achievements-title{font-size:24px}.achievements-close-btn{width:40px}.achievements-content{padding:16px}.stats-grid{grid-template-columns:1fr}.achievement-header{flex-direction:column;align-items:flex-start;gap:12px}.achievement-stars{gap:4px}.star{font-size:24px}}.leaderboard-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.leaderboard-modal{background:#fff;border-radius:24px;max-width:900px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 25px 70px #0006;animation:slideUp .4s ease-out;display:flex;flex-direction:column}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.leaderboard-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:32px 40px;display:flex;align-items:center;justify-content:space-between}.leaderboard-title-section{display:flex;align-items:center;gap:16px}.leaderboard-icon{font-size:48px;line-height:1}.leaderboard-title{font-size:36px;font-weight:800;color:#fff;margin:0;letter-spacing:-.5px}.leaderboard-close-btn{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:12px;color:#fff;font-size:28px;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-weight:300;line-height:1}.leaderboard-close-btn:hover{background:#ffffff4d;transform:scale(1.05)}.leaderboard-content{padding:32px 40px;overflow-y:auto;flex:1}.leaderboard-filters{display:flex;flex-direction:column;gap:24px;margin-bottom:32px}.filter-group{display:flex;flex-direction:column;gap:12px}.filter-label{font-size:14px;font-weight:700;color:#2d3748;letter-spacing:.5px;text-transform:uppercase}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:10px 20px;background:#f7fafc;border:3px solid transparent;border-radius:10px;color:#718096;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.filter-btn:hover{background:#edf2f7;color:#667eea}.filter-btn.active{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea;color:#667eea;box-shadow:0 2px 8px #667eea33}.previous-toggle{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#f7fafc;border-radius:12px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.previous-toggle:hover{background:#edf2f7}.previous-toggle input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.previous-toggle-label{font-size:15px;font-weight:600;color:#2d3748;cursor:pointer}.leaderboard-current{background:linear-gradient(135deg,#667eea,#764ba2);padding:20px 24px;border-radius:16px;margin-bottom:24px;text-align:center}.leaderboard-current-title{font-size:20px;font-weight:700;color:#fff;margin:0;text-shadow:0 2px 10px rgba(0,0,0,.15)}.leaderboard-loading,.leaderboard-error,.leaderboard-empty{text-align:center;padding:60px 20px}.leaderboard-loading{color:#718096;font-size:18px;font-weight:600}.leaderboard-error{color:#e53e3e;font-size:16px;font-weight:600;background:#fff5f5;border:2px solid #fc8181;border-radius:12px;padding:20px}.leaderboard-empty{color:#a0aec0;font-size:16px}.leaderboard-table{width:100%;border-collapse:separate;border-spacing:0 8px}.leaderboard-table thead tr{background:transparent}.leaderboard-table th{padding:12px 16px;text-align:left;font-size:13px;font-weight:700;color:#718096;letter-spacing:.5px;text-transform:uppercase;border-bottom:2px solid #e2e8f0}.leaderboard-table th:last-child{text-align:right}.leaderboard-table tbody tr{background:#fff;border:2px solid #f7fafc;border-radius:12px;transition:all .2s ease}.leaderboard-table tbody tr:hover{transform:translate(4px);border-color:#667eea;box-shadow:0 4px 12px #667eea26}.leaderboard-table tbody tr.top-3{background:linear-gradient(135deg,#ffd70014,#ffc10714);border-color:gold}.leaderboard-table tbody tr.current-user{background:linear-gradient(135deg,#667eea14,#764ba214);border-color:#667eea;box-shadow:0 2px 8px #667eea26}.leaderboard-table td{padding:16px 16px 16px 12px;font-size:16px;color:#1a202c;font-weight:600}.leaderboard-table td:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px;font-weight:700;font-size:18px;padding-left:16px}.leaderboard-table td:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px;text-align:right;font-weight:700;color:#667eea}.rank-medal{font-size:28px}.player-name{font-weight:800;color:#1a202c;font-size:16px}.player-you{color:#667eea;font-weight:800;margin-left:8px;font-size:14px}@media (max-width: 768px){.leaderboard-modal{width:95%;max-height:90vh}.leaderboard-header{padding:24px}.leaderboard-title{font-size:28px}.leaderboard-icon{font-size:36px}.leaderboard-content{padding:24px}.filter-buttons{gap:6px}.filter-btn{padding:8px 16px;font-size:14px}.leaderboard-table th,.leaderboard-table td{padding:12px;font-size:14px}.rank-medal{font-size:24px}}@media (max-width: 480px){.leaderboard-overlay{padding:20px 12px}.leaderboard-modal{border-radius:20px}.leaderboard-header{padding:20px}.leaderboard-title{font-size:24px}.leaderboard-close-btn{width:40px}.leaderboard-content{padding:20px}.filter-btn{flex:1;min-width:calc(50% - 4px);text-align:center}.leaderboard-table{font-size:13px}.leaderboard-table th,.leaderboard-table td{padding:10px 8px}.leaderboard-current-title{font-size:16px}}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;margin:0;padding:0}.lobby .board{background:#fff;padding:1rem;border-radius:8px}.players-list{list-style:none;padding:0}.players-list li{padding:6px 4px;border-radius:4px}.players-list li.current{background:#e6f7ff;font-weight:700}.card{display:inline-flex;width:72px;height:100px;border-radius:8px;border:1px solid #ddd;background:#fff;align-items:center;justify-content:center;position:relative}.card-back{background:linear-gradient(135deg,#333,#555);color:#fff}.card-front .rank{font-size:16px;font-weight:600;position:absolute}.card-front .top-left{position:absolute;left:6px;top:6px}.card-front .bottom-right{position:absolute;right:6px;bottom:6px;transform:rotate(180deg)}.card-front .suit{font-size:36px}.talon-row{display:flex;align-items:center;min-height:100px}.talon-row>div{transition:transform .12s ease}.move-log{max-height:240px;overflow:auto}.landing-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.landing-content{text-align:center;color:#fff}.landing-logo{max-width:250px;width:90%;height:auto;margin:0 auto;display:block;filter:drop-shadow(0 8px 24px rgba(0,0,0,.2))}.landing-title{font-size:5rem;font-weight:800;margin:0 0 .5rem;letter-spacing:-.02em}.landing-subtitle{font-size:1.25rem;margin:-30px 0 3rem;opacity:.95;font-weight:300}.landing-buttons{display:flex;flex-direction:column;gap:1rem;align-items:center}.landing-btn{padding:1rem 2.5rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;min-width:250px}.landing-btn-primary{background:#fff;color:#667eea}.landing-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000026}.landing-btn-secondary{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.4)}.landing-btn-secondary:hover{background:#ffffff4d;border-color:#fff9;transform:translateY(-2px)}.guest-name-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.guest-name-content{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 10px 40px #0003;text-align:center;min-width:350px;max-width:400px}.guest-name-content h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.guest-name-content p{margin:0 0 2rem;color:#666;font-size:1rem}.guest-name-content form{display:flex;flex-direction:column;gap:1rem}.guest-name-content input{padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s ease}.guest-name-content input:focus{outline:none;border-color:#667eea}.guest-name-error{color:#e53e3e;font-size:.875rem;margin:-.5rem 0 0}.guest-name-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease}.guest-name-btn:hover{transform:translateY(-2px)}.lobby{background:#f8f9fa;min-height:100vh;padding:2rem}.lobby h1{color:#333;margin:0 0 2rem}.player-info-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;gap:1rem}.player-info{margin:0}.btn-history{padding:.5rem 1rem;font-size:.9rem}.lobby-section{background:#fff;padding:2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.lobby-section h2{color:#333;margin:0 0 1.5rem;font-size:1.25rem}.visibility-toggle{display:flex;gap:2rem;margin:1.5rem 0}.visibility-toggle label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;color:#333}.visibility-toggle input[type=radio]{cursor:pointer;width:18px;height:18px}.join-by-code{display:flex;gap:.5rem;margin:1.5rem 0}.join-by-code input{flex:1;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit}.join-by-code input:focus{outline:none;border-color:#667eea}.credentials-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:500px;width:90%}.modal-content h2{margin:0 0 1rem;color:#333}.modal-content p{margin:0 0 1.5rem;color:#666}.credential-item{margin-bottom:1.5rem}.credential-item label{display:block;font-weight:600;color:#333;margin-bottom:.5rem}.credential-row{display:flex;gap:.5rem}.btn-copy{padding:.75rem 1rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .2s ease}.btn-copy:hover{background:#5568d3}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover{background:#e0e0e0}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.lobby ul{list-style:none;padding:0;margin:0}.lobby li{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f5f5f5;border-radius:6px;margin-bottom:.5rem;font-family:monospace}.error{color:#e53e3e;font-size:.875rem;margin:.5rem 0 0}.error-banner{background:#fed7d7;color:#c53030;padding:1rem;border-radius:6px;margin-bottom:1rem;border-left:4px solid #c53030}.matchmaking-section{background:linear-gradient(135deg,#667eea15,#764ba215);border:2px solid #667eea40}.mode-selector{display:flex;gap:2rem;margin:1.5rem 0;justify-content:center}.mode-selector label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:600;color:#333;padding:.75rem 1.5rem;background:#fff;border:2px solid #e0e0e0;border-radius:8px;transition:all .2s ease}.mode-selector label:hover{border-color:#667eea;background:#f8f9ff}.mode-selector input[type=radio]{cursor:pointer;width:20px;height:20px;accent-color:#667eea}.btn-find-game{font-size:1.125rem;padding:1rem 2rem;display:block;width:100%;max-width:300px;margin:0 auto}.searching-status{text-align:center;padding:2rem 1rem}.searching-text{font-size:1.25rem;font-weight:600;color:#667eea;margin:0 0 1rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.queue-position{font-size:1rem;color:#666;margin:0 0 2rem}.searching-status .btn-secondary{margin:0 auto;display:block}.player-info{color:#666;font-size:1rem;margin:-1rem 0 2rem}@media (max-width: 768px){.guest-name-content{min-width:unset;max-width:unset;width:calc(100% - 2rem);margin:0 1rem}}
