.home-page{box-sizing:border-box;background:#0f6b38;justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.home-card{text-align:center;background:#fff;border-radius:25px;width:min(420px,100%);padding:30px 20px;box-shadow:0 15px 40px #00000059}.logo{font-size:70px;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.home-card h1{color:#14532d;margin:5px;font-size:32px}.subtitle{color:#666;margin-bottom:30px}.home-card input{box-sizing:border-box;border:2px solid #ddd;border-radius:12px;width:100%;margin-bottom:8px;padding:15px;font-size:16px;transition:all .3s}.home-card input:focus{border-color:#15803d;outline:none;box-shadow:0 0 0 3px #15803d1a}.home-card input.input-error{border-color:#ef4444;animation:.3s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.error-text{color:#ef4444;text-align:left;margin:-4px 0 12px 4px;font-size:13px}.home-card button{color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;padding:15px;font-size:18px;font-weight:700;transition:all .3s;position:relative}.home-card button:disabled{opacity:.7;cursor:not-allowed}.button-content{justify-content:center;align-items:center;gap:10px;display:flex}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.create-btn{background:#15803d}.create-btn:hover:not(:disabled){background:#166534;transform:translateY(-2px);box-shadow:0 4px 12px #15803d4d}.create-btn:active:not(:disabled){transform:translateY(0)}.join-btn{background:#1d4ed8}.join-btn:hover:not(:disabled){background:#1e40af;transform:translateY(-2px);box-shadow:0 4px 12px #1d4ed84d}.join-btn:active:not(:disabled){transform:translateY(0)}.divider{color:#888;margin:15px;font-weight:700}@media (width<=480px){.home-card{padding:25px 15px}.logo{font-size:55px}.home-card h1{font-size:26px}}.lobby-page{color:#fff;text-align:center;background:#0f6b38;min-height:100vh;padding:20px}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:60vh;display:flex}.spinner-large{border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:50px;height:50px;animation:.8s linear infinite spin}.lobby-table{max-width:900px;height:650px;margin:20px auto auto;position:relative}.center-info{color:#14532d;background:#fff;border-radius:20px;width:280px;padding:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 25px #0000004d}.center-info h1{margin:5px;font-size:36px}.game-id-display{letter-spacing:2px;cursor:pointer;background:#f1f5f9;border-radius:8px;margin:10px 0;padding:10px;font-family:Courier New,monospace;transition:all .3s}.game-id-display:hover{background:#e2e8f0}.action-buttons{gap:8px;margin:12px 0;display:flex}.copy-btn,.share-btn{cursor:pointer;border:none;border-radius:10px;flex:1;padding:10px 16px;font-size:14px;font-weight:600;transition:all .3s}.copy-btn{color:#fff;background:#15803d}.copy-btn:hover{background:#166534;transform:translateY(-2px)}.share-btn{color:#fff;background:#1d4ed8}.share-btn:hover{background:#1e40af;transform:translateY(-2px)}.waiting{color:#856404;background:#fff3cd;border-radius:10px;flex-direction:column;align-items:center;gap:8px;margin-top:15px;padding:12px;display:flex}.waiting-dots{gap:6px;display:flex}.waiting-dots span{background:#856404;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite bounce}.waiting-dots span:first-child{animation-delay:-.32s}.waiting-dots span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.ready{color:#166534;background:#dcfce7;border-radius:10px;margin-top:15px;padding:12px;font-weight:600;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.85}}.l1{position:absolute;top:50%;left:0;transform:translateY(-50%)}.l2{position:absolute;top:0;left:20%}.l3{position:absolute;top:0;right:20%}.l4{position:absolute;top:50%;right:0;transform:translateY(-50%)}.l5{position:absolute;bottom:0;right:20%}.l6{position:absolute;bottom:0;left:20%}@media (width<=768px){.lobby-table{flex-direction:column;align-items:center;gap:12px;height:auto;display:flex}.l1,.l2,.l3,.l4,.l5,.l6,.center-info{position:static;transform:none}.center-info{width:100%;max-width:350px}.action-buttons{flex-direction:column}.copy-btn,.share-btn{width:100%}}.player-seat{color:#fff;text-align:center;box-sizing:border-box;background:#14532d;border:2px solid #2b8a57;border-radius:10px;width:78px;min-height:58px;padding:4px;transition:all .2s}.current-turn{border-color:gold;box-shadow:0 0 8px gold}.avatar{font-size:18px;line-height:18px}.player-name{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;font-weight:700;overflow:hidden}.card-count{opacity:.85;font-size:10px}.turn-indicator{color:#000;background:gold;border-radius:5px;margin-top:3px;padding:2px;font-size:9px;font-weight:700}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:#0f6b38;margin:0;font-family:Arial,Helvetica,sans-serif}.game-page{background:#0f6b38;flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.game-header{padding:8px 12px}.game-content{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:15px 15px 140px;display:flex;overflow:hidden}.table-grid{flex:1;grid-template-rows:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;place-items:center;width:100%;min-height:550px;display:grid}.seat-top-left{grid-area:1/1}.seat-top-right{grid-area:1/3}.seat-left{grid-area:2/1}.table-center{grid-area:2/2}.seat-right{grid-area:2/3}.seat-bottom-left{grid-area:3/1}.seat-bottom-right{grid-area:3/3}.hand-container{bottom:0;left:0;right:0;bottom:env(safe-area-inset-bottom,0);padding:8px 12px;padding-bottom:max(8px, env(safe-area-inset-bottom));z-index:999;background:#14532d;border-top:3px solid #0d4424;align-content:center;position:fixed}.hand-title{color:#fff;margin-bottom:8px;font-size:14px;font-weight:700}.hand-area{scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;gap:0;padding-bottom:6px;display:flex;position:relative;overflow:auto hidden}.hand-area::-webkit-scrollbar{height:6px}.hand-area::-webkit-scrollbar-track{background:0 0}.hand-area::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.hand-area::-webkit-scrollbar-thumb:hover{background:#ffffff80}.hand-area:before,.hand-area:after{content:"";pointer-events:none;z-index:1;width:30px;position:absolute;top:0;bottom:0}.hand-area:before{background:linear-gradient(90deg,#14532d,#0000);left:0}.hand-area:after{background:linear-gradient(270deg,#14532d,#0000);right:0}@media (width>=900px){.game-content{flex-direction:row;align-items:flex-start}.player-area{flex:2}.trick-area{flex:1}}@media (width<=768px){.table-grid{flex-direction:column;gap:15px;min-height:auto;display:flex}.game-content{padding-bottom:160px}}@media (width<=700px){.hand-container{padding:6px 10px;padding-bottom:max(6px, env(safe-area-inset-bottom))}.game-content{padding:10px 10px 150px}}@media (height<=500px) and (orientation:landscape){.game-page{flex-direction:row}.game-content{width:calc(100% - 200px);padding-bottom:20px}.hand-container{border-top:none;border-left:3px solid #0d4424;width:180px;height:100vh;padding:10px 8px;position:fixed;inset:0 0 0 auto;overflow-y:auto}.hand-area{flex-direction:column;align-items:center;overflow:hidden auto}.hand-area .playing-card{margin-bottom:-20px;margin-right:0}.hand-area .playing-card:last-child{margin-bottom:0}.hand-area .playing-card:hover{transform:translate(-15px)scale(1.05)}.hand-area:before,.hand-area:after{width:100%;height:30px;left:0;right:0}.hand-area:before{background:linear-gradient(#14532d,#0000);top:0}.hand-area:after{background:linear-gradient(#0000,#14532d);bottom:0}.game-header{padding:6px 8px}.table-grid{min-height:300px}}.playing-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #333;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:center;width:60px;height:88px;margin-right:-24px;padding:8px 6px;font-weight:700;transition:all .2s ease-out;display:flex;position:relative;box-shadow:0 2px 4px #0003}.playing-card:last-child{margin-right:0}.playing-card:not(:disabled):hover{z-index:10;margin-left:4px;margin-right:-20px;transform:translateY(-25px)scale(1.05);box-shadow:0 12px 24px #0006}.playing-card:disabled{cursor:not-allowed;opacity:.8}.playing-card:active:not(:disabled){transform:translateY(-20px)scale(1.02)}.red{color:#d32f2f}.black{color:#111}.card-suit{font-size:24px}.card-rank{font-size:16px;font-weight:700}@media (width<=700px){.playing-card{width:56px;height:82px;margin-right:-22px;padding:6px 4px}.playing-card:not(:disabled):hover{transform:translateY(-20px)scale(1.05)}.card-suit{font-size:22px}.card-rank{font-size:15px}}@media (width<=400px){.playing-card{width:52px;height:76px;margin-right:-20px;padding:5px 3px}.card-suit{font-size:20px}.card-rank{font-size:14px}}@media (height<=500px) and (orientation:landscape){.playing-card{width:48px;height:70px;margin-right:-18px}.card-suit{font-size:18px}.card-rank{font-size:13px}.playing-card:not(:disabled):hover{transform:translateY(-15px)scale(1.05)}}.bid-page{box-sizing:border-box;background:#0f6b38;justify-content:center;align-items:center;min-height:100dvh;padding:12px;display:flex}.bid-card{box-sizing:border-box;text-align:center;background:#fff;border-radius:20px;width:min(450px,100%);padding:20px;box-shadow:0 10px 30px #0000004d}.bid-card h1{color:#14532d;margin:8px}.bid-info{background:#f1f5f9;border-radius:12px;margin:15px 0;padding:14px}.bid-info span{color:#666;font-size:14px;display:block}.bid-info strong{color:#14532d;font-size:48px}.turn-box{color:#166534;background:#dcfce7;border-radius:12px;margin-bottom:15px;padding:14px;font-size:16px;font-weight:700;animation:2s infinite pulse}.waiting-box{background:#f1f5f9;border-radius:12px;flex-direction:column;gap:8px;padding:20px;font-size:15px;display:flex}.bid-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.bid-grid button{color:#fff;cursor:pointer;border:none;border-radius:15px;height:70px;font-size:24px;font-weight:700;transition:all .3s;box-shadow:0 2px 8px #0003}.bid-grid button:active{transform:scale(.95)}.bid{background:#15803d}.bid:hover{background:#166534;transform:translateY(-3px);box-shadow:0 4px 12px #15803d66}.pass{background:#dc2626}.pass:hover{background:#b91c1c;transform:translateY(-3px);box-shadow:0 4px 12px #dc262666}@media (width<=480px){.bid-card{padding:16px}.bid-grid button{height:60px;font-size:20px}.bid-info strong{font-size:42px}.turn-box,.waiting-box{font-size:14px}}@media (height<=500px) and (orientation:landscape){.bid-page{padding:10px}.bid-card{max-height:95vh;padding:14px;overflow-y:auto}.bid-card h1{margin:4px;font-size:22px}.bid-info{margin:10px 0;padding:10px}.bid-info strong{font-size:36px}.bid-grid{gap:10px}.bid-grid button{height:50px;font-size:18px}.my-hand{margin-top:12px}}.trump-page{box-sizing:border-box;background:#0f6b38;justify-content:center;align-items:center;min-height:100dvh;padding:12px;display:flex}.trump-card{box-sizing:border-box;text-align:center;background:#fff;border-radius:20px;width:min(450px,100%);padding:20px;box-shadow:0 10px 30px #0000004d}.trump-card h1{color:#14532d;margin:8px}.declarer-box{background:#f1f5f9;border-radius:12px;margin:15px 0;padding:14px}.declarer-box strong{color:#14532d;margin-top:6px;font-size:18px;display:block}.suit-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.suit-grid button{cursor:pointer;color:#fff;border:none;border-radius:15px;height:85px;font-size:18px;font-weight:700;transition:all .3s;box-shadow:0 2px 8px #0003}.suit-grid button:active{transform:scale(.95)}.suit-grid span{font-size:38px;display:block}.Hearts{background:#dc2626}.Hearts:hover{background:#b91c1c;transform:translateY(-3px);box-shadow:0 4px 12px #dc262666}.Diamonds{background:#ea580c}.Diamonds:hover{background:#c2410c;transform:translateY(-3px);box-shadow:0 4px 12px #ea580c66}.Clubs{background:#14532d}.Clubs:hover{background:#0d3d21;transform:translateY(-3px);box-shadow:0 4px 12px #14532d66}.Spades{background:#1e3a8a}.Spades:hover{background:#1e40af;transform:translateY(-3px);box-shadow:0 4px 12px #1e3a8a66}.waiting-box{background:#f1f5f9;border-radius:12px;padding:20px;line-height:1.6}.my-hand{border-top:2px solid #e5e7eb;margin-top:20px;padding-top:12px}.my-hand h3{color:#374151;margin:8px 0;font-size:16px}.hand-row{scrollbar-width:thin;scrollbar-color:#0003 transparent;gap:0;padding:4px 0;display:flex;overflow-x:auto}.hand-row::-webkit-scrollbar{height:6px}.hand-row::-webkit-scrollbar-track{background:0 0}.hand-row::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}@media (width<=480px){.trump-card{padding:16px}.suit-grid button{height:75px;font-size:16px}.suit-grid span{font-size:34px}}@media (height<=500px) and (orientation:landscape){.trump-page{padding:10px}.trump-card{max-height:95vh;padding:14px;overflow-y:auto}.trump-card h1{margin:4px;font-size:22px}.declarer-box{margin:10px 0;padding:10px}.suit-grid{gap:10px}.suit-grid button{height:65px;font-size:15px}.suit-grid span{font-size:28px}.my-hand{margin-top:12px}}.score-board{color:#fff;background:#0d4d2b;border:2px solid #fff3;border-radius:15px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:15px;padding:10px 12px;display:flex;box-shadow:0 4px 12px #0000004d}.score-item{background:#ffffff14;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-width:75px;padding:8px 10px;transition:all .3s;display:flex}.score-item:hover{background:#ffffff1f}.title{color:#e0e0e0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px}.value{font-size:20px;font-weight:700}.small{font-size:14px}.scoreA{background:#156f3c;border:2px solid #1a8f4a;min-width:130px}.scoreB{background:#1f5cbf;border:2px solid #2d6fd9;min-width:130px}.team-players{color:#f0f0f0;flex-direction:column;gap:3px;width:100%;margin-top:6px;font-size:11px;display:flex}.player-name{text-align:center;background:#00000040;border-radius:5px;padding:3px 6px;font-size:10px;font-weight:600}@media (width<=700px){.score-board{gap:8px;padding:8px 10px}.score-item{min-width:68px;padding:6px 8px}.title{font-size:10px}.value{font-size:17px}.small{font-size:13px}.scoreA,.scoreB{min-width:110px}.player-name{padding:2px 4px;font-size:9px}}@media (width<=360px){.score-board{gap:6px;padding:6px 8px}.score-item{min-width:60px;padding:5px 6px}.title{font-size:9px}.value{font-size:15px}.small{font-size:12px}.scoreA,.scoreB{min-width:95px}.player-name{font-size:8px}}@media (height<=500px) and (orientation:landscape){.score-board{gap:6px;margin-bottom:10px;padding:6px 8px}.score-item{min-width:60px;padding:4px 6px}.title{font-size:9px}.value{font-size:14px}.small{font-size:11px}.team-players{gap:2px;margin-top:3px}.player-name{padding:2px 3px;font-size:8px}}.trick-table{background:#0c5b31;border:2px solid #ffffff26;border-radius:50%;width:180px;height:180px;position:relative}.played-card{position:absolute}.top{top:0;left:50%;transform:translate(-50%)}.left{top:50%;left:0;transform:translateY(-50%)}.right{top:50%;right:0;transform:translateY(-50%)}.bottom{bottom:0;left:50%;transform:translate(-50%)}.bottom-left{bottom:18%;left:20%}.bottom-right{bottom:18%;right:20%}.table-layout{flex:1;grid-template-rows:.7fr .8fr 1fr .8fr .7fr;grid-template-columns:1fr 1fr 1fr;place-items:center;gap:10px;width:100%;max-width:900px;margin:auto;display:grid}.p2{grid-area:1/2}.p1{grid-area:2/1}.p3{grid-area:2/3}.center{grid-area:3/2}.p6{grid-area:4/1}.p4{grid-area:4/3}.you{grid-area:5/2}@media (width<=700px){.table-layout{grid-template-rows:auto auto auto 240px auto auto;grid-template-columns:1fr 1fr;gap:8px;max-width:100%}.p2{grid-area:1/1/auto/3}.p1{grid-area:2/1}.p3{grid-area:2/2}.center{grid-area:4/1/auto/3}.p6{grid-area:5/1}.p4{grid-area:5/2}.you{grid-area:6/1/auto/3}}@media (height<=500px) and (orientation:landscape){.table-layout{grid-template-rows:auto 1fr auto;grid-template-columns:repeat(5,1fr);gap:8px;max-width:100%;padding:0 180px 0 0}.p2{grid-area:1/3}.p1{grid-area:2/1}.p3{grid-area:2/2}.center{grid-area:2/3}.p4{grid-area:2/4}.p6{grid-area:2/5}.you{grid-area:3/3}}.result-overlay{z-index:999;background:#000000bf;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.result-card{text-align:center;background:#fff;border-radius:20px;width:min(92vw,450px);padding:28px;animation:.4s ease-out slideUp;box-shadow:0 15px 40px #00000073}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.result-card h1{color:#0f6b38;margin:0 0 10px;font-size:32px}.result-card h2{color:#444;margin-top:20px;font-size:20px}.winner-name{color:#f59e0b;text-shadow:0 2px 4px #0000001a;margin-bottom:20px;font-size:32px;font-weight:700}.result-grid{grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;display:grid}.result-grid div{background:#f3f4f6;border-radius:10px;padding:14px;transition:all .3s}.result-grid div:hover{background:#e5e7eb;transform:translateY(-2px)}.result-grid span{color:#666;margin-bottom:4px;font-size:13px;display:block}.result-grid strong{color:#111;font-size:22px}.next-round-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:12px;width:100%;padding:16px;font-size:18px;font-weight:700;transition:all .3s}.next-round-btn:hover{background:#15803d;transform:translateY(-2px);box-shadow:0 4px 12px #16a34a66}.next-round-btn:active{transform:translateY(0)}@media (width<=480px){.result-card{padding:20px}.result-card h1,.winner-name{font-size:26px}.result-grid{gap:10px;margin:15px 0}.result-grid div{padding:10px}.result-grid strong{font-size:18px}.next-round-btn{padding:14px;font-size:16px}}@media (height<=500px) and (orientation:landscape){.result-card{max-height:90vh;padding:20px;overflow-y:auto}.result-card h1{margin-bottom:8px;font-size:24px}.result-card h2{margin-top:12px;font-size:18px}.winner-name{margin-bottom:12px;font-size:24px}.result-grid{gap:10px;margin:12px 0}.result-grid div{padding:8px}.result-grid strong{font-size:18px}.next-round-btn{padding:12px;font-size:16px}}.trick-complete-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.trick-complete-card{color:#fff;text-align:center;background:linear-gradient(135deg,#1a472a 0%,#0d2818 100%);border-radius:20px;width:90%;max-width:500px;padding:30px;animation:.4s ease-out slideUp;box-shadow:0 10px 40px #00000080}.trick-complete-card h2{margin:0 0 20px;font-size:28px}.winner-section{background:#ffffff1a;border-radius:10px;flex-direction:column;gap:5px;margin-bottom:20px;padding:15px;display:flex}.winner-label{color:#aaa;font-size:14px}.winner-name{color:gold;text-shadow:0 2px 4px #0000004d;font-size:24px;font-weight:700}.cards-played h3{color:#ddd;margin:0 0 15px;font-size:16px}.played-cards-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.played-card-item{background:#ffffff14;border-radius:8px;flex-direction:column;gap:5px;padding:10px;transition:all .3s;display:flex}.played-card-item:hover{background:#ffffff1f}.player-name-small{color:#bbb;font-size:11px}.card-display{font-size:18px;font-weight:700}.ready-status{background:#ffffff0d;border-radius:8px;margin:20px 0;padding:10px}.ready-status p{color:#ccc;margin:0;font-size:14px}.continue-btn{color:#fff;cursor:pointer;background:#27ae60;border:none;border-radius:10px;width:100%;padding:15px;font-size:18px;font-weight:700;transition:all .3s}.continue-btn:hover:not(:disabled){background:#2ecc71;transform:translateY(-2px);box-shadow:0 4px 12px #27ae6066}.continue-btn:active:not(:disabled){transform:translateY(0)}.continue-btn.confirmed{cursor:not-allowed;background:#555}.continue-btn:disabled{opacity:.7}@media (width<=600px){.trick-complete-card{width:95%;padding:20px}.trick-complete-card h2{margin-bottom:15px;font-size:24px}.played-cards-grid{grid-template-columns:repeat(2,1fr);gap:8px}.winner-name{font-size:20px}.card-display{font-size:16px}}@media (height<=500px) and (orientation:landscape){.trick-complete-card{max-height:90vh;padding:15px 25px;overflow-y:auto}.trick-complete-card h2{margin-bottom:12px;font-size:20px}.winner-section{margin-bottom:12px;padding:10px}.winner-name{font-size:18px}.played-cards-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.played-card-item{padding:6px}.continue-btn{padding:12px;font-size:16px}}.playing-card{cursor:pointer;background:#fff;border:2px solid #222;border-radius:5px;flex-direction:column;justify-content:space-between;align-items:center;width:48px;height:72px;margin:6px;font-size:20px;font-weight:700;transition:all .2s;display:flex}.playing-card:hover{transform:translateY(-8px);box-shadow:0 6px 12px #00000040}.playing-card.red{color:#d62828}.playing-card.black{color:#111}.rank{margin-top:8px}.suit{margin-bottom:8px;font-size:32px}.playing-card:disabled{opacity:.5;cursor:not-allowed}
