.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-dark);padding:2rem;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-50%;right:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(102,126,234,.1),transparent);border-radius:50%}.login-page:after{content:"";position:absolute;bottom:-50%;left:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(118,75,162,.1),transparent);border-radius:50%}.login-container{background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:var(--radius-2xl);padding:3rem 3.5rem;width:100%;max-width:500px;min-width:400px;box-shadow:var(--shadow-xl);border:var(--border-medium);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;z-index:10}.login-title{font-size:3rem;font-weight:800;text-align:center;margin:0 0 .5rem;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.05em}.login-subtitle{text-align:center;color:#ffffffa6;margin:0 0 2.5rem;font-size:1.05rem;font-weight:500}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.75rem}.form-group label{font-size:.95rem;color:#ffffffd9;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.form-group input{padding:1rem 1.25rem;border-radius:var(--radius-lg);border:var(--border-medium);background:#ffffff14;color:#fff;font-size:1.05rem;transition:all var(--transition-normal)}.form-group input:focus{outline:none;border-color:var(--color-primary);background:#ffffff1f;box-shadow:0 0 0 3px #667eea33}.form-group input::placeholder{color:#fff6}.form-group input:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#fca5a5;font-size:.95rem;margin:0;padding:1rem;background:#ef444426;border-radius:var(--radius-lg);border:1px solid rgba(239,68,68,.3)}.login-button{padding:1.125rem 2rem;border-radius:var(--radius-lg);border:none;background:var(--gradient-primary);color:#fff;font-size:1.15rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:.5rem}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-hint{text-align:center;color:#ffffff80;font-size:.9rem;margin:2rem 0 0}.main-menu-page{min-height:100vh;display:flex;flex-direction:column;background:var(--gradient-dark);position:relative;overflow:hidden}.menu-background{position:absolute;inset:0;pointer-events:none;overflow:hidden}.card-decoration{position:absolute;font-size:15rem;opacity:.02;font-weight:700;-webkit-user-select:none;user-select:none;animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}.card-decoration.card-1{top:-5%;left:-5%;color:#000;transform:rotate(-15deg);animation-delay:0s}.card-decoration.card-2{top:10%;right:-8%;color:#dc2626;transform:rotate(20deg);animation-delay:1s}.card-decoration.card-3{bottom:-5%;left:20%;color:#dc2626;transform:rotate(-10deg);animation-delay:2s}.card-decoration.card-4{bottom:15%;right:10%;color:#000;transform:rotate(25deg);animation-delay:3s}.menu-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2.5rem;z-index:10;background:#0003;border-bottom:var(--border-light)}.user-info{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,#ffffff14,#ffffff08);padding:.75rem 1.5rem;border-radius:2rem;border:var(--border-medium);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-normal)}.user-info:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#fff3}.user-avatar{font-size:1.5rem;display:flex;align-items:center;justify-content:center}.user-name{font-size:1.1rem;font-weight:600;color:#e5e7eb}.logout-btn{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:.625rem 1.5rem;border-radius:.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.logout-btn:hover{background:#ef444440;border-color:#ef444480;transform:translateY(-1px)}.menu-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;z-index:10}.game-title{text-align:center;margin-bottom:3rem;animation:slideDown .6s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.game-title h1{font-size:4.5rem;font-weight:800;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:.1em;text-shadow:0 0 30px rgba(251,191,36,.2)}.game-title .subtitle{font-size:1.25rem;color:#9ca3af;margin-top:.75rem;letter-spacing:.2em;font-weight:500}.menu-buttons{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:450px;animation:slideUp .6s ease-out .2s backwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.menu-btn{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-radius:1rem;border:2px solid transparent;cursor:pointer;transition:all var(--transition-normal);text-align:left;position:relative;overflow:hidden;font-size:1rem;font-weight:600}.menu-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.menu-btn:hover:before{opacity:1}.menu-btn:hover{transform:translate(8px)}.menu-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-icon{font-size:2rem;width:3rem;text-align:center;flex-shrink:0}.btn-text{display:flex;flex-direction:column;gap:.15rem}.btn-title{font-size:1.2rem;font-weight:700;color:#fff}.btn-desc{font-size:.85rem;opacity:.75}.menu-btn-primary{background:linear-gradient(135deg,#166534,#14532d);color:#fff;border-color:#22c55e80;box-shadow:0 4px 20px #22c55e4d}.menu-btn-primary:hover:not(:disabled){box-shadow:0 6px 30px #22c55e80}.menu-btn-primary .btn-desc{color:#ffffffd9}.menu-btn-secondary{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff;border-color:#3b82f680;box-shadow:0 4px 20px #3b82f633}.menu-btn-secondary:hover:not(:disabled){box-shadow:0 6px 30px #3b82f666}.menu-btn-secondary .btn-desc{color:#ffffffd9}.menu-btn-tertiary{background:linear-gradient(135deg,#92400e,#78350f);color:#fff;border-color:#f59e0b80;box-shadow:0 4px 20px #f59e0b33}.menu-btn-tertiary:hover:not(:disabled){box-shadow:0 6px 30px #f59e0b66}.menu-btn-tertiary .btn-desc{color:#ffffffd9}.menu-btn-info{background:#ffffff14;color:#e5e7eb;border-color:#ffffff26;box-shadow:0 2px 12px #0003}.menu-btn-info:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 18px #0000004d}.menu-btn-info .btn-desc{color:#e5e7ebcc}.loading-spinner{position:absolute;right:1.5rem;width:1.5rem;height:1.5rem;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.menu-footer{text-align:center;padding:1.5rem;color:#6b7280;font-size:.85rem;z-index:10}.lobby-page{min-height:100vh;min-width:1200px;background:var(--gradient-dark);display:flex;flex-direction:column}.lobby-header{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 2.5rem;background:#0000004d;border-bottom:var(--border-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lobby-header h1{flex:1;margin:0;font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-right{display:flex;align-items:center;gap:1.5rem}.user-name{color:#ffffffe6;font-size:1.1rem;font-weight:600;padding:.5rem 1rem;background:#667eea26;border-radius:var(--radius-full);border:var(--border-light)}.logout-btn{padding:.625rem 1.5rem;border-radius:var(--radius-md);border:var(--border-medium);background:#ef44441a;color:#fffc;font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.logout-btn:hover{background:#ef444433;border-color:#ef44444d;transform:translateY(-2px)}.lobby-main{flex:1;padding:2.5rem 3rem;max-width:1400px;margin:0 auto;width:100%}.lobby-actions{margin-bottom:2.5rem}.create-room-btn{padding:1rem 2.25rem;border-radius:var(--radius-lg);border:none;background:var(--gradient-primary);color:#fff;font-size:1.15rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.create-room-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);opacity:0;transform:translate(-100%);transition:opacity var(--transition-normal)}.create-room-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.create-room-btn:hover:before{opacity:1;transform:translate(100%)}.rooms-section h2{font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;color:#fffffff2;display:flex;align-items:center;gap:.75rem}.rooms-section h2:before{content:"";width:4px;height:1.5rem;background:var(--gradient-primary);border-radius:2px}.no-rooms{color:#ffffff80;text-align:center;padding:3rem;background:#ffffff08;border-radius:var(--radius-xl);border:1px dashed rgba(255,255,255,.1);font-size:1.1rem}.rooms-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.room-card{display:flex;flex-direction:column;justify-content:space-between;padding:1.75rem;background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:var(--radius-xl);border:var(--border-light);transition:all var(--transition-normal);position:relative;overflow:hidden}.room-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.room-card:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#ffffff26;transform:translateY(-4px);box-shadow:var(--shadow-lg)}.room-card:hover:before{opacity:1}.room-info{flex:1;position:relative;z-index:1;margin-bottom:1rem}.room-name{margin:0 0 .5rem;font-size:1.3rem;font-weight:700;color:#fff}.room-host{margin:0 0 .5rem;font-size:.95rem;color:#fff9}.room-members{margin:0;font-size:.95rem;color:#ffffff80}.room-status{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;padding-top:1rem;border-top:var(--border-light)}.player-count{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;padding:.5rem 1rem;background:#4ade8026;border-radius:var(--radius-full);border:1px solid rgba(74,222,128,.3);color:#86efac}.player-count.full{background:#ef444426;border-color:#ef44444d;color:#fca5a5}.join-btn{padding:.75rem 1.75rem;border-radius:var(--radius-md);border:none;background:linear-gradient(135deg,#166534,#14532d);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:0 2px 12px #22c55e33}.join-btn:hover:not(:disabled){background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-2px);box-shadow:0 4px 18px #22c55e66}.join-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.join-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;animation:fadeIn .2s ease-out}.modal{background:linear-gradient(135deg,#1a1a2ef2,#0f0f19f2);border-radius:var(--radius-2xl);padding:2.5rem;width:100%;max-width:500px;border:var(--border-medium);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.modal h3{margin:0 0 1.5rem;font-size:1.75rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal input{width:100%;padding:1rem 1.25rem;border-radius:var(--radius-lg);border:var(--border-medium);background:#ffffff14;color:#fff;font-size:1.05rem;margin-bottom:1.5rem;box-sizing:border-box;transition:all var(--transition-normal)}.modal input:focus{outline:none;border-color:var(--color-primary);background:#ffffff1f;box-shadow:0 0 0 3px #667eea33}.modal input::placeholder{color:#fff6}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.cancel-btn{padding:.875rem 1.75rem;border-radius:var(--radius-md);border:var(--border-medium);background:#ffffff14;color:#fffc;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.cancel-btn:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.submit-btn{padding:.875rem 1.75rem;border-radius:var(--radius-md);border:none;background:var(--gradient-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #667eea66}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.modal .error{color:#fecdd3;font-size:.95rem;margin-top:.5rem}.joined-room-section{margin-bottom:2rem}.joined-room-section h2{font-size:1.5rem;font-weight:600;margin:0 0 1.25rem;color:#4ade80}.joined-room-card{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 2rem;background:linear-gradient(135deg,#4ade8026,#22c55e1a);border-radius:16px;border:2px solid rgba(74,222,128,.4)}.joined-room-card .room-info{flex:1}.joined-room-card .room-name{margin:0 0 .375rem;font-size:1.5rem;font-weight:600;color:#4ade80}.joined-room-card .room-host{margin:0 0 .375rem;font-size:1.05rem;color:#ffffffb3}.joined-room-card .room-members{margin:0 0 .5rem;font-size:1.05rem;color:#fff9}.waiting-message{margin:0;font-size:1.1rem;color:#fbbf24;font-weight:500}.leave-btn{padding:.75rem 1.75rem;border-radius:10px;border:1px solid rgba(255,107,129,.5);background:#ff6b8133;color:#fecdd3;font-size:1.05rem;font-weight:500;cursor:pointer;transition:background .2s}.leave-btn:hover{background:#ff6b814d}.room-card.current{border-color:#4ade8066;background:#4ade801a}.current-badge{display:inline-block;margin-left:.625rem;padding:.2rem .625rem;font-size:.8rem;font-weight:600;background:#4ade80;color:#1a1a2e;border-radius:6px;vertical-align:middle}.room-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-end}.com-controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.com-btn{padding:.625rem 1rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.com-btn.add-com{background:#6366f133;border:1px solid rgba(99,102,241,.5);color:#c7d2fe}.com-btn.add-com:hover:not(:disabled){background:#6366f14d}.com-btn.remove-com{background:#f9731633;border:1px solid rgba(249,115,22,.5);color:#fb923c}.com-btn.remove-com:hover:not(:disabled){background:#f973164d}.com-btn:disabled{opacity:.5;cursor:not-allowed}.start-com-btn{padding:.75rem 1.5rem;border-radius:10px;background:linear-gradient(135deg,#4ade80,#22c55e);border:none;color:#1a1a2e;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.start-com-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #4ade8059}.start-com-btn:disabled{opacity:.6;cursor:not-allowed}.trick-area{width:100%;max-width:1400px;min-width:900px;height:500px;margin:0 auto;background:linear-gradient(135deg,#1a472a,#2d5a3f);border-radius:50%/35%;box-shadow:inset 0 0 80px #00000080,inset 0 0 20px #ffffff0d,0 8px 32px #0006;border:8px solid #6b5344;overflow:visible;position:relative}.trick-area:before{content:"";position:absolute;top:50%;left:50%;width:120px;height:120px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(102,126,234,.1),transparent);border-radius:50%;border:1px dashed rgba(102,126,234,.2)}.player-seat{position:absolute;z-index:10;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:all var(--transition-normal)}.player-seat.clickable{cursor:pointer}.player-seat.clickable:hover{transform:scale(1.08)}.player-seat.clickable:hover .player-name{background:linear-gradient(135deg,#3b82f6e6,#2563ebe6);border-color:#fff3;box-shadow:0 0 15px #3b82f680}.player-name{display:inline-block;padding:.5rem 1.125rem;background:#0009;color:#e5e7eb;border-radius:1.5rem;font-size:.95rem;font-weight:600;white-space:nowrap;border:1px solid rgba(255,255,255,.15);transition:all var(--transition-normal);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.player-name.current{background:linear-gradient(135deg,#1d4ed8fa,#1e40affa);color:#fff;border:1px solid rgba(255,255,255,.25);box-shadow:0 0 20px #3b82f699}.player-seat.trick-winner .player-name{color:#fff8e6;border-color:#ffffffb8;animation:winner-seat-focus .72s cubic-bezier(.22,1,.36,1) both}.player-seat.trick-winner.napoleon .player-name{background:linear-gradient(135deg,#9a6715,#65420c);box-shadow:0 0 0 3px #f6c76833,0 0 28px #f6c768b3}.player-seat.trick-winner.alliance .player-name{background:linear-gradient(135deg,#245c9d,#163d6d);box-shadow:0 0 0 3px #60a5fa33,0 0 28px #3b82f6b3}.player-seat.trick-winner.unrevealed .player-name{background:linear-gradient(135deg,#456158,#294139);box-shadow:0 0 0 3px #a7f3d029,0 0 26px #6ee7b780}.winner-seat-star{display:inline-block;margin-right:.32rem;color:#ffe39a}@keyframes winner-seat-focus{0%{transform:scale(.94)}55%{transform:scale(1.12)}to{transform:scale(1.06)}}.role-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .85rem;border-radius:.875rem;font-size:.8rem;font-weight:700;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.3);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.2)}.role-badge.role-napoleon{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1a2e;box-shadow:0 0 15px #fbbf2499}.role-badge.role-adjutant{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff;box-shadow:0 0 15px #3b82f699}.role-badge.role-opposition{background:linear-gradient(135deg,#b91c1c,#991b1b);color:#fff;box-shadow:0 0 15px #ef444499}.lead-suit-indicator{position:absolute;top:10px;left:50%;transform:translate(-50%);padding:.375rem .875rem;background:linear-gradient(135deg,#fffffff2,#f9f0ffe6);color:#1f2937;border-radius:.5rem;font-size:.9rem;font-weight:700;z-index:5;box-shadow:0 2px 8px #0000004d;border:1px solid rgba(255,255,255,.3)}.special-card-toast{position:absolute;top:62px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:.65rem;padding:.6rem 1rem;background:#000000bf;color:#f3f4f6;border-radius:999px;border:2px solid #a855f7;box-shadow:0 6px 24px #00000073;z-index:45;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:toast-pop .25s ease-out}.toast-icon{font-size:1.25rem;line-height:1}.toast-body{display:flex;flex-direction:column;gap:.1rem}.toast-title{font-weight:800;font-size:.95rem;letter-spacing:.2px}.toast-text{font-size:.85rem;color:#e5e7eb;opacity:.9}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%) translateY(-6px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.played-card{position:absolute;z-index:20;transition:all .3s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}.played-card.entering{animation:card-enter .4s cubic-bezier(.34,1.56,.64,1) forwards}.played-card.settled{transform-origin:center}.played-card.resolved{filter:brightness(.72) saturate(.72) drop-shadow(0 4px 12px rgba(0,0,0,.4));transition:filter .32s ease}.played-card.resolved.winning-card{animation:card-winning .82s cubic-bezier(.22,1,.36,1) both;z-index:30;filter:drop-shadow(0 0 20px rgba(250,204,21,.6))}.played-card.gathering{animation:card-gather .55s cubic-bezier(.22,1,.36,1) forwards;z-index:calc(25 + var(--stack-order))}.played-card.collecting{animation:card-sweep .9s cubic-bezier(.35,.05,.15,1) forwards;z-index:calc(25 + var(--stack-order))}@keyframes card-enter{0%{opacity:0;transform:scale(.3) translateY(30px) rotateX(90deg)}50%{opacity:1;transform:scale(1.05) translateY(-5px) rotateX(0)}to{opacity:1;transform:scale(1) translateY(0) rotateX(0)}}@keyframes card-winning{0%{transform:scale(1) rotate(0) translateY(0);filter:brightness(1)}68%{transform:scale(1.18) rotate(-1deg) translateY(-13px);filter:brightness(1.25)}to{transform:scale(1.12) rotate(0) translateY(-10px);filter:brightness(1.18)}}@keyframes card-gather{0%{opacity:1;left:var(--card-left);top:var(--card-top);transform:var(--card-transform)}to{opacity:1;left:var(--stack-left);top:var(--stack-top);transform:var(--stack-transform)}}@keyframes card-sweep{0%{opacity:1;left:var(--stack-left);top:var(--stack-top);transform:var(--stack-transform)}88%{opacity:1;left:var(--target-left);top:var(--target-top);transform:var(--target-transform)}to{opacity:0;left:var(--target-left);top:var(--target-top);transform:var(--target-transform)}}.card-face{display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:116px;background:#fff;border-radius:10px;box-shadow:0 4px 16px #0000004d,0 1px 3px #0003;font-weight:700;border:2px solid #e5e7eb}.card-face.winning{background:linear-gradient(145deg,#fef3c7,#fcd34d);border:3px solid #f59e0b;box-shadow:0 0 30px #f59e0b99,0 4px 16px #0000004d}.played-card.winning-card{z-index:35}.trick-reason-marker{position:absolute;top:-18px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:.3rem;min-width:max-content;padding:.28rem .58rem;border:1px solid rgba(255,255,255,.48);border-radius:999px;color:#fff8e7;background:#18150feb;font-size:.75rem;font-weight:800;box-shadow:0 2px 8px #f59e0b80;animation:winning-label-pulse .72s ease-out both;z-index:40}.trick-reason-marker.special{border-color:#d8b4fec2}.trick-reason-marker.trump{border-color:#f6c768d1}.trick-reason-marker.lead{border-color:#6ee7b7b3}.trick-reason-marker.reverse{border-color:#fb923cc7}@keyframes winning-label-pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}}.card-suit{font-size:2.25rem;line-height:1}.card-rank{font-size:1.5rem;line-height:1;margin-top:8px;font-weight:700}.joker-text{font-size:1.25rem;color:#7c3aed;font-weight:700}.trick-resolution-summary{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;min-width:210px;gap:.45rem;padding:.68rem .82rem;border:1px solid rgba(246,199,104,.34);border-radius:14px;color:#edf7f1;background:#071611e6;z-index:50;animation:announcement-enter .38s cubic-bezier(.22,1,.36,1) both;box-shadow:0 14px 38px #0000005c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.trick-resolution-winner{display:flex;align-items:center;justify-content:center;gap:.38rem;color:#ffe09a;font-size:.96rem}.trick-resolution-meta{display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap}.resolution-team,.resolution-reason,.resolution-card{display:inline-flex;align-items:center;gap:.22rem;padding:.24rem .45rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;font-size:.68rem;font-weight:760;line-height:1}.resolution-team.napoleon{color:#f6d58d;background:#f6c7681a}.resolution-team.alliance{color:#a8d1ff;background:#3b82f61f}.resolution-team.unrevealed{color:#abbab2;background:#a9b5ae14}.resolution-reason.special{color:#e2c3ff;background:#a855f724}.resolution-reason.trump{color:#f8d892;background:#f6c7681f}.resolution-reason.lead{color:#b7f2da;background:#6ee7b71a}.resolution-reason.reverse{color:#fdba74;background:#f973161f}.resolution-card{background:#f7f7f2;font-size:.78rem}@keyframes announcement-enter{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(min-width:1600px){.trick-area{max-width:1600px;height:550px}}@media(max-width:1200px){.trick-area{min-width:700px;height:450px}.card-face{width:56px;height:78px}.card-suit{font-size:1.4rem}.card-rank{font-size:1rem}}@media(max-width:640px){.trick-area{min-width:300px;height:280px}.card-face{width:40px;height:56px}.card-suit{font-size:1rem}.card-rank{font-size:.75rem}.player-name{font-size:.625rem;padding:.125rem .5rem}.trick-resolution-summary{min-width:176px;padding:.5rem .6rem}.trick-reason-marker{top:-14px;padding:.2rem .4rem;font-size:.58rem}}@media(prefers-reduced-motion:reduce){.played-card,.played-card.resolved.winning-card,.played-card.gathering,.played-card.collecting,.player-seat.trick-winner .player-name,.trick-reason-marker,.trick-resolution-summary{animation:none!important;transition:none!important}.played-card.collecting{opacity:0}}.trick-history-panel{display:flex;min-width:0;max-height:620px;flex-direction:column;overflow:hidden;border:1px solid rgba(221,236,227,.12);border-radius:20px;background:linear-gradient(155deg,#0d271ff5,#061611f5);box-shadow:0 18px 44px #0003}.trick-history-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .85rem;border-bottom:1px solid rgba(221,236,227,.1)}.trick-history-header h3{margin:.1rem 0 0;color:#f3f7f4;font-size:.98rem}.trick-history-kicker{color:#6ee7b7;font-size:.62rem;font-weight:800;letter-spacing:.14em}.trick-history-count{flex-shrink:0;padding:.32rem .6rem;border:1px solid rgba(110,231,183,.2);border-radius:999px;color:#b9f2d9;background:#6ee7b714;font-size:.72rem;font-weight:800}.trick-history-list{display:flex;min-height:0;padding:.75rem;flex:1;flex-direction:column;gap:.65rem;overflow-y:auto;scrollbar-color:rgba(110,231,183,.3) transparent;scrollbar-width:thin}.trick-history-list:focus-visible{outline:2px solid #6ee7b7;outline-offset:-3px}.trick-history-entry{padding:.75rem;border:1px solid rgba(221,236,227,.09);border-radius:13px;background:#ffffff09}.trick-history-entry-head,.trick-history-entry-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.trick-history-number{color:#8fa198;font-size:.72rem;font-weight:800}.trick-history-winner{min-width:0;overflow:hidden;color:#f6c768;font-size:.78rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.trick-history-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.28rem;margin:.65rem 0}.trick-history-card{display:grid;min-width:0;aspect-ratio:.72;place-items:center;border:1px solid rgba(17,24,39,.16);border-radius:6px;color:#17201b;background:#f4f5ef;font-size:clamp(.63rem,1.4vw,.78rem);font-weight:850;box-shadow:0 3px 8px #0000003d}.trick-history-card.red{color:#c82f3b}.trick-history-card.joker{color:#7138a8}.trick-history-card.winner{border:2px solid #f6c768;box-shadow:0 0 0 2px #f6c7682e,0 5px 12px #0000004d;transform:translateY(-2px)}.trick-history-entry-foot{justify-content:flex-start;color:#7f9188;font-size:.66rem}.trick-team-chip,.trick-reason-chip{display:inline-flex;align-items:center;gap:.28rem;min-width:0;padding:.24rem .48rem;border:1px solid transparent;border-radius:999px;line-height:1;white-space:nowrap}.trick-team-chip.napoleon{border-color:#f6c76847;color:#f6d58d;background:#f6c7681a}.trick-team-chip.alliance{border-color:#60a5fa47;color:#a8d1ff;background:#3b82f61c}.trick-team-chip.unrevealed{border-color:#a9b5ae2e;color:#9daca4;background:#a9b5ae0f}.trick-reason-chip{margin-left:auto;color:#eef6f1;background:#ffffff12}.trick-reason-chip.special{border-color:#c487ff4d;color:#e2c3ff;background:#a855f71f}.trick-reason-chip.trump{border-color:#f6c7684d;color:#f8d892;background:#f6c7681a}.trick-reason-chip.lead{border-color:#6ee7b73d;color:#b7f2da;background:#6ee7b714}.trick-reason-chip.reverse{border-color:#fb923c4d;color:#fdba74;background:#f973161a}.trick-history-empty{margin:auto;padding:2rem 1rem;color:#87988f;font-size:.82rem;text-align:center}.final-trick-summary{width:min(100%,620px);max-height:none;margin:1rem auto 1.25rem}.final-trick-summary .trick-history-list{overflow:visible}@media(max-width:1000px){.trick-history-panel{max-height:430px}}@media(max-width:640px){.trick-history-panel{max-height:360px;border-radius:16px}.trick-history-card{font-size:.7rem}}.trick-history-toggle{display:block;width:100%;padding:0;border:0;color:inherit;background:transparent;font:inherit;text-align:inherit;cursor:pointer}.trick-history-toggle:focus-visible{border-radius:10px;outline:3px solid rgba(110,231,183,.52);outline-offset:3px}.trick-history-expand-label{display:block;margin-top:.55rem;color:#91a59a;font-size:.68rem;text-align:right}.trick-history-detail{padding-top:.7rem;margin-top:.7rem;border-top:1px solid rgba(221,236,227,.1)}.trick-history-lead{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;color:#91a59a;font-size:.72rem}.trick-history-lead strong{color:#eef6f1;font-size:.95rem}.trick-history-detail ol{display:grid;gap:.35rem;padding:0;margin:0;list-style:none}.trick-history-detail li{display:grid;grid-template-columns:1.35rem minmax(0,1fr) auto;align-items:center;gap:.45rem;color:#c4d0c9;font-size:.74rem}.trick-history-detail li>span:first-child{display:grid;width:1.25rem;height:1.25rem;place-items:center;border-radius:999px;color:#93a79c;background:#ffffff0f;font-size:.62rem}.trick-history-detail li strong{color:#f5f7f2;font-size:.82rem}.card-hand{display:flex;min-width:100%;min-height:108px;gap:clamp(.35rem,1vw,.65rem);padding:.45rem .15rem .75rem;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;scrollbar-width:thin}.hand-empty{display:grid;min-height:108px;place-items:center;color:#9ca3af}.hand-empty p{margin:0}.hand-card{display:flex;width:clamp(66px,7vw,82px);height:clamp(92px,10vw,110px);flex:0 0 auto;scroll-snap-align:center;flex-direction:column;align-items:center;justify-content:center;border:2px solid #d1d5db;border-radius:10px;background:#fff;box-shadow:0 3px 10px #00000038;font-weight:700;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .16s ease}.hand-card:hover:not(.selected):not(.unplayable),.hand-card:focus-visible:not(.selected):not(.unplayable){transform:translateY(-5px);border-color:#6ee7b7;box-shadow:0 8px 18px #00000047}.hand-card:focus-visible{outline:3px solid rgba(110,231,183,.62);outline-offset:3px}.hand-card.selected{transform:translateY(-7px)}.hand-card.selected.play{border:3px solid #22c55e;background:#f0fdf4;box-shadow:0 8px 18px #22c55e4d}.hand-card.selected.discard{border:3px solid #ef4444;background:#fef2f2;box-shadow:0 8px 18px #ef44444d}.hand-card.unplayable{opacity:.42;filter:grayscale(55%);cursor:not-allowed}.hand-card-suit{font-size:clamp(1.6rem,3vw,2rem);line-height:1}.hand-card-rank{margin-top:.15rem;font-size:clamp(1.1rem,2vw,1.35rem)}.hand-card-joker{color:#6d28d9;font-size:.82rem;letter-spacing:.08em}@media(max-width:640px){.card-hand{margin-inline:-.35rem;padding-inline:.35rem}.hand-card{width:64px;height:90px}}@media(prefers-reduced-motion:reduce){.hand-card{transition-duration:.01ms}}.bid-status-panel{background:linear-gradient(135deg,#1e1e32f2,#282337f2);border-radius:var(--radius-xl);padding:1.75rem;margin:1.5rem 0;box-shadow:var(--shadow-lg);border:var(--border-medium);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bid-status-title{margin:0 0 1.25rem;font-size:1.35rem;font-weight:700;background:linear-gradient(135deg,#e9d5ff,#c4b5fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none}.bid-status-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.5rem}.bid-status-card{background:linear-gradient(135deg,#141423e6,#0f0f19e6);border-radius:var(--radius-lg);padding:1.125rem;border:1px solid rgba(100,80,160,.3);transition:all var(--transition-normal);position:relative;overflow:hidden}.bid-status-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.bid-status-card:hover{border-color:#8b5cf680;transform:translateY(-2px);box-shadow:var(--shadow-md)}.bid-status-card:hover:before{opacity:1}.bid-status-card.current-turn{border-color:#fbbf24;background:linear-gradient(135deg,#fbbf2426,#d977061a);box-shadow:0 0 20px #fbbf244d;animation:pulse-turn 1.5s ease-in-out infinite}@keyframes pulse-turn{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.bid-status-card.is-me{border-color:#60a5fa;background:linear-gradient(135deg,#60a5fa26,#3b82f614)}.bid-status-card.highest-bid{border:2px solid #f59e0b;background:linear-gradient(135deg,#f59e0b33,#d9770626);box-shadow:0 0 15px #f59e0b4d}.bid-status-card .player-info{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem;flex-wrap:nowrap}.bid-status-card .player-seat{position:relative;background:#8b5cf666;color:#e9d5ff;padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:700;flex-shrink:0;display:inline-block;border:1px solid rgba(168,85,247,.3)}.bid-status-card .player-name{font-size:.95rem;font-weight:700;color:#e5e7eb;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bid-status-card .turn-indicator-badge{font-size:1.1rem;animation:bounce .6s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.bid-status-card .bid-status{font-size:1rem;font-weight:700;padding:.5rem .75rem;border-radius:var(--radius-md);text-align:center;display:flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;transition:all var(--transition-normal)}.bid-status.status-waiting{background:#64647833;color:#9ca3af;font-size:.9rem;border:1px solid rgba(100,100,120,.3)}.bid-status.status-passed{background:#ef444426;color:#fca5a5;font-style:italic;border:1px solid rgba(239,68,68,.2)}.bid-status.status-bid{background:#22c55e33;color:#86efac;border:1px solid rgba(34,197,94,.3)}.bid-status .highest-badge{font-size:1rem;margin-left:.25rem;animation:crown-shine 2s ease-in-out infinite}@keyframes crown-shine{0%,to{filter:brightness(1)}50%{filter:brightness(1.3)}}.bid-history{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(139,92,246,.2)}.bid-history-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#c4b5fd}.bid-timeline{display:flex;flex-wrap:wrap;gap:.5rem;max-height:200px;overflow-y:auto}.bid-timeline-item{display:inline-flex;align-items:center;gap:.4rem;background:#1e1e2dcc;border-radius:20px;padding:.35rem .75rem;border:1px solid rgba(139,92,246,.2);font-size:.85rem}.bid-timeline-item .bid-order{background:#8b5cf666;color:#fff;width:1.4rem;height:1.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}.bid-timeline-item .bid-player{color:#d1d5db;font-weight:500}.bid-timeline-item .bid-value{font-weight:700;color:#86efac}.bid-timeline-item .bid-value.passed{color:#fca5a5;font-style:italic}.winning-bid-display{margin-top:1rem;padding:.75rem 1rem;background:linear-gradient(135deg,#f59e0b33,#d9770626);border-radius:12px;border:2px solid rgba(245,158,11,.4);display:flex;justify-content:center;align-items:center;gap:.75rem}.winning-bid-label{color:#fcd34d;font-weight:600;font-size:.95rem}.winning-bid-value{color:#fff;font-size:1.3rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.bid-timeline::-webkit-scrollbar{height:6px}.bid-timeline::-webkit-scrollbar-track{background:#0003;border-radius:3px}.bid-timeline::-webkit-scrollbar-thumb{background:#8b5cf666;border-radius:3px}.bid-timeline::-webkit-scrollbar-thumb:hover{background:#8b5cf699}@media(max-width:640px){.bid-status-grid{grid-template-columns:repeat(2,1fr)}.bid-status-card{padding:.6rem}.bid-status-card .player-name{font-size:.8rem}.bid-status-card .bid-status{font-size:.95rem}}.contract-briefing{margin:0 0 1rem;padding:clamp(1rem,2vw,1.4rem);border:1px solid rgba(251,191,36,.42);border-radius:20px;background:radial-gradient(circle at top right,rgba(251,191,36,.15),transparent 38%),linear-gradient(145deg,#2a230ff5,#0f201bf5);box-shadow:0 18px 42px #0003}.contract-briefing-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.contract-briefing-header h2,.contract-briefing-header p{margin:0}.contract-briefing-header h2{color:#fff7d6;font-size:clamp(1.25rem,2.5vw,1.7rem)}.contract-briefing-header p{color:#d9e7df}.contract-briefing-kicker,.contract-briefing-label{display:block;color:#fbbf24;font-size:.78rem;font-weight:800;letter-spacing:.1em}.contract-briefing-kicker{margin-bottom:.25rem;text-transform:uppercase}.contract-briefing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.contract-briefing-item{min-width:0;padding:1rem;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:#03100c8a}.contract-briefing-item strong{display:block;margin:.3rem 0 .2rem;color:#fff;font-size:clamp(1.4rem,3vw,2rem);line-height:1.15}.contract-briefing-item small{display:block;margin-top:.35rem;color:#aebfb6;font-size:.8rem}.contract-card-meaning{display:inline-flex;padding:.18rem .5rem;border:1px solid rgba(251,191,36,.35);border-radius:999px;color:#fde68a;background:#fbbf241a;font-size:.78rem;font-weight:700}@media(max-width:768px){.contract-briefing-header{align-items:flex-start;flex-direction:column}.contract-briefing-grid{grid-template-columns:1fr}.contract-briefing-item{display:grid;grid-template-columns:minmax(5.5rem,.8fr) minmax(0,1.2fr);align-items:center;column-gap:.75rem}.contract-briefing-item strong{margin:0}.contract-briefing-item small,.contract-card-meaning{grid-column:2}}.game-page{width:100%;min-width:1400px;margin:0;padding:1.5rem 3rem;min-height:100vh;background:var(--gradient-dark);color:#e5e7eb;font-size:1rem;box-sizing:border-box;display:flex;flex-direction:column}@media(min-width:1600px){.game-page{padding:1rem 3rem}}@media(min-width:1920px){.game-page{padding:1rem 4rem}}.game-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.75rem;background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:var(--radius-lg);margin-bottom:1.5rem;border:var(--border-light);flex-shrink:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-soft)}.game-header .back-btn{background:#ffffff14;border:var(--border-medium);color:#e5e7eb;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);flex-shrink:0}.game-header .back-btn:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.game-header h1{flex:1;margin:0;font-size:1.4rem;font-weight:700;color:#fff}.game-info{display:flex;gap:1.25rem;font-size:.85rem;flex-wrap:wrap}.game-info-item{display:flex;flex-direction:column;align-items:center;padding:.5rem 1rem;background:#ffffff0d;border-radius:var(--radius-md);border:var(--border-light)}.game-info-label{color:#9ca3af;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.game-info-value{color:#fff;font-weight:700;margin-top:.25rem}.game-info-item.match-indicator{background:linear-gradient(135deg,#a855f733,#9333ea26);border:1px solid rgba(168,85,247,.3)}.game-info-item.match-indicator .game-info-value{color:#c084fc}.phase-indicator{display:flex;justify-content:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.phase-step{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-full);background:#ffffff0d;color:#9ca3af;font-size:.9rem;font-weight:600;transition:all var(--transition-normal);border:var(--border-light)}.phase-step.active{background:var(--gradient-primary);color:#fff;border:1px solid rgba(255,255,255,.2);box-shadow:var(--shadow-glow);transform:scale(1.05)}.phase-step.completed{background:linear-gradient(135deg,#166534,#14532d);color:#fff;border:1px solid rgba(255,255,255,.2)}.turn-indicator{padding:1.25rem 1.75rem;border-radius:var(--radius-lg);text-align:center;font-weight:700;font-size:1.2rem;margin-bottom:1rem;border:2px solid transparent}.turn-indicator.my-turn{background:linear-gradient(135deg,#166534,#14532d);color:#fff;border-color:#ffffff4d;box-shadow:0 0 30px #22c55e66;animation:pulse 2s ease-in-out infinite}.turn-indicator.waiting{background:#f59e0b26;color:#f59e0b;border-color:#f59e0b66}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.02);opacity:.95}}.partner-revealed-notification{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:1.5rem 3rem;background:linear-gradient(135deg,#1d4ed8fa,#1e40affa);color:#fff;border-radius:var(--radius-xl);font-size:1.25rem;font-weight:700;text-align:center;z-index:1000;animation:partner-reveal-enter .6s ease-out forwards,partner-reveal-pulse 1.5s ease-in-out .6s infinite;box-shadow:var(--shadow-xl);border:2px solid rgba(255,255,255,.3)}.partner-revealed-notification.napoleon-partner{background:linear-gradient(135deg,#fbbf24f2,#f59e0bf2);color:#1a1a2e;border:2px solid rgba(255,255,255,.5);box-shadow:0 0 50px #fbbf24b3,0 0 100px #fbbf2466,0 8px 32px #0006;animation:partner-reveal-enter .6s ease-out forwards,napoleon-partner-pulse 1.2s ease-in-out .6s infinite}.partner-reveal-message{margin-bottom:.5rem}.partner-reveal-card{font-size:1.1rem;padding:.5rem 1rem;background:#fff3;border-radius:8px;margin-top:.5rem}.partner-reveal-card span{font-size:1.3rem;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.3)}.partner-revealed-notification.napoleon-partner .partner-reveal-card{background:#00000026}@keyframes partner-reveal-enter{0%{opacity:0;transform:translate(-50%) translateY(-50px) scale(.8)}60%{transform:translate(-50%) translateY(10px) scale(1.05)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes partner-reveal-pulse{0%,to{box-shadow:0 0 40px #3b82f699,0 8px 32px #0006}50%{box-shadow:0 0 60px #3b82f6cc,0 8px 32px #0006}}@keyframes napoleon-partner-pulse{0%,to{box-shadow:0 0 50px #fbbf24b3,0 0 100px #fbbf2466,0 8px 32px #0006;transform:translate(-50%) scale(1)}50%{box-shadow:0 0 70px #fbbf24e6,0 0 120px #fbbf2480,0 8px 32px #0006;transform:translate(-50%) scale(1.02)}}.hand-section{background:linear-gradient(135deg,#3b82f626,#3b82f614);border:1px solid rgba(59,130,246,.3);border-radius:16px;padding:1.5rem 2rem;margin-bottom:1.5rem;position:relative;z-index:1;min-height:160px}.hand-section h2{margin:0 0 .75rem;font-size:1rem;color:#93c5fd;display:flex;align-items:center;gap:.5rem}.hand-section h2 .card-count{background:#1d4ed8;color:#fff;padding:.2rem .5rem;border-radius:10px;font-size:.8rem}.exchange-section{background:#a855f71a;border:2px solid rgba(168,85,247,.4);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}.exchange-section h2{margin:0 0 1rem;color:#c084fc;display:flex;align-items:center;gap:.5rem}.exchange-instructions{background:#0003;padding:1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;color:#d1d5db}.exchange-instructions .warning-note{color:#fbbf24;background:#fbbf241a;padding:.5rem .75rem;border-radius:6px;margin-top:.5rem;border-left:3px solid #f59e0b}.selected-cards{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;min-height:100px;background:linear-gradient(135deg,#a855f714,#8b5cf60d);padding:1rem;border-radius:8px;border:2px dashed rgba(168,85,247,.4)}.selected-cards.empty{display:flex;align-items:center;justify-content:center;color:#9ca3af}.bidding-section{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}.bidding-section h2{margin:0 0 1rem;color:#86efac}.my-bid-form-container{margin-top:1rem;padding:1.25rem;background:linear-gradient(135deg,#60a5fa1a,#3b82f60d);border-radius:12px;border:1px solid rgba(96,165,250,.3)}.bid-form{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;color:#9ca3af}.form-group select,.form-group input{padding:.75rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#0000004d;color:#fff;font-size:1rem}.form-group select:focus,.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.joker-suit-select-container{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:12px;margin-bottom:.5rem;animation:jokerPulse 2s ease-in-out infinite}@keyframes jokerPulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 8px #f59e0b00}}.joker-suit-alert{font-size:1.1rem;font-weight:700;color:#92400e;text-align:center}.joker-suit-buttons{display:flex;gap:.5rem;justify-content:center}.joker-suit-btn{width:60px;height:60px;font-size:2rem;border:3px solid #d1d5db;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.joker-suit-btn:hover{transform:scale(1.1);border-color:#9ca3af}.joker-suit-btn.selected{border-color:#22c55e;background:#dcfce7;transform:scale(1.15);box-shadow:0 4px 12px #22c55e4d}.joker-suit-warning{font-size:.85rem;color:#b45309;text-align:center;font-weight:600}.form-group.joker-suit-select{display:flex;flex-direction:column}.form-group.joker-suit-select label{color:#fbbf24;font-weight:600}.form-group.joker-suit-select select{min-width:160px;font-size:1.1rem;transition:all .2s ease}.btn{padding:.75rem 1.5rem;border-radius:8px;border:none;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.btn-secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover:not(:disabled){background:#fff3}.btn-success{background:linear-gradient(135deg,#166534,#14532d);color:#fff}.btn-danger{background:linear-gradient(135deg,#b91c1c,#991b1b);color:#fff}.btn-outline{background:transparent;color:#c084fc;border:1px solid rgba(168,85,247,.4);padding:.5rem .75rem;font-size:.85rem}.btn-outline:hover:not(:disabled){background:#a855f726;border-color:#a855f799}.btn-outline.active{background:#a855f74d;border-color:#c084fc;color:#fff}.play-section{background:linear-gradient(135deg,#3b82f614,#3b82f608);border:1px solid rgba(59,130,246,.2);border-radius:16px;padding:1.25rem 1.5rem;margin-bottom:1rem;flex:1}.play-section h2{margin:0 0 .75rem;color:#93c5fd;font-size:1rem}.trick-area-wrapper{background:linear-gradient(135deg,#0006,#14141e80);border-radius:16px;padding:1.5rem 2rem;margin-bottom:1rem;min-height:520px;width:100%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.05);flex-shrink:0}.state-panel{background:#ffffff0d;border-radius:12px;padding:1rem;margin-bottom:1.5rem}.state-panel dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0}.state-panel dt{color:#9ca3af;font-size:.85rem}.state-panel dd{margin:0;color:#fff;font-weight:500}.state-panel dd.partner-revealed{display:flex;align-items:center;gap:.5rem}.state-panel dd .revealed-icon{font-size:1.1rem}.players-role-list{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.players-role-list h4{margin:0 0 .75rem;font-size:.9rem;color:#9ca3af}.role-list{display:flex;flex-wrap:wrap;gap:.5rem}.role-item{display:flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:20px;font-size:.85rem;background:#ffffff1a;transition:all .2s ease}.role-item .role-icon{font-size:1rem}.role-item .role-player-name{font-weight:500;color:#fff}.role-item .role-label{font-size:.75rem;padding:.1rem .4rem;border-radius:8px;background:#0000004d}.role-item.role-napoleon{background:linear-gradient(135deg,#fbbf244d,#f59e0b33);border:1px solid rgba(251,191,36,.5)}.role-item.role-napoleon .role-label{background:#fbbf244d;color:#fbbf24}.role-item.role-adjutant{background:linear-gradient(135deg,#60a5fa4d,#3b82f633);border:1px solid rgba(59,130,246,.5)}.role-item.role-adjutant .role-label{background:#3b82f64d;color:#bfdbfe}.role-item.role-opposition{background:linear-gradient(135deg,#f871714d,#ef444433);border:1px solid rgba(239,68,68,.5)}.role-item.role-opposition .role-label{background:#ef44444d;color:#fecaca}.role-item.role-unknown{background:#ffffff0d;border:1px solid rgba(255,255,255,.2)}.role-item.role-unknown .role-label{color:#9ca3af}.error-message{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:.75rem 1rem;border-radius:8px;margin-top:.75rem;font-size:.9rem}.result-section{background:linear-gradient(135deg,#a855f733,#3b82f633);border:2px solid rgba(168,85,247,.4);border-radius:16px;padding:2rem;text-align:center;margin-bottom:1.5rem}.result-section h2{font-size:2rem;margin:0 0 1.5rem;color:#c084fc}.match-info{background:#0000004d;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.match-progress{font-size:1.2rem;font-weight:600;color:#a78bfa;margin-bottom:1rem}.match-points h4{margin:0 0 .75rem;color:#d1d5db;font-size:.9rem}.match-points-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.match-point-entry{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#ffffff0d;border-radius:8px;font-size:.9rem}.match-point-entry.is-me{background:#a855f733;border:1px solid rgba(168,85,247,.4)}.match-point-entry .player-name{color:#e5e7eb}.match-point-entry .points{font-weight:700;color:#fff}.match-point-entry.positive .points{color:#4ade80}.match-point-entry.negative .points{color:#fca5a5}.match-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.match-completed{text-align:center}.match-completed h3{font-size:1.5rem;color:#fbbf24;margin-bottom:1rem}.final-standings{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.standing{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#ffffff0d;border-radius:8px}.standing.rank-1{background:linear-gradient(135deg,#ffd7004d,#ffa50033);border:1px solid rgba(255,215,0,.5)}.standing.rank-1 .rank{color:gold}.standing.rank-2{background:#c0c0c026;border:1px solid rgba(192,192,192,.3)}.standing.rank-2 .rank{color:silver}.standing.rank-3{background:#cd7f3226;border:1px solid rgba(205,127,50,.3)}.standing.rank-3 .rank{color:#cd7f32}.standing .rank{font-weight:700;font-size:.9rem;min-width:40px}.standing .name{flex:1;text-align:left;color:#e5e7eb}.standing .points{font-weight:700;color:#fff}.btn-large{padding:1rem 2rem;font-size:1.1rem}.result-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.score-card{background:#0000004d;padding:1rem;border-radius:12px}.score-card .label{font-size:.85rem;color:#9ca3af;margin-bottom:.5rem}.score-card .value{font-size:1.5rem;font-weight:700;color:#fff}details{margin-top:1rem}details summary{cursor:pointer;padding:.5rem;background:#ffffff1a;border-radius:8px;font-weight:500}details summary:hover{background:#ffffff26}details[open] summary{margin-bottom:.5rem}@media(max-width:768px){.game-page{padding:.5rem}.game-header{flex-direction:column;gap:1rem;text-align:center}.game-info{flex-wrap:wrap;justify-content:center}.phase-indicator{flex-wrap:wrap}.bid-form{flex-direction:column;align-items:stretch}.form-group{width:100%}}.captured-section{background:linear-gradient(135deg,#f59e0b14,#f59e0b08);border:1px solid rgba(245,158,11,.2);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1rem}.score-display{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.score-item{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.25rem;border-radius:10px;min-width:130px}.score-item.napoleon{background:linear-gradient(135deg,#a855f740,#9333ea40);border:1px solid rgba(168,85,247,.4)}.score-item.rebel{background:linear-gradient(135deg,#3b82f640,#2563eb40);border:1px solid rgba(59,130,246,.4)}.score-item .label{font-size:.8rem;color:#d1d5db;margin-bottom:.2rem}.score-item .value{font-size:1.75rem;font-weight:700;color:#fff;line-height:1}.score-item .unit{font-size:.7rem;color:#9ca3af;margin-top:.2rem}.provisional-note{margin:.5rem 0 0;padding:.4rem .6rem;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:6px;font-size:.75rem;color:#fbbf24;text-align:center}.winner-backdrop{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.winner-announcement{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;text-align:center;padding:2rem;border-radius:16px;min-width:320px;max-width:90vw;box-shadow:0 20px 60px #00000080;animation:winner-slide-in .5s ease-out,winner-pulse 2s ease-in-out .5s infinite}.winner-announcement.napoleon-win{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;box-shadow:0 20px 60px #fbbf2499}.winner-announcement.rebel-win{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff;box-shadow:0 20px 60px #60a5fa99}.winner-close{position:absolute;top:.75rem;right:.75rem;width:36px;height:36px;border:none;background:#ffffff26;color:currentColor;border-radius:50%;font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.winner-close:hover{background:#ffffff40;transform:scale(1.1)}.winner-close:active{transform:scale(.95)}.winner-icon{font-size:3rem;margin-bottom:.5rem}.winner-text{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.winner-detail{font-size:1rem;opacity:.9}.winner-points{margin-top:1rem;text-align:center}.winner-points h4{margin:0 0 .5rem;font-size:1rem;font-weight:700}.winner-points-list{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.winner-point-entry{background:#ffffff1f;padding:.4rem .6rem;border-radius:8px;min-width:110px;display:flex;justify-content:space-between;gap:.5rem;align-items:center;font-weight:700}.winner-point-entry.positive{background:#22c55e1f}.winner-point-entry.negative{background:#ef44441f}.winner-point-entry.is-me{outline:2px solid rgba(255,255,255,.15)}.wp-name{opacity:.95}.wp-points{font-variant-numeric:tabular-nums}@keyframes winner-slide-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes winner-pulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.02)}}.result-scores .score-card.napoleon{border-left:3px solid #fbbf24}.result-scores .score-card.rebel{border-left:3px solid #3b82f6}.player-name-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:#3b82f633;border:1px solid rgba(59,130,246,.4);color:#93c5fd;padding:.25rem .5rem;border-radius:6px;font-size:.9em;cursor:pointer;transition:all .2s ease}.player-name-btn:hover{background:#3b82f64d;border-color:#3b82f699;color:#bfdbfe}.player-name-btn.com-player{background:#a855f733;border-color:#a855f766;color:#c4b5fd}.player-name-btn.com-player:hover{background:#a855f74d;border-color:#a855f799}.modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:1rem}@keyframes fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.player-detail-modal{background:linear-gradient(135deg,#1e293bf2,#0f172af2);border:var(--border-medium);border-radius:var(--radius-xl);padding:2.25rem;min-width:320px;max-width:90vw;box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.player-detail-modal h3{margin:0 0 1.75rem;font-size:1.75rem;color:#fff;text-align:center;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.player-detail-modal dl{display:grid;grid-template-columns:auto 1fr;gap:1rem 1.5rem;margin-bottom:2rem;padding:1.5rem;background:#ffffff0d;border-radius:var(--radius-lg);border:var(--border-light)}.player-detail-modal dt{color:#9ca3af;font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.player-detail-modal dd{margin:0;color:#fff;font-weight:600;font-size:1rem}.player-detail-modal .player-id-full{font-family:monospace;font-size:.85rem;color:#a5b4fc;word-break:break-all;background:#0000004d;padding:.5rem .75rem;border-radius:var(--radius-md);border:1px solid rgba(165,180,252,.2)}.player-detail-modal .btn{width:100%;margin-top:1rem}.current-bid-info{background:#22c55e26;border-left:3px solid #22c55e;padding:.75rem 1rem;margin-bottom:1rem;border-radius:0 8px 8px 0;color:#86efac;font-size:.95rem}.suit-symbol{font-weight:700}.suit-symbol.red{color:#ef4444}.suit-symbol.black{color:#1f2937}.suit-symbol.joker{color:#a855f7}.suit-option{font-weight:500}.form-group select,.form-group input{padding:.85rem 1.1rem;font-size:1.05rem}.btn{padding:.85rem 1.75rem;font-size:1.05rem}.state-panel{padding:1.25rem 1.5rem}.state-panel dl{gap:.75rem 1.25rem;font-size:1rem}.phase-step{padding:.6rem 1.25rem;font-size:.95rem}.turn-indicator{padding:1.25rem 2rem;font-size:1.2rem}.game-page{--game-ink: #f5f7f2;--game-muted: #a9b5ae;--game-line: rgba(221, 236, 227, .12);--game-line-strong: rgba(221, 236, 227, .22);--game-surface: rgba(12, 30, 25, .82);--game-surface-strong: rgba(10, 25, 21, .94);--game-felt: #123f31;--game-mint: #6ee7b7;--game-gold: #f6c768;width:100%;min-width:0;min-height:100dvh;padding:clamp(.75rem,2vw,2rem);color:var(--game-ink);background:radial-gradient(circle at 50% -10%,rgba(45,143,105,.28),transparent 38rem),radial-gradient(circle at 8% 32%,rgba(246,199,104,.07),transparent 26rem),linear-gradient(145deg,#07130f,#0b2019 48%,#07140f);isolation:isolate}.game-page:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 70%);mask-image:linear-gradient(to bottom,black,transparent 70%)}.game-page>*{width:min(100%,1720px);margin-inline:auto}.game-header{position:sticky;top:.75rem;z-index:90;gap:clamp(.75rem,2vw,1.5rem);padding:.85rem clamp(.9rem,2vw,1.4rem);margin-bottom:.9rem;border:1px solid var(--game-line);border-radius:18px;background:#071611db;box-shadow:0 16px 40px #00000047;-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%)}.game-header .back-btn{min-height:44px;padding:.55rem .9rem;border-color:var(--game-line);border-radius:12px;background:#ffffff0b;color:#dce6e0}.game-header .back-btn:hover{transform:none;border-color:var(--game-line-strong);background:#ffffff17}.game-header h1{flex:0 0 auto;font-size:clamp(1.05rem,1.8vw,1.4rem);letter-spacing:.04em}.game-info{flex:1;justify-content:flex-end;gap:.45rem}.game-info-item{min-width:70px;padding:.38rem .7rem;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#ffffff09}.game-info-label{color:#83938a;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.game-info-value{max-width:14rem;overflow:hidden;color:#f3f7f4;font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}.game-info-item.match-indicator{border-color:#f6c76847;background:#f6c76817}.phase-indicator{position:relative;gap:0;padding:.35rem;margin-bottom:.85rem;overflow:hidden;border:1px solid var(--game-line);border-radius:16px;background:#05130fb8}.phase-step{position:relative;z-index:1;flex:1 1 0;min-width:0;padding:.7rem .75rem;border-radius:12px;color:#778981;font-size:.78rem;letter-spacing:.04em;text-align:center}.phase-step.active{color:#071a13;background:linear-gradient(135deg,#98f0c9,#58d7a4);box-shadow:0 8px 22px #2fcc9133}.phase-step.completed{color:#b8d6c8;background:#5cdba614}.state-panel,.bidding-section,.exchange-section,.hand-section,.play-section,.captured-section,.result-section{border:1px solid var(--game-line);border-radius:20px;background:linear-gradient(145deg,#0f2a22e6,#081914e6);box-shadow:0 18px 44px #0003}.state-panel{padding:clamp(1rem,2vw,1.35rem);margin-bottom:.85rem}.state-panel dl{grid-template-columns:repeat(4,minmax(110px,1fr));gap:.85rem}.state-panel dt{margin-bottom:.2rem;color:var(--game-muted);font-size:.7rem;letter-spacing:.06em}.state-panel dd{color:var(--game-ink);font-size:.95rem}.players-role-list{grid-column:1 / -1;border-top-color:var(--game-line)}.role-item{border:1px solid rgba(255,255,255,.07);background:#ffffff0b}.turn-indicator{position:relative;padding:.9rem 1.25rem;margin-bottom:.85rem;overflow:hidden;border:1px solid var(--game-line);border-radius:16px;font-size:clamp(.95rem,1.5vw,1.1rem)}.turn-indicator.my-turn{border-color:#6ee7b76b;color:#d9fff0;background:linear-gradient(90deg,#1a7655c7,#104b38b8);box-shadow:0 12px 30px #15805733}.turn-indicator.waiting{color:#b4c0ba;background:#ffffff09}.hand-section,.bidding-section,.exchange-section,.play-section,.captured-section,.result-section{padding:clamp(1rem,2.2vw,1.6rem);margin-bottom:.85rem}.hand-section h2,.bidding-section h2,.exchange-section h2,.play-section h2,.result-section h2{margin-bottom:1rem;color:#f3f7f4;font-size:clamp(.95rem,1.5vw,1.15rem);letter-spacing:.025em}.hand-section h2 .card-count{margin-left:.65rem;border:1px solid rgba(110,231,183,.18);background:#6ee7b714;color:#9de8ca}.my-bid-form-container,.exchange-instructions,.selected-cards,.current-bid-info{border-color:var(--game-line);border-radius:14px;background:#03110d6b}.bid-form{align-items:end}.form-group label{color:#aebbb4;font-size:.78rem;letter-spacing:.03em}.form-group select,.form-group input{min-height:46px;border:1px solid var(--game-line-strong);border-radius:11px;background:#04110dd1;color:var(--game-ink)}.form-group select:focus,.form-group input:focus{border-color:var(--game-mint);box-shadow:0 0 0 3px #6ee7b721;outline:none}.btn{min-height:44px;padding:.72rem 1.2rem;border-radius:11px;font-size:.92rem;font-weight:700;letter-spacing:.015em;box-shadow:none}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary,.btn-success{border:1px solid rgba(152,240,201,.36);color:#061610;background:linear-gradient(135deg,#98f0c9,#52c997);box-shadow:0 8px 20px #34c58f2e}.btn-secondary,.btn-outline{border-color:var(--game-line-strong);color:#dce7e1;background:#ffffff0e}.trick-area-wrapper{min-height:0;padding:clamp(.5rem,2vw,1.25rem);overflow:hidden;border:1px solid rgba(205,232,217,.13);border-radius:22px;background:radial-gradient(circle at center,#1f694cb8,#051b14cc 72%),#09251c;box-shadow:inset 0 0 70px #00000047}.game-page .trick-area{width:100%;min-width:0;max-width:1200px;height:clamp(330px,40vw,520px);border:1px solid rgba(246,199,104,.22);background:linear-gradient(145deg,#164f3b,#0f382a);box-shadow:inset 0 0 90px #0000006b,0 18px 42px #0000003d}.captured-section{background:#071a14c2}.score-display{gap:.7rem}.score-item{border-radius:14px}.error-message{border-radius:11px;background:#7f1d1d52}.game-page details{padding:.85rem 1rem;border:1px solid var(--game-line);border-radius:12px;color:var(--game-muted);background:#04110d80}.game-page details+details{margin-top:.55rem}.game-page summary{cursor:pointer;color:#c6d2cc;font-size:.84rem}@media(max-width:900px){.game-page{padding:.65rem}.game-page:before{display:none}.game-header{position:relative;top:0;flex-wrap:wrap;border-radius:15px}.game-header h1{flex:1}.game-info{flex-basis:100%;justify-content:stretch}.game-info-item{flex:1 1 84px;min-width:0}.state-panel dl{grid-template-columns:repeat(2,minmax(0,1fr))}.phase-step{padding-inline:.35rem;font-size:.69rem}.game-page .trick-area{height:clamp(300px,58vw,430px)}}@media(max-width:640px){.game-header .back-btn{width:44px;padding-inline:0;overflow:hidden;color:transparent;font-size:0}.game-header .back-btn:before{content:"←";color:#eaf3ee;font-size:1.15rem}.game-info-item:nth-of-type(2),.game-info-item:nth-of-type(3){display:none}.phase-step{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.state-panel dl{grid-template-columns:1fr 1fr;gap:.75rem .5rem}.hand-section,.bidding-section,.exchange-section,.play-section,.captured-section,.result-section{padding:.9rem;border-radius:16px}.bid-form,.match-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.bid-form .form-group,.match-actions .btn-large{grid-column:1 / -1}.btn{min-height:46px;padding-inline:.85rem}.trick-area-wrapper{padding:.35rem;border-radius:16px}.game-page .trick-area{min-width:0;height:290px;border-radius:34%/24%}}.game-header{display:grid;grid-template-columns:auto auto minmax(300px,1fr) auto;align-items:center;gap:.65rem;padding-block:.62rem}.game-title{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.game-title-mark{display:grid;width:2rem;height:2rem;place-items:center;border:1px solid rgba(246,199,104,.3);border-radius:9px;color:var(--game-gold);background:#f6c76814}.game-header .phase-indicator{width:min(100%,560px);margin:0 auto;padding:.22rem;border-radius:11px}.game-header .phase-step{padding:.42rem .5rem;border-radius:8px;font-size:.7rem}.connection-status{display:inline-flex;min-height:34px;align-items:center;gap:.45rem;padding:.4rem .65rem;border:1px solid var(--game-line);border-radius:999px;color:#bac8c0;background:#ffffff0a;font-size:.72rem;white-space:nowrap}.connection-dot{width:.5rem;height:.5rem;border-radius:999px;background:#94a3b8}.connection-status.online .connection-dot,.connection-status.local .connection-dot{background:#6ee7b7;box-shadow:0 0 0 4px #6ee7b71a}.connection-status.syncing .connection-dot,.connection-status.waiting .connection-dot{background:#f6c768}.connection-status.error{color:#fecaca}.connection-status.error .connection-dot{background:#f87171}.developer-toolbar,.developer-panel{width:min(100%,1720px);margin:0 auto .85rem;border:1px dashed rgba(167,139,250,.35);border-radius:13px;background:#4c1d951a}.developer-toolbar{display:flex;align-items:center;gap:.6rem;padding:.6rem}.developer-identifiers{display:flex;min-width:0;flex:1;flex-wrap:wrap;gap:.35rem .8rem;color:#b9a9d7;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem}.developer-panel{padding:.65rem}.game-context-panel{padding:0;overflow:hidden}.game-context-panel>summary{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;color:#dce8e1;list-style:none}.game-context-panel>summary::-webkit-details-marker{display:none}.game-context-panel>summary:after{content:"+";color:#8ca097;font-size:1.1rem}.game-context-panel[open]>summary:after{content:"−"}.game-context-panel[open]>summary{border-bottom:1px solid var(--game-line)}.game-context-panel>dl,.game-context-panel>.players-role-list{margin-inline:1rem}.game-context-summary{margin-left:auto;color:#b9c7bf;font-size:.78rem}.turn-indicator{display:flex;min-height:44px;align-items:center;justify-content:center;padding-block:.62rem}.turn-indicator-icon{margin-right:.55rem;color:#6ee7b7;font-size:.65rem}.turn-indicator-icon.waiting{color:#f6c768}.phase-section-heading{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:.2rem .75rem;margin-bottom:1rem}.phase-section-heading>span{grid-row:1 / 3;align-self:stretch;padding:.35rem .5rem;border:1px solid rgba(110,231,183,.2);border-radius:9px;color:#9de8ca;background:#6ee7b712;font-size:.68rem;letter-spacing:.06em}.phase-section-heading h2,.phase-section-heading p{margin:0}.phase-section-heading p{color:#96a79e;font-size:.76rem}.play-action-dock{position:fixed;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;z-index:100;display:flex;width:min(720px,calc(100% - 2rem));min-height:68px;align-items:center;gap:.7rem;padding:.65rem;margin-inline:auto;border:1px solid rgba(110,231,183,.28);border-radius:16px;background:#051611f0;box-shadow:0 18px 50px #00000085;-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%)}.game-page:has(.play-action-dock){padding-bottom:7rem}.selected-card-preview{display:flex;min-width:150px;flex:1;flex-direction:column;gap:.12rem}.selected-card-preview>span{color:#8fa199;font-size:.66rem;letter-spacing:.05em}.selected-card-preview strong{font-size:1rem}.selected-card-preview strong.empty{color:#c3cec8;font-weight:500}.play-submit-button{min-width:160px}.play-action-dock .joker-suit-select-container{margin:0}.hand-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.table-suits{display:flex;gap:.45rem}.table-suits>span{padding:.35rem .55rem;border:1px solid var(--game-line);border-radius:9px;color:#93a59b;background:#ffffff09;font-size:.7rem}.table-suits strong{margin-left:.25rem;color:#eef6f1;font-size:.82rem}.joker-request-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;margin:.75rem 0;border:2px solid #f6c768;border-radius:12px;color:#f8fafc;background:#3b2f12}.joker-request-banner strong{flex-shrink:0;color:#fff3b0;font-size:.95rem}.joker-request-banner span{color:#f8fafc;font-size:.84rem;line-height:1.5}.joker-request-banner.required{border-color:#fca5a5;background:#4a1919}@media(max-width:640px){.joker-request-banner{align-items:flex-start;flex-direction:column;gap:.25rem}}.result-heading{justify-content:center;grid-template-columns:auto auto;margin-bottom:.8rem;text-align:left}.result-hero{scroll-margin-top:8rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.25rem 1rem;width:min(100%,880px);padding:clamp(1rem,3vw,1.5rem);margin:0 auto 1rem;border:1px solid rgba(255,255,255,.13);border-radius:18px;text-align:left}.result-hero.napoleon-win{border-color:#f6c7685c;background:linear-gradient(135deg,#754f1457,#13362a94)}.result-hero.rebel-win{border-color:#60a5fa61;background:linear-gradient(135deg,#1e40af47,#13362a94)}.result-hero-mark{display:grid;width:3.4rem;height:3.4rem;grid-row:1 / 3;place-items:center;border-radius:14px;color:#fff1bd;background:#ffffff14;font-size:1.7rem}.result-hero-copy>span{color:#9fb0a7;font-size:.68rem;letter-spacing:.1em}.result-hero-copy h3{margin:.1rem 0 .25rem;color:#f8fbf9;font-size:clamp(1.25rem,3vw,1.8rem)}.result-hero-copy p{margin:0;color:#c0cdc6;font-size:.82rem}.result-hero-copy p strong{margin-inline:.25rem;color:#fff}.result-point-summary{display:flex;grid-column:1 / -1;flex-wrap:wrap;gap:.4rem;padding-top:.8rem;margin-top:.45rem;border-top:1px solid rgba(255,255,255,.1)}.result-point-summary-title{flex-basis:100%;margin-bottom:.15rem;color:#f1f7f3;font-size:.78rem}.result-point-summary>span{padding:.32rem .5rem;border-radius:8px;color:#bac8c0;background:#ffffff0d;font-size:.72rem}.result-point-summary .positive strong{color:#86efac}.result-point-summary .negative strong{color:#fca5a5}.result-point-summary .is-me{border:1px solid rgba(110,231,183,.32);color:#e4fff2}.match-points-caption{margin:-.25rem 0 .75rem;color:#b9c7bf;font-size:.78rem;line-height:1.5}.match-standings-scroll{overflow-x:auto;border:1px solid rgba(255,255,255,.12);border-radius:12px}.match-standings-table{width:100%;min-width:520px;border-spacing:0;border-collapse:separate;color:#edf5f0}.match-standings-table th,.match-standings-table td{padding:.7rem .8rem;border-bottom:1px solid rgba(255,255,255,.08);text-align:right}.match-standings-table thead th{color:#c6d2cb;background:#1d2923;font-size:.72rem;font-weight:600}.match-standings-table tbody tr:last-child>*{border-bottom:0}.match-standings-table tbody tr.is-me>*{background:#173e30}.match-standings-table .standing-rank{width:4.5rem;color:#dbe7df;font-weight:700;text-align:left}.match-standings-table .standing-player{text-align:left}.match-standings-table .rank-1 .standing-rank{color:#ffe08a}.match-standings-table .rank-2 .standing-rank{color:#e5e7eb}.match-standings-table .rank-3 .standing-rank{color:#f0b98a}.match-standings-table .standing-current,.match-standings-table .standing-total{width:6rem;font-variant-numeric:tabular-nums;font-weight:700}.match-standings-table .standing-current.positive{color:#86efac}.match-standings-table .standing-current.zero{color:#c3cec7}.match-standings-table .standing-total{color:#f8fafc}.match-standings-table .you-label{display:inline-block;padding:.08rem .35rem;margin-left:.45rem;border:1px solid rgba(110,231,183,.38);border-radius:999px;color:#b7f7d5;font-size:.62rem;font-weight:600}.match-completed-note{margin:-.35rem 0 1rem;color:#c3cec7;font-size:.84rem}.game-page .trick-area{height:clamp(310px,34vw,460px)}@media(max-width:1000px){.game-header{grid-template-columns:auto auto 1fr}.game-header .phase-indicator{grid-column:1 / -1;grid-row:2}.game-info{grid-column:3;grid-row:1}}@media(max-width:640px){.game-header{grid-template-columns:auto 1fr auto;gap:.45rem}.game-title-mark{display:none}.game-header .phase-indicator{width:100%}.game-info{flex-basis:auto}.game-info-item.match-indicator{display:none}.connection-status{min-height:32px;padding-inline:.5rem;font-size:.65rem}.game-context-panel>dl{grid-template-columns:1fr 1fr}.phase-section-heading{grid-template-columns:auto 1fr}.play-action-dock{right:.5rem;bottom:max(.5rem,env(safe-area-inset-bottom));left:.5rem;width:calc(100% - 1rem);min-height:64px;border-radius:14px}.selected-card-preview{min-width:0}.play-submit-button{min-width:132px;padding-inline:.7rem}.play-action-dock .joker-suit-alert,.play-action-dock .joker-suit-warning{display:none}.hand-section-heading{align-items:flex-start;flex-direction:column;gap:.45rem}.table-suits{width:100%}.table-suits>span{flex:1}.result-hero{grid-template-columns:auto minmax(0,1fr);border-radius:14px}.result-hero-mark{width:2.8rem;height:2.8rem;font-size:1.35rem}}@media(prefers-reduced-motion:reduce){.game-page *,.game-page *:before,.game-page *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.game-page .bid-status-panel{padding:clamp(.9rem,2vw,1.25rem);margin:1rem 0;border:1px solid var(--game-line);border-radius:16px;background:#03110d61;box-shadow:none}.game-page .bid-status-title{margin-bottom:1rem;color:#dcebe3;background:none;font-size:1rem;-webkit-text-fill-color:currentColor}.game-page .bid-status-grid{gap:.65rem}.game-page .bid-status-card{padding:.85rem;border-color:#cde8d91c;border-radius:12px;background:#04120ebd}.game-page .bid-status-card:hover{border-color:#6ee7b752;box-shadow:0 10px 24px #0000002e}.game-page .bid-status-card.is-me{border-color:#6ee7b76b;background:linear-gradient(145deg,#1e6e503d,#041812bd)}.game-page .bid-status-card.current-turn,.game-page .bid-status-card.highest-bid{border-color:#f6c7688f;background:linear-gradient(145deg,#f6c7681f,#041812c2);box-shadow:0 0 22px #f6c7681f}.game-page .bid-status-card .player-seat,.game-page .bid-timeline-item .bid-order{border-color:#6ee7b733;color:#bcf3dc;background:#25976c52}.game-page .bid-status-card .player-name{color:#edf5f0}.game-page .bid-history{border-top-color:var(--game-line)}.game-page .bid-history-title{color:#a8c8b8}.game-page .bid-timeline-item{border-color:var(--game-line);background:#020f0ba8}.game-play-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:.85rem;align-items:stretch;margin-bottom:.85rem}.game-play-layout .play-section{min-width:0;margin-bottom:0}.game-history-rail{height:100%;min-height:420px}.final-trick-review-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .9rem;margin-bottom:.9rem;border:1px solid rgba(246,199,104,.34);border-radius:13px;color:#e7efe9;background:linear-gradient(120deg,#f6c7681f,#6ee7b714)}.final-trick-review-banner>div{display:flex;min-width:0;flex-direction:column;gap:.15rem}.final-trick-review-banner strong{color:#ffe3a0;font-size:.92rem}.final-trick-review-banner span{color:#aebdb5;font-size:.76rem}.final-trick-review-banner .btn{min-width:max-content}@media(max-width:1000px){.game-play-layout{grid-template-columns:1fr}.game-history-rail{min-height:0}}@media(max-width:640px){.final-trick-review-banner{align-items:stretch;flex-direction:column}.final-trick-review-banner .btn{width:100%}}.ranking-page{max-width:1400px;min-width:1000px;margin:0 auto;padding:0;background:var(--gradient-dark);min-height:100vh;display:flex;flex-direction:column}.ranking-header{display:flex;align-items:flex-start;gap:1.5rem;padding:1.75rem 2.5rem;background:#0000004d;border-bottom:var(--border-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ranking-header .back-btn{background:#ffffff14;border:var(--border-medium);color:#e5e7eb;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);flex-shrink:0}.ranking-header .back-btn:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.header-title{flex:1}.ranking-header h1{font-size:2rem;margin:0 0 .25rem;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:.05em}.ranking-header p{color:#ffffffa6;font-size:.95rem;margin:0;font-weight:500}.ranking-content{flex:1;padding:2.5rem 3rem;overflow-y:auto}.user-stats-card{background:var(--gradient-primary);border-radius:var(--radius-xl);padding:2rem;margin-bottom:2.5rem;color:#fff;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.15)}.user-stats-card h2{font-size:1.5rem;margin-bottom:1.5rem;opacity:.95;font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem}.stat-card{display:flex;align-items:center;gap:1rem;background:#ffffff26;border-radius:var(--radius-lg);padding:1.25rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);transition:all var(--transition-normal)}.stat-card:hover{background:#fff3;transform:translateY(-2px)}.stat-card.highlight{background:#ffffff40;border:1px solid rgba(255,255,255,.4);box-shadow:0 0 20px #ffffff26}.stat-icon{font-size:1.75rem}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label{font-size:.9rem;opacity:.85}.ranking-controls{display:flex;gap:1.25rem;margin-bottom:2rem;flex-wrap:wrap}.search-input{flex:1;min-width:240px;padding:1rem 1.25rem;border:1px solid rgba(255,255,255,.2);border-radius:10px;font-size:1.1rem;background:#ffffff0d;color:#fff;transition:border-color .2s,box-shadow .2s}.search-input::placeholder{color:#fff6}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 4px #667eea40}.refresh-btn{padding:1rem 2rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:10px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s}.refresh-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #667eea66}.refresh-btn:active:not(:disabled){transform:scale(.98)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#ff6b811a;border:1px solid rgba(255,107,129,.3);color:#fecdd3;padding:1.25rem;border-radius:10px;margin-bottom:1.25rem;font-size:1rem}.loading-state{display:flex;flex-direction:column;align-items:center;padding:4rem;color:#fff9}.spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1.25rem}.ranking-table-container{overflow-x:auto;border-radius:1rem;box-shadow:0 4px 24px #0000004d}.ranking-table{width:100%;border-collapse:collapse;background:#ffffff0d}.ranking-table th,.ranking-table td{padding:1.125rem 1.25rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.ranking-table th{background:#0000004d;font-weight:600;color:#ffffffe6;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em}.ranking-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.ranking-table th.sortable:hover{background:#667eea33}.ranking-table th.sortable.active{background:#667eea4d;color:#a5b4fc}.ranking-table tbody tr{transition:background .2s}.ranking-table tbody tr:hover{background:#ffffff14}.ranking-table tbody tr.current-user{background:#667eea26}.ranking-table tbody tr.current-user:hover{background:#667eea33}.ranking-table tbody tr.top-1{background:linear-gradient(90deg,rgba(251,191,36,.15) 0%,transparent 50%)}.ranking-table tbody tr.top-2{background:linear-gradient(90deg,rgba(156,163,175,.15) 0%,transparent 50%)}.ranking-table tbody tr.top-3{background:linear-gradient(90deg,rgba(251,146,60,.15) 0%,transparent 50%)}.rank-col{width:70px;text-align:center;font-size:1.4rem}.player-col{min-width:180px}.player-name{font-weight:500;color:#ffffffe6}.rating-col{width:120px}.rating-badge{display:inline-block;padding:.375rem 1rem;background:var(--gradient-primary);color:#fff;border-radius:1.25rem;font-weight:600;font-size:1rem}.winrate-col{width:160px}.winrate-bar{position:relative;width:100%;height:28px;background:#ffffff1a;border-radius:.375rem;overflow:hidden}.winrate-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#10b981,#34d399);transition:width .5s ease-out}.winrate-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.wins-col{color:#4ade80;font-weight:500}.date-col{color:#ffffff80;font-size:.95rem}.empty-state{text-align:center;padding:4rem;color:#ffffff80;font-size:1.1rem}@media(max-width:1000px){.ranking-page{padding:1.5rem;min-width:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}.ranking-table th,.ranking-table td{padding:.75rem .625rem;font-size:.95rem}.rank-col{width:50px}.winrate-bar{display:none}}.rules-page{min-height:100vh;background:var(--gradient-dark);color:#e5e7eb;display:flex;flex-direction:column}.rules-header{display:flex;align-items:center;gap:1.5rem;padding:1.75rem 2.5rem;background:#0000004d;border-bottom:var(--border-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.back-btn{background:#ffffff14;border:var(--border-medium);color:#e5e7eb;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.back-btn:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.rules-header h1{margin:0;font-size:1.75rem;font-weight:800;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.rules-content{flex:1;max-width:900px;margin:0 auto;padding:2.5rem 2.5rem 4rem;width:100%;overflow-y:auto}.rule-section{margin-bottom:2.5rem;background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:var(--radius-lg);padding:2rem;border:var(--border-light);transition:all var(--transition-normal);position:relative;overflow:hidden}.rule-section:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.rule-section:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#ffffff26;box-shadow:var(--shadow-md);transform:translateY(-2px)}.rule-section:hover:before{opacity:1}.rule-section h2{font-size:1.5rem;font-weight:800;margin:0 0 1.25rem;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1}.rule-section p{line-height:1.8;margin:0 0 1rem;position:relative;z-index:1;color:#ffffffe6}.rule-section ul,.rule-section ol{margin:0;padding-left:1.75rem;line-height:2;position:relative;z-index:1}.rule-section li{margin-bottom:.5rem;color:#ffffffd9}.card-strength{display:flex;flex-direction:column;gap:.75rem}.strength-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#0003;border-radius:var(--radius-md);border:var(--border-light);transition:all var(--transition-normal)}.strength-item:hover{background:#0000004d;transform:translate(4px)}.strength-item.special{background:linear-gradient(135deg,#fbbf2433,#f59e0b26);border:1px solid rgba(251,191,36,.4)}.strength-rank{font-size:.8rem;font-weight:700;color:#fbbf24;min-width:60px}.strength-name{font-weight:500;flex:1}.strength-note{font-size:.8rem;color:#9ca3af;font-style:italic}.special-rules{display:flex;flex-direction:column;gap:1rem}.special-rule{background:#0003;border-radius:.75rem;padding:1rem 1.25rem;border-left:3px solid #fbbf24}.special-rule h4{margin:0 0 .5rem;font-size:1rem;color:#fbbf24}.special-rule p{margin:0;font-size:.95rem;line-height:1.6}.yoromeki-info{background:linear-gradient(135deg,#ec489926,#db27771a);border:1px solid rgba(236,72,153,.3);border-radius:.75rem;padding:1rem 1.25rem;margin-top:1rem}.yoromeki-info p{margin:0 0 .5rem}.yoromeki-info p:last-child{margin-bottom:0}.reverse-triggers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.reverse-triggers h4{margin:0 0 .5rem;font-size:.95rem;color:#fbbf24}.reverse-triggers ul{margin:0;padding-left:1.25rem;line-height:1.8}.reverse-triggers>ul:first-of-type{background:#fbbf241a;border:1px solid rgba(251,191,36,.25);border-radius:.5rem;padding:.75rem 1rem .75rem 2rem}.reverse-triggers>ul:last-of-type{background:#64748b26;border:1px solid rgba(100,116,139,.3);border-radius:.5rem;padding:.75rem 1rem .75rem 2rem}.picture-cards{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.picture-card{background:#3b82f626;border:1px solid rgba(59,130,246,.3);padding:.5rem 1rem;border-radius:.5rem;font-weight:600}.picture-count{color:#9ca3af;font-size:.9rem}.win-conditions{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.win-condition{padding:1.25rem;border-radius:.75rem;text-align:center}.win-condition h3{margin:0 0 .5rem;font-size:1.1rem}.win-condition p{margin:0;font-size:.95rem;opacity:.9}.win-condition.napoleon{background:linear-gradient(135deg,#fbbf2426,#f59e0b1a);border:1px solid rgba(251,191,36,.3)}.win-condition.rebels{background:linear-gradient(135deg,#ef444426,#dc26261a);border:1px solid rgba(239,68,68,.3)}.points-table{margin-top:1rem}.points-table h4{margin:1.5rem 0 .75rem;font-size:1rem;color:#e5e7eb}.points-table h4:first-child{margin-top:0}.points-table table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:1rem}.points-table th,.points-table td{padding:.6rem .75rem;text-align:center;border:1px solid rgba(255,255,255,.1)}.points-table th{background:#0000004d;font-weight:600;color:#9ca3af;font-size:.85rem}.points-table td{background:#00000026}.points-table td.plus{color:#4ade80;font-weight:600}.points-table td.minus{color:#fca5a5;font-weight:600}.bonus-info{background:#fbbf241a;border:1px solid rgba(251,191,36,.25);border-radius:.75rem;padding:1rem 1.25rem;margin-top:1.5rem}.bonus-info h4{margin:0 0 .5rem;color:#fbbf24}.bonus-info ul{margin:0;padding-left:1.25rem;line-height:1.8}.tips-list{list-style:none;padding:0;margin:0}.tips-list li{padding:.75rem 1rem;margin-bottom:.5rem;background:#0003;border-radius:.5rem;border-left:3px solid #60a5fa}.tips-list li:before{content:"💡 "}.note{font-size:.9rem;color:#9ca3af;font-style:italic}@media(max-width:768px){.rules-content{padding:1.5rem}.rule-section{padding:1.25rem 1.5rem}.win-conditions{grid-template-columns:1fr}.strength-item{flex-wrap:wrap}.strength-note{width:100%;margin-top:.25rem;padding-left:calc(60px + 1rem)}.points-table table{font-size:.8rem}.points-table th,.points-table td{padding:.5rem .4rem}.yoromeki-triggers,.reverse-triggers{grid-template-columns:1fr}}.admin-model-page{padding:16px}.form-row,.status-row,.upload-row,.delete-row{margin-bottom:16px}.form-row input[type=password]{margin-left:8px;margin-right:8px}.upload-row input[type=file]{margin-right:8px}:root{color-scheme:light dark;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;background-color:#1a1d2e;color:#f0f4ff;font-size:16px;--color-surface-page: #1a1d2e;--color-surface-card: #ffffff;--color-surface-game-deep: #03100c;--color-text-primary: #f8fafc;--color-text-secondary: #cbd5e1;--color-text-muted: #aebccf;--color-focus-inner: #facc15;--color-focus-outer: #111827;--color-primary: #a5b4fc;--color-primary-light: #c7d2fe;--color-primary-dark: #4055b5;--color-secondary: #c4b5fd;--color-secondary-light: #ddd6fe;--color-secondary-dark: #5b3a84;--color-accent-gold: #fbbf24;--color-accent-gold-dark: #f59e0b;--color-accent-purple: #a855f7;--color-accent-blue: #3b82f6;--color-accent-cyan: #06b6d4;--color-accent-pink: #ec4899;--color-suit-spades-on-light: #111827;--color-suit-clubs-on-light: #111827;--color-suit-hearts-on-light: #b91c1c;--color-suit-diamonds-on-light: #b91c1c;--color-suit-joker-on-light: #6d28d9;--color-suit-spades-on-dark: #f8fafc;--color-suit-clubs-on-dark: #f8fafc;--color-suit-hearts-on-dark: #fda4af;--color-suit-diamonds-on-dark: #fda4af;--color-suit-joker-on-dark: #d8b4fe;--gradient-dark: linear-gradient( 135deg, #1e2139 0%, #2a2d4a 50%, #1f2335 100% );--gradient-primary: linear-gradient( 135deg, var(--color-primary-dark) 0%, var(--color-secondary-dark) 100% );--gradient-accent: linear-gradient( 135deg, #fbbf24 0%, #f59e0b 50%, #d97706 100% );--gradient-glass: linear-gradient( 135deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .05) );--shadow-soft: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(102, 126, 234, .3);--border-light: 1px solid rgba(255, 255, 255, .05);--border-medium: 1px solid rgba(255, 255, 255, .1);--border-strong: 1px solid rgba(255, 255, 255, .15);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-2xl: 2rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--color-surface-page);color:var(--color-text-primary);font-size:1rem}#root{min-height:100vh;min-width:320px;width:100%}.btn{padding:.875rem 1.75rem;border-radius:10px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);border:none;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);opacity:0;transform:translate(-100%);transition:opacity var(--transition-normal)}.btn:hover:before{opacity:1;transform:translate(100%)}.btn:disabled{opacity:.72;cursor:not-allowed;filter:saturate(.65)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-md)}.btn-secondary{background:#ffffff1a;color:var(--color-text-primary);border:var(--border-medium)}.btn-secondary:hover:not(:disabled){background:#ffffff26;border-color:#fff3;transform:translateY(-2px)}.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn-outline{background:transparent;color:var(--color-primary-light);border:1px solid var(--color-primary-light)}.btn-outline:hover:not(:disabled){background:#667eea1a;border-color:var(--color-primary-light)}.btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;box-shadow:var(--shadow-md)}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.glass{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:var(--border-light)}.glass-strong{background:linear-gradient(135deg,#ffffff26,#ffffff14);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--border-medium)}.card{background:linear-gradient(135deg,#ffffff14,#ffffff08);border:var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-normal)}.card:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#ffffff26;transform:translateY(-2px);box-shadow:var(--shadow-md)}.badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;background:#667eea33;color:var(--color-primary-light);border:1px solid rgba(102,126,234,.3)}.badge-gold{background:#fbbf2433;color:#fcd34d;border-color:#fbbf244d}.badge-purple{background:#a855f733;color:#d8b4fe;border-color:#a855f74d}.spinner{display:inline-block;width:1em;height:1em;border:2px solid rgba(255,255,255,.2);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #667eea66}.btn-success{background:linear-gradient(135deg,#4ade80,#22c55e);color:#1a1a2e}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #4ade8066}.btn-secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:#ffffff26}:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--color-focus-inner);outline-offset:3px;box-shadow:0 0 0 5px var(--color-focus-outer)}:root{--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px)}html{overscroll-behavior:none;-webkit-overflow-scrolling:touch}body{min-height:100vh;min-height:-webkit-fill-available;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior-y:contain}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}.ios-status-bar-bg{position:fixed;top:0;left:0;right:0;height:var(--safe-area-inset-top);background:var(--gradient-dark);z-index:9999}.android-nav-bar-bg{position:fixed;bottom:0;left:0;right:0;height:var(--safe-area-inset-bottom);background:var(--gradient-dark);z-index:9999}.safe-area{display:flex;flex-direction:column;min-height:100vh;background:var(--gradient-dark)}.safe-area-view{display:flex;flex-direction:column;flex:1}.bottom-nav{position:fixed;bottom:0;left:0;right:0;padding-bottom:var(--safe-area-inset-bottom);background:linear-gradient(180deg,#1e293bf2,#0f172afa);border-top:1px solid rgba(102,126,234,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;box-shadow:0 -4px 20px #0006}.fullscreen-modal{position:fixed;inset:0;padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right);background:var(--gradient-dark);z-index:9000;overflow-y:auto;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.fab{position:fixed;bottom:calc(16px + var(--safe-area-inset-bottom));right:16px;z-index:100;background:var(--gradient-primary);border-radius:50%;padding:16px;box-shadow:var(--shadow-lg);transition:all var(--transition-normal) ease}.fab:active{transform:scale(.92);box-shadow:var(--shadow-md)}.scrollable-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.touchable{transition:transform var(--transition-fast) ease,opacity var(--transition-fast) ease;border-radius:var(--radius-lg)}.touchable:active{transform:scale(.96);opacity:.85}.ios-list{background:#1e293b99;border-radius:var(--radius-xl);overflow:hidden;border:var(--border-medium);box-shadow:var(--shadow-md)}.ios-list-item{padding:16px;border-bottom:1px solid rgba(102,126,234,.15);transition:all var(--transition-fast) ease;background:transparent}.ios-list-item:hover{background:#667eea1a}.ios-list-item:last-child{border-bottom:none}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#667eea66;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:width var(--transition-normal),height var(--transition-normal),opacity var(--transition-normal)}.ripple:active:after{width:200%;height:200%;opacity:1;transition:width 0s,height 0s,opacity 0s}.keyboard-open .bottom-nav,.keyboard-open .fab{display:none}@media(orientation:landscape){.safe-area,.bottom-nav{padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}}@media(max-width:480px){.hide-on-mobile{display:none!important}.mobile-full-width{width:100%}.ios-list-item{padding:12px;font-size:14px}.fab{bottom:calc(12px + var(--safe-area-inset-bottom));right:12px;padding:12px}}@media(min-width:768px){.hide-on-tablet{display:none!important}.tablet-container{max-width:720px;margin:0 auto}.ios-list{max-width:600px}}@media(prefers-color-scheme:dark){:root{--bg-primary: linear-gradient(135deg, #0c0c1d 0%, #16213e 100%);--bg-secondary: rgba(30, 41, 59, .7);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7)}.safe-area{background:var(--gradient-dark)}.ios-list{background:#1e293b99}}@media(prefers-color-scheme:light){:root{--bg-primary: linear-gradient(135deg, #ffffff 0%, #f5f7fa 100%);--bg-secondary: rgba(245, 247, 250, .9);--text-primary: #000000;--text-secondary: rgba(0, 0, 0, .7)}.safe-area{background:linear-gradient(135deg,#fff,#f5f7fa)}.ios-list{background:#f5f7facc}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.haptic-button{cursor:pointer}.haptic-button:active{transform:scale(.95);transition:none}.notification-banner{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:12px 16px;margin:8px;color:#fff;box-shadow:var(--shadow-md);animation:slideDown .3s ease}.notification-banner.success{background:linear-gradient(135deg,#10b981,#059669)}.notification-banner.error{background:linear-gradient(135deg,#ef4444,#dc2626)}.notification-banner.warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.mobile-input{font-size:16px;padding:12px 16px;border:1px solid rgba(102,126,234,.3);border-radius:var(--radius-lg);background:#1e293b99;color:#fff;transition:all var(--transition-normal) ease}.mobile-input:focus{outline:none;border-color:#667eeacc;background:#1e293bcc;box-shadow:0 0 0 3px #667eea33}.mobile-button{padding:16px;border-radius:var(--radius-lg);font-size:16px;font-weight:600;border:none;cursor:pointer;transition:all var(--transition-normal) ease;-webkit-user-select:none;user-select:none}.mobile-button:active{transform:scale(.98)}.swipeable{touch-action:pan-y;cursor:grab}.swipeable:active{cursor:grabbing}.no-overscroll{overscroll-behavior:contain}.interactive-card{background:#1e293b99;border:1px solid rgba(102,126,234,.2);border-radius:var(--radius-lg);padding:16px;transition:all var(--transition-normal) ease}.interactive-card:active{transform:scale(.98);border-color:#667eea80;background:#1e293bcc}
