*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}#score-bar{display:flex;justify-content:space-between;align-items:center;background:rgba(0,105,92,.15);border:1px solid rgba(0,105,92,.3);border-radius:12px;padding:10px 16px;margin-bottom:8px;font-weight:600}.team-score{display:flex;align-items:center;gap:8px}.team-label{color:rgba(255,255,255,.7);font-size:.85em}.score-value{font-size:1.3em;color:#4db6ac}.tricks-value{font-size:.85em;color:rgba(255,255,255,.5)}#round-info{display:flex;flex-direction:column;align-items:center;gap:2px}#round-number{font-size:.85em;color:rgba(255,255,255,.6)}#contract-display{font-size:1.1em;color:#80cbc4;font-weight:700}#phase-bar{display:flex;justify-content:center;gap:4px;margin-bottom:10px}.phase-label{padding:4px 14px;border-radius:16px;font-size:.8em;font-weight:600;color:rgba(255,255,255,.4);background:rgba(255,255,255,5%);transition:all .3s}.phase-label.active{background:rgba(0,105,92,.3);color:#4db6ac;box-shadow:0 0 8px rgba(0,105,92,.3)}#game-table{display:grid;grid-template-columns:1fr 2fr 1fr;grid-template-rows:auto 1fr auto;gap:8px;max-width:560px;margin:0 auto 12px;min-height:280px;position:relative}#player-top{grid-column:2;grid-row:1;text-align:center}#player-left{grid-column:1;grid-row:2;display:flex;flex-direction:column;justify-content:center;align-items:center}#trick-area{grid-column:2;grid-row:2}#player-right{grid-column:3;grid-row:2;display:flex;flex-direction:column;justify-content:center;align-items:center}#player-bottom{grid-column:2;grid-row:3;text-align:center}.player-slot{padding:8px;border-radius:10px;min-height:60px;background:rgba(255,255,255,3%);border:1px solid rgba(255,255,255,6%);transition:box-shadow .3s,border-color .3s}.player-slot.active-turn{border-color:rgba(0,105,92,.5);box-shadow:0 0 12px rgba(0,105,92,.25)}.player-slot.is-dummy{border-color:rgba(255,193,7,.4);background:rgba(255,193,7,5%)}.player-name{font-weight:600;font-size:.85em;margin-bottom:4px;color:rgba(255,255,255,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-name .dummy-badge{color:#ffc107;font-size:.75em;margin-left:4px}.player-cards{font-size:.8em;color:rgba(255,255,255,.4)}#dummy-hand{display:none;margin:8px auto;max-width:560px;padding:10px;background:rgba(255,193,7,5%);border:1px solid rgba(255,193,7,.2);border-radius:10px}#dummy-hand .dummy-title{color:#ffc107;font-size:.85em;font-weight:600;margin-bottom:6px;text-align:center}#dummy-hand .dummy-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}#trick-area{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;place-items:center;min-height:160px;background:rgba(0,105,92,6%);border:1px solid rgba(0,105,92,.15);border-radius:12px;position:relative}#trick-top{grid-column:2;grid-row:1}#trick-left{grid-column:1;grid-row:2}#trick-right{grid-column:3;grid-row:2}#trick-bottom{grid-column:2;grid-row:3}.trick-card{width:48px;height:68px;display:flex;align-items:center;justify-content:center;font-size:.95em;font-weight:700;border-radius:6px;transition:all .3s}.trick-card.has-card{background:#fff;border:1px solid #ddd;box-shadow:0 2px 6px rgba(0,0,0,.15)}.trick-card .suit-red{color:#d32f2f}.trick-card .suit-black{color:#222}@keyframes sweep-top{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(0,-80px)}}@keyframes sweep-left{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(-80px,0)}}@keyframes sweep-right{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(80px,0)}}@keyframes sweep-bottom{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(0,80px)}}.sweep-top .trick-card{animation:sweep-top .5s ease-in forwards}.sweep-left .trick-card{animation:sweep-left .5s ease-in forwards}.sweep-right .trick-card{animation:sweep-right .5s ease-in forwards}.sweep-bottom .trick-card{animation:sweep-bottom .5s ease-in forwards}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-40px)}}.plus-one{position:absolute;color:#4db6ac;font-weight:700;font-size:1.2em;animation:floatUp .8s ease-out forwards;pointer-events:none}#hand-area{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:8px;min-height:80px;margin:0 auto;max-width:600px}.hand-card{width:52px;height:74px;background:#fff;border:2px solid #e0e0e0;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.9em;font-weight:700;cursor:default;transition:transform .15s,border-color .15s,box-shadow .15s;user-select:none}.hand-card.playable{border-color:#00695c;cursor:pointer}.hand-card.playable:hover{transform:translateY(-6px);box-shadow:0 4px 12px rgba(0,105,92,.3)}.hand-card .suit-red{color:#d32f2f}.hand-card .suit-black{color:#222}#auction-panel{display:none;max-width:500px;margin:12px auto;padding:16px;background:rgba(0,105,92,8%);border:1px solid rgba(0,105,92,.2);border-radius:12px;text-align:center}#auction-info{color:#4db6ac;font-weight:600;margin-bottom:10px}#auction-history{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:10px}.auction-entry{padding:3px 8px;border-radius:6px;font-size:.8em;background:rgba(255,255,255,5%);color:rgba(255,255,255,.6)}.auction-entry.current{background:rgba(0,105,92,.2);color:#4db6ac}#bid-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:8px}.bid-btn{padding:8px 4px;font-size:.85em;font-weight:600;border-radius:8px;border:1px solid rgba(0,105,92,.3);background:rgba(0,105,92,.1);color:#fff;cursor:pointer;transition:all .2s}.bid-btn:hover:not(:disabled){background:rgba(0,105,92,.3)}.bid-btn:disabled{opacity:.3;cursor:default}.bid-btn .suit-red{color:#ef5350}.bid-btn .suit-black{color:#fff}#auction-actions{display:flex;justify-content:center;gap:8px;margin-top:8px}.auction-action-btn{padding:10px 24px;font-size:.95em;font-weight:700;border-radius:8px;border:none;cursor:pointer;transition:all .2s}.pass-btn{background:rgba(255,255,255,.1);color:rgba(255,255,255,.8)}.pass-btn:hover{background:rgba(255,255,255,.2)}.double-btn{background:rgba(244,67,54,.2);color:#ef5350;border:1px solid rgba(244,67,54,.3)}.double-btn:hover{background:rgba(244,67,54,.3)}#game-status{text-align:center;color:rgba(255,255,255,.7);font-size:.95em;min-height:24px;margin:8px 0}#timer-bar{height:4px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;margin:8px 0}#timer-fill{height:100%;background:#4db6ac;border-radius:2px;width:100%;transition:width 1s linear,background .5s}.results-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:999;padding:16px}.results-card{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:16px;padding:24px;max-width:400px;width:100%;text-align:center;border:1px solid rgba(0,105,92,.3)}.results-card h2{font-size:1.6em;margin-bottom:12px}#results-scores{margin:16px 0}.results-team{display:flex;justify-content:space-between;padding:8px 12px;margin:4px 0;background:rgba(255,255,255,5%);border-radius:8px}#results-xp{margin:16px 0}.xp-bar{height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden;margin-top:6px}.xp-fill{height:100%;background:linear-gradient(90deg,#00796b,#4db6ac);border-radius:4px;transition:width 1s ease-out}.results-actions{display:flex;gap:10px;margin-top:16px}.results-actions .actionBtn{flex:1;padding:12px;font-size:1em;font-weight:700;border:none;border-radius:10px;cursor:pointer}.actionBtn-green{background:linear-gradient(180deg,#2e7d32,#1b5e20);color:#fff}.actionBtn-blue{background:linear-gradient(180deg,#00796b,#004d40);color:#fff}.challenge-msg{margin-top:8px;font-size:.85em;color:rgba(255,255,255,.6)}@media(max-width:600px){#game-table{max-width:100%;gap:4px;min-height:220px}.trick-card{width:40px;height:58px;font-size:.8em}.hand-card{width:44px;height:64px;font-size:.8em}#score-bar{padding:8px 10px;font-size:.9em}.bid-btn{padding:6px 2px;font-size:.75em}#auction-panel{padding:10px}}