:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}#root{height:100vh;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{height:100vh;background:#f0f2f5;color:#333}.game-layout{display:flex;flex-direction:column;height:100vh}.game-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fff;border-bottom:1px solid #e1e5e9;height:70px}.game-title{font-size:1.5rem;font-weight:700;color:#1a1a1a}.user-profile{display:flex;align-items:center;gap:.75rem}.user-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid #e1e5e9}.user-avatar img{width:100%;height:100%;object-fit:cover}.username{font-weight:600;color:#1a1a1a;font-size:1rem}.game-main{display:flex;flex:1;overflow:hidden}.players-sidebar{width:250px;background:#fff;border-right:1px solid #e1e5e9;padding:1rem;overflow-y:auto}.other-player-card{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e1e5e9}.player-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0}.player-avatar img{width:100%;height:100%;object-fit:cover}.player-info{flex:1;min-width:0}.player-name{font-weight:600;color:#1a1a1a;margin-bottom:.25rem}.player-balance{font-size:.8rem;color:#666}.player-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;max-width:60px}.card-back-mini{width:8px;height:12px;background:#bbb;border-radius:2px}.game-board-container{flex:1;display:flex;align-items:center;justify-content:center;background:#f8f9fa;padding:2rem;overflow:auto}.game-board{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;min-width:900px}.board-grid{display:flex;flex-direction:column;gap:.5rem}.grid-header{display:grid;grid-template-columns:60px repeat(9,1fr);gap:.5rem;margin-bottom:.5rem}.corner-cell{width:60px;height:40px}.rank-header{display:flex;align-items:center;justify-content:center;height:40px;font-weight:700;font-size:1.1rem;color:#333;background:#f8f9fa;border-radius:6px;border:1px solid #e1e5e9;min-width:74px}.grid-row{display:grid;grid-template-columns:60px repeat(9,1fr);gap:.5rem;align-items:center}.suit-header{display:flex;align-items:center;justify-content:center;width:60px;height:78px;background:#f8f9fa;border-radius:8px;border:1px solid #e1e5e9}.suit-header .suit-symbol{font-size:2rem;font-weight:700}.suit-symbol.hearts,.suit-symbol.diamonds{color:#dc3545}.suit-symbol.clubs,.suit-symbol.spades{color:#333}.card-position{display:flex;align-items:center;justify-content:center;height:88px;width:64px}.card-placeholder{width:64px;height:88px;border-radius:6px;border:2px dashed #dee2e6;background:transparent;transition:all .2s ease;position:relative}.card-placeholder.in-hand{border-color:#ffc107;border-width:2px}.card-placeholder.empty{border-color:#dee2e6;border-width:2px}.placeholder-rank,.placeholder-suit{display:none}.card{width:64px;height:88px;border-radius:6px;border:none;background:transparent;cursor:pointer;transition:all .2s ease;position:relative;padding:0;overflow:hidden}.card-image{width:100%;height:100%;object-fit:contain;pointer-events:none;border-radius:6px}.card:hover{transform:translateY(-3px);box-shadow:0 4px 8px #0003}.card.playable{cursor:pointer}.card.playable:hover{transform:translateY(-5px);box-shadow:0 6px 12px #28a7454d}.card.playable:after{content:"";position:absolute;inset:-2px;background:transparent;border:3px solid #28a745;border-radius:8px;pointer-events:none}.card-rank,.card-suit,.card-rank.red,.card-suit.red,.card-rank.black,.card-suit.black{display:none}.game-sidebar-right{width:200px;background:#fff;border-left:1px solid #e1e5e9;padding:1rem}.current-player-section{background:#fff;border-top:1px solid #e1e5e9;padding:1rem 2rem;height:120px}.current-player-container{max-width:1200px;margin:0 auto;height:100%}.player-label{font-size:.9rem;color:#666;margin-bottom:.5rem}.current-player-content{display:flex;justify-content:space-between;align-items:center;height:calc(100% - 1.5rem)}.current-player-hand{flex:1}.hand-cards{display:flex;gap:.5rem;align-items:center}.hand-cards .card{width:64px;height:88px;margin:0}.current-player-info{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.balance-info{font-size:.9rem;color:#666}.error-message{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:8px;padding:.75rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.error-message button{background:none;border:none;color:#721c24;font-size:1.2rem;cursor:pointer;padding:0;margin-left:.5rem}.room-manager{max-width:1200px;margin:0 auto;padding:2rem}.connection-status{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;font-weight:500;margin-bottom:1rem;font-size:.9rem}.connection-status.connected{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.connection-status.connecting{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.connection-status.disconnected{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.lobby{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a}.lobby-content{display:flex;gap:2rem;align-items:flex-start}.lobby-left{min-width:300px;flex-shrink:0}.lobby-right{flex:1}.player-name-section{margin-bottom:2rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50}.form-group input{width:100%;padding:.75rem;border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;box-sizing:border-box;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#3498db}.form-group input:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.lobby-actions{margin-bottom:2rem}.create-room-btn{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%}.create-room-btn:hover:not(:disabled){background:#2980b9}.create-room-btn:disabled{background:#bdc3c7;cursor:not-allowed}.room-list{border-left:2px solid #e1e8ed;padding-left:2rem;font-weight:600;font-size:1.1rem;color:#2c3e50;margin-bottom:1rem}.no-rooms{text-align:center;color:#7f8c8d;font-style:italic;padding:2rem;background:#f8f9fa;border-radius:8px;margin-top:1rem}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem}.room-card{background:#fff;border:2px solid #e1e8ed;border-radius:8px;padding:1rem;transition:all .2s}.room-card:hover{border-color:#3498db;box-shadow:0 2px 8px #3498db33}.room-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.room-name{font-weight:600;font-size:1.1rem;color:#2c3e50}.room-status{font-size:.85rem;padding:.25rem .5rem;border-radius:4px;background:#f8f9fa;color:#6c757d}.room-details{margin-bottom:1rem;font-size:.9rem;color:#7f8c8d}.room-details div{margin-bottom:.25rem}.join-room-btn{width:100%;background:#27ae60;color:#fff;border:none;padding:.5rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.join-room-btn:hover:not(:disabled){background:#229954}.join-room-btn:disabled,.join-room-btn.disabled{background:#bdc3c7;cursor:not-allowed}.room-form{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;max-width:400px;margin:0 auto}.form-buttons{display:flex;gap:1rem;margin-top:1.5rem}.form-buttons button{flex:1;padding:.75rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.form-buttons button[type=submit]{background:#3498db;color:#fff}.form-buttons button[type=submit]:hover:not(:disabled){background:#2980b9}.form-buttons button[type=button]{background:#95a5a6;color:#fff}.form-buttons button[type=button]:hover:not(:disabled){background:#7f8c8d}.form-buttons button:disabled{background:#bdc3c7;cursor:not-allowed}.warning-message{background:#fff3cd;color:#856404;border:1px solid #ffeaa7;border-radius:8px;padding:.75rem;margin-top:1rem;font-size:.9rem}.room-info{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;max-width:600px;margin:0 auto}.room-info .room-header{text-align:center;margin-bottom:2rem}.room-title{font-size:1.5rem;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.room-id{font-size:.9rem;color:#7f8c8d;font-family:Monaco,Menlo,monospace}.players-list{margin-bottom:2rem}.players-title{font-weight:600;color:#2c3e50;margin-bottom:1rem;font-size:1.1rem}.players-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.player-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e1e5e9}.player-item.host{background:#e3f2fd;border-color:#bbdefb}.player-details{flex:1}.player-details .player-name{font-weight:600;margin-bottom:.25rem}.host-badge{background:#2196f3;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500}.start-game-button,.back-to-lobby-button{width:100%;padding:.75rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s;margin-bottom:1rem}.start-game-button{background:#27ae60;color:#fff}.start-game-button:hover{background:#229954}.back-to-lobby-button{background:#95a5a6;color:#fff}.back-to-lobby-button:hover{background:#7f8c8d}.waiting-message{text-align:center;color:#7f8c8d;font-style:italic;padding:1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1rem}
