:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:none}#root{width:100%;height:100%;overflow:hidden}textarea,*{resize:none!important}@container root (min-width: 1px){.auth-container{display:flex;justify-content:center;align-items:center;min-height:100cqh;background:transparent;padding:4cqw}.auth-card{background:#fffffff2;-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);padding:6.4cqw;border-radius:2.4cqw;box-shadow:0 1.6cqw 6.4cqw #0003;width:100%;max-width:80cqw;border:.2cqw solid rgba(255,255,255,.3)}.auth-card h1{text-align:center;color:#333;margin-bottom:1.6cqw;font-size:6.4cqw}.auth-card h2{text-align:center;color:#666;margin-bottom:6.4cqw;font-size:4.2cqw;font-weight:400}.form-group{margin-bottom:3.2cqw;position:relative}.form-group input{width:100%;padding:2.4cqw;border:.2cqw solid #ddd;border-radius:1.2cqw;font-size:4.5cqw;transition:border-color .3s;background-color:#fff;color:#333;ime-mode:disabled;-webkit-ime-mode:disabled;-moz-ime-mode:disabled;-ms-ime-mode:disabled}.form-group input::-webkit-calendar-picker-indicator{display:none!important}.form-group input[list]::-webkit-list-button{display:none!important}.form-group input::-webkit-datalist-option{background-color:#fff;color:#333}.form-group input:focus{outline:none;border-color:#667eea}button[type=submit]{width:100%;padding:2.4cqw;background:#60a5fae6;color:#fff;border:none;border-radius:1.2cqw;font-size:4.5cqw;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 .4cqw .8cqw #0000001a;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.2)}button[type=submit]:hover:not(:disabled){background:#60a5fa;box-shadow:0 .6cqw 1.2cqw #00000026;transform:translateY(-.2cqw)}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#e53e3e;text-align:center;margin-bottom:3.2cqw;font-size:3.8cqw}.switch-mode{text-align:center;margin-top:4.8cqw;color:#666;font-size:3.5cqw}.switch-mode button{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline;font-size:3.5cqw}.switch-mode button:hover{text-decoration:underline;color:#60a5facc}.recovery-links{text-align:center;margin:2cqw 0;font-size:2.8cqw}.link-button{background:none;border:none;color:#007bff;cursor:pointer;padding:0;font-size:3.5cqw;text-decoration:underline}.link-button:hover{color:#0056b3}.success-message{color:#28a745;text-align:center;margin:2cqw 0;padding:2cqw;background-color:#d4edda;border:.2cqw solid #c3e6cb;border-radius:.8cqw}.auth-separator{margin:4cqw 0;text-align:center;position:relative}.auth-separator:before{content:"";position:absolute;top:50%;left:0;right:0;height:.2cqw;background:#ddd}.auth-separator span{background:#fffffff2;padding:0 3cqw;color:#999;font-size:3.5cqw;position:relative;font-weight:500}.guest-login-section{margin-bottom:3cqw}.login-section{margin-top:3cqw}.guest-login-section h2,.login-section h2{text-align:center;color:#666;margin-bottom:4cqw;font-size:4.2cqw;font-weight:400}}@container root (min-width: 1px){.password-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .2s ease-out}.password-dialog{background:#fff;border-radius:2.4cqw;width:95cqw;max-width:90cqw;display:flex;flex-direction:column;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out}.password-header{display:flex;justify-content:space-between;align-items:center;padding:3.2cqw 4cqw;border-bottom:.2cqw solid #e0e0e0}.password-header h2{margin:0;font-size:4.5cqw;color:#2c3e50}.password-close{background:none;border:none;font-size:6cqw;color:#95a5a6;cursor:pointer;padding:0;width:7.5cqw;height:7.5cqw;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.password-close:hover{background:#f0f0f0;color:#2c3e50}.password-content{padding:3cqw}.password-error{background:#fee;color:#c00;padding:2cqw;border-radius:1.2cqw;margin-bottom:4cqw;font-size:3.5cqw}.password-success{background:#efe;color:#060;padding:2cqw;border-radius:1.2cqw;margin-bottom:4cqw;font-size:3.5cqw}.password-field{margin-bottom:3.2cqw}.password-field label{display:block;margin-bottom:1.2cqw;font-size:3.5cqw;color:#555;font-weight:500}.password-field input[type=password]{width:100%;padding:2cqw 2.4cqw;border:.2cqw solid #ddd;border-radius:1.2cqw;font-size:3.5cqw;transition:border-color .2s}.password-field input[type=password]:focus{outline:none;border-color:#4ecdc4;box-shadow:0 0 0 .6cqw #4ecdc41a}.password-footer{padding:3.2cqw 4cqw;border-top:.2cqw solid #e0e0e0;display:flex;justify-content:flex-end;gap:2cqw}.password-btn-primary,.password-btn-secondary{padding:2cqw 4cqw;border-radius:1.2cqw;border:none;font-size:3.5cqw;font-weight:500;cursor:pointer;transition:all .2s}.password-btn-primary{background:linear-gradient(135deg,#4ecdc4,#44a3aa);color:#fff}.password-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#44a3aa,#3a8991);transform:translateY(-.2cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc44d}.password-btn-primary:disabled{opacity:.5;cursor:not-allowed}.password-btn-secondary{background:#ecf0f1;color:#2c3e50}.password-btn-secondary:hover{background:#d5dbdd}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(4cqw);opacity:0}to{transform:translateY(0);opacity:1}}}@container root (min-width: 1px){.rules-overlay{position:fixed;height:100cqh;width:100cqw;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.rules-dialog{background:#fff;border-radius:2.4cqw;width:95%;max-width:160cqw;height:106cqw;display:flex;flex-direction:column;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out}.rules-header{display:flex;justify-content:space-between;align-items:center;padding:3.2cqw 4cqw;border-bottom:.2cqw solid #e0e0e0;flex-shrink:0}.rules-header h2{margin:0;font-size:5cqw;color:#2c3e50;font-weight:600}.rules-close{background:none;border:none;font-size:6cqw;color:#95a5a6;cursor:pointer;padding:0;width:7.5cqw;height:7.5cqw;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.rules-close:hover{background:#f0f0f0;color:#2c3e50}.rules-tabs{display:flex;gap:1cqw;padding:0 2cqw;background:#f8f9fa;border-bottom:.4cqw solid #e0e0e0;overflow-x:auto;flex-shrink:0}.rules-tab{padding:2cqw 2.2cqw;background:transparent;border:none;border-bottom:.6cqw solid transparent;color:#6c757d;font-size:3.5cqw;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.rules-tab:hover{color:#495057;background:#00000008}.rules-tab.active{color:#4ecdc4;border-bottom-color:#4ecdc4;background:#fff}.rules-content{flex:1;overflow-y:auto;padding:3cqw;min-height:0}.rules-section{animation:fadeIn .3s ease-out}.rules-section h3{margin:0 0 2.4cqw;font-size:3.5cqw;color:#2c3e50;font-weight:600;padding-bottom:1.6cqw;border-bottom:.4cqw solid #4ecdc4}.rules-section h3:not(:first-child){margin-top:4.8cqw}.rules-section p{margin:2.4cqw 0;line-height:1.6;color:#495057;font-size:3cqw}.rules-section ul,.rules-section ol{margin:2.4cqw 0;padding-left:4.8cqw;color:#495057;line-height:1.8;font-size:3cqw}.rules-section li{margin:1.6cqw 0}.rules-section strong{color:#2c3e50;font-weight:600}.score-table{width:100%;border-collapse:collapse;margin:3.2cqw 0;font-size:3cqw}.score-table th,.score-table td{padding:1.2cqw;text-align:center;border:.2cqw solid #dee2e6}.score-table th{background:#f8f9fa;color:#495057;font-weight:600}.score-table td{color:#495057}.score-table tbody tr:hover{background:#f8f9fa}.rules-pagination{display:flex;justify-content:space-between;align-items:center;padding:2.4cqw 3cqw;border-top:.2cqw solid #e0e0e0;background:#f8f9fa;flex-shrink:0}.rules-page-btn{padding:1.2cqw 2.4cqw;background:#4ecdc4;color:#fff;border:none;border-radius:1.2cqw;font-size:3.25cqw;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:1.2cqw}.rules-page-btn:hover:not(:disabled){background:#45b7b0;transform:translateY(-.2cqw);box-shadow:0 .4cqw .8cqw #0000001a}.rules-page-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.rules-page-info{font-size:3.25cqw;color:#6c757d;font-weight:500}}@container root (min-width: 1px){.settings-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-dialog{background:#fff;border-radius:2.4cqw;width:98cqw;max-width:90cqw;max-height:85cqh;display:flex;flex-direction:column;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out;position:relative}@keyframes slideUp{0%{transform:translateY(4cqw);opacity:0}to{transform:translateY(0);opacity:1}}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:2.4cqw 4cqw;border-bottom:.2cqw solid #e0e0e0;flex-shrink:0}.settings-header h2{margin:0;font-size:4.5cqw;color:#2c3e50}.settings-close{background:none;border:none;font-size:6cqw;color:#95a5a6;cursor:pointer;padding:0;width:7.5cqw;height:7.5cqw;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.settings-close:hover{background:#f0f0f0;color:#2c3e50}.settings-content{padding:3cqw;flex:1;overflow-y:auto;min-height:0}.settings-error{background:#fee;color:#c00;padding:2cqw;border-radius:1.2cqw;margin-bottom:4cqw;font-size:3.5cqw}.settings-success{background:#efe;color:#060;padding:2cqw;border-radius:1.2cqw;margin-bottom:4cqw;font-size:3.5cqw}.settings-section{margin-bottom:4cqw;padding-bottom:3cqw;border-bottom:.2cqw solid #f0f0f0}.settings-section:last-child{border-bottom:none;margin-bottom:0}.settings-section h3{margin:0 0 2.4cqw;font-size:3.75cqw;color:#34495e;font-weight:600}.settings-field{margin-bottom:2.4cqw}.settings-field label{display:block;margin-bottom:1cqw;font-size:3.5cqw;color:#555;font-weight:500}.settings-field input[type=text],.settings-field input[type=password]{width:100%;padding:1.6cqw 2cqw;border:.2cqw solid #ddd;border-radius:1.2cqw;font-size:3.5cqw;transition:border-color .2s}.settings-field input[type=text]:focus,.settings-field input[type=password]:focus{outline:none;border-color:#4ecdc4;box-shadow:0 0 0 .6cqw #4ecdc41a}.settings-input-group{display:flex;gap:2cqw}.settings-input-group input{flex:1}.settings-checkbox{display:flex;align-items:center;cursor:pointer;font-size:3.5cqw;color:#333}.settings-checkbox input[type=checkbox]{margin-right:2cqw;width:4.5cqw;height:4.5cqw;cursor:pointer}.settings-checkbox span{font-weight:500}.settings-radio-group{display:flex;gap:3cqw;margin-top:2cqw}.settings-radio{display:flex;align-items:center;cursor:pointer;font-size:3.5cqw;color:#333}.settings-radio input[type=radio]{margin-right:1.5cqw;width:4cqw;height:4cqw;cursor:pointer}.settings-radio span{font-weight:500}.settings-hint{margin-top:1.6cqw;font-size:3.25cqw;color:#7f8c8d;line-height:1.4}.settings-info{flex:1;padding:1.6cqw 2.4cqw;background:#f8f9fa;border-radius:1.2cqw;font-size:3.5cqw;color:#495057;font-weight:500}.settings-row{display:flex;align-items:center;gap:1cqw;margin-bottom:2.4cqw}.settings-row:last-child{margin-bottom:0}.settings-row>label{width:15cqw;font-size:3.5cqw;color:#555;font-weight:500;flex-shrink:0}.settings-row>input[type=text]{flex:1;padding:1.6cqw 2.4cqw;border:.2cqw solid #ddd;border-radius:1.2cqw;font-size:3.5cqw;transition:border-color .2s;min-width:0}.settings-row>input[type=text]:focus{outline:none;border-color:#4ecdc4;box-shadow:0 0 0 .6cqw #4ecdc41a}.settings-score{width:10cqw}.settings-btn-compact{padding:1.6cqw 2.4cqw;border-radius:1.2cqw;border:none;font-size:3.25cqw;font-weight:500;cursor:pointer;transition:all .2s;background:linear-gradient(135deg,#4ecdc4,#44a3aa);color:#fff;white-space:nowrap;flex-shrink:0}.settings-btn-compact:hover:not(:disabled){background:linear-gradient(135deg,#44a3aa,#3a8991);transform:translateY(-.2cqw);box-shadow:0 .6cqw 1.6cqw #4ecdc440}.settings-btn-compact:disabled{opacity:.5;cursor:not-allowed}.settings-btn-compact .settings-btn-change-password{width:25cqw}.settings-btn-compact .settings-btn-delete-account{width:15cqw}.settings-btn-danger{background:linear-gradient(135deg,#ff6b6b,#ff5252);margin-left:1cqw}.settings-btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#ff5252,#ff3838);box-shadow:0 .6cqw 1.6cqw #ff6b6b40}.settings-btn-primary,.settings-btn-secondary{padding:2cqw 4cqw;border-radius:1.2cqw;border:none;font-size:3.5cqw;font-weight:500;cursor:pointer;transition:all .2s}.settings-btn-primary{background:linear-gradient(135deg,#4ecdc4,#44a3aa);color:#fff}.settings-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#44a3aa,#3a8991);transform:translateY(-.2cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc44d}.settings-btn-primary:disabled{opacity:.5;cursor:not-allowed}.settings-btn-secondary{background:#ecf0f1;color:#2c3e50}.settings-btn-secondary:hover{background:#d5dbdd}.settings-footer{padding:3.2cqw 4cqw;border-top:.2cqw solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.settings-footer-buttons{display:flex;gap:2cqw;align-items:center}.confirm-dialog-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.confirm-dialog{background:#2c3e50;border-radius:2cqw;padding:4cqw;max-width:80cqw;width:70cqw;box-shadow:0 .5cqw 2.5cqw #00000080;animation:slideUp .3s ease-out}.confirm-dialog h3{color:#fff;margin:0 0 3cqw;font-size:4.5cqw;text-align:center}.confirm-dialog p{color:#ffffffe6;margin:0 0 4cqw;font-size:3.5cqw;text-align:center;line-height:1.5}.confirm-dialog-buttons{display:flex;flex-direction:column;gap:2cqw}.confirm-btn-primary{padding:2.5cqw 4cqw;background:linear-gradient(135deg,#4ecdc4,#44a3bb);color:#fff;border:none;border-radius:1.5cqw;font-size:3.5cqw;font-weight:600;cursor:pointer;transition:all .2s}.confirm-btn-primary:hover{transform:translateY(-.3cqw);box-shadow:0 .8cqw 2cqw #4ecdc44d}.confirm-btn-secondary{padding:2.5cqw 4cqw;background:#ffffff1a;color:#fff;border:.3cqw solid rgba(255,255,255,.3);border-radius:1.5cqw;font-size:3.5cqw;font-weight:600;cursor:pointer;transition:all .2s}.confirm-btn-secondary:hover{background:#fff3;border-color:#ffffff80}.confirm-btn-cancel{padding:2.5cqw 4cqw;background:transparent;color:#ffffffb3;border:none;border-radius:1.5cqw;font-size:3.5cqw;cursor:pointer;transition:all .2s}.confirm-btn-cancel:hover{color:#fff;background:#ffffff1a}}.delete-account-dialog .warning-text{color:#ff6b6b;font-weight:600;margin-bottom:2cqw}.delete-account-form{margin:3cqw 0}.delete-account-form label{display:block;margin-bottom:1.5cqw;font-size:3.5cqw;color:#555;font-weight:500}.delete-account-form input[type=password]{width:100%;padding:2cqw;border:.2cqw solid #ddd;border-radius:1.2cqw;font-size:3.5cqw}.delete-account-form input[type=password]:focus{outline:none;border-color:#ff6b6b;box-shadow:0 0 0 .6cqw #ff6b6b1a}.confirm-btn-danger{padding:2cqw 4cqw;border-radius:1.2cqw;border:none;font-size:3.5cqw;font-weight:500;cursor:pointer;transition:all .2s;background:linear-gradient(135deg,#ff6b6b,#ff5252);color:#fff}.confirm-btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#ff5252,#ff3838);transform:translateY(-.2cqw);box-shadow:0 .6cqw 1.6cqw #ff6b6b40}.confirm-btn-danger:disabled{opacity:.5;cursor:not-allowed}@container root (min-width: 1px){.competitive-settings{margin-top:1cqw;background:#f9fafbf2;border-radius:2cqw;border:1px solid rgba(229,231,235,.8)}.competitive-settings h3{margin:2cqw 0 2cqw 3cqw;font-size:4cqw;color:#374151}.setting-info{display:flex;align-items:center;gap:2cqw;padding:2cqw 3cqw;background:#3b82f61a;border-radius:1.5cqw;font-size:3.2cqw;color:#1e40af}.info-icon{font-size:4cqw}.setting-item{padding:2cqw;background:#fff;border-radius:1.5cqw;border:1px solid rgba(229,231,235,.5)}.setting-item label{display:flex;align-items:center;gap:2cqw;font-size:3.5cqw;color:#374151;cursor:pointer}.setting-item input[type=checkbox]{width:4cqw;height:4cqw;cursor:pointer}.setting-item input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.setting-control{display:flex;align-items:center;margin-top:2cqw;padding:2cqw 2cqw 2cqw 6cqw;position:relative}.read-only-value{display:flex;align-items:center;width:100%}.value-display{padding:1cqw 3cqw;background:#e5e7eb;color:#374151;border-radius:1cqw;font-size:3.5cqw;font-weight:600}}@container root (min-width: 1px){.create-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.create-dialog{background:#fff;border-radius:2.4cqw;width:98cqw;max-height:85cqh;display:flex;flex-direction:column;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out;position:relative;padding:4cqw;align-items:center;justify-content:center}.create-dialog h2{margin:0 0 4cqw;color:#1f2937;font-size:5cqw;text-align:center}.create-dialog form{display:flex;flex-direction:column;gap:2cqw;width:100%}.create-dialog input[type=text]{padding:3cqw;border:1px solid #d1d5db;border-radius:2cqw;font-size:3.5cqw;transition:border-color .2s}.create-dialog input[type=text]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.mode-selection{display:flex;flex-direction:column;gap:2cqw}.mode-selection label{font-size:3.8cqw;font-weight:600;color:#374151}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:3cqw}.mode-btn{display:flex;flex-direction:column;align-items:center;gap:1.5cqw;padding:3cqw;border:2px solid #e5e7eb;border-radius:2cqw;background:#fff;cursor:pointer;transition:all .2s}.mode-btn:hover{border-color:#9ca3af;background:#f9fafb}.mode-btn.active{border-color:#3b82f6;background:#3b82f60d}.mode-icon{font-size:8cqw}.mode-name{font-size:3.5cqw;font-weight:600;color:#1f2937}.mode-desc{font-size:2.8cqw;color:#6b7280;text-align:center}.competitive-settings{margin-top:1cqw;background:#f9fafbf2;border-radius:2cqw;border:1px solid rgba(229,231,235,.8)}.competitive-settings h3{margin:2cqw 0 2cqw 3cqw;font-size:4cqw;color:#374151}.setting-info{display:flex;align-items:center;gap:2cqw;padding:2cqw 3cqw;background:#3b82f61a;border-radius:1.5cqw;font-size:3.2cqw;color:#1e40af}.info-icon{font-size:4cqw}.setting-item{padding:2cqw;background:#fff;border-radius:1.5cqw;border:1px solid rgba(229,231,235,.5)}.setting-item label{display:flex;align-items:center;gap:2cqw;font-size:3.5cqw;color:#374151;cursor:pointer}.setting-item input[type=checkbox]{width:4cqw;height:4cqw;cursor:pointer}.setting-control{display:flex;align-items:center;margin-top:2cqw;padding:2cqw 2cqw 2cqw 6cqw;position:relative}.mobile-slider-container{display:flex;align-items:center;flex:1}.mobile-slider-track{position:relative;height:2cqw;width:100%;border-radius:1cqw;background:#e5e7eb;touch-action:none;--webkit-user-select: none;-webkit-user-select:none;user-select:none;cursor:pointer;padding:2cqw 0;margin:-2cqw 0}.mobile-slider-fill{position:absolute;top:50%;transform:translateY(-50%);left:0;height:2cqw;border-radius:1cqw;background:#3b82f6;pointer-events:none}.mobile-slider-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:6cqw;height:6cqw;border-radius:50%;background:#3b82f6;box-shadow:0 .5cqw 2cqw #3b82f64d;border:2px solid white;pointer-events:none;touch-action:none}.mobile-slider-value{min-width:14cqw;padding:1cqw 2cqw;background:#3b82f6;color:#fff;border-radius:1cqw;font-size:3.2cqw;font-weight:600;text-align:center;margin-left:3cqw}.create-room-dialog-buttons{display:flex;gap:3cqw;justify-content:center;margin-top:4cqw}.create-room-dialog-buttons button{padding:2.5cqw 6cqw;border:none;border-radius:2cqw;font-size:3.5cqw;font-weight:600;cursor:pointer;transition:all .2s;width:50%}.create-room-dialog-buttons button[type=submit]{background:#3b82f6;color:#fff}.create-room-dialog-buttons button[type=submit]:hover:not(:disabled){background:#2563eb}.create-room-dialog-buttons button[type=submit]:disabled{background:#9ca3af;cursor:not-allowed}.create-room-dialog-buttons button[type=button]{background:#e5e7eb;color:#374151}.create-room-dialog-buttons button[type=button]:hover{background:#d1d5db}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}}.admin-dashboard{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.admin-header{background:#fff;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}.admin-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.admin-header h1{margin:0;color:#333}.logout-button{background:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;font-weight:700;transition:background .3s}.logout-button:hover{background:#c82333}.admin-tabs{display:flex;gap:10px}.admin-tabs button{padding:10px 20px;border:none;background:#f0f0f0;border-radius:5px;cursor:pointer;transition:all .3s}.admin-tabs button:hover{background:#e0e0e0}.admin-tabs button.active{background:#667eea;color:#fff}.dashboard-content,.users-content,.rooms-content,.monitoring-content{background:#fff;border-radius:10px;padding:20px;box-shadow:0 4px 6px #0000001a;overflow-x:auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:10px;text-align:center}.stat-card h3{margin:0 0 10px;font-size:14px;opacity:.9}.stat-value{font-size:32px;font-weight:700;margin:0}.recent-logins{margin-bottom:30px}.recent-logins h3{margin-bottom:15px;color:#333}.admin-dashboard table{width:100%;border-collapse:collapse}.admin-dashboard table th,.admin-dashboard table td{padding:12px;text-align:left;border-bottom:1px solid #e0e0e0}.admin-dashboard table th{background:#f5f5f5;font-weight:700;color:#666}.admin-dashboard table tr:hover{background:#f9f9f9}.admin-actions{display:flex;gap:10px;justify-content:flex-end}.danger-button{background:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;transition:background .3s}.danger-button:hover{background:#c82333}.loading{text-align:center;padding:40px;color:#fff;font-size:18px}.error-message{background:#f8d7da;color:#721c24;padding:12px;border-radius:5px;margin-bottom:20px;border:1px solid #f5c6cb}.error-container{background:#fff;padding:40px;border-radius:10px;text-align:center;max-width:500px;margin:100px auto;box-shadow:0 4px 6px #0000001a}.error-container h2{color:#dc3545;margin-bottom:10px}.error-container p{color:#666}select{padding:5px 10px;border:1px solid #ddd;border-radius:3px;background:#fff;cursor:pointer}select:hover{border-color:#667eea}@media (max-width: 768px){.admin-dashboard{padding:10px}.stats-grid{grid-template-columns:1fr}.admin-dashboard table{font-size:12px}.admin-dashboard table th,.admin-dashboard table td{padding:8px}.admin-tabs{flex-direction:column}.admin-tabs button{width:100%}.admin-header-top{flex-direction:column;align-items:stretch;gap:10px}.logout-button{width:100%}}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.metric-card{background:#f9f9f9;padding:20px;border-radius:10px;border:2px solid #e0e0e0;transition:all .3s}.metric-card.alert{border-color:#dc3545;background:#fff5f5}.metric-card h3{margin:0 0 10px;color:#666;font-size:14px}.metric-value{font-size:28px;font-weight:700;color:#333;margin:10px 0}.metric-detail{font-size:12px;color:#999;margin:5px 0}.metric-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-top:10px}.metric-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s}.metric-card.alert .metric-fill{background:linear-gradient(90deg,#dc3545,#c82333)}.threshold-settings{background:#f9f9f9;padding:20px;border-radius:10px;margin-top:20px}.threshold-settings h3{margin:0 0 20px;color:#333}.settings-form{display:flex;flex-direction:column;gap:15px}.setting-row{display:flex;align-items:center;gap:15px}.setting-row label{min-width:150px;color:#666}.setting-row input[type=number],.setting-row input[type=email]{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:5px;font-size:14px}.setting-row input[type=checkbox]{margin-right:8px}.save-button{background:#28a745;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;font-weight:700;transition:background .3s;align-self:flex-start}.save-button:hover{background:#218838}@container root (min-width: 1px){.room-list-wrapper{height:100cqh;width:100cqw;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.room-list-container{position:relative;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;overflow:hidden;width:100cqw;height:100cqh}.header-panel{position:relative;top:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);display:flex;justify-content:center;align-items:center;z-index:100;width:100%;height:12cqw;margin:0;border-bottom:.4cqw solid rgba(255,255,255,.15);box-shadow:0 .4cqw 1.6cqw #0006;flex-shrink:0}.header-panel .go-out-button{position:absolute;left:2cqw;background:transparent;border:none;color:#fff;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;padding-top:1cqw}.header-panel .go-out-button .logout-icon{aspect-ratio:1;width:8cqw;height:auto;filter:brightness(0) invert(1)}.header-panel .go-out-button:hover{transform:scale(1.05)}.header-panel .go-out-button:active{transform:scale(.95);background:transparent}.header-title{font-size:6cqw;color:#fff;font-weight:700;text-align:center;width:100%;text-shadow:.6cqw .6cqw 1cqw rgba(0,0,0,.2);letter-spacing:.2cqw}.header-panel .settings-button{position:absolute;right:2cqw;padding:.8cqw 2cqw;background:transparent;border:none;color:#fff;font-size:7cqw;font-weight:700;cursor:pointer;transition:all .2s}.header-panel .settings-button:hover{transform:scale(1.05)}.header-panel .settings-button:active{transform:scale(.95);background:transparent}.player-panel{position:relative;width:100%;display:flex;justify-content:space-between;align-items:center;gap:2cqw;padding:3cqw 3cqw 1cqw}.player-panel .user-info{display:flex;align-items:center;background:#ffffff26;border-radius:1.5cqw;padding:.8cqw;border:.3cqw solid rgba(255,255,255,.3);width:65cqw;height:100%;justify-content:center;gap:2cqw}.player-panel .user-score{color:gold;font-weight:700;font-size:3.5cqw}.player-panel .user-nickname{color:#fff;font-weight:500;font-size:4.5cqw;text-shadow:.3cqw .3cqw .6cqw rgba(0,0,0,.3);padding:.8cqw 2.6cqw;margin:0}.player-panel .create-btn{padding:2cqw 4cqw;background:#48bb78e6;color:#fff;border:.3cqw solid rgba(255,255,255,.3);border-radius:3cqw;font-size:4.5cqw;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 .6cqw 2cqw #00000026;text-shadow:.3cqw .3cqw .6cqw rgba(0,0,0,.2);width:26cqw;height:100%}.player-panel .create-btn:hover{background:#48bb78;transform:translateY(-.4cqw);box-shadow:0 .8cqw 2.4cqw #0003}.player-panel .admin-btn{padding:2cqw;background:linear-gradient(135deg,#ff9a00,#ff5e00);color:#fff;border:.3cqw solid rgba(255,255,255,.3);border-radius:3cqw;font-size:4.5cqw;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 .6cqw 2cqw #00000026;text-shadow:.3cqw .3cqw .6cqw rgba(0,0,0,.2);width:10cqw;height:100%;margin-left:2cqw}.player-panel .admin-btn:hover{background:linear-gradient(135deg,#fa0,#ff6e00);transform:translateY(-.4cqw);box-shadow:0 .8cqw 2.4cqw #0003}.rules-btn{width:8cqw;height:8cqw;padding:.5cqw 0 0;background:#ffc107e6;color:#fff;border:.6cqw solid rgba(255,255,255,.3);border-radius:50%;font-size:6.4cqw;cursor:pointer;transition:all .3s;box-shadow:0 .6cqw 2cqw #00000026;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rules-btn:hover{background:#ffc107;transform:scale(1.1);box-shadow:0 .8cqw 2.4cqw #0003}.room-list-content{flex:1;overflow-y:auto;padding:2cqw;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;position:relative;z-index:1;justify-items:center}.create-room-section{background:#fffffff2;-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);padding:3.2cqw;border-radius:2.4cqw;box-shadow:0 .4cqw 1.6cqw #00000026;margin-bottom:6.4cqw;border:.2cqw solid rgba(255,255,255,.3)}.create-room-section form{display:flex;gap:3.2cqw;flex-wrap:wrap;flex-direction:column}.create-room-section input{flex:1;min-width:40cqw;padding:2.4cqw;border:.2cqw solid #ddd;border-radius:1.2cqw;font-size:3.2cqw;width:100%}.create-room-section button{padding:2.4cqw 4.8cqw;background:#667eea;color:#fff;border:none;border-radius:1.2cqw;font-size:3.2cqw;font-weight:700;cursor:pointer;transition:background .3s}.create-room-section button:hover:not(:disabled){background:#5a67d8}.create-room-section button:disabled{opacity:.6;cursor:not-allowed}.rooms-table{width:100%;background:#fffffff2;-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);border-radius:2cqw;overflow:hidden;box-shadow:0 .6cqw 2cqw #00000026;border-collapse:separate;border-spacing:0;border:.3cqw solid rgba(255,255,255,.3)}.rooms-table thead{background:#f7fafce6}.rooms-table th{padding:2.4cqw;text-align:center;font-weight:600;color:#4a5568;border-bottom:.6cqw solid #e2e8f0;font-size:3.6cqw}.rooms-table tbody tr{border-bottom:.2cqw solid #e2e8f0;transition:background .2s}.rooms-table tbody tr:hover{background:#f7fafcb3}.rooms-table tbody tr:last-child{border-bottom:none}.rooms-table td{padding:2.4cqw;color:#2d3748;font-size:3.2cqw}.room-name{font-weight:600;color:#333;font-size:4cqw;margin-bottom:1cqw}.room-host{color:#718096;font-size:3.2cqw}.room-status-cell{width:20cqw}.room-players{position:relative;margin-bottom:1.6cqw;font-size:2.8cqw}.room-status{display:inline-block}.player-count{font-weight:500}.players-tooltip{display:none;position:absolute;bottom:100%;left:0;background:#000000e6;border-radius:1.2cqw;padding:1.6cqw;white-space:nowrap;z-index:10;margin-bottom:1cqw}.room-players:hover .players-tooltip{display:flex;flex-wrap:wrap;gap:.8cqw}.players-tooltip .player-tag{background:#ffffff1a;color:#fff;padding:.8cqw 1.6cqw;border-radius:.8cqw;font-size:2.8cqw}.status-badge{padding:1cqw 3cqw;border-radius:3cqw;font-size:3.2cqw;font-weight:500}.status-badge.waiting{background:#c6f6d5;color:#22543d}.status-badge.playing{background:#fed7d7;color:#742a2a}.mode-badge{display:inline-block;margin-left:2cqw;padding:.5cqw 1.5cqw;border-radius:1cqw;font-size:2.8cqw;font-weight:600}.mode-badge.casual{background:#3b82f633;color:#2563eb}.mode-badge.competitive{background:#fb923c33;color:#ea580c}.room-action{width:16cqw}.join-btn{padding:2cqw 4cqw;background:#48bb78e6;color:#fff;border:none;border-radius:1.6cqw;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 .6cqw 1cqw #0000001a;font-size:3.6cqw}.join-btn:hover:not(:disabled){background:#48bb78;transform:translateY(-.2cqw);box-shadow:0 .6cqw 1.2cqw #00000026}.join-btn:disabled{background:#cbd5e0;color:#718096;cursor:not-allowed}.loading,.no-rooms{text-align:center;padding:12cqw;color:#fff;font-size:4.4cqw;font-weight:600;text-shadow:.6cqw .6cqw 1cqw rgba(0,0,0,.5)}@keyframes pulse-warning{0%,to{box-shadow:0 .4cqw 1.6cqw #ff98004d}50%{box-shadow:0 .4cqw 2.4cqw #ff980080}}.error-message{background:#fff5f5;color:#c53030;padding:3.2cqw;border-radius:1.2cqw;margin-bottom:3.2cqw;text-align:center}.rooms-grid{grid-template-columns:1fr}}.admin-dashboard-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000}.admin-dashboard-modal{position:relative;width:90%;height:90%;max-width:1400px;max-height:900px;background:#fff;border-radius:10px;overflow:auto}.close-admin-btn{position:absolute;top:20px;right:20px;background:#dc3545;color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:24px;cursor:pointer;z-index:10001;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-admin-btn:hover{background:#c82333;transform:scale(1.1)}@container root (min-width: 1px){.bidding-panel{position:absolute;top:13cqw;left:50%;transform:translate(-50%);padding:2cqw;background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;color:#fff;width:98cqw;height:100cqw;max-width:90cqw;max-height:90dvh;min-width:80cqw;min-height:calc(80cqw / 1.3);z-index:1000;box-shadow:0 .5cqw 2.5cqw #00000080;display:flex;flex-direction:column;box-sizing:border-box;transition:aspect-ratio .3s ease}.bidding-panel.show-history{aspect-ratio:1 / 1.2}.bidding-header{text-align:center;margin-bottom:2cqw}.bidding-header h3{margin:0 0 .8cqw;font-size:4cqw;color:#4ecdc4}.current-turn{font-size:3.5cqw;color:gold;font-weight:700}.bidding-history-toggle{margin-bottom:2cqw;text-align:center}.history-toggle-btn{background:#4ecdc433;border:.25cqw solid rgba(78,205,196,.5);color:#4ecdc4;padding:1.5cqw 3cqw;border-radius:1.5cqw;font-size:3.2cqw;font-weight:500;display:inline-flex;align-items:center;justify-content:center;cursor:default;-webkit-user-select:none;user-select:none;width:100%}.bid-history-table{border-radius:1.5cqw;margin-bottom:3cqw;overflow-x:auto;overflow-y:hidden;max-width:100%;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:125cqw}}.bid-history-table::-webkit-scrollbar{height:1.5cqw}.bid-history-table::-webkit-scrollbar-track{background:#ffffff1a;border-radius:.75cqw}.bid-history-table::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:.75cqw}.bid-history-table::-webkit-scrollbar-thumb:hover{background:#ffffff80}.bid-history-header{font-size:3.5cqw;color:#4ecdc4;margin-bottom:2cqw;text-align:center;font-weight:700}.bid-history-toggle{width:100%;padding:2cqw;margin-bottom:2cqw;background:transparent;border:.25cqw solid rgba(255,255,255,.3);color:#4ecdc4;font-size:3.5cqw;font-weight:700;text-align:center;cursor:pointer;border-radius:1.5cqw;transition:all .2s}.bid-history-toggle:hover:not(:disabled){background:#ffffff1a;border-color:#4ecdc4}.bid-history-toggle.disabled{cursor:default;opacity:.8}.bid-history-toggle:disabled{cursor:default}.no-bids{text-align:center;color:#ffffff80;font-style:italic;padding:5cqw}.bid-table{width:auto;border-collapse:collapse;table-layout:fixed}.bid-table tr{border-bottom:.25cqw solid rgba(255,255,255,.1)}.bid-table tr:last-child{border-bottom:none}.bid-table tr.current-turn-row{background:#ffd7001a}.bid-player-name{text-align:left;padding:1.5cqw 2.5cqw;font-weight:500;background:#000;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:25cqw;font-size:3.5cqw}.bid-player-name.current-turn{color:gold;background:#ffd70033}.bid-cell{text-align:center;padding:.8cqw .3cqw;background:#ffffff0d;border-left:.25cqw solid rgba(255,255,255,.1);width:12cqw;min-width:10cqw;white-space:nowrap}.bid-cell.empty{color:#ffffff4d;font-size:3cqw}.bid-cell.passed{position:relative;overflow:hidden}.bid-cell.passed:before,.bid-cell.passed:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.bid-cell.passed:before{background:linear-gradient(to bottom right,transparent calc(50% - .25cqw),rgba(255,0,0,.6) calc(50% - .25cqw),rgba(255,0,0,.6) calc(50% + .25cqw),transparent calc(50% + .25cqw))}.bid-cell.passed:after{background:linear-gradient(to top right,transparent calc(50% - .25cqw),rgba(255,0,0,.6) calc(50% - .25cqw),rgba(255,0,0,.6) calc(50% + .25cqw),transparent calc(50% + .25cqw))}.bid-cell.highest-bid{background:#ffd70033;border:.25cqw solid rgba(255,215,0,.4)}.bid-points{font-size:3.5cqw;font-weight:700;color:gold;margin-left:.3cqw}.bidding-controls{display:flex;flex-direction:column;gap:2.5cqw;margin-top:0cqw}.controls-row{display:flex;gap:1cqw;align-items:center}.bidding-controls.disabled{opacity:.5;pointer-events:none}.suit-selector{flex:0 0 auto}.suit-selector label{font-size:3.5cqw;color:#fffc}.suit-buttons{display:flex!important;flex-direction:row!important;gap:1cqw;justify-content:center;flex-wrap:nowrap}.bidding-suit-btn{display:flex;align-items:center;justify-content:center;padding:2.5cqw;background:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:2cqw;cursor:pointer;transition:all .2s;width:12cqw;height:12cqw}.bidding-suit-btn:hover{background:#fff3;transform:translateY(-.5cqw)}.bidding-suit-btn.selected{background:#4ecdc44d;border-color:#4ecdc4;box-shadow:0 0 2.5cqw #4ecdc480;transform:none}.bidding-suit-symbol{font-size:6cqw;font-weight:700}.bidding-suit-btn.SPADE .bidding-suit-symbol,.bidding-suit-btn.CLUB .bidding-suit-symbol{color:#000;text-shadow:0 0 .5cqw rgba(255,255,255,.8)}.bidding-suit-btn.HEART .bidding-suit-symbol,.bidding-suit-btn.DIAMOND .bidding-suit-symbol{color:red}.bidding-suit-btn.NO_TRUMP .bidding-suit-symbol{color:#4ecdc4;font-size:4.5cqw}.suit-name{font-size:2.3cqw;color:#fffc}.points-selector{flex:0 0 auto}.points-control{display:flex;align-items:center;gap:1cqw;background:#ffffff0d;border:.5cqw solid rgba(255,255,255,.2);border-radius:2.5cqw;height:12cqw}.points-btn{width:auto;height:100%;border:none;background:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0}.points-btn img{width:5cqw;height:8cqw;object-fit:fill}.points-btn.minus img{filter:brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%) hue-rotate(346deg) brightness(104%) contrast(97%)}.points-btn.plus img{filter:brightness(0) saturate(100%) invert(73%) sepia(63%) saturate(434%) hue-rotate(72deg) brightness(91%) contrast(87%)}.points-btn:hover:not(:disabled){transform:scale(1.1)}.points-btn:active:not(:disabled){transform:scale(.95)}.points-btn:disabled{opacity:.3;cursor:not-allowed}.points-display{font-size:6cqw;font-weight:700;color:gold;min-width:10cqw;text-align:center;text-shadow:0 .2cqw .5cqw rgba(0,0,0,.3)}.bid-actions{display:flex;gap:2.5cqw;margin-top:1cqw}.bid-btn,.pass-btn,.deal-miss-btn{flex:1;padding:2cqw 4cqw;border:none;border-radius:2cqw;font-size:3.5cqw;font-weight:700;cursor:pointer;transition:all .2s}.bid-btn{background:#48bb78e6;color:#fff;font-size:4cqw;font-weight:700;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.bid-btn:hover:not(:disabled){background:#48bb78;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.bid-btn:disabled{background:#48bb784d;cursor:not-allowed;opacity:.5}.pass-btn{background:#ef4444e6;color:#fff;font-size:4cqw;font-weight:700;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.pass-btn:hover{background:#ef4444;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.deal-miss-btn{background:#60a5fae6;color:#fff;font-size:4cqw;font-weight:700;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.deal-miss-btn:hover:not(:disabled){background:#60a5fa;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #60a5fa66}.deal-miss-btn:disabled{background:#66666680;cursor:not-allowed;opacity:.5}}@container root (min-width: 1px){.card{position:relative;cursor:default;transition:all .3s ease;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overflow:hidden}.card-content{width:100%;height:100%;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}.card-content.black{color:#000}.card-content.red{color:red}.card-medium{--w: 16cqw;aspect-ratio:5/7;width:var(--w);height:auto;border-radius:calc(var(--w) * .09)}.card-on-game-table{--w: 18cqw;aspect-ratio:5/7;width:var(--w);height:auto;border-radius:calc(var(--w) * .09)}.card-back-pattern{width:100%;height:100%;background:linear-gradient(45deg,#1a4d8f 25%,#2563a8 25% 50%,#1a4d8f 50% 75%,#2563a8 75%,#2563a8);background-size:4cqw 4cqw}.card-corner{display:flex;flex-direction:column;align-items:center;line-height:1}.card-corner.top-left{align-self:flex-start}.card-corner.bottom-right{align-self:flex-end;transform:rotate(180deg)}.card-rank{font-weight:700;margin-bottom:.4cqw;font-size:3.2cqw}.card-suit{font-size:2.6cqw}.card-suit.red{color:red}.card-suit.black{color:#000}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-suit-large{font-size:4.8cqw}.card-suit-large.red{color:red}.card-suit-large.black{color:#000}.card-joker{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.joker-text{font-weight:700;font-size:2.6cqw;margin-bottom:1cqw}.joker-emoji{font-size:3.8cqw}.joker-suit-indicator{position:absolute;bottom:1cqw;right:1cqw;font-size:3.2cqw;font-weight:700}.card.selectable{cursor:pointer}.card.selectable:hover{transform:translateY(-.4cqw);box-shadow:0 .8cqw 1.6cqw #0000004d}.card.selectable .card-image,.playing-card-wrapper[draggable=true] .card,.card.selectable{pointer-events:auto}.card.not-playable{opacity:.5;cursor:not-allowed}.card.not-playable:hover{transform:none;box-shadow:0 .4cqw .8cqw #0000004d}.card-badge{position:absolute;top:.4cqw;right:.4cqw;background-color:#f44;color:#fff;padding:.4cqw 1.2cqw;border-radius:.8cqw;font-size:2cqw;font-weight:700;z-index:10;box-shadow:0 .4cqw .8cqw #0003}.card-badge.partner-badge{background-color:#4ecdc4;font-size:3cqw}.card-badge.new-badge{background-color:#ff6b6b;color:#fff;font-size:3cqw}@keyframes pulse-red{0%{box-shadow:0 0 3.75cqw #f449}50%{box-shadow:0 0 6.25cqw #ff4444e6}to{box-shadow:0 0 3.75cqw #f449}}@keyframes pulse-red-bg{0%{box-shadow:0 0 3.75cqw #f449}50%{box-shadow:0 0 6.25cqw #ff4444e6}to{box-shadow:0 0 3.75cqw #f449}}.card.mighty-card{position:relative;overflow:hidden;box-shadow:0 0 5cqw #8a2be299,0 0 10cqw #ffd7004d,inset 0 0 5cqw #ffffff80;border-radius:1.6cqw;animation:mighty-sparkle 3s ease-in-out infinite}@keyframes mighty-sparkle{0%,to{box-shadow:0 0 20px #8a2be299,0 0 40px #ffd7004d,inset 0 0 20px #ffffff80}50%{box-shadow:0 0 7.5cqw #8a2be2cc,0 0 15cqw #ffd70080,inset 0 0 7.5cqw #ffffffb3}}.card.joker-call-card{position:relative;overflow:hidden;box-shadow:0 0 3.75cqw #8a2be266,0 0 7.5cqw #8a2be233;animation:joker-call-sparkle 2s ease-in-out infinite}@keyframes joker-call-sparkle{0%,to{box-shadow:0 0 15px #8a2be266,0 0 30px #8a2be233}50%{box-shadow:0 0 5cqw #8a2be299,0 0 10cqw #8a2be24d}}.card-image-container{width:100%;height:100%;position:relative;box-sizing:border-box;border-radius:1.6cqw;overflow:hidden}.card-image-container.normal-background{background-color:#fff}.card-image-container.trump-background,.card.trump-card .card-image-container{background:linear-gradient(135deg,#ffdb4d,#ffed4e,#fff5b3,#ffe066,#ffd633,#ffed4e,#fff5b3,#ffdb4d,#ffd633,#ffe066,#ffdb4d);background-size:200% 200%;animation:gold-shimmer 3s ease-in-out infinite}@keyframes gold-shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.card-image-container.joker-call-background{background-color:#d9b3ff}.card-image-container.mighty-background{background:linear-gradient(135deg,gold,orange,#ff69b4,#8a2be2,#4169e1,gold)}.card-image-container.joker-emerald-background{background:linear-gradient(135deg,#50c878,#00a86b,#00c78c,#50c878,#00a86b,#50c878)}.card-image{width:100%;height:100%;object-fit:contain;display:block;box-sizing:border-box}.playing-card-wrapper:not([draggable=true]) .card-image{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none}.card-css-fallback{display:none;width:100%;height:100%;position:absolute;top:0;left:0;background:#fff;border:.2cqw solid #ccc;box-shadow:0 .4cqw .8cqw #0000004d}.card-image-container.use-css-fallback .card-css-fallback{display:flex;flex-direction:column;justify-content:space-between;padding:.4cqw}.joker-suit-overlay{position:absolute;bottom:1cqw;right:1cqw;background:#000000b3;color:#fff;padding:.4cqw 1.2cqw;border-radius:.8cqw;font-size:2.8cqw;font-weight:700}}@container root (min-width: 1px){.partner-selection-panel{position:absolute;top:13cqw;left:50%;transform:translate(-50%);padding:2cqw;background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;color:#fff;aspect-ratio:1 / 1.18;width:98cqw;height:auto;max-width:90cqw;max-height:90dvh;min-width:80cqw;overflow-y:auto;z-index:1000;box-shadow:0 .5cqw 2.5cqw #00000080;display:flex;flex-direction:column;box-sizing:border-box}.mode-selector{display:flex;gap:2cqw;margin-top:2cqw;margin-bottom:2cqw;justify-content:center}.mode-btn{padding:2cqw 4cqw;background:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:1.5cqw;color:#fff;font-size:3cqw;font-weight:700;cursor:pointer;transition:all .3s ease}.mode-btn:hover{background:#fff3;border-color:#ffffff80}.mode-btn.active{background:#4ecdc44d;border-color:#4ecdc4;color:#4ecdc4}.player-selector{padding:3cqw;margin-bottom:24.8cqw}.player-selector label{display:block;color:gold;font-size:3.5cqw;font-weight:700;margin-bottom:2.5cqw;text-align:center}.player-buttons{display:flex;flex-wrap:wrap;gap:2cqw;justify-content:center;margin-top:3cqw;margin-bottom:3cqw}.player-btn{padding:2.5cqw 5cqw;background:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:1.5cqw;color:#fff;font-size:3.5cqw;font-weight:700;cursor:pointer;transition:all .3s ease;min-width:25cqw}.player-btn:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-.5cqw)}.player-btn.selected{background:#ffd7004d;border-color:gold;color:gold;box-shadow:0 0 3.75cqw #ffd70066}.selected-player-info{text-align:center;padding:2.5cqw;background:#0000004d;border-radius:1.5cqw;margin-top:3cqw}.selected-player-info p{color:#fff;font-size:3.5cqw;margin:0}.selected-player-info strong{color:gold;font-size:4cqw}.partner-header{text-align:center}.partner-header h3{margin:0 0 2cqw;font-size:4.5cqw;color:#4ecdc4}.partner-instruction{font-size:3cqw;color:#fffc;line-height:1.5}.partner-controls{display:flex;flex-direction:column;gap:2cqw}.suit-selector{display:flex;flex-direction:column;gap:2cqw;overflow:visible}.current-contract-label{font-size:3.5cqw;color:gold}.suit-selector label,.rank-selector label{font-size:3.5cqw;color:#fffc}.suit-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5cqw;padding:.5cqw}.partner-suit-btn{display:flex;flex-direction:column;align-items:center;gap:1cqw;padding:2.5cqw;background:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:1.5cqw;cursor:pointer;transition:all .2s;min-width:10cqw;justify-content:center;flex:1;height:10cqw}.partner-suit-btn:hover{background:#fff3;transform:translateY(-.5cqw)}.partner-suit-btn.selected{background:#4ecdc44d;border-color:#4ecdc4;box-shadow:0 0 2.5cqw #4ecdc480;transform:none}.partner-suit-btn.owned-card{background:#4ecdc426;border-color:#4ecdc480;position:relative}.partner-suit-btn.owned-card:hover{background:#4ecdc440}.partner-suit-btn .owned-indicator{position:absolute;top:.8cqw;right:.8cqw;font-size:2cqw;color:#4ecdc4;line-height:1}.partner-suit-symbol{font-size:5.5cqw;font-weight:700}.partner-suit-btn.SPADE .partner-suit-symbol,.partner-suit-btn.CLUB .partner-suit-symbol{color:#000;text-shadow:0 0 .75cqw rgba(255,255,255,.8)}.partner-suit-btn.HEART .partner-suit-symbol,.partner-suit-btn.DIAMOND .partner-suit-symbol{color:red}.partner-suit-btn.JOKER .partner-suit-symbol{color:#4ecdc4;font-size:4.5cqw}.suit-name{font-size:2.5cqw;color:#fffc}.rank-selector-with-preview{display:flex;gap:2.5cqw;align-items:flex-start}.rank-selector{flex:1;display:flex;flex-direction:column;gap:2cqw}.rank-buttons{display:grid;grid-template-columns:repeat(7,1fr);gap:.8cqw}.rank-buttons-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.8cqw}.rank-btn{padding:1.5cqw;background:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:2cqw;color:#fff;font-size:3cqw;font-weight:700;cursor:pointer;transition:all .2s;aspect-ratio:1}.rank-btn:hover:not(:disabled){background:#fff3;transform:translateY(-.5cqw)}.rank-btn.selected{background:#4ecdc44d;border-color:#4ecdc4;box-shadow:0 0 2.5cqw #4ecdc480}.rank-btn:disabled{opacity:.3;cursor:not-allowed;background:#ff00001a;border-color:#ff00004d}.rank-btn.owned-card{background:#4ecdc426;border-color:#4ecdc480;position:relative}.rank-btn.owned-card:hover:not(:disabled){background:#4ecdc440}.owned-indicator{position:absolute;top:.4cqw;right:.4cqw;font-size:1.8cqw;color:#4ecdc4;line-height:1}.selected-card-preview-side{display:flex;flex-direction:column;align-items:center;gap:2cqw;padding:4cqw;background:#ffffff0d;border-radius:1.5cqw;margin-top:3cqw;width:28cqw;height:100%}.selected-card-preview-side .preview-info{text-align:center}.selected-card-preview-side .preview-info p{margin:.5cqw 0;font-size:2.3cqw;color:#fffc}.selected-card-preview-side .warning{color:#ff6b6b;font-size:2cqw;font-weight:700}.selected-card-preview{display:flex;align-items:center;gap:2.5cqw;padding:2cqw;background:#ffffff0d;border-radius:1.5cqw;justify-content:center}.preview-card-container{width:18cqw;height:25.2cqw;border-radius:1cqw;overflow:visible;display:flex;align-items:center;justify-content:center}.preview-card-container .playing-card-wrapper{position:relative;z-index:1}.preview-card-container .card{box-shadow:0 .75cqw 1.5cqw #0000004d}.joker-selection-info{grid-column:1 / -1;text-align:center;padding:3cqw;color:#fffc;font-size:3cqw}.preview-info{text-align:center}.preview-info p{margin:.5cqw 0;font-size:2.5cqw}.warning{color:#ff6b6b;font-weight:700}.partner-buttons{display:flex;gap:2cqw}.confirm-partner-btn{padding:2.5cqw 5cqw;background:#48bb78e6;color:#fff;border:none;border-radius:1.5cqw;font-size:3.5cqw;font-weight:700;cursor:pointer;transition:all .2s;flex:1;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.confirm-partner-btn:hover:not(:disabled){background:#48bb78;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.confirm-partner-btn:disabled{background:#48bb784d;cursor:not-allowed;opacity:.5}.no-friend-btn{padding:2.5cqw 5cqw;background:#60a5fae6;color:#fff;border:none;border-radius:1.5cqw;font-size:3.5cqw;font-weight:700;cursor:pointer;transition:all .2s;flex:1;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.no-friend-btn:hover{background:#60a5fa;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #60a5fa66}.waiting-dialog-small{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:.5cqw solid rgba(78,205,196,.5);border-radius:1.5cqw;padding:3cqw 5cqw;text-align:center;z-index:1500;box-shadow:0 .5cqw 2.5cqw #00000080}.waiting-dialog-small p{margin:0;color:#ffffffe6;font-size:3.5cqw}.loading-spinner-small{width:6cqw;height:6cqw;border:.6cqw solid rgba(255,255,255,.1);border-top-color:#4ecdc4;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 2.5cqw}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}}@container root (min-width: 1px){.discard-cards-panel{position:absolute;top:13cqw;left:50%;transform:translate(-50%);background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:2cqw 1cqw;color:#fff;aspect-ratio:1 / 1.3;width:98cqw;height:auto;max-width:90cqw;max-height:90dvh;min-width:80cqw;z-index:2000;box-shadow:0 .5cqw 2.5cqw #00000080;display:flex;flex-direction:column;box-sizing:border-box}.discard-header{text-align:center;margin-bottom:3cqw}.discard-header h3{margin:0 0 2cqw;font-size:4.5cqw;color:#4ecdc4}.discard-instruction{font-size:3.5cqw;color:#fffc;line-height:1.5}.cards-row{display:flex;gap:2cqw;justify-content:center}.hand-section{margin-bottom:3cqw}.hand-section h4{margin:0 0 2.5cqw 1cqw;color:#ffffffe6;font-size:3.5cqw}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12cqw,1fr));max-width:100%;gap:1cqw}.cards-grid-5-5-3{display:grid;grid-template-columns:repeat(5,1fr);max-width:100%;margin:0 auto}.cards-grid-5-5-3 .card-wrapper-discard:nth-child(11){grid-column:2}.cards-grid-5-5-3 .card-wrapper-discard:nth-child(12){grid-column:3}.cards-grid-5-5-3 .card-wrapper-discard:nth-child(13){grid-column:4}.card-wrapper-discard{position:relative;display:inline-block;width:100%;height:100%}.card-wrapper-discard .playing-card-wrapper{position:relative;z-index:1}.card-wrapper-discard .card-background-layer{z-index:0}.card-wrapper-discard .card-image{position:relative;z-index:1}.discard-cards{width:12cqw;height:16.8cqw}.discard-cards:hover:not(.kitty-card){transform:translateY(-1cqw);box-shadow:0 1cqw 2cqw #0006}.discard-cards.selected{transform:translateY(-2cqw);box-shadow:0 0 0 .6cqw #4ecdc4,0 1cqw 3cqw #4ecdc480}.discard-cards.from-kitty{background:#fffacd}.discard-cards.kitty-card{cursor:default;opacity:.9}.kitty-badge{position:absolute;top:.5cqw;right:.5cqw;background:gold;color:#000;font-size:2cqw;padding:.5cqw 1cqw;border-radius:1cqw;font-weight:700}.card-wrapper-discard .kitty-indicator{position:absolute;top:1cqw;right:1cqw;background:gold;color:#000;font-size:2cqw;font-weight:700;padding:.5cqw 1cqw;border-radius:.6cqw;z-index:10;pointer-events:none}.card-wrapper-discard .selected-badge{position:absolute;bottom:1cqw;left:1cqw;background:#4ecdc4;color:#fff;font-size:2.5cqw;padding:.5cqw 1.2cqw;border-radius:1cqw;font-weight:700;z-index:10;pointer-events:none}.discard-actions{display:flex;justify-content:center;align-items:center;gap:2cqw;padding:2cqw;border-top:.2cqw solid rgba(255,255,255,.2);flex-direction:row;margin-top:auto}.selected-count{font-size:3.5cqw;color:#fffc}.confirm-discard-btn{padding:2cqw 4cqw;background:#48bb78e6;color:#fff;border:none;border-radius:2cqw;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2);flex:1}.change-trump-btn{padding:2cqw 4cqw;background:#60a5fae6;color:#fff;border:none;border-radius:2cqw;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2);flex:1}.change-trump-btn:hover:not(:disabled){background:#60a5fa;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.change-trump-btn:disabled{background:#666;color:#999;cursor:not-allowed;opacity:.6}.confirm-discard-btn:hover:not(:disabled){background:#48bb78;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.confirm-discard-btn:disabled{background:#48bb784d;cursor:not-allowed;opacity:.5}.waiting-dialog-small{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:.5cqw solid rgba(78,205,196,.5);border-radius:1.5cqw;padding:3cqw 5cqw;text-align:center;z-index:1500;box-shadow:0 .5cqw 2.5cqw #00000080}.waiting-dialog-small p{margin:0;color:#ffffffe6;font-size:3.5cqw}.loading-spinner-small{width:6cqw;height:6cqw;border:.6cqw solid rgba(255,255,255,.1);border-top-color:#4ecdc4;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 2.5cqw}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.discard-cards-panel::-webkit-scrollbar{width:1.5cqw}.discard-cards-panel::-webkit-scrollbar-track{background:#ffffff1a;border-radius:1cqw}.discard-cards-panel::-webkit-scrollbar-thumb{background:#4ecdc480;border-radius:1cqw}.discard-cards-panel::-webkit-scrollbar-thumb:hover{background:#4ecdc4b3}.discard-cards-panel-message{padding:2cqw}.trump-change-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:flex-start;justify-content:center;padding-top:5%;z-index:2100}.trump-change-dialog{background-color:#000000f2;border:.5cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:3cqw;max-width:80cqw;width:90%;box-shadow:0 .5cqw 2.5cqw #00000080}.trump-change-dialog h3{color:#4ecdc4;margin:0 0 3cqw;text-align:center;font-size:4cqw}.trump-change-dialog .current-info{background-color:#0000004d;padding:2.5cqw;border-radius:1cqw;margin-bottom:3cqw}.trump-change-dialog .current-info p{margin:1cqw 0;color:#fff;font-size:3cqw}.trump-change-dialog .suit-display{font-weight:700;padding:1cqw 2cqw;border-radius:.6cqw;background-color:#ffffff1a}.trump-change-dialog .suit-display.SPADE{color:#4ecdc4}.trump-change-dialog .suit-display.HEART{color:#ff6b6b}.trump-change-dialog .suit-display.DIAMOND{color:#ff9f43}.trump-change-dialog .suit-display.CLUB{color:#95e1d3}.trump-change-dialog .suit-display.NO_TRUMP{color:#f9ca24}.trump-change-dialog .change-warning{text-align:center;margin-bottom:3cqw}.trump-change-dialog .change-warning p{color:#f9ca24;font-size:3cqw}.trump-change-dialog .change-warning strong{color:#ff6b6b;font-size:3.5cqw}.trump-change-dialog .suit-options{display:flex;gap:2cqw;margin-bottom:3cqw;justify-content:center}.trump-change-dialog .suit-option{background-color:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:1.5cqw;padding:2.5cqw 3cqw;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex:1;max-width:15cqw;height:10cqw}.trump-change-dialog .suit-option:hover{background-color:#fff3;transform:translateY(-.5cqw)}.trump-change-dialog .suit-option.selected{background-color:#4ecdc44d;border-color:#4ecdc4}.trump-change-dialog .suit-option .suit-symbol{font-size:5cqw;font-weight:700}.trump-change-dialog .suit-option.SPADE .suit-symbol{color:#000;text-shadow:0 0 .75cqw rgba(255,255,255,.8)}.trump-change-dialog .suit-option.HEART .suit-symbol,.trump-change-dialog .suit-option.DIAMOND .suit-symbol{color:red}.trump-change-dialog .suit-option.CLUB .suit-symbol{color:#000;text-shadow:0 0 .75cqw rgba(255,255,255,.8)}.trump-change-dialog .suit-option.NO_TRUMP .suit-symbol{color:#4ecdc4}.trump-change-dialog .dialog-actions{display:flex;gap:3cqw;justify-content:center}.trump-change-dialog .dialog-actions button{padding:2cqw 5cqw;border-radius:1.5cqw;font-size:3.5cqw;font-weight:700;cursor:pointer;transition:all .3s ease}.trump-change-dialog .confirm-btn{background-color:#48bb78e6;color:#fff;border:none;width:100%;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.trump-change-dialog .confirm-btn:hover:not(:disabled){background-color:#48bb78;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.trump-change-dialog .confirm-btn:disabled{background-color:#48bb784d;color:#999;cursor:not-allowed}.trump-change-dialog .cancel-btn{background-color:#ef4444e6;color:#fff;border:none;width:100%;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.trump-change-dialog .cancel-btn:hover{background-color:#ef4444;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}}@container root (min-width: 1px){.kitty-panel{position:absolute;top:13cqw;left:50%;transform:translate(-50%);background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:2cqw;color:#fff;aspect-ratio:1.3 / 1;width:98cqw;height:auto;max-width:90cqw;max-height:90cqh;min-width:80cqw;z-index:2000;box-shadow:0 .5cqw 2.5cqw #00000080;display:flex;flex-direction:column;box-sizing:border-box}.kitty-panel-message{padding:2cqw}.kitty-panel-message h2{margin:0 0 2cqw;font-size:5cqw;color:#4ecdc4;text-align:center}.kitty-panel-message p{font-size:3.5cqw;color:#fffc;line-height:1.5;text-align:center}.kitty-panel-message .current-contract-label{font-size:3.5cqw;color:gold}.my-cards-section{margin-bottom:3cqw}.my-cards-section h3{margin:0 0 2.5cqw;color:#ffffffe6;font-size:3.5cqw}.kitty-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12cqw,1fr));max-width:100%;gap:1cqw}.kitty-cards-grid-5-5-3{display:grid;grid-template-columns:repeat(5,1fr);max-width:100%;margin:0 auto;gap:1cqw}.kitty-cards-grid-5-5-3 .card:nth-child(11){grid-column:2}.kitty-cards-grid-5-5-3 .card:nth-child(12){grid-column:3}.kitty-cards-grid-5-5-3 .card:nth-child(13){grid-column:4}.kitty-actions{display:flex;justify-content:center;align-items:center;gap:2.5cqw;padding:2cqw;border-top:.2cqw solid rgba(255,255,255,.2);flex-direction:row;margin-top:auto}.kitty-confirm-btn{padding:2cqw 4cqw;background:#48bb78e6;color:#fff;border:none;border-radius:2cqw;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2);flex:1}.kitty-confirm-btn:hover:not(:disabled){background:#48bb78;transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #0003}.kitty-confirm-btn:disabled{background:#48bb784d;cursor:not-allowed;opacity:.5}.kitty-change-trump-btn{padding:2cqw 4cqw;background:#60a5fae6;color:#fff;border:none;border-radius:2cqw;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2);flex:1}.kitty-change-trump-btn:hover:not(:disabled){background:#60a5fa;transform:translateY(-.2cqw);box-shadow:0 1cqw 3cqw #0003}.kitty-change-trump-btn:disabled{background:#666;color:#999;cursor:not-allowed;opacity:.6}.kitty-trump-change-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:flex-start;justify-content:center;padding-top:5cqh;z-index:2100}.kitty-trump-change-dialog{background-color:#000000f2;border:.5cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:3cqw;width:90cqw;max-width:80cqw;box-shadow:0 .5cqw 2.5cqw #00000080}.kitty-trump-change-dialog h3{color:#4ecdc4;margin:0 0 3cqw;text-align:center;font-size:4cqw}.kitty-trump-change-dialog .current-info{background-color:#0000004d;padding:2.5cqw;border-radius:1cqw;margin-bottom:3cqw}.kitty-trump-change-dialog .current-info p{margin:1cqw 0;color:#fff;font-size:3cqw}.kitty-trump-change-dialog .change-warning{text-align:center;margin-bottom:3cqw}.kitty-trump-change-dialog .change-warning p{color:#f9ca24;font-size:3cqw}.kitty-trump-change-dialog .change-warning strong{color:#ff6b6b;font-size:3.5cqw}.kitty-trump-change-dialog .suit-options{display:flex;gap:2cqw;margin-bottom:3cqw;justify-content:center}.kitty-trump-change-dialog .suit-option{background-color:#ffffff1a;border:.5cqw solid rgba(255,255,255,.3);border-radius:1.5cqw;padding:2.5cqw 3cqw;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex:1;max-width:15cqw;height:10cqw}.kitty-trump-change-dialog .suit-option:hover{background-color:#fff3;transform:translateY(-.5cqw)}.kitty-trump-change-dialog .suit-option.selected{background-color:#4ecdc44d;border-color:#4ecdc4}.kitty-trump-change-dialog .suit-option .suit-symbol{font-size:5cqw;font-weight:700}.kitty-trump-change-dialog .suit-option.SPADE .suit-symbol{color:#000;text-shadow:0 0 .75cqw rgba(255,255,255,.8)}.kitty-trump-change-dialog .suit-option.HEART .suit-symbol,.kitty-trump-change-dialog .suit-option.DIAMOND .suit-symbol{color:red}.kitty-trump-change-dialog .suit-option.CLUB .suit-symbol{color:#000;text-shadow:0 0 .75cqw rgba(255,255,255,.8)}.kitty-trump-change-dialog .suit-option.NO_TRUMP .suit-symbol{color:#4ecdc4}.kitty-trump-change-dialog .dialog-actions{display:flex;gap:3cqw;justify-content:center}.kitty-trump-change-dialog .dialog-actions button{padding:2cqw 5cqw;border-radius:1.5cqw;font-size:3.5cqw;font-weight:700;cursor:pointer;transition:all .3s ease}.kitty-trump-change-dialog .confirm-btn{background-color:#48bb78e6;color:#fff;border:none;width:100%;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.kitty-trump-change-dialog .confirm-btn:hover:not(:disabled){background-color:#48bb78;transform:translateY(-.2cqw);box-shadow:0 1cqw 3cqw #0003}.kitty-trump-change-dialog .confirm-btn:disabled{background-color:#48bb784d;color:#999;cursor:not-allowed}.kitty-trump-change-dialog .cancel-btn{background-color:#ef4444e6;color:#fff;border:none;width:100%;box-shadow:0 .5cqw 1cqw #0000001a;text-shadow:.3cqw .3cqw .5cqw rgba(0,0,0,.2)}.kitty-trump-change-dialog .cancel-btn:hover{background-color:#ef4444;transform:translateY(-.2cqw);box-shadow:0 1cqw 3cqw #0003}}@container root (min-width: 1px){.game-status-dialog{position:absolute;top:13cqw;left:50%;transform:translate(-50%);background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:2cqw;width:98cqw;max-width:90cqw;max-height:80cqh;overflow-y:auto;box-shadow:0 .5cqw 2.5cqw #00000080;z-index:1000;box-sizing:border-box;color:#fff}.game-status-dialog h3{color:#4ecdc4;font-size:4cqw;text-align:center;padding-bottom:2cqw}.game-info-section{background-color:#4ecdc41a;padding:1cqw 3cqw;border-radius:1.6cqw;margin-bottom:4cqw}.info-row{display:flex;align-items:center;gap:2cqw}.info-row .label{color:#95e1d3;font-size:3.5cqw}.info-row .value{font-weight:700;color:#fff}.contract-info{display:flex;align-items:center;gap:1.6cqw;margin-left:auto}.declarer-name{color:gold!important;font-size:4cqw}.suit-display{font-size:5cqw;font-weight:700}.contract-points{color:#fff;font-size:4cqw}.status-messages{max-height:60cqw;overflow-y:auto;padding-right:1cqw}.status-message{margin-bottom:3cqw;padding:2cqw;background-color:#ffffff0d;border-radius:1.6cqw;border-left:.6cqw solid transparent;transition:all .3s ease}.status-message.permanent{border-left-color:#4ecdc4;background-color:#4ecdc41a}.status-message.temporary{border-left-color:orange;background-color:#ffa5001a}.message-header{display:flex;align-items:center;gap:2cqw}.message-loading{display:flex;align-items:center}.message-loading .loading-dots{display:flex;gap:.6cqw}.message-loading .loading-dots span{width:1.2cqw;height:1.2cqw;background-color:orange;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.message-loading .loading-dots span:nth-child(1){animation-delay:-.32s}.message-loading .loading-dots span:nth-child(2){animation-delay:-.16s}.message-text{color:#fff;font-size:3.5cqw;flex:1}.message-detail{margin-top:1.6cqw}.trump-change-detail{display:flex;align-items:center;gap:2cqw;padding:1.6cqw 2.4cqw;background-color:#0000004d;border-radius:1.2cqw;font-size:4cqw}.trump-change-detail .arrow{color:gold;font-size:5cqw;font-weight:700}.trump-change-detail .points{color:#fff;font-weight:700}.partner-card-detail{padding:.8cqw 1.6cqw;border-radius:1.2cqw;display:inline-block}.card-display{font-size:4.5cqw;font-weight:700;padding:.8cqw 1.6cqw;background-color:orange;border-radius:.8cqw}@keyframes bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.status-messages::-webkit-scrollbar{width:1.2cqw}.status-messages::-webkit-scrollbar-track{background:#ffffff1a;border-radius:.6cqw}.status-messages::-webkit-scrollbar-thumb{background:#4ecdc480;border-radius:.6cqw}.status-messages::-webkit-scrollbar-thumb:hover{background:#4ecdc4b3}}@container root (min-width: 1px){.game-result-panel{position:absolute;top:13cqw;left:50%;transform:translate(-50%);background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:2cqw;color:#fff;width:98cqw;max-width:90cqw;box-shadow:0 .5cqw 2.5cqw #00000080;z-index:2000;box-sizing:border-box}.result-header{text-align:center}.result-header h2{margin:0 0 2cqw;font-size:4.8cqw;color:#fff}.result-badge{display:inline-block;padding:2cqw 4cqw;border-radius:5cqw;font-size:3.2cqw;font-weight:700;text-transform:uppercase;letter-spacing:.2cqw}.result-badge.success{background:#4ecdc4;color:#1a1a1a;box-shadow:0 .8cqw 2.4cqw #4ecdc466}.result-badge.failure{background:#e53e3e;color:#fff;box-shadow:0 .8cqw 2.4cqw #ff6b6b66}.result-scores{display:flex;justify-content:space-between;align-items:center;margin-bottom:4cqw;gap:3cqw;flex-direction:column}.score-section{flex:1;text-align:center;padding:3cqw;background:#ffffff0d;border-radius:1.6cqw;border:.2cqw solid rgba(255,255,255,.1);width:100%}.score-section h3{margin:0 0 1.6cqw;font-size:2.8cqw;color:#ffffffb3;text-transform:uppercase;letter-spacing:.2cqw}.team-members{margin-bottom:2cqw;font-size:2.8cqw}.player-name{color:#4ecdc4;font-weight:500}.separator{color:#ffffff80;margin:0 1.6cqw}.score{font-size:5.6cqw;font-weight:700;color:#fff;text-shadow:0 .4cqw .8cqw rgba(0,0,0,.3)}.score-divider{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 2cqw;width:100%;margin:2cqw 0}.contract-wrapper{display:flex;flex-direction:row;align-items:center;gap:2.4cqw}.contract-box{background:#ffd7001a;border:.4cqw solid rgba(255,215,0,.3);padding:2cqw 4cqw;border-radius:2cqw;display:flex;flex-direction:row;align-items:center;gap:1.6cqw}.contract-label{font-size:2.8cqw;color:#ffd700cc;text-transform:uppercase;letter-spacing:.2cqw}.contract-points{font-size:4.8cqw;font-weight:700;color:gold}.result-actions{display:flex;gap:2cqw;justify-content:center;flex-direction:row}.result-actions button{padding:2cqw 4cqw;border:none;border-radius:1.6cqw;font-size:2.8cqw;font-weight:700;cursor:pointer;transition:all .2s;text-transform:uppercase;flex:1}.back-btn{background:#ffffff1a;color:#fff;border:.4cqw solid rgba(255,255,255,.3)}.back-btn:hover{background:#fff3;transform:translateY(-.4cqw)}.back-btn.primary{background:#48bb78;color:#fff;font-size:3.2cqw;font-weight:700;border:none}.back-btn.primary:hover{background:#3bbdb5;transform:translateY(-.4cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc466}.back-btn.secondary{background:#e53e3e;color:#fff;font-size:3.2cqw;font-weight:700;border:none}.back-btn.secondary:hover{background:#e55555;transform:translateY(-.4cqw);box-shadow:0 .8cqw 2.4cqw #ff6b6b66}.new-game-btn{background:#4ecdc4;color:#1a1a1a}.new-game-btn:hover{background:#3bbdb5;transform:translateY(-.4cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc466}.game-score-boxes{display:flex;align-items:center;justify-content:center}.score-box{padding:2cqw;border-radius:1.6cqw;text-align:center;background:#ffffff0d;border:.4cqw solid transparent;transition:all .3s ease}.score-box.winner{background:#4ecdc426;border-color:#4ecdc480;box-shadow:0 0 3cqw #4ecdc44d}.score-box .score-label{font-size:3cqw;font-weight:700;color:#fffc;margin-bottom:1cqw}.contract-display{text-align:center;padding:2cqw 3cqw}.contract-display .contract-label{font-size:4cqw;font-weight:700;color:#fffc;margin-bottom:.6cqw}.contract-display .contract-value{font-size:5cqw;font-weight:700;color:gold}.waiting-message{display:flex;align-items:center;justify-content:center;gap:3cqw;padding:4cqw;color:#fffc;font-size:4cqw}.loading-spinner{width:6cqw;height:6cqw;border:.6cqw solid rgba(255,255,255,.2);border-top:.6cqw solid #4ecdc4;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.score-calculation{padding:1cqw;background:#0000004d}.calculation-header{display:flex;justify-content:space-between;align-items:center;margin-top:1cqw;margin-bottom:1cqw}.calculation-header h3{color:#4ecdc4;font-size:4.5cqw;margin:0}.special-conditions{display:flex;gap:1.6cqw}.condition-badge{padding:.8cqw 2cqw;background:#ffd70033;color:gold;border-radius:.8cqw;font-size:3cqw;font-weight:700}.formula-label{color:#ffffffb3;font-size:3.5cqw;margin-bottom:1cqw}.formula{background:#ffffff0d;padding:2cqw;border-radius:1.2cqw;font-family:Courier New,monospace;font-size:4cqw;color:#fff;text-align:center}.individual-scores-detail h3{color:#4ecdc4;font-size:4.5cqw;margin-top:1cqw;margin-bottom:1cqw;text-align:center}.score-detail-table{width:100%;border-collapse:collapse}.score-detail-table th{background:#ffffff1a;color:#ffffffe6;padding:1.6cqw 2cqw;text-align:left;font-size:3.5cqw;font-weight:600}.score-detail-table td{padding:1.6cqw 2cqw;border-bottom:.2cqw solid rgba(255,255,255,.05);font-size:3.5cqw}.score-detail-table tbody tr:hover{filter:brightness(1.1)}.player-row.declarer{background:#ff6b6b26}.player-row.partner{background:#6374df26}.player-row.defender{background:#71809614}.score-detail-table .player-name{color:#fff;font-weight:600;padding-left:3cqw}.score-formula{font-family:Courier New,monospace;font-size:3.75cqw;text-align:center;padding:1.6cqw}.score-formula .prev-score{color:#fffc}.score-formula .score-change{font-weight:700;margin:0 1cqw}.score-change.positive{color:#4ecdc4}.score-change.negative{color:#ff6b6b}.score-formula .equals{color:#fff9;margin:0 1cqw}.score-formula .current-score{color:gold;font-weight:700;font-size:4cqw}}.countdown-timer{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:10000;background:#000000d9;border-radius:12px;padding:12px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 4px 20px #0000004d;animation:slideDown .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.countdown-number{font-size:36px;font-weight:700;color:#4caf50;line-height:1;transition:all .3s ease;text-shadow:0 0 20px rgba(76,175,80,.5)}.countdown-number.warning{color:#ffc107;text-shadow:0 0 20px rgba(255,193,7,.5);animation:pulse 1s infinite}.countdown-number.critical{color:#f44336;text-shadow:0 0 20px rgba(244,67,54,.5);animation:pulse .5s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.countdown-label{font-size:11px;color:#fffc;text-align:center;white-space:nowrap}@container root (min-width: 1px){.game-table{position:relative;width:100%;height:100%;background:linear-gradient(to bottom,rgba(0,0,0,.1) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.05) 100%);overflow:hidden;padding-top:0;padding-bottom:0;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;perspective:400cqw;perspective-origin:center center}.player-position{position:absolute;z-index:15;display:flex;flex-direction:column;align-items:center}.player-info{background:linear-gradient(135deg,#000000d9,#141414d9);border:.4cqw solid rgba(255,255,255,.3);border-radius:3cqw;padding:1cqw;text-align:center;color:#fff;width:26cqw;height:12cqw;min-width:20cqw;min-height:10cqw;display:flex;align-items:center;justify-content:center;transition:all .3s ease;overflow:hidden;box-shadow:0 .8cqw 2.4cqw #0006,inset 0 .2cqw #ffffff1a;-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw)}.player-info.declarer{background:radial-gradient(ellipse at center,#ca2020f2 70%,#970f0ff2);border-color:#a0282899;box-shadow:0 .8cqw 2.4cqw #78141466,inset 0 .2cqw #ffffff26}.player-info.partner{background:radial-gradient(ellipse at center,#203bcff2 70%,#1c31a6f2);border-color:#3246a099;box-shadow:0 .8cqw 2.4cqw #19287866,inset 0 .2cqw #ffffff26}.player-info.defender{background:radial-gradient(ellipse at center,#23282df2 70%,#14191ef2);border-color:#464b5099;box-shadow:0 .8cqw 2.4cqw #23282d66,inset 0 .2cqw #ffffff1a}.player-position-1 .player-info,.player-position-4 .player-info{transform:scale(1.1);z-index:7;box-shadow:0 1.2cqw 3.2cqw #00000080,inset 0 .2cqw #ffffff26}.player-position-2 .player-info,.player-position-3 .player-info{transform:scale(.95);z-index:4;opacity:.95;box-shadow:0 .6cqw 2cqw #0006,inset 0 .2cqw #ffffff1a}.player-position.current-turn .player-info{border-color:#76ff03;border-width:.6cqw;box-shadow:0 0 4cqw #76ff03cc,0 0 8cqw #76ff0366,inset 0 .2cqw #ffffff4d;animation:glow 2s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 4cqw #76ff03cc,0 0 8cqw #76ff0366,inset 0 .2cqw #ffffff4d}50%{box-shadow:0 0 6cqw #76ff03,0 0 10cqw #76ff0399,inset 0 .2cqw #fff6}}.game-player-name{font-weight:700;font-size:4cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14cqw;color:#fff;text-shadow:0 .2cqw .4cqw rgba(0,0,0,.8)}.game-player-name.long-name{font-size:3cqw}.game-player-name.very-long-name{font-size:2cqw}.player-cards-count{font-size:2.2cqw;color:#fffc}.player-score{font-size:2.6cqw;color:gold;font-weight:700;margin-top:.8cqw}.player-role{margin-top:.8cqw;font-size:2.2cqw;padding:.4cqw 1.6cqw;border-radius:.6cqw;font-weight:700}.player-role.declarer{background:#ff6b6b;color:#fff}.player-role.partner{background:#4ecdc4;color:#fff}.player-role.defender{background:#666;color:#fff}.trick-area{width:56cqw;height:56cqw}.trick-area-circle{position:absolute;bottom:0cqw;left:50%;transform:translate(-50%) rotateX(60deg);width:80cqw;height:80cqw;border-radius:50%;background:radial-gradient(ellipse at center,#2d6a4f,#1b4332);border:1cqw solid #0d2818;box-shadow:inset 0 .8cqw 2.4cqw #00000080,inset 0 -.4cqw 1.2cqw #ffffff1a,0 1.6cqw 4.8cqw #0006,0 3.2cqw 6.4cqw #0003;transition:all .3s ease;z-index:10;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d}.trick-cards-container{position:absolute;transform:translate(-50%);width:80cqw;height:80cqw;z-index:20;pointer-events:none;transform-style:preserve-3d;bottom:0cqw;left:50%;animation:rotate 10s infinite linear}.trick-area-circle.drop-ready,.game-table.drop-ready .trick-area-circle{border:.6cqw solid rgba(78,205,196,.8);background:radial-gradient(ellipse at center,#3d8a6a,#2d6a4f);box-shadow:inset 0 .4cqw 1.6cqw #4ecdc44d,0 0 4cqw #4ecdc466}.trick-card{position:absolute;z-index:15;transition:all .3s ease;pointer-events:auto;transform-style:preserve-3d;backface-visibility:hidden;filter:drop-shadow(1cqw 1.6cqw 2.4cqw rgba(0,0,0,.6)) drop-shadow(2cqw 3cqw 4cqw rgba(0,0,0,.3))}.trick-card:not(.winning-card){filter:brightness(.6) saturate(.5) drop-shadow(1cqw 1.6cqw 2.4cqw rgba(0,0,0,.6)) drop-shadow(2cqw 3cqw 4cqw rgba(0,0,0,.3));z-index:14}.trick-card.winning-card{z-index:16;transform:scale(1.1);filter:drop-shadow(1cqw 1.6cqw 2.4cqw rgba(0,0,0,.6)) drop-shadow(2cqw 3cqw 4cqw rgba(0,0,0,.3))}.reshuffling-message{position:absolute;inset:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:100}.reshuffling-content{background-color:#2c3e50;border:.4cqw solid #34495e;border-radius:2cqw;padding:6cqw 10cqw;text-align:center;box-shadow:0 .8cqw 1.6cqw #0000004d}.reshuffling-content h2{color:#fff;margin:0 0 2cqw;font-size:4.8cqw}.reshuffling-content p{color:#ecf0f1;margin:0 0 4cqw;font-size:3.2cqw}.reshuffling-spinner{width:8cqw;height:8cqw;margin:0 auto;border:.8cqw solid #34495e;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-green{0%,to{box-shadow:0 0 3cqw #4ecdc4;opacity:1}50%{box-shadow:0 0 5cqw #4ecdc4,0 0 7cqw #4ecdc4;opacity:.8}}.winner-badge{position:absolute;top:-5cqw;left:50%;transform:translate(-50%);background:gold;color:#333;padding:.8cqw 2.4cqw;border-radius:2.4cqw;font-weight:700;font-size:2.4cqw;animation:bounceIn .5s ease-out}.trick-complete-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;color:#fff;padding:4cqw 8cqw;border-radius:2cqw;text-align:center;animation:fadeIn .3s ease-out;z-index:100}.trick-complete-message h3{margin:0 0 2cqw;color:gold;font-size:4.8cqw}.trick-complete-message p{margin:1cqw 0;font-size:3.2cqw}.trick-complete-message .next-leader{color:#3498db;margin-top:2cqw;font-weight:700}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes bounceIn{0%{transform:translate(-50%) scale(0)}50%{transform:translate(-50%) scale(1.2)}to{transform:translate(-50%) scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-chat-input{position:fixed;bottom:4cqw;left:50%;transform:translate(-50%);width:90%;max-width:100cqw;z-index:100}.game-chat-form{display:flex;gap:1.6cqw;background:#000c;padding:1.6cqw;border-radius:4cqw;-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw)}.game-chat-form input{flex:1;background:#ffffff1a;border:.2cqw solid rgba(255,255,255,.2);color:#fff;padding:1.6cqw 3.2cqw;border-radius:3.2cqw;font-size:2.8cqw;outline:none;transition:all .2s}.game-chat-form input:focus{background:#ffffff26;border-color:#ffffff4d}.game-chat-form input::placeholder{color:#ffffff80}.game-chat-form button{background:#4caf50;color:#fff;border:none;padding:1.6cqw 4cqw;border-radius:3.2cqw;cursor:pointer;font-weight:700;transition:all .2s}.game-chat-form button:hover{background:#45a049;transform:scale(1.05)}.game-chat-form button:disabled{background:#666;cursor:not-allowed;transform:scale(1)}.speech-bubble-container{position:absolute;z-index:5000!important;pointer-events:none;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%)}.speech-bubble{position:absolute;background:#fff9;color:#000;padding:1.2cqw 2cqw;border-radius:2.4cqw;font-size:4cqw;width:100%;height:auto;word-wrap:break-word;word-break:break-word;box-shadow:0 .4cqw 1.6cqw #0003;animation:fadeInBubble .3s ease-out;z-index:5000!important;white-space:pre-wrap;text-align:center;line-height:1.3;left:50%;transform:translate(-50%)}.speech-bubble-container.above{width:48cqw}.speech-bubble-container.below{width:40cqw}.speech-bubble.above{bottom:calc(100% + 9cqw)}.speech-bubble.below{top:calc(100% + 8cqw)}.speech-bubble.left.below{left:22cqw}.speech-bubble.left.above{left:30cqw}.speech-bubble.right.below,.speech-bubble.right.above{left:18cqw}.speech-bubble.above.right-side:after{right:3cqw}.speech-bubble.above.left-side:after{left:3cqw}.speech-bubble:after{content:"";position:absolute;width:0;height:0;border-style:solid}.speech-bubble.above:after{bottom:-1.6cqw;left:50%;transform:translate(-50%);border-width:1.6cqw 1.6cqw 0 1.6cqw;border-color:rgba(255,255,255,.6) transparent transparent transparent}.speech-bubble.below:after{top:-1.6cqw;left:50%;transform:translate(-50%);border-width:0 1.6cqw 1.6cqw 1.6cqw;border-color:transparent transparent rgba(255,255,255,.6) transparent}@keyframes fadeInBubble{0%{opacity:0;transform:translate(-50%) translateY(2cqw)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeOutBubble{0%{opacity:1}to{opacity:0}}.speech-bubble.fade-out{animation:fadeOutBubble .3s ease-out forwards}.lead-suit-display{position:absolute;top:8cqw;left:50%;height:12cqw;transform:translate(-50%);z-index:8;display:flex;align-items:center;justify-content:center}.loading-message{color:#fff;font-size:4.5cqw;font-weight:700;text-align:center;opacity:.8}}@container root (min-width: 1px){:root{--vh: 1vh}.game-room-container{height:100vh;height:100dvh;height:100svh;width:100vw;width:100cqw;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;inset:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.game-viewport{position:relative;background:#2d4a2b;display:flex;flex-direction:column;overflow:hidden;width:100cqw;height:100cqh}.ar-lt-1_5 .game-viewport{width:calc(100dvh * 2 / 3);height:100dvh}.ar-1_5-2 .game-viewport{width:100cqw;height:100cqw}.ar-gte-2 .game-viewport{width:100cqw;height:200cqw}.game-header{position:relative;top:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);display:flex;justify-content:center;align-items:center;z-index:100;width:100%;height:12cqw;margin:0;border-bottom:.4cqw solid rgba(255,255,255,.15);box-shadow:0 .4cqw 1.6cqw #0006;flex-shrink:0}.game-header .go-out-button{position:absolute;left:2cqw;background:transparent;border:none;color:#fff;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;padding-top:1cqw}.game-header .go-out-button:hover{transform:scale(1.05)}.game-header .go-out-button:active{transform:scale(.95);background:transparent}.game-header .go-out-button .logout-icon{aspect-ratio:1;width:8cqw;height:auto;filter:brightness(0) invert(1)}.game-header h2{font-size:6cqw}.room-title{font-size:6cqw;color:#fff;font-weight:700;text-align:center;width:100%;text-shadow:.6cqw .6cqw 1cqw rgba(0,0,0,.2);letter-spacing:.2cqw;display:flex;align-items:center;justify-content:center;gap:2cqw}.room-title .mode-icon{font-size:5cqw;display:inline-flex;align-items:center}.room-title .mode-icon.competitive{filter:drop-shadow(0 0 2cqw rgba(255,215,0,.6))}.room-title .mode-icon.casual{filter:drop-shadow(0 0 2cqw rgba(59,130,246,.6))}.room-title .room-label{color:#ffffffe6;font-weight:600}.room-title .room-name{font-size:6cqw;font-weight:700;text-shadow:0 0 2cqw rgba(255,215,0,.3)}.room-title .room-name.competitive{color:gold}.room-title .room-name.casual{color:#fff}.game-header .settings-button{position:absolute;right:2cqw;padding:.8cqw 2cqw;background:transparent;border:none;color:#fff;font-size:7cqw;font-weight:700;cursor:pointer;transition:all .2s}.game-header .settings-button:hover{transform:scale(1.05)}.game-header .settings-button:active{transform:scale(.95);background:transparent}.end-game-btn{padding:1.2cqw 2.6cqw;background:#ef4444e6;color:#fff;border:none;border-radius:1.2cqw;font-size:3.5cqw;cursor:pointer;font-weight:700;box-shadow:0 .4cqw .8cqw #0000001a}.end-game-btn:hover{background:#ef4444;box-shadow:0 .6cqw 1.2cqw #00000026}.game-content{flex:1;display:flex;gap:0;padding:0;width:100%;min-height:0;overflow:hidden;height:calc(100% - 14cqw);flex-direction:column}.players-panel,.chat-panel{-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);box-shadow:0 .8cqw 2.4cqw #00000026;border:.2cqw solid rgba(255,255,255,.3);display:flex;flex-direction:column;overflow:hidden}.competitive-settings-info{width:100%;background:#fff;padding:2cqw 1cqw;display:flex;gap:2cqw;font-size:4cqw;font-weight:700;justify-content:center;align-content:center;text-align:center;position:relative}.competitive-settings-info .competitive-settings-option{background:gold;border-radius:4cqw;padding:1cqw 4cqw;color:#000}.edit-competitive-btn{background:#60a5fa;color:#fff;border:none;border-radius:50%;width:8cqw;height:8cqw;font-size:4cqw;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 1cqw 3cqw #0000001a}.edit-competitive-btn:hover{background:#2563eb;transform:scale(1.1);box-shadow:0 2cqw 4cqw #0003}.chat-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#fffffff2}.chat-panel h3{display:none}.players-list{flex:1;display:flex;flex-direction:column;min-width:60cqw;padding:1cqw;transition:flex .5s ease-out}.chat-panel{height:100%;min-height:0}.game-board{display:none}.players-panel h3,.chat-panel h3,.game-board h3{margin:0;padding:3.2cqw;background:linear-gradient(135deg,#6bb6d6f2,#87ceebf2);-webkit-backdrop-filter:blur(1cqw);backdrop-filter:blur(1cqw);border-bottom:.4cqw solid rgba(255,255,255,.3);color:#fff;font-size:4.5cqw;font-weight:600;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.2)}.players-panel h3{display:none}.players-table{width:100%;padding:2.4cqw;border-collapse:separate;border-spacing:1.6cqw;table-layout:fixed}.players-table tbody{width:100%}.players-table td{width:20cqw;height:10cqw}.player-slot{font-size:4cqw;min-height:10cqw;background:#cbd5e1f2;-webkit-backdrop-filter:blur(1cqw);backdrop-filter:blur(1cqw);border:.4cqw solid rgba(148,163,184,.8);border-radius:3cqw;transition:all .3s ease;white-space:nowrap;margin-bottom:2cqw;display:flex;align-items:center;justify-content:space-between;gap:2cqw;padding:0 1cqw 0 0}.player-slot.empty{background:#f1f5f9f2;border-style:dashed;border-color:#cbd5e1cc;opacity:.7}.player-slot.empty .ai-slot-toggle:hover{background:#e2e8f0f2;opacity:.85}.control-panel{width:0;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;transition:width .5s ease-out,padding .5s ease-out,opacity .5s ease-out;opacity:0}.control-panel.show{width:30cqw;padding:1cqw;opacity:1;animation:slideInFromRight .5s ease-out}.control-panel.hide{width:0;padding:0;opacity:0;pointer-events:none;animation:slideOutToRight .5s ease-out}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutToRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.player-slot.occupied{background:#cbd5e1f2;border-style:solid;border-color:#94a3b8cc}.player-slot.occupied.ready{background:linear-gradient(135deg,#86efac,#48bb78);border-color:#38a169}.player-slot.current-user{border-color:#667eea;background:#ebf4ff;cursor:pointer;border-width:.6cqw;box-shadow:0 0 0 .2cqw #667eea66}.player-slot.current-user:hover{border-color:#5a67d8;box-shadow:0 0 0 .3cqw #5a67d880}.player-slot.ready .player-name{color:#2d3748}.player-name{font-size:4cqw;font-weight:600;color:#2d3748;display:flex;align-items:center;flex:1;gap:1cqw;padding:2cqw}.player-slot.occupied:not(.ready) .player-name{color:#2d3748}.host-icon{font-size:4.5cqw;margin-right:.5cqw}.player-score{font-size:3.5cqw;font-weight:500;color:#4a5568;width:12cqw;text-align:center;padding:0 1cqw;flex-shrink:0}.empty-slot{color:#a0aec0;font-style:italic}.player-status{width:18cqw;height:8cqw;font-size:4cqw;font-weight:600;color:#fff;border-radius:2cqw;text-align:center;align-items:center;align-content:center;justify-content:center;justify-items:center}.player-status.host{background:#ff9f43}.player-status.ai{background:#7a4fa5}.player-status.human{background:#7da891}.player-status.ready{background:#0f5;color:#070704cc}.mini-toggle-btn{position:relative;width:18cqw;height:8cqw;background:#94a3b8;border:none;border-radius:2cqw;cursor:pointer;transition:background .3s;display:flex;align-items:center;padding:0 1cqw;flex-shrink:0;justify-content:center}.mini-toggle-btn.human.active{background:#0f5}.mini-toggle-btn.ai.active{background:#7a4fa5}.mini-toggle-label{color:#fff;font-size:4cqw;font-weight:600;z-index:2}.mini-toggle-btn.active .mini-toggle-label{color:#070704cc}.mini-toggle-btn.ai.active .mini-toggle-label{color:#fff}.mini-toggle-slider{position:absolute;top:.75cqw;left:.75cqw;width:2cqw;height:6.6cqw;background:#fff;border-radius:20%;transition:left .3s;box-shadow:0 .2cqw .4cqw #0003}.mini-toggle-btn.active .mini-toggle-slider{left:calc(100% - 2.8cqw);transform:translateY(.2cqw)}.mini-toggle-btn:hover{opacity:.9}.mini-toggle-btn:hover .mini-toggle-slider{opacity:.9;transform:translateY(-.2cqw);box-shadow:0 .8cqw 1.6cqw #00000026}.mini-toggle-btn:hover:active .mini-toggle-slider{opacity:.9;transform:translateY(0);box-shadow:0 .8cqw 1.6cqw #00000026}.mini-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.mini-toggle-btn:disabled:hover{opacity:.5}.ready-indicator{font-size:3.5cqw;font-weight:700;color:#48bb78;margin-left:1cqw}.game-controls{padding:2.4cqw;border-top:.2cqw solid #e2e8f0;background:#fff}.ready-toggle-btn{position:relative;width:100%;height:8cqw;padding:2.4cqw 4.8cqw;background:#cbd5e0;border:none;border-radius:1.6cqw;font-size:4.75cqw;font-weight:700;cursor:pointer;transition:background .3s;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 .4cqw .8cqw #0000001a}.ai-slot-toggle{position:relative;width:100%;height:8cqw;padding:2.4cqw 4.8cqw;background:#9ca3af;border:none;border-radius:1.6cqw;font-size:3.75cqw;font-weight:700;cursor:pointer;transition:background .3s;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 .4cqw .8cqw #0000001a}.ready-toggle-btn.ready{background:#48bb78e6}.ai-slot-toggle.active{background:#8b5cf6}.ready-toggle-btn .toggle-text{color:#fff;z-index:2;position:relative;display:block;text-align:center;width:100%}.ai-slot-toggle .toggle-text{color:#fff;z-index:2;position:relative;display:block;text-align:center;width:100%;transform:translate(-1.6cqw)}.ready-toggle-btn>.toggle-slider,.ai-slot-toggle>.toggle-slider{position:absolute;top:.8cqw;left:.8cqw;width:1.6cqw;height:calc(100% - 1.6cqw);background:#fffc;transition:left .3s;border-radius:.8cqw}.ready-toggle-btn.ready>.toggle-slider,.ai-slot-toggle.active>.toggle-slider{left:calc(100% - 2.4cqw)}.ready-toggle-btn:hover{transform:translateY(-.2cqw);box-shadow:0 .8cqw 1.6cqw #00000026}.ai-slot-toggle:hover:not(.disabled){transform:translateY(-.2cqw);box-shadow:0 .8cqw 1.6cqw #00000026}.ai-slot-toggle.disabled{cursor:not-allowed;opacity:.5;background:#d1d5db!important}.ai-slot-toggle.disabled:hover{transform:none;box-shadow:0 .4cqw .8cqw #0000001a}.empty-start-slot{width:100%;height:100%}.host-controls{display:flex;flex-direction:row;align-items:center;gap:2.4cqw;width:100%;height:100%;padding:0}.competitive-mode-info{display:flex;width:100%;background:#fff;padding:1cqw}.competitive-mode-info .warning-icon{font-size:6cqw;font-weight:700;padding:1cqw}.competitive-mode-info span{font-size:3cqw;font-weight:700;color:red;padding:1cqw}.messages-container{flex:1;padding:2.4cqw;overflow-y:auto;background:#f7fafc80}.message{margin-bottom:1.6cqw;padding:1.6cqw 2.4cqw;border-radius:1.2cqw;font-size:3.5cqw}.message.chat{background:#fffc;border:.2cqw solid rgba(226,232,240,.5);border-radius:1.6cqw}.message-author{font-weight:700;color:#4a5568;margin-right:1.6cqw;font-size:3.5cqw}.message-content{color:#2d3748;word-break:break-word;font-size:3.5cqw}.system-message{color:#718096;font-style:italic;font-size:3.5cqw}.message.join .system-message{color:#48bb78}.message.leave .system-message{color:#e53e3e}.ready-message{color:#667eea;font-style:italic;font-size:3.5cqw}.message.ready_change{background:#ebf4ff;padding:1.6cqw;border-radius:1.2cqw}.message-form{display:flex;padding:2.4cqw;background:linear-gradient(135deg,#4a90e2b3,#6bb6d6b3);border-top:.4cqw solid rgba(255,255,255,.2);gap:1.6cqw}.message-form input{flex:1;padding:2cqw 3.2cqw;border:.4cqw solid rgba(255,255,255,.5);border-radius:4cqw;font-size:4cqw;background:#fffffff2;-webkit-backdrop-filter:blur(1cqw);backdrop-filter:blur(1cqw)}.message-form button{padding:1.6cqw 2.6cqw;background:#60a5fae6;color:#fff;border:.4cqw solid rgba(255,255,255,.3);border-radius:4cqw;font-weight:700;cursor:pointer;transition:all .3s;font-size:3.5cqw;white-space:nowrap;width:auto;min-width:12cqw;box-shadow:0 .4cqw 1.2cqw #00000026;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.2)}.message-form button:hover{background:#60a5fa;transform:translateY(-.2cqw);box-shadow:0 .6cqw 1.6cqw #0003}.game-content.game-playing{padding:0;display:flex;flex-direction:column;height:100vh;height:100dvh;height:100svh;overflow:hidden;grid-template-columns:none;position:relative;width:100%;overscroll-behavior:none}.game-content.game-playing .players-panel,.game-content.game-playing .chat-panel{display:none!important}.players-panel{height:fit-content;position:relative;display:flex;flex-direction:row;align-items:stretch;width:100%;background:linear-gradient(135deg,#edf2f7f2,#e2e8f0f2);flex:0 0 auto;border-bottom:.3cqw solid #cbd5e0;padding:2cqw;box-shadow:0 .8cqw 2.4cqw #00000026,0 .4cqw .8cqw #0000001a;z-index:10}.empty-cell{width:22cqw;height:15cqh;min-height:100px}.start-button-cell{width:22cqw;height:17cqw}.start-game-btn-large{width:100%;height:100%;background:linear-gradient(135deg,#4ade80,#22c55e);color:#fff;border:.4cqw solid #16a34a;border-radius:2cqw;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 .8cqw 2.4cqw #22c55e4d,inset 0 .2cqw #fff3;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.start-game-btn-large:hover:not(:disabled){background:linear-gradient(135deg,#86efac,#4ade80);transform:translateY(-.4cqw) scale(1.01);box-shadow:0 1.2cqw 3.2cqw #22c55e66,inset 0 .2cqw #ffffff4d}.start-game-btn-large:disabled{background:linear-gradient(135deg,#9ca3af,#6b7280);border-color:#4b5563;cursor:not-allowed;opacity:.6;box-shadow:none}.start-btn-content{display:flex;flex-direction:column;align-items:center;gap:.5cqw}.start-btn-text{font-size:5cqw;font-weight:900;letter-spacing:.2cqw;text-shadow:.3cqw .3cqw .6cqw rgba(0,0,0,.3)}.start-btn-subtext{font-size:3cqw;font-weight:600;opacity:.9;letter-spacing:.15cqw}.game-content.game-playing .game-board-container{width:100%;height:100%;position:relative;top:0;left:0;display:flex;flex-direction:column;background:transparent;z-index:1;overflow:hidden}.game-bottom-container{position:relative;width:100%;display:flex;flex-direction:column;flex:1}.game-table-area{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.player-slot.selected{border-color:#e53e3e!important;background:#fff5f5!important}.player-slot.swap-source{border-color:#4299e1!important;background:#4299e11a!important;box-shadow:0 0 0 3px #4299e14d!important;animation:pulse 1s infinite}.player-slot.swap-target{cursor:pointer;border-style:dashed!important;border-color:#4299e1!important}.player-slot.swap-target:hover{background:#4299e10d!important;border-color:#2563eb!important}@keyframes pulse{0%{box-shadow:0 0 0 3px #4299e14d}50%{box-shadow:0 0 0 6px #4299e11a}to{box-shadow:0 0 0 3px #4299e14d}}.kick-popup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;gap:2cqw;background:#fff;padding:3cqw;border-radius:2cqw;box-shadow:0 1cqw 3cqw #00000026;z-index:1000}.kick-btn{padding:2cqw 4cqw;background:#ef4444e6;color:#fff;border:none;border-radius:1.5cqw;font-weight:700;cursor:pointer;box-shadow:0 .5cqw 1cqw #0000001a}.kick-btn:hover{background:#ef4444;box-shadow:0 .75cqw 1.5cqw #00000026}.kick-btn:disabled,.swap-btn:disabled{opacity:.5;cursor:not-allowed}.kick-btn:disabled:hover,.swap-btn:disabled:hover{background:inherit;box-shadow:0 .5cqw 1cqw #0000001a}.cancel-btn{padding:2cqw 4cqw;background:#ef4444e6;color:#fff;border:none;border-radius:1.5cqw;font-weight:700;cursor:pointer;box-shadow:0 .5cqw 1cqw #0000001a}.cancel-btn:hover{background:#ef4444;box-shadow:0 .75cqw 1.5cqw #00000026}.message.own-message{background:#ebf4ff}.message.own-message .message-author{color:#5a67d8;font-weight:700}.message.own-message .message-content{color:#667eea;font-weight:500}.game-room-container *{max-width:100%}}.pause-controls{display:flex;flex-direction:column;gap:1cqw;width:100%;height:100%}.resume-btn,.exit-btn{flex:1;border:none;border-radius:2cqw;font-size:4.5cqw;font-weight:700;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;text-transform:uppercase;letter-spacing:.3cqw;color:#fff;display:flex;align-items:center;justify-content:center}.resume-btn{background:linear-gradient(135deg,#48bb78,#38a169);box-shadow:0 .8cqw 2.4cqw #48bb784d,0 .4cqw .8cqw #48bb7833}.resume-btn:hover{background:linear-gradient(135deg,#38a169,#2f855a);transform:translateY(-.2cqw);box-shadow:0 1cqw 3cqw #48bb7866,0 .6cqw 1.2cqw #48bb784d}.exit-btn{background:linear-gradient(135deg,#f56565,#e53e3e);box-shadow:0 .8cqw 2.4cqw #f565654d,0 .4cqw .8cqw #f5656533}.exit-btn:hover{background:linear-gradient(135deg,#e53e3e,#c53030);transform:translateY(-.2cqw);box-shadow:0 1cqw 3cqw #f5656566,0 .6cqw 1.2cqw #f565654d}.resume-btn:active,.exit-btn:active{transform:scale(.98)}@container root (min-width: 1px){.playing-card-panel{position:relative;width:100%;background:radial-gradient(ellipse at center,#142846f2,#0a1428f2);-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);padding:0cqw;border:.6cqw solid rgba(255,255,255,.25);border-radius:2cqw;z-index:110;transition:border-color .3s ease,box-shadow .3s ease,background .3s ease;box-shadow:0 -1cqw 2cqw #0006;flex-shrink:0;height:66cqw}.playing-card-panel.declarer .panel-chat-form{background:radial-gradient(ellipse at center,#ca2020f2 70%,#970f0ff2);border-color:#a0282899;box-shadow:0 -1cqw 2cqw #78141466,inset 0 .2cqw #ffffff26}.playing-card-panel.partner .panel-chat-form{background:radial-gradient(ellipse at center,#203bcff2 70%,#1c31a6f2);border-color:#3246a099;box-shadow:0 -1cqw 2cqw #19287866,inset 0 .2cqw #ffffff26}.playing-card-panel.defender .panel-chat-form{background:radial-gradient(ellipse at center,#23282df2 70%,#14191ef2);border-color:#464b5099;box-shadow:0 -1cqw 2cqw #23282d66,inset 0 .2cqw #ffffff1a}.playing-card-panel.my-turn{border-color:#76ff03!important;box-shadow:0 0 3cqw #76ff0366!important}.playing-card-panel.trick-winner{animation:winner-glow 2s ease-in-out infinite}@keyframes winner-glow{0%,to{border-color:#ffffff4d;box-shadow:0 -.4cqw 1.6cqw #0003}50%{border-color:#76ff03;box-shadow:0 0 4cqw #76ff0399}}.panel-chat-form{display:flex;padding:2cqw 2cqw 1.5cqw;gap:1.5cqw;margin-left:auto;margin-right:auto}.panel-chat-form input{flex:1;background:#00000026;border:.3cqw solid rgba(255,255,255,.2);color:#fff;padding:1cqw 3cqw;border-radius:4cqw;font-size:3.5cqw;outline:none;transition:all .2s}.panel-chat-form input:focus{background:#0000004d;border-color:#ffffff4d}.panel-chat-form input::placeholder{color:#ffffff80}.panel-chat-form button{background:#4caf50;width:13cqw;color:#fff;border:none;padding:2cqw;border-radius:4cqw;cursor:pointer;font-weight:700;font-size:3.5cqw;transition:all .2s}.panel-chat-form button:hover{background:#45a049;transform:scale(1.05)}.panel-chat-form button:disabled{background:#666;cursor:not-allowed;transform:scale(1)}.playing-cards-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,1fr);gap:.5%;width:100%;height:50cqw;margin:0 auto;padding:2cqw 1% 0;background:linear-gradient(135deg,#23282df2,#14191ef2)}.playing-cards-grid .playing-card-wrapper:nth-child(11){grid-column:2}.playing-cards-grid .playing-card-wrapper:nth-child(12){grid-column:3}.playing-cards-grid .playing-card-wrapper:nth-child(13){grid-column:4}.playing-card-wrapper{display:flex;justify-content:center;align-items:center;position:relative;z-index:1;width:100%;touch-action:none}.playing-card-wrapper[draggable=true]{cursor:grab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:element;-webkit-touch-callout:none;position:relative;z-index:10}.playing-card-wrapper[draggable=true]:hover{z-index:20}.playing-card-wrapper[draggable=true]:active{cursor:grabbing;opacity:.8}.playing-card-wrapper[draggable=true]:active{opacity:.5}.playing-card-wrapper.dragging{opacity:.5;transform:scale(.95)}.playing-card-wrapper[draggable=true] .card{transition:transform .2s}.playing-card-wrapper[draggable=true]:hover .card{transform:translateY(-1cqw)}.playing-actions{display:flex;justify-content:center;gap:2cqw;margin-top:3cqw}.confirm-play-btn,.cancel-play-btn{padding:1.6cqw 4cqw;border:none;border-radius:1.6cqw;font-size:2.8cqw;font-weight:700;cursor:pointer;transition:all .2s}.confirm-play-btn{background:#4ecdc4;color:#1a1a1a}.confirm-play-btn:hover{background:#3bbdb5;transform:translateY(-.4cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc466}.cancel-play-btn{background:#fff3;color:#fff;border:.2cqw solid rgba(255,255,255,.3)}.cancel-play-btn:hover{background:#ffffff4d;transform:translateY(-.4cqw)}.turn-indicator,.waiting-turn{text-align:center;color:#fff;font-size:2.8cqw}.turn-indicator{color:#4ecdc4;font-weight:700}.waiting-turn{color:#fff9}.suit-selection-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:3000}.suit-selection-dialog{background:#000000f2;border:.4cqw solid rgba(255,255,255,.3);border-radius:2.4cqw;padding:4cqw;max-width:80cqw;width:90%}.suit-selection-dialog h3{color:#fff;text-align:center;margin-bottom:4cqw;font-size:3.6cqw}.suit-selection-dialog p{color:#fff;margin:2cqw 0;font-size:3.2cqw;text-align:center}.suit-selection-dialog .dialog-subtext{color:#fffc;font-size:2.8cqw;margin-top:1cqw}.suit-options{display:grid;grid-template-columns:repeat(2,1fr);gap:2cqw;margin-bottom:4cqw}.suit-option{display:flex;flex-direction:column;align-items:center;gap:1cqw;padding:3cqw;background:#ffffff1a;border:.4cqw solid rgba(255,255,255,.3);border-radius:1.6cqw;cursor:pointer;transition:all .2s;color:#fff}.suit-option:hover{background:#fff3;transform:translateY(-.4cqw)}.suit-option.selected{background:#4ecdc44d;border-color:#4ecdc4cc;box-shadow:0 0 2cqw #4ecdc480}.suit-option.selected:hover{background:#4ecdc466;border-color:#4ecdc4}.suit-option .suit-symbol{font-size:6.4cqw;font-weight:700}.suit-option.SPADE .suit-symbol,.suit-option.CLUB .suit-symbol{color:#000;text-shadow:0 0 .6cqw rgba(255,255,255,.8)}.suit-option.HEART .suit-symbol,.suit-option.DIAMOND .suit-symbol{color:red}.suit-option .suit-name{font-size:2.8cqw;color:#fffc}.suit-option.disabled{opacity:.4;cursor:not-allowed;background:#80808033}.suit-option.disabled:hover{transform:none;background:#80808033}.suit-option .disabled-text{font-size:2.4cqw;color:#ff6464cc;margin-top:.4cqw}.suit-selection-dialog .trump-info{background:linear-gradient(135deg,#ffd700e6,#ffc107e6);border:.4cqw solid rgba(255,215,0,1);border-radius:1.6cqw;padding:2cqw;margin-bottom:3cqw;text-align:center;color:#000!important;font-size:3.2cqw;font-weight:700;box-shadow:0 .4cqw 2cqw #ffd70066}.trump-display{font-weight:700;font-size:3.6cqw;margin-left:2cqw;color:#000}.trump-display.SPADE,.trump-display.CLUB{color:#000}.trump-display.HEART,.trump-display.DIAMOND{color:#8b0000}.first-trick-warning{background:#ff64641a;border:.2cqw solid rgba(255,100,100,.3);border-radius:1.6cqw;padding:1.6cqw;margin-bottom:3cqw;text-align:center;color:#ffc8c8e6;font-size:2.8cqw}.dialog-buttons{display:flex;gap:2cqw;margin-top:2cqw}.confirm-suit-btn,.cancel-suit-btn{flex:1;padding:2cqw;color:#fff;border:none;border-radius:1.6cqw;font-size:3.2cqw;cursor:pointer;transition:all .2s}.confirm-suit-btn{background:#4ecdc4cc}.confirm-suit-btn:hover:not(:disabled){background:#4ecdc4;transform:translateY(-.4cqw)}.confirm-suit-btn:disabled{background:#80808080;cursor:not-allowed}.cancel-suit-btn{background:#f44336cc}.cancel-suit-btn:hover{background:#f44336;transform:translateY(-.4cqw)}}@container root (min-width: 1px){.deal-miss-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:200}.deal-miss-dialog{background-color:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:2cqw;box-shadow:0 .5cqw 2.5cqw #00000080;width:98cqw;max-width:90cqw;max-height:95cqh;overflow:auto;text-align:center;box-sizing:border-box}.deal-miss-title{color:#ff6b6b;margin:0 0 2cqw;font-weight:700;font-size:5cqw}.deal-miss-message{font-size:3.2cqw;margin-bottom:2cqw;color:#ffffffe6}.deal-miss-message strong{color:gold;font-weight:700}.deal-miss-cards{display:flex;flex-wrap:wrap;gap:.6cqw;justify-content:center;margin-bottom:4cqw;padding:2cqw;background:#ffffff0d;border-radius:1.6cqw}.deal-miss-info{font-size:3.2cqw;color:#95e1d3;margin-bottom:2cqw}.deal-miss-confirm-btn{padding:2cqw 6cqw;font-size:3.5cqw;background-color:#4ecdc4;color:#1a1a1a;border:none;border-radius:1cqw;cursor:pointer;font-weight:700;transition:all .2s ease;box-shadow:0 .4cqw .8cqw #0003}.deal-miss-confirm-btn:hover{background-color:#45b7b8;transform:translateY(-.4cqw);box-shadow:0 .8cqw 1.6cqw #0000004d}.deal-miss-confirm-btn:active{transform:translateY(0)}.deal-miss-dialog::-webkit-scrollbar{width:1.6cqw}.deal-miss-dialog::-webkit-scrollbar-track{background:#ffffff1a;border-radius:.8cqw}.deal-miss-dialog::-webkit-scrollbar-thumb{background:#4ecdc480;border-radius:.8cqw}.deal-miss-dialog::-webkit-scrollbar-thumb:hover{background:#4ecdc4b3}.waiting-container{display:flex;flex-direction:column;align-items:center;gap:2cqw;padding:3cqw}.waiting-message{font-size:3.5cqw;color:#fffc;margin:0}.loading-spinner{width:8cqw;height:8cqw;border:.8cqw solid rgba(255,255,255,.2);border-top:.8cqw solid #4ecdc4;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}}@container root (min-width: 1px){.joker-dialog-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:3000}.joker-dialog{background:#000000f2;border:1cqw solid rgba(255,255,255,.3);border-radius:2cqw;padding:2cqw;max-width:90cqw;width:98cqw;box-shadow:0 .5cqw 2.5cqw #00000080;box-sizing:border-box}.joker-dialog-title{color:#fff;text-align:center;margin:0 0 3cqw;font-size:4cqw}.joker-dialog-message{color:#fff;margin:2cqw 0;font-size:3.5cqw;text-align:center}.joker-dialog-subtext{color:#fffc;font-size:3.2cqw;margin:1cqw 0 3cqw;text-align:center}.joker-trump-info{background:linear-gradient(135deg,#ffd700e6,#ffc107e6);border:.4cqw solid rgba(255,215,0,1);border-radius:1.6cqw;padding:2cqw;margin-bottom:3cqw;text-align:center;color:#000!important;font-size:4cqw;font-weight:700;box-shadow:0 .4cqw 2cqw #ffd70066}.joker-trump-display{font-weight:700;font-size:4.5cqw;margin-left:2cqw;color:#000}.joker-trump-display.SPADE,.joker-trump-display.CLUB{color:#000}.joker-trump-display.HEART,.joker-trump-display.DIAMOND{color:#8b0000}.joker-first-trick-warning{background:#ff64641a;border:.2cqw solid rgba(255,100,100,.3);border-radius:1.6cqw;padding:1.6cqw;margin-bottom:3cqw;text-align:center;color:#ffc8c8e6;font-size:3.5cqw}.joker-suit-options{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6cqw;margin-bottom:4cqw}.joker-suit-btn{display:flex;flex-direction:column;align-items:center;gap:1cqw;padding:2.4cqw;background:#ffffff1a;border:.4cqw solid rgba(255,255,255,.3);border-radius:1.6cqw;cursor:pointer;transition:all .2s;color:#fff;position:relative}.joker-suit-btn:hover{background:#fff3;transform:translateY(-.4cqw)}.joker-suit-btn.selected{background:#4ecdc44d;border-color:#4ecdc4cc;box-shadow:0 0 2cqw #4ecdc480}.joker-suit-btn.selected:hover{background:#4ecdc466;border-color:#4ecdc4}.joker-suit-btn.NO_TRUMP .joker-suit-symbol{color:#4ecdc4;font-size:6cqw;font-weight:700}.joker-suit-btn.disabled{opacity:.4;cursor:not-allowed;background:#80808033}.joker-suit-btn.disabled:hover{transform:none;background:#80808033}.joker-suit-symbol{font-size:7cqw;font-weight:700}.joker-suit-symbol.black{color:#000;text-shadow:0 0 .6cqw rgba(255,255,255,.8)}.joker-suit-symbol.red{color:red}.joker-suit-symbol.notrump{color:#4ecdc4;font-weight:700}.joker-suit-name{font-size:3cqw;color:#fffc}.joker-trump-badge{position:absolute;top:1cqw;right:1cqw;background:linear-gradient(135deg,gold,#ffc107);color:#000;padding:.4cqw 1.2cqw;border-radius:.8cqw;font-size:2.5cqw;font-weight:700;box-shadow:0 .4cqw .8cqw #0003}.joker-dialog-buttons{display:flex;gap:2cqw;margin-top:2cqw}.joker-confirm-btn{flex:1;padding:2cqw;background:#4ecdc4cc;color:#fff;border:none;border-radius:1.6cqw;font-size:3.5cqw;cursor:pointer;transition:all .2s;font-weight:700}.joker-confirm-btn:hover:not(:disabled){background:#4ecdc4;transform:translateY(-.4cqw);box-shadow:0 .8cqw 1.6cqw #0000004d}.joker-confirm-btn:disabled{background:#80808080;cursor:not-allowed}.joker-cancel-btn{flex:1;padding:2cqw;background:#f44336cc;color:#fff;border:none;border-radius:1.6cqw;font-size:3.5cqw;cursor:pointer;transition:all .2s;font-weight:700}.joker-cancel-btn:hover{background:#f44336;transform:translateY(-.4cqw);box-shadow:0 .8cqw 1.6cqw #0000004d}}@container root (min-width: 1px){.game-info{position:relative;top:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-backdrop-filter:blur(2cqw);backdrop-filter:blur(2cqw);padding:.6cqw 1cqw;display:flex;justify-content:center;align-items:center;z-index:100;width:100%;height:12cqw;margin:0;border-bottom:.4cqw solid rgba(255,255,255,.15);box-shadow:0 .4cqw 1.6cqw #0006;flex-shrink:0}.game-info .settings-button{position:absolute;right:2cqw;padding:.8cqw 2cqw;background:transparent;border:none;color:#fff;font-size:7cqw;font-weight:700;cursor:pointer;transition:all .2s}.game-info .settings-button:hover{transform:scale(1.05)}.game-info .settings-button:active{transform:scale(.95);background:transparent}.game-info .go-out-button{position:absolute;left:2cqw;background:transparent;border:none;color:#fff;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;padding-top:1cqw}.game-info .go-out-button .logout-icon{aspect-ratio:1;width:8cqw;height:auto;filter:brightness(0) invert(1)}.game-info .go-out-button:hover{transform:scale(1.05)}.game-info .go-out-button:active{transform:scale(.95);background:transparent}.game-info .pause-button{position:absolute;left:1.6cqw;top:50%;transform:translateY(-50%);background:transparent;border:none;padding:1.2cqw;border-radius:1.6cqw;font-size:7cqw;cursor:pointer;transition:all .2s;color:#fff;display:flex;align-items:center;justify-content:center;z-index:10}.game-info .pause-button:hover{transform:translateY(-50%) scale(1.05)}.game-info .pause-button:active{transform:translateY(-50%) scale(.95)}.game-info-content{display:flex;align-items:center;justify-content:center;color:#fff;font-size:7cqw;font-weight:700;gap:1cqw}.label-text{font-size:4cqw;font-weight:700;margin-right:.8cqw}.score-item{padding:.4cqw 1.2cqw;background:#fff3;border:.2cqw solid rgba(255,255,255,.3);border-radius:1.2cqw;color:#fff;text-shadow:0 .2cqw .4cqw rgba(0,0,0,.3);width:24cqw;font-size:5cqw;text-align:center}.contract-item{padding:.8cqw 2cqw;background:#0707044d;border:.2cqw solid rgba(255,215,0,.4);border-radius:1.2cqw;display:flex;align-items:center;gap:.8cqw;color:#fff;text-shadow:0 .2cqw .4cqw rgba(0,0,0,.5);width:24cqw;justify-content:center;font-size:4cqw}.partner-card-info{padding:.8cqw 2cqw;background:#ffd7004d;border:.2cqw solid rgba(255,215,0,.4);border-radius:1.2cqw;display:flex;align-items:center;gap:.8cqw;color:gold;text-shadow:0 .2cqw .4cqw rgba(0,0,0,.5);width:28cqw;justify-content:center}.partner-card{font-weight:700;font-size:3.5cqw}.partner-card.SPADE,.partner-card.CLUB{color:#fff;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.8)}.partner-card.HEART,.partner-card.DIAMOND{color:#ff6b6b;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.5)}.partner-card.NO_TRUMP{color:#13aa2c}.no-partner{font-weight:700;font-size:3cqw;color:gold;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.5)}.trump-suit{font-size:5cqw;font-weight:700;margin-left:.4cqw}.trump-suit.SPADE,.trump-suit.CLUB{color:#fff;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.8)}.trump-suit.HEART,.trump-suit.DIAMOND{color:#ff6b6b;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.5)}.trump-suit.NO_TRUMP{font-size:2.8cqw;color:#4ecdc4;text-shadow:0 .2cqw .4cqw rgba(0,0,0,.5)}.partner-bar{position:absolute;top:15cqw;left:30%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;padding:1.2cqw 1.2cqw 1.2cqw 3.2cqw;background:#000c;border-radius:4cqw;font-size:3.2cqw;z-index:10}.partner-content{display:flex;align-items:center;gap:1.6cqw}.partner-content-value{display:flex;align-items:center;gap:1.6cqw;background:#fff;border-radius:3cqw;padding:0 3cqw;height:7cqw}.lead-suit-bar{position:absolute;top:15cqw;right:30%;transform:translate(50%);display:flex;align-items:center;justify-content:center;padding:1.2cqw 1.2cqw 1.2cqw 3.2cqw;background:#000c;border-radius:4cqw;font-size:3.2cqw;z-index:10}.lead-suit-content{display:flex;align-items:center;gap:1.6cqw}.lead-suit-content-value{display:flex;align-items:center;gap:1.6cqw;background:#fff;border-radius:3cqw;padding:0 2cqw;height:7cqw}.partner-bar .label-text,.lead-suit-bar .label-text{font-size:3.5cqw;font-weight:700;margin-right:.8cqw;color:#ecf0f1}.partner-bar .partner-card{font-weight:700;font-size:3.5cqw}.partner-bar .partner-card-suit{font-weight:700;font-size:5cqw}.partner-bar .partner-card.SPADE,.partner-bar .partner-card.CLUB,.partner-bar .partner-card-suit.SPADE,.partner-bar .partner-card-suit.CLUB{color:#2c3e50}.partner-bar .partner-card.HEART,.partner-bar .partner-card.DIAMOND,.partner-bar .partner-card-suit.HEART,.partner-bar .partner-card-suit.DIAMOND{color:#e74c3c}.partner-bar .partner-player{font-weight:700;font-size:3cqw;color:#0707044d;text-shadow:.2cqw .2cqw .4cqw rgba(0,0,0,.5)}.lead-suit-label{color:#ecf0f1;font-size:4cqw;font-weight:500}.lead-suit-symbol{font-size:5cqw;font-weight:700}.lead-suit-symbol.SPADE,.lead-suit-symbol.CLUB{color:#2c3e50}.lead-suit-symbol.HEART,.lead-suit-symbol.DIAMOND{color:#e74c3c}.lead-suit-symbol.NO_TRUMP{color:#4ecdc4;font-size:3.6cqw}}@container root (min-width: 1px){.end-game-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.end-game-dialog{background:#fff;border-radius:2.4cqw;padding:4cqw;width:90cqw;max-width:80cqw;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(4cqw);opacity:0}to{transform:translateY(0);opacity:1}}.end-game-dialog h2{margin:0 0 3cqw;font-size:5cqw;color:#2c3e50;text-align:center}.end-game-dialog p{margin:2cqw 0;font-size:4cqw;color:#34495e;text-align:center;line-height:1.5}.end-game-dialog strong{color:#e74c3c;font-weight:700}.end-game-buttons{display:flex;gap:2cqw;margin-top:4cqw;justify-content:center}.confirm-button,.reject-button{padding:2cqw 4cqw;border-radius:1.2cqw;border:none;font-size:4cqw;font-weight:700;cursor:pointer;transition:all .2s;min-width:20cqw}.confirm-button{background:linear-gradient(135deg,#4ecdc4,#44a3aa);color:#fff}.confirm-button:hover{background:linear-gradient(135deg,#44a3aa,#3a8991);transform:translateY(-.2cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc44d}.reject-button{background:#ecf0f1;color:#2c3e50}.reject-button:hover{background:#d5dbdd;transform:translateY(-.2cqw)}}@container root (min-width: 1px){.competitive-result-dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.competitive-result-dialog{background:#fff;border-radius:2.4cqw;width:98cqw;max-height:85cqh;display:flex;flex-direction:column;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out;position:relative;padding:4cqw;align-items:center;justify-content:center}.dialog-header{text-align:center;margin-bottom:3cqw;padding-bottom:.5cqw;border-bottom:.3cqw solid #e0e0e0;width:100%}.dialog-header h2{margin:0;color:#333;font-size:5cqw;font-weight:700}.competitive-info{width:100%;background:#7483e4;color:#fff;border-radius:1cqw;padding:1cqw;font-size:4cqw;font-weight:700;text-align:center}.score-table{margin:3cqw 0;overflow-x:auto}.score-table table{width:100%;border-collapse:collapse}.score-table th{background:#764ba2;color:#fff;padding:1cqw;text-align:center;font-size:3.5cqw;font-weight:600}.score-table th.header-rank,.score-table th.header-game-score,.score-table th.header-timeout{width:16cqw}.score-table td{padding:1cqw;text-align:center;border-bottom:.2cqw solid #e0e0e0;font-size:3.5cqw}.rank-1{background:linear-gradient(135deg,#fff9e6,#ffedd1)}.rank-2{background:linear-gradient(135deg,#f0f0f0,#e8e8e8)}.rank-3{background:linear-gradient(135deg,#ffe4d1,#ffd4b8)}.rank-cell{font-weight:700;align-items:center;justify-content:center;gap:1cqw}.rank-number{color:#333}.medal{font-size:4cqw}.player-cell{font-weight:600;color:#333}.game-score-cell{color:#666}.score-cell{text-align:left;color:#333}.new-score-cell strong{font-size:4cqw;color:#13aa2c}.score-won-fomula{font-size:3.4cqw}.dialog-footer{margin-top:5cqw;text-align:center}.confirm-btn{background:#48bb78;color:#fff;border:none;padding:2cqw 8cqw;border-radius:2cqw;font-size:4cqw;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 .5cqw 2cqw #667eea66}.confirm-btn:hover{transform:translateY(-.5cqw);box-shadow:0 1cqw 3cqw #667eea99}.confirm-btn:active{transform:translateY(0)}@keyframes slideUp{0%{opacity:0;transform:translateY(5cqw)}to{opacity:1;transform:translateY(0)}}}@container root (min-width: 1px){.edit-competitive-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.edit-competitive-dialog{background:#fff;border-radius:2.4cqw;width:98cqw;max-height:85cqh;display:flex;flex-direction:column;box-shadow:0 2cqw 8cqw #0000004d;animation:slideUp .3s ease-out;position:relative;padding:4cqw;align-items:center;justify-content:center}.edit-competitive-dialog h2{margin:0 0 4cqw;color:#1f2937;font-size:5cqw;text-align:center}.edit-competitive-dialog .edit-competitive-settings-dialog-buttons{display:flex;gap:3cqw;justify-content:center;margin-top:4cqw;width:100%}.edit-competitive-dialog .edit-competitive-settings-dialog-buttons button{padding:2.5cqw 6cqw;border:none;border-radius:2cqw;font-size:3.5cqw;font-weight:600;cursor:pointer;transition:all .2s;width:50%}.edit-competitive-settings-dialog-buttons .save-btn{background:#3b82f6;color:#fff}.edit-competitive-settings-dialog-buttons .save-btn:hover{background:#2563eb}.edit-competitive-settings-dialog-buttons .cancel-btn{background:#e5e7eb;color:#374151}.edit-competitive-settings-dialog-buttons .cancel-btn:hover{background:#d1d5db}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}}.card-gallery-container{width:100%;min-height:100vh;padding:20px;background:#2d4a2b;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;height:100vh}.gallery-header{text-align:center;margin-bottom:30px;padding:20px;background:#fffffff2;border-radius:8px;box-shadow:0 2px 8px #0003}.gallery-header h1{color:#333;font-size:1.8rem;margin:0}.gallery-controls{background:#fffffff2;padding:20px;border-radius:8px;margin-bottom:30px;box-shadow:0 2px 8px #0003}.control-group{display:inline-block;margin-right:40px}.control-group label{display:inline-block;font-weight:700;margin-right:15px;color:#333;font-size:16px}.button-group{display:flow;gap:10px}.button-group button{padding:8px 20px;background:#f0f0f0;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease;margin:5px}.button-group button:hover{background:#e0e0e0}.button-group button.active{background:#4caf50;color:#fff;border-color:#4caf50}.cards-section{background:#fffffff2;padding:20px;border-radius:8px;margin-bottom:20px;box-shadow:0 2px 8px #0003}.suit-group{margin-bottom:30px}.suit-group:last-child{margin-bottom:0}.suit-title{font-size:1.3rem;font-weight:700;margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #eee}.suit-title.spade,.suit-title.club{color:#000}.suit-title.diamond,.suit-title.heart{color:#d32f2f}.gallery-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:15px;background:#1a1a1a;border-radius:4px}.card-item{display:flex;flex-direction:column;align-items:center;gap:5px}.card-label{font-size:11px;font-weight:700;color:#666;text-align:center}.gallery-info{background:#fffffff2;padding:20px;border-radius:8px;box-shadow:0 2px 8px #0003}.gallery-info h3{color:#333;margin-bottom:15px;font-size:1.2rem}.gallery-info ul{list-style:disc;padding-left:25px;margin:0}.gallery-info li{padding:5px 0;color:#555;font-size:14px}.gallery-info li strong{color:#333}.card-gallery-container .card-css-fallback{display:none!important}.card-gallery-container .card{opacity:1!important;filter:none!important}.card-gallery-container .card.not-playable{opacity:1!important;filter:none!important;cursor:default}.card-gallery-container .card-image{opacity:1!important;filter:none!important}@container root (min-width: 1px){.tutorial-overlay{position:fixed;top:0;width:100cqw;height:100cqh;z-index:10000;pointer-events:none}.tutorial-backdrop{position:absolute;inset:0}.tutorial-shadow,.tutorial-shadow-full{position:absolute;background:#000000bf;pointer-events:all}.tutorial-shadow-full{inset:0}.tutorial-highlight{position:absolute;border:.6cqw solid #4ecdc4;border-radius:1.6cqw;box-shadow:0 0 0 9999px #000000bf,0 0 4cqw #4ecdc499;animation:tutorial-pulse 2s ease-in-out infinite;pointer-events:none}@keyframes tutorial-pulse{0%,to{box-shadow:0 0 0 9999px #000000bf,0 0 4cqw #4ecdc499}50%{box-shadow:0 0 0 9999px #000000bf,0 0 7cqw #4ecdc4e6}}.tutorial-tooltip-wrapper{position:absolute;pointer-events:none;display:flex;justify-content:center;align-items:center}.tutorial-tooltip{background:#fff;border-radius:2.4cqw;box-shadow:0 2cqw 8cqw #0000004d;max-width:92cqw;min-width:92cqw;pointer-events:all;animation:tutorial-fadeIn .3s ease-out;margin:4cqw}@keyframes tutorial-fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tutorial-header{display:flex;justify-content:space-between;align-items:center;padding:4cqw 4cqw 0;border-bottom:none}.tutorial-header h3{margin:0;font-size:4.5cqw;font-weight:600;color:#2c3e50}.tutorial-close{background:none;border:none;font-size:6cqw;color:#95a5a6;cursor:pointer;padding:0;width:7.5cqw;height:7.5cqw;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.tutorial-close:hover{background:#f0f0f0;color:#2c3e50}.tutorial-content{padding:3cqw 4cqw 4cqw}.tutorial-content p{margin:0;font-size:3.5cqw;line-height:1.6;color:#555}.tutorial-footer{padding:0 4cqw 4cqw}.tutorial-progress{height:.8cqw;background:#ecf0f1;border-radius:.4cqw;margin-bottom:4cqw;overflow:hidden}.tutorial-progress-bar{height:100%;background:linear-gradient(90deg,#4ecdc4,#44a3aa);border-radius:.4cqw;transition:width .3s ease}.tutorial-navigation{display:flex;justify-content:space-between;align-items:center}.tutorial-step-counter{font-size:3.5cqw;color:#7f8c8d;font-weight:500}.tutorial-buttons{display:flex;gap:2cqw}.tutorial-btn{padding:1.2cqw 2.4cqw;border-radius:1.2cqw;border:none;font-size:3.25cqw;font-weight:500;cursor:pointer;transition:all .2s}.tutorial-btn-primary{background:linear-gradient(135deg,#4ecdc4,#44a3aa);color:#fff}.tutorial-btn-primary:hover{background:linear-gradient(135deg,#44a3aa,#3a8991);transform:translateY(-.2cqw);box-shadow:0 .8cqw 2.4cqw #4ecdc44d}.tutorial-btn-secondary{background:#ecf0f1;color:#2c3e50}.tutorial-btn-secondary:hover{background:#d5dbdd}.tutorial-btn-skip{background:transparent;color:#95a5a6;border:.2cqw solid #ecf0f1}.tutorial-btn-skip:hover{background:#ecf0f1;color:#7f8c8d}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-webkit-touch-callout:none}body{margin:0;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:linear-gradient(135deg,#87ceeb,#6bb6d6,#4a90e2);min-height:100vh;min-height:100dvh;min-height:100svh;position:relative;justify-items:center}#root{min-height:100vh;min-height:100dvh;min-height:100svh;position:relative;aspect-ratio:1/1.8;width:min(100dvw,100dvh / 1.8);height:auto;max-height:100dvh;container-type:size;container-name:root}body.mobile-device{position:fixed;overflow:hidden;width:100%;height:100%}body.mobile-device #root{aspect-ratio:unset;width:100dvw;height:100dvh;position:fixed;top:0;left:0;overflow:hidden}@media (min-aspect-ratio: 10/18){body.mobile-device:not(.admin-view) #root{aspect-ratio:1/1.8;width:min(100dvw,100dvh / 1.8);height:auto;max-height:100dvh;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);overflow:hidden}body.mobile-device.admin-view #root{width:100dvw!important;height:100dvh!important;aspect-ratio:unset!important;position:fixed!important;top:0!important;left:0!important;transform:none!important;overflow:hidden!important}}@media (pointer: coarse) and (hover: none){body{position:fixed;overflow:hidden;width:100%;height:100%}body:not(.admin-view) #root{aspect-ratio:unset;width:100dvw;height:100dvh;position:fixed;top:0;left:0;overflow:hidden}body.admin-view #root{width:100dvw!important;height:100dvh!important;aspect-ratio:unset!important;position:fixed!important;top:0!important;left:0!important;transform:none!important;overflow:hidden!important}}@media (pointer: coarse) and (hover: none) and (min-aspect-ratio: 10/18){body:not(.admin-view) #root{aspect-ratio:1/1.8;width:min(100dvw,100dvh / 1.8);height:auto;max-height:100dvh;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);overflow:hidden}body.admin-view #root{width:100dvw!important;height:100dvh!important;aspect-ratio:unset!important;position:fixed!important;top:0!important;left:0!important;transform:none!important;overflow:hidden!important}}@media (pointer: fine) and (hover: hover) and (max-width: 768px){#root{aspect-ratio:1/1.8;width:min(100dvw,100dvh / 1.8);height:auto;max-height:100dvh}}h1,h2,h3,h4,h5,h6{margin:0}button,input,textarea{font-family:inherit}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
