:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Space Grotesk", monospace;--bg-dark:#070e0f;--bg-table:radial-gradient(circle, #0e2a21 0%, #061410 100%);--panel-bg:#0f221eb3;--panel-border:#22c55e33;--text-primary:#f8fafc;--text-secondary:#94a3b8;--color-gold:#f59e0b;--color-gold-hover:#d97706;--color-green:#22c55e;--color-green-hover:#16a34a;--color-red:#ef4444;--color-blue:#3b82f6;--color-violet:#8b5cf6;--shadow-premium:0 8px 32px 0 #00000080;--glass-blur:blur(12px);--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-dark);background-image:var(--bg-table);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100dvh;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100dvh;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#22c55e4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#22c55e80}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--panel-border);box-shadow:var(--shadow-premium);border-radius:16px}.btn{font-family:var(--font-mono);cursor:pointer;transition:var(--transition-smooth);text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-weight:700;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--color-green) 0%, #10b981 100%);color:#052e16;box-shadow:0 4px 14px #22c55e66}.btn-primary:hover{background:linear-gradient(135deg,#4ade80 0%,#34d399 100%);transform:translateY(-2px);box-shadow:0 6px 20px #22c55e99}.btn-secondary{color:var(--text-primary);background:#ffffff1a;border:1px solid #ffffff26}.btn-secondary:hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg, var(--color-red) 0%, #b91c1c 100%);color:#fff;box-shadow:0 4px 14px #ef444466}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444499}.btn-gold{background:linear-gradient(135deg, var(--color-gold) 0%, #d97706 100%);color:#451a03;box-shadow:0 4px 14px #f59e0b66}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f59e0b99}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 15px #22c55e66}50%{box-shadow:0 0 30px #22c55ecc}}@keyframes pulse-gold-glow{0%,to{box-shadow:0 0 15px #f59e0b66}50%{box-shadow:0 0 30px #f59e0bcc}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes deal-card{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)rotate(0)}to{opacity:1;transform:translate(0, 0) scale(1) rotate(var(--card-rotation,0deg))}}.animate-float{animation:4s ease-in-out infinite float}.title-gradient{background:linear-gradient(135deg,#f59e0b 0%,#10b981 100%);-webkit-text-fill-color:transparent;font-family:var(--font-mono);text-shadow:0 0 30px #10b98133;-webkit-background-clip:text;font-weight:800}.app-container{flex-direction:column;align-items:center;min-height:100dvh;padding:20px;display:flex;position:relative}.lobby-screen{text-align:center;flex-direction:column;align-items:center;gap:30px;width:100%;max-width:800px;margin:auto;padding:40px;animation:.5s fadeInUp;display:flex}.lobby-logo{margin-bottom:10px;line-height:1}.lobby-logo-img{object-fit:contain;filter:drop-shadow(0 8px 16px #00000080);width:auto;height:120px}.lobby-subtitle{color:var(--text-secondary);max-width:500px;margin-bottom:20px;font-size:1.1rem}.lobby-teams-container{grid-template-columns:1fr 1fr;gap:24px;width:100%;margin-bottom:20px;display:grid}.lobby-team-panel{flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex}.lobby-team-panel.team-a{border-color:#3b82f666}.lobby-team-panel.team-b{border-color:#8b5cf666}.team-title{font-family:var(--font-mono);align-items:center;gap:8px;font-size:1.4rem;font-weight:700;display:flex}.team-a .team-title{color:var(--color-blue)}.team-b .team-title{color:var(--color-violet)}.player-slots{flex-direction:column;justify-content:center;gap:10px;width:100%;min-height:100px;display:flex}.player-slot{font-family:var(--font-mono);background:#0000004d;border:1px solid #ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.player-slot.occupied{border-color:#ffffff26}.player-name{align-items:center;gap:8px;display:flex}.player-avatar{font-size:1.2rem}.join-hint{color:var(--text-secondary);font-size:.9rem;font-style:italic}.game-screen{flex-direction:column;justify-content:space-between;width:100%;max-width:1200px;height:90dvh;margin:auto;animation:.4s fadeInUp;display:flex;position:relative}.game-header{justify-content:center;align-items:center;margin-bottom:2px;padding:4px;display:flex}.game-title{font-size:1.5rem}.score-board{gap:20px;display:flex}.score-badge{font-family:var(--font-mono);border-radius:20px;padding:6px 16px;font-size:.9rem;font-weight:700}.score-badge.team-a{border:1px solid var(--color-blue);color:#93c5fd;background:#3b82f633}.score-badge.team-b{border:1px solid var(--color-violet);color:#ddd6fe;background:#8b5cf633}.table-container{outline-offset:-8px;background:radial-gradient(circle,#0c4d32 0%,#052618 100%);border:10px solid #27140a;border-radius:40px;outline:2px solid #d97706;flex:1;grid-template:"pileA partner pileB"90px"opp1 center opp2"1fr".player."130px/130px 1fr 130px;margin:10px 0;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 80px #000c,0 16px 36px #0009}.table-container:before{content:"";pointer-events:none;z-index:0;border:1px dashed #d9770640;border-radius:50%;position:absolute;inset:15%}.seat-pile-a{grid-area:pileA;justify-content:center;align-items:center;padding-top:10px;padding-left:10px;display:flex}.seat-pile-b{grid-area:pileB;justify-content:center;align-items:center;padding-top:10px;padding-right:10px;display:flex}.seat-partner{flex-direction:column;grid-area:partner;justify-content:center;align-items:center;display:flex}.seat-opponent-left{flex-direction:column;grid-area:opp1;justify-content:center;align-items:center;display:flex}.seat-opponent-right{flex-direction:column;grid-area:opp2;justify-content:center;align-items:center;display:flex}.seat-self{flex-direction:column;grid-area:player;justify-content:center;align-items:center;width:100%;padding-bottom:5px;display:flex}.player-plate{text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-width:90px;padding:4px 10px;display:flex;position:relative}.player-plate.active-turn{animation:2s ease-in-out infinite pulse-gold-glow;box-shadow:0 0 15px #f59e0b99;border:2.5px solid var(--color-gold)!important}.player-plate.active-turn-me{animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 15px #22c55e99;border:2.5px solid var(--color-green)!important}.player-plate.team-a-plate{background:#1e293bcc;border:1px solid #3b82f64d}.player-plate.team-b-plate{background:#2e1065cc;border:1px solid #8b5cf64d}.player-plate .avatar{font-size:1.1rem}.player-plate .name{text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:.75rem;font-weight:600;overflow:hidden}.player-plate .role{color:var(--text-secondary);font-size:.65rem}.player-plate .card-count{font-size:.65rem;font-family:var(--font-mono);background:#0006;border-radius:8px;margin-top:2px;padding:1px 4px}.game-info-bar{justify-content:center;align-items:center;padding:10px;display:flex}.table-center{flex-direction:column;grid-area:center;justify-content:center;align-items:center;gap:20px;display:flex;position:relative}.deck-pile-container{justify-content:center;align-items:center;gap:30px;display:flex}.card-stack{cursor:pointer;perspective:1000px;border-radius:10px;width:90px;height:130px;position:relative}.card-stack-back{transition:var(--transition-smooth);background:linear-gradient(135deg,#115e59 0%,#111827 100%);border:2px solid #2dd4bf;justify-content:center;align-items:center;font-size:1.8rem;display:flex;box-shadow:0 4px 10px #00000080}.card-stack-back:hover{transform:translateY(-4px)scale(1.05);box-shadow:0 8px 20px #2dd4bf66}.card-stack-empty{color:var(--text-secondary);font-size:.8rem;font-family:var(--font-mono);background:#0003;border:2px dashed #ffffff26;justify-content:center;align-items:center;display:flex}.playing-card{color:#0f172a;cursor:pointer;-webkit-user-select:none;user-select:none;width:90px;height:130px;transition:var(--transition-smooth);background:#f8fafc;border-radius:10px;flex-direction:column;justify-content:space-between;padding:10px;animation:.3s cubic-bezier(.34,1.56,.64,1) forwards deal-card;display:flex;position:relative;box-shadow:0 4px 12px #0000004d}.playing-card:hover{box-shadow:0 12px 24px #00000080;z-index:100!important;transform:translateY(-16px)scale(1.08)!important}.playing-card.suit-oros{color:#d97706}.playing-card.suit-copas{color:#dc2626}.playing-card.suit-espadas{color:#2563eb}.playing-card.suit-bastos{color:#16a34a}.playing-card.suit-hearts{color:#dc2626}.playing-card.suit-diamonds{color:#ea580c}.playing-card.suit-clubs{color:#1e293b}.playing-card.suit-spades{color:#0f172a}.card-top{font-family:var(--font-mono);justify-content:space-between;font-size:1.1rem;font-weight:700;display:flex}.card-center{align-self:center;font-size:2.2rem}.card-bottom{font-family:var(--font-mono);justify-content:space-between;font-size:1.1rem;font-weight:700;display:flex;transform:rotate(180deg)}.user-hand-container{justify-content:center;align-items:flex-end;width:100%;max-width:650px;min-height:180px;margin-top:10px;padding:0 40px;display:flex;position:relative}.fanned-card{transition:var(--transition-smooth);transform-origin:bottom;border-radius:10px;margin-left:-35px}.fanned-card:first-child{margin-left:0}.fanned-card:hover{z-index:200!important}.played-cards-area{justify-content:center;align-items:center;gap:15px;width:100%;min-height:120px;display:flex}.played-card-container{z-index:1;background:#00000040;border:1px dashed #d977064d;border-radius:10px;flex-direction:column;align-items:center;gap:6px;min-width:80px;min-height:124px;padding:6px 10px;display:flex;box-shadow:inset 0 2px 8px #00000080}.played-card-container .playing-card{width:72px;height:104px;padding:5px}.played-card-label{color:var(--text-secondary);font-size:.75rem;font-family:var(--font-mono)}.status-msg{font-family:var(--font-mono);color:var(--color-gold);text-shadow:0 0 10px #f59e0b4d;text-align:center;font-weight:700}.action-bar{justify-content:center;gap:12px;margin-top:10px;display:flex}.cut-deck-options{flex-direction:column;gap:12px;width:100%;max-width:400px;margin:20px auto 0;display:flex}.team-won-pile{background:#0006;border:1px solid #ffffff0d;border-radius:12px;flex-direction:column;align-items:center;gap:8px;min-width:100px;padding:10px;display:flex}.team-won-pile.team-a{border-color:#3b82f633}.team-won-pile.team-b{border-color:#8b5cf633}.pile-title{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:.75rem}.team-a .pile-title{color:#93c5fd}.team-b .pile-title{color:#ddd6fe}.mini-card-stack{width:50px;height:70px;position:relative}.mini-won-card{width:44px;height:62px;transition:var(--transition-smooth);border:1px solid #ffffff1a;border-radius:4px;position:absolute;box-shadow:0 4px 8px #0009}.lead-card-container{animation:2s ease-in-out infinite lead-glow-pulse;position:relative;border-color:#f59e0b!important;box-shadow:0 0 20px #f59e0b99,inset 0 2px 8px #0009!important}.lead-playing-card{border:3px solid #f59e0b!important;box-shadow:0 0 15px #f59e0bcc!important}@keyframes lead-glow-pulse{0%,to{transform:scale(1);box-shadow:0 0 12px #f59e0b80,inset 0 2px 8px #00000080!important}50%{transform:scale(1.02);box-shadow:0 0 25px #f59e0bf2,inset 0 2px 8px #00000080!important}}.lead-suit-badge{color:#451a03;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;z-index:10;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border:1px solid #fff3;border-radius:10px;padding:2px 8px;font-size:.65rem;font-weight:800;position:absolute;bottom:-14px;box-shadow:0 4px 10px #0006}.lead-suit-indicator-banner{color:#451a03;font-family:var(--font-mono);z-index:10;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#f59e0bf2 0%,#d97706f2 100%);border:1px solid #ffffff4d;border-radius:20px;align-items:center;gap:6px;padding:6px 16px;font-size:.85rem;font-weight:800;animation:.3s cubic-bezier(.34,1.56,.64,1) forwards banner-pop;display:inline-flex;position:absolute;top:-5px;box-shadow:0 4px 15px #f59e0b66}@keyframes banner-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.header-table-wrapper{flex-direction:column;align-items:center;gap:0;width:100%;display:flex}.spectator-warning-banner{border:1px dashed var(--color-gold);color:#fde047;text-align:center;font-size:.85rem;font-family:var(--font-mono);background:#f59e0b26;border-radius:12px;margin:0 10px 10px;padding:8px 16px;box-shadow:0 4px 15px #f59e0b26}@media (width<=768px){.app-container{padding:10px}.lobby-screen{gap:15px;padding:20px 15px}.lobby-logo-img{height:80px}.lobby-subtitle{margin-bottom:10px;font-size:.9rem}.lobby-teams-container{grid-template-columns:1fr;gap:12px}.lobby-team-panel{padding:16px}.team-title{font-size:1.2rem}.player-slots{min-height:80px}.cut-deck-options{gap:8px;max-width:100%}.game-screen{height:98dvh}.game-header{margin-bottom:5px;padding:6px 10px}.game-title{font-size:1.2rem}.score-board{gap:10px}.score-badge{padding:4px 10px;font-size:.75rem}.table-container{outline-offset:-5px;border-width:6px;border-radius:20px;flex:none;grid-template-rows:65px 1fr 85px;grid-template-columns:70px 1fr 70px;height:50dvh;max-height:50dvh;margin:5px 0}.player-plate{min-width:65px;padding:2px 4px}.player-plate .avatar{font-size:.85rem}.player-plate .name{max-width:60px;font-size:.6rem}.player-plate .role{font-size:.5rem}.player-plate .card-count{margin-top:1px;padding:0 3px;font-size:.5rem}.table-center{gap:5px;padding:0!important}.table-center>div{gap:8px!important;padding:0 4px!important}.played-cards-area{gap:4px;min-height:80px}.played-card-container{border-radius:6px;min-width:52px;min-height:80px;padding:3px 5px}.played-card-container .playing-card{width:42px;height:60px;padding:2px}.played-card-label{font-size:.5rem}.lead-suit-badge{border-radius:5px;padding:1px 4px;font-size:.45rem;bottom:-8px}.lead-suit-indicator-banner{padding:3px 8px;font-size:.65rem;top:-10px}.seat-pile-a{padding-top:5px;padding-left:5px}.seat-pile-b{padding-top:5px;padding-right:5px}.team-won-pile{gap:2px;min-width:50px;padding:3px 2px}.pile-title{font-size:.5rem}.mini-card-stack{width:28px;height:40px}.mini-won-card{width:24px;height:35px}.round-results{top:50%;width:95%!important;padding:10px!important;transform:translateY(-50%)!important}.user-hand-container{flex:none;max-width:100%;height:110px;min-height:110px;margin-top:5px;padding:0 10px}.user-hand-container .card-button .playing-card{width:54px;height:78px}.fanned-card{margin-left:-24px}}
