*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--table-green: #1a4a2e;--table-green-light: #1e5a36;--table-border: #0f2e1a;--card-bg: #fdf6e3;--card-shadow: rgba(0,0,0,.4);--card-back-bg: #1a237e;--card-back-accent: #283593;--card-red: #c62828;--card-black: #212121;--team-a: #1565c0;--team-a-light: #1976d2;--team-b: #b71c1c;--team-b-light: #c62828;--gold: #ffd700;--gold-dark: #f9a825;--text-light: #e8f5e9;--text-muted: #a5d6a7;--text-dark: #1a1a1a;--panel-bg: rgba(0,0,0,.45);--panel-border: rgba(255,255,255,.1);--btn-primary: #2e7d32;--btn-primary-hover: #388e3c;--btn-secondary: #455a64;--btn-secondary-hover: #546e7a;--btn-danger: #c62828;--btn-danger-hover: #d32f2f;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--card-w-sm: 42px;--card-h-sm: 58px;--card-w-md: 60px;--card-h-md: 84px;--card-w-lg: 80px;--card-h-lg: 112px}html,body{height:100%;font-family:var(--font);background:var(--table-green);color:var(--text-light);overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}.app-root{height:100vh;position:relative;overflow:hidden}.error-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:#b71c1c;color:#fff;padding:10px 20px;border-radius:8px;z-index:9999;display:flex;align-items:center;gap:12px;box-shadow:0 4px 12px #0006;cursor:pointer;max-width:80vw}.error-dismiss{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font);transition:background .15s,transform .1s,opacity .15s;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled,.btn-disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--btn-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover)}.btn-secondary{background:var(--btn-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn-danger{background:var(--btn-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--btn-danger-hover)}.btn-large{padding:12px 28px;font-size:16px;border-radius:10px}.input{width:100%;padding:10px 14px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:15px;font-family:var(--font);transition:border-color .2s}.input:focus{outline:none;border-color:#ffffff80}.input::placeholder{color:#ffffff4d}.input-mono{font-family:monospace;letter-spacing:2px;text-transform:uppercase}.home-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1e5a36,#0f2e1a)}.home-card{background:#00000080;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:40px;width:380px;max-width:95vw;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 40px #00000080}.home-logo{display:flex;justify-content:center;gap:8px;margin-bottom:8px}.suit-symbol{font-size:32px}.suit-symbol.red{color:var(--card-red)}.suit-symbol.black{color:#fff}.home-title{text-align:center;font-size:36px;font-weight:700;color:var(--gold);margin-bottom:4px}.home-subtitle{text-align:center;color:var(--text-muted);margin-bottom:28px;font-size:14px}.home-form{display:flex;flex-direction:column;gap:14px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;color:var(--text-muted);font-weight:500}.divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#ffffff26}.home-rules-hint{margin-top:24px;text-align:center;color:var(--text-muted);font-size:12px}.lobby-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1e5a36,#0f2e1a);padding:20px;overflow-y:auto}.lobby-container{background:#00000080;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:36px;width:600px;max-width:95vw;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lobby-title{text-align:center;color:var(--gold);font-size:28px;margin-bottom:20px}.lobby-room-info{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}.room-id-label{color:var(--text-muted);font-size:14px}.room-id-value{font-family:monospace;font-size:22px;font-weight:700;color:var(--gold);letter-spacing:4px}.lobby-share{display:flex;gap:10px;margin-bottom:16px}.share-link-input{flex:1;font-size:13px}.player-count{text-align:center;color:var(--text-muted);font-size:14px;margin-bottom:20px}.teams-layout{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px}.team-column{flex:1;display:flex;flex-direction:column;gap:8px}.team-header{font-size:16px;font-weight:700;text-align:center;padding:6px;border-radius:6px}.team-seats-label{text-align:center;font-size:11px;color:var(--text-muted);margin-bottom:4px}.team-a-label{color:var(--team-a-light)}.team-b-label{color:var(--team-b-light)}.vs-divider{display:flex;align-items:center;color:var(--text-muted);font-weight:700;padding-top:40px}.player-slot{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:#0003;border:1px solid rgba(255,255,255,.08)}.player-slot.occupied{border-color:#fff3;background:#ffffff0f}.player-slot.is-me{border-color:var(--gold);background:#ffd70014}.seat-number{font-size:11px;color:var(--text-muted);font-family:monospace;min-width:24px}.player-name{flex:1;font-weight:600;font-size:14px}.waiting-text{flex:1;color:var(--text-muted);font-style:italic;font-size:13px}.team-badge{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px}.team-a-badge{background:var(--team-a);color:#fff}.team-b-badge{background:var(--team-b);color:#fff}.lobby-actions{display:flex;justify-content:center}.waiting-host{text-align:center;color:var(--text-muted);font-style:italic;font-size:14px}.game-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:20px;color:var(--text-muted)}.game-screen{display:flex;height:100vh;background:radial-gradient(ellipse at center,var(--table-green-light) 0%,var(--table-green) 50%,var(--table-border) 100%);overflow:hidden}.game-sidebar-left{width:180px;min-width:180px;display:flex;flex-direction:column;gap:8px;padding:8px;background:#0000004d;border-right:1px solid rgba(255,255,255,.08);overflow-y:auto}.game-board{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.player-table{flex:1;position:relative;display:grid;grid-template-areas:". top ." "top-left center top-right" "btm-left center btm-right" ". bottom .";grid-template-columns:1fr 2fr 1fr;grid-template-rows:auto 1fr 1fr auto;gap:4px;padding:8px;min-height:0}.player-slot-pos{display:flex;align-items:stretch}.player-pos-top{grid-area:top;justify-content:center}.player-pos-top-right{grid-area:top-right;align-items:flex-start}.player-pos-top-left{grid-area:top-left;align-items:flex-start}.player-pos-bottom-right{grid-area:btm-right;align-items:flex-end}.player-pos-bottom-left{grid-area:btm-left;align-items:flex-end}.player-pos-bottom{grid-area:bottom;justify-content:center}.table-center{grid-area:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0003;border-radius:50%;padding:16px;position:relative}.trump-display-center{display:flex;flex-direction:column;align-items:center;line-height:1}.trump-symbol-big{font-size:32px}.trump-red .trump-symbol-big{color:var(--card-red)}.trump-black .trump-symbol-big{color:#fff}.trump-joker .trump-symbol-big{font-size:28px}.trump-joker .trump-label-small{color:#f9a825}.trump-label-small{font-size:10px;text-transform:capitalize;color:var(--text-muted)}.current-trick{width:100%}.trick-cards{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.trick-card-slot{display:flex;flex-direction:column;align-items:center;gap:2px}.trick-player-name{font-size:9px;color:var(--text-muted);max-width:50px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trick-count{font-size:13px;font-weight:600}.team-a-text{color:#64b5f6}.team-b-text{color:#ef9a9a}.trick-divider{color:var(--text-muted)}.trick-result-msg{position:absolute;background:#000000bf;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--gold);white-space:nowrap}.center-bid-display{font-size:13px}.center-bid-value{font-weight:700;color:var(--gold)}.action-panel{padding:4px 6px 10px;flex-shrink:0;position:relative;z-index:20;max-height:48dvh;overflow-y:auto}.center-panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;padding:12px 16px;min-width:280px;max-width:500px;width:100%}.waiting-turn-msg{text-align:center;color:var(--text-muted);font-style:italic;font-size:13px;padding:8px}.my-turn-indicator{background:#ffd70026;border:1px solid var(--gold);border-radius:8px;padding:6px 14px;color:var(--gold);font-weight:600;font-size:13px}.player-area{background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:4px;width:100%;transition:border-color .2s}.player-area-me{background:#00000059;border-color:#ffffff26}.player-turn-active{border-color:var(--gold)!important;box-shadow:0 0 8px #ffd7004d}.team-a-player{border-left:3px solid var(--team-a)}.team-b-player{border-left:3px solid var(--team-b)}.player-info-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.player-name-label{font-size:12px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name-me{color:var(--gold)}.player-badges{display:flex;gap:4px;flex-wrap:wrap}.shuffler-badge{font-size:10px;padding:1px 5px;border-radius:3px;background:#ffd70033;color:var(--gold);font-weight:700}.gulam-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:var(--btn-danger);color:#fff;font-weight:700}.raja-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:var(--gold-dark);color:#000;font-weight:700}.connected-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.connected-dot.connected{background:#66bb6a}.connected-dot.disconnected{background:#ef5350}.turn-indicator{font-size:10px;font-weight:700;color:var(--gold);background:#ffd70026;padding:1px 6px;border-radius:4px;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.player-cards{display:flex;flex-wrap:wrap;gap:4px}.card-group{display:flex;flex-direction:column;gap:2px}.card-group-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.card-row{display:flex;gap:2px;flex-wrap:wrap}.card{position:relative;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-user-select:none;user-select:none;box-shadow:0 2px 6px var(--card-shadow);transition:transform .12s,box-shadow .12s}.card-sm{width:var(--card-w-sm);height:var(--card-h-sm);font-size:10px}.card-md{width:var(--card-w-md);height:var(--card-h-md);font-size:13px}.card-lg{width:var(--card-w-lg);height:var(--card-h-lg);font-size:16px}.card-empty{background:#ffffff0d;border:1px dashed rgba(255,255,255,.15)}.card-back{background:var(--card-back-bg);border:1px solid rgba(255,255,255,.15);overflow:hidden}.card-back-pattern{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,var(--card-back-bg),var(--card-back-bg) 4px,var(--card-back-accent) 4px,var(--card-back-accent) 8px)}.card-back-inner{background:var(--card-back-bg);border:2px solid rgba(255,255,255,.2);border-radius:4px;width:75%;height:75%;display:flex;align-items:center;justify-content:center}.card-back-symbol{font-size:1.4em;font-weight:700;color:#ffffff4d}.card-face{background:var(--card-bg);border:1px solid rgba(0,0,0,.15);padding:3px;overflow:hidden}.card-red{color:var(--card-red)}.card-black{color:var(--card-black)}.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1.1}.card-top-left{top:3px;left:3px}.card-bottom-right{bottom:3px;right:3px;transform:rotate(180deg)}.card-value{font-weight:700;font-size:.9em}.card-suit-small{font-size:.8em}.card-center{display:flex;align-items:center;justify-content:center}.card-suit-large{font-size:1.8em}.card-playable{cursor:pointer;box-shadow:0 0 0 2px #4caf50,0 2px 8px var(--card-shadow)}.card-playable:hover{transform:translateY(-6px);box-shadow:0 0 0 2px #81c784,0 6px 16px #00000080}.bidding-panel{display:flex;flex-direction:column;gap:10px}.bidding-title{font-size:16px;font-weight:700;color:var(--gold);text-align:center}.current-bid-info{font-size:13px;display:flex;gap:4px;align-items:center;justify-content:center}.label{color:var(--text-muted)}.bid-value{font-weight:700;color:var(--gold);font-size:16px}.bid-by{color:var(--text-muted)}.your-turn-msg{text-align:center;color:var(--gold);font-weight:600;font-size:13px}.bid-buttons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.btn-bid{min-width:52px;padding:8px 14px;font-size:15px;font-weight:700;border-radius:8px;background:#1565c0;color:#fff;border:1px solid rgba(255,255,255,.15)}.btn-bid:hover{background:#1976d2}.btn-pass{background:var(--btn-secondary)}.btn-pass:hover{background:var(--btn-secondary-hover)}.btn-bot{background:linear-gradient(135deg,#1a237e,#283593);color:#fff;border:1px solid rgba(100,130,255,.4)}.btn-bot:hover{background:linear-gradient(135deg,#283593,#3949ab)}.bid-history{margin-top:6px}.bid-history-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px}.bid-history-list{display:flex;flex-direction:column;gap:2px;max-height:80px;overflow-y:auto}.bid-history-item{display:flex;gap:8px;font-size:12px}.bid-player-name{color:var(--text-muted)}.bid-amount.bid-pass{color:#ef5350}.bid-amount.bid-num{color:var(--gold);font-weight:700}.trump-selector{display:flex;flex-direction:column;gap:10px;align-items:center}.trump-selector-title{font-size:15px;font-weight:700;color:var(--gold);text-align:center}.trump-selector-subtitle{font-size:13px;color:var(--text-muted);text-align:center}.trump-suit-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.btn-trump{min-width:80px;padding:12px 16px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--card-bg)}.btn-trump-red{color:var(--card-red)}.btn-trump-black{color:var(--card-black)}.btn-trump-joker{color:#f9a825;border:2px solid #f9a825}.btn-trump:hover{transform:scale(1.08);box-shadow:0 4px 12px #0000004d}.trump-symbol{font-size:28px}.trump-label{font-size:12px;font-weight:600}.btn-trump-hidden{color:var(--text-muted);border:2px dashed var(--border);font-size:22px}.trump-hidden-pick-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:8px 0}.trump-hidden-card-btn{background:none;border:2px solid transparent;border-radius:8px;padding:3px;cursor:pointer;transition:border-color .15s,transform .15s}.trump-hidden-card-btn:hover{border-color:var(--gold);transform:scale(1.08)}.call8-info{display:flex;flex-direction:column;gap:8px;align-items:center}.call8-info h3{color:var(--gold);font-size:15px}.call8-info p{font-size:13px;color:var(--text-muted)}.call8-warning{color:#ef9a9a!important}.call8-buttons{display:flex;gap:10px;justify-content:center}.game-info-panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.game-info-row{display:flex;justify-content:space-between;gap:6px;font-size:12px;align-items:center}.info-label{color:var(--text-muted);font-size:11px;text-transform:uppercase;white-space:nowrap}.info-value{font-weight:600;font-size:12px;text-align:right;word-break:break-word}.trump-display{font-size:14px}.text-red{color:var(--card-red)}.text-black{color:#fff}.score-positive{color:#81c784}.score-negative{color:#ef9a9a}.turn-name{color:var(--gold)}.phase-label{text-transform:capitalize;color:var(--text-muted)}.scoreboard-panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px}.scoreboard-title{font-size:13px;font-weight:700;color:var(--gold);margin-bottom:8px;text-align:center}.scoreboard-team{display:flex;flex-direction:column;gap:4px}.scoreboard-team-header{font-size:11px;font-weight:700;text-transform:uppercase;margin-bottom:2px}.scoreboard-divider{height:1px;background:#ffffff1a;margin:8px 0}.scoreboard-row{display:flex;align-items:center;gap:4px;font-size:11px;padding:2px 0}.gulam-row{opacity:.7}.sb-seat{font-family:monospace;color:var(--text-muted);min-width:20px}.sb-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-shuffler-badge{color:var(--gold);font-size:10px}.sb-badges{display:flex;gap:2px}.sb-score{font-weight:700;font-size:12px;min-width:28px;text-align:right}.round-end-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.round-end-modal{background:#0f2e1a;border:2px solid rgba(255,255,255,.15);border-radius:20px;padding:36px;max-width:480px;width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px #000000b3;display:flex;flex-direction:column;gap:16px}.round-end-title{text-align:center;color:var(--gold);font-size:22px}.game-over-title{text-align:center;color:var(--gold);font-size:28px}.game-over-winner{text-align:center;font-size:20px;font-weight:700}.round-result-details{background:#0000004d;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}.result-row{display:flex;justify-content:space-between;font-size:14px;gap:12px}.result-row span:first-child{color:var(--text-muted)}.result-score{font-weight:700;font-size:16px}.gulam-event{color:#ef9a9a;font-weight:700}.deal-transfer{color:#90caf9}.round-end-scores{background:#0000004d;border-radius:10px;padding:14px}.round-end-scores h4{color:var(--text-muted);font-size:12px;text-transform:uppercase;margin-bottom:8px}.score-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0}.call8-title{color:var(--gold);font-size:15px;text-align:center}.call8-panel{text-align:center}.call8-panel p{font-size:13px;color:var(--text-muted)}.call8-warning{color:#ef9a9a!important;font-size:12px!important}.dealing-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1e12ed;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dealing-content{display:flex;flex-direction:column;align-items:center;gap:20px}.dealing-deck-anim{position:relative;width:80px;height:110px}.dealing-card-anim{position:absolute;top:0;left:0;animation:deal-fly 2.4s ease-in-out infinite}@keyframes deal-fly{0%{transform:translate(0) rotate(0);opacity:1}40%{transform:translate(60px,-40px) rotate(15deg);opacity:1}60%{transform:translate(120px,-10px) rotate(25deg);opacity:.6}80%{transform:translate(80px,40px) rotate(10deg);opacity:.3}to{transform:translate(0) rotate(0);opacity:0}}.dealing-title{font-size:22px;color:var(--gold);font-weight:700;text-align:center}.dealing-subtitle{font-size:14px;color:var(--text-muted);text-align:center}.dealing-players{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:280px}.dealing-player-chip{font-size:12px;padding:3px 10px;border-radius:12px;font-weight:600}.trick-result-bar{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:150;background:#0a1e12f2;border:2px solid currentColor;border-radius:12px;padding:8px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:0 4px 20px #00000080;font-weight:700;font-size:15px;min-width:200px;max-width:90vw;animation:slide-down .25s ease-out}.trick-result-cards{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}@keyframes slide-down{0%{transform:translate(-50%) translateY(-20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.trick-reveal-msg{background:#ffd70026;border:1px solid var(--gold);border-radius:8px;padding:6px 16px;color:var(--gold);font-weight:600;font-size:14px;text-align:center}.tricks-scoreboard{display:flex;flex-direction:column;gap:4px;width:100%;padding:0 4px}.tricks-team{display:flex;align-items:center;gap:4px;opacity:.7;transition:opacity .2s}.tricks-team-bidding{opacity:1}.tricks-team-label{font-size:10px;font-weight:700;min-width:42px}.tricks-bar{display:flex;gap:2px;flex:1}.tricks-pip{flex:1;height:8px;border-radius:2px;transition:background .3s}.pip-empty{background:#ffffff1f}.pip-filled-a{background:#1976d2}.pip-filled-b{background:#c62828}.tricks-count{font-size:11px;font-weight:700;min-width:14px;text-align:right}.tricks-bid-target{font-size:10px;color:var(--text-muted);text-align:center}.scoreboard{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.scoreboard-title{font-size:13px;font-weight:700;color:var(--gold);text-align:center}.shuffler-score-block{display:flex;flex-direction:column;gap:4px}.shuffler-score-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;display:flex;align-items:center;gap:4px}.shuffler-name{font-size:14px;font-weight:700;color:var(--text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shuffler-score-value{font-size:26px;font-weight:800;line-height:1}.score-bar-track{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;position:relative}.score-bar-fill{height:100%;border-radius:4px;transition:width .5s ease,background .5s ease}.score-bar-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--text-muted)}.trump-inline{font-size:13px;font-weight:600;text-align:center;padding:4px;background:#0003;border-radius:6px}.trump-inline.trump-red{color:var(--card-red)}.trump-inline.trump-black{color:#fff}.gulam-item{display:flex;align-items:center;gap:4px;font-size:11px}.gulam-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.result-big{font-weight:800;font-size:18px;padding:4px 0}.round-end-score-block{text-align:center;background:#0000004d;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:2px}.score-label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.score-value-big{font-size:32px;font-weight:800;line-height:1}.next-round-countdown{text-align:center;font-size:14px;color:var(--text-muted)}.countdown-num{font-size:20px;font-weight:800;color:var(--gold);display:inline-block;min-width:24px}.mobile-topbar{display:none}@media (max-width: 900px){.game-sidebar-left{width:140px;min-width:140px}}@media (max-width: 700px){html,body{overflow:hidden}:root{--card-w-sm: 30px;--card-h-sm: 42px;--card-w-md: 46px;--card-h-md: 64px}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#0c2a1a,#1a5c30,#0c2a1a);border-bottom:1px solid rgba(255,215,0,.2);padding:6px 12px;gap:8px;flex-shrink:0;min-height:42px;box-shadow:0 2px 8px #0006}.mtb-left,.mtb-center,.mtb-right{display:flex;align-items:center;gap:8px}.mtb-center{flex:1;justify-content:center}.mtb-right{justify-content:flex-end}.mtb-round{font-size:11px;font-weight:800;color:var(--gold);letter-spacing:.5px;background:#ffd70026;padding:2px 7px;border-radius:6px}.mtb-trump{font-size:20px;font-weight:700;line-height:1}.mtb-red{color:var(--card-red)}.mtb-black{color:#fff}.mtb-joker{color:#f9a825}.mtb-bid{font-size:11px;color:var(--text-muted)}.mtb-bid strong{color:var(--gold);font-size:13px}.mtb-phase{font-size:11px;font-weight:600;text-transform:capitalize;color:#fff9;background:#ffffff0f;padding:2px 8px;border-radius:6px}.mtb-shuffler-name{font-size:11px;color:var(--text-muted);max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtb-score{font-size:15px;font-weight:800;min-width:28px;text-align:right}.game-sidebar-left{display:none}.game-screen{flex-direction:column;height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 50% 15%,#1a5c30,#0a2015 65%)}.game-board{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.player-table{flex:1;min-height:0;display:grid;grid-template-areas:"top-left  top    top-right" "btm-left  center btm-right" "bottom    bottom bottom";grid-template-rows:70px 108px 1fr;grid-template-columns:30% 40% 30%;gap:3px;padding:4px 4px 0;overflow:hidden}.player-pos-bottom{grid-area:bottom}.player-pos-bottom .player-area{border-radius:14px 14px 0 0;padding:6px 10px;background:linear-gradient(180deg,#0000008c,#000a05d9);border:1.5px solid rgba(255,255,255,.16);border-bottom:none;gap:5px;flex:1;min-height:110px;box-sizing:border-box}.player-pos-bottom .player-area.player-turn-active{border-color:#f59e0b!important;box-shadow:0 -4px 24px #f59e0b59}.player-pos-bottom .player-name-label{font-size:13px;color:#fbbf24}.player-pos-bottom .player-cards{display:flex;flex-direction:row;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.player-pos-bottom .player-cards::-webkit-scrollbar{display:none}.player-pos-bottom .card-group{flex-shrink:0}.player-pos-bottom .card-row{gap:3px;flex-wrap:nowrap}.player-pos-bottom .card-group-label{font-size:9px;color:#fff6;letter-spacing:.5px}.player-pos-top .player-area,.player-pos-top-left .player-area,.player-pos-top-right .player-area,.player-pos-bottom-left .player-area,.player-pos-bottom-right .player-area{padding:3px 5px;border-radius:8px;background:#0000006b;border:1px solid rgba(255,255,255,.08);gap:2px;overflow:hidden;height:100%;width:100%;box-sizing:border-box}.player-pos-top .player-area.player-turn-active,.player-pos-top-left .player-area.player-turn-active,.player-pos-top-right .player-area.player-turn-active,.player-pos-bottom-left .player-area.player-turn-active,.player-pos-bottom-right .player-area.player-turn-active{border-color:#f59e0b!important;box-shadow:0 0 8px #f59e0b73;background:#1e14008c}.player-pos-top .player-name-label,.player-pos-top-left .player-name-label,.player-pos-top-right .player-name-label,.player-pos-bottom-left .player-name-label,.player-pos-bottom-right .player-name-label{font-size:9px;max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-pos-top .team-badge,.player-pos-top-left .team-badge,.player-pos-top-right .team-badge,.player-pos-bottom-left .team-badge,.player-pos-bottom-right .team-badge{font-size:8px;padding:0 3px;min-width:unset}.player-pos-top .card-group-label,.player-pos-top-left .card-group-label,.player-pos-top-right .card-group-label,.player-pos-bottom-left .card-group-label,.player-pos-bottom-right .card-group-label{display:none}.player-pos-top .player-cards,.player-pos-top-left .player-cards,.player-pos-top-right .player-cards,.player-pos-bottom-left .player-cards,.player-pos-bottom-right .player-cards{flex-direction:row;flex-wrap:nowrap;overflow:hidden;gap:0}.player-pos-top .card-group,.player-pos-top-left .card-group,.player-pos-top-right .card-group,.player-pos-bottom-left .card-group,.player-pos-bottom-right .card-group{flex-direction:row;gap:0;flex-shrink:0}.player-pos-top .card-row,.player-pos-top-left .card-row,.player-pos-top-right .card-row,.player-pos-bottom-left .card-row,.player-pos-bottom-right .card-row{gap:0;flex-wrap:nowrap}.player-pos-top .card,.player-pos-top-left .card,.player-pos-top-right .card,.player-pos-bottom-left .card,.player-pos-bottom-right .card{width:20px!important;height:28px!important;border-radius:3px!important;flex-shrink:0;margin-right:-9px}.player-pos-top .card:last-child,.player-pos-top-left .card:last-child,.player-pos-top-right .card:last-child,.player-pos-bottom-left .card:last-child,.player-pos-bottom-right .card:last-child{margin-right:0}.player-pos-top .card-value,.player-pos-top-left .card-value,.player-pos-top-right .card-value,.player-pos-bottom-left .card-value,.player-pos-bottom-right .card-value{font-size:7px;line-height:1}.player-pos-top .card-suit-small,.player-pos-top-left .card-suit-small,.player-pos-top-right .card-suit-small,.player-pos-bottom-left .card-suit-small,.player-pos-bottom-right .card-suit-small{font-size:6px}.player-pos-top .card-suit-large,.player-pos-top-left .card-suit-large,.player-pos-top-right .card-suit-large,.player-pos-bottom-left .card-suit-large,.player-pos-bottom-right .card-suit-large{display:none}.player-pos-top .card-corner,.player-pos-top-left .card-corner,.player-pos-top-right .card-corner,.player-pos-bottom-left .card-corner,.player-pos-bottom-right .card-corner{padding:1px;gap:0}.player-pos-top .card-back-symbol,.player-pos-top-left .card-back-symbol,.player-pos-top-right .card-back-symbol,.player-pos-bottom-left .card-back-symbol,.player-pos-bottom-right .card-back-symbol{font-size:9px}.table-center{background:radial-gradient(ellipse at center,#0a2814b3,#00000080);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:5px 6px;gap:4px;overflow:hidden}.table-center .card{width:22px!important;height:30px!important;border-radius:3px!important;font-size:7px}.table-center .card-value{font-size:7px}.table-center .card-suit-small{font-size:6px}.table-center .card-suit-large{display:none}.table-center .card-corner{padding:1px;gap:0}.trump-symbol-big{font-size:20px}.trump-label-small{display:none}.tricks-scoreboard{gap:3px}.tricks-pip{height:5px;width:12px;border-radius:2px}.tricks-team-label{font-size:8px;min-width:26px}.tricks-count{font-size:9px}.tricks-bid-target{display:none}.trick-cards{gap:3px;flex-wrap:wrap;justify-content:center}.trick-card-slot{align-items:center}.trick-player-name{font-size:7px}.action-panel{padding:4px 6px 10px;flex-shrink:0}.center-panel{min-width:unset;width:100%;padding:10px 14px;border-radius:16px;background:#000000b3;border-color:#ffffff1f}.waiting-turn-msg{font-size:12px;padding:6px}.btn{min-height:46px;padding:12px 18px;font-size:15px;border-radius:12px}.btn-bid{min-width:58px;min-height:52px;font-size:20px;font-weight:800;padding:12px 10px;border-radius:12px}.bid-buttons{gap:8px}.btn-trump{min-width:76px;min-height:72px;padding:10px;border-radius:12px}.trump-symbol{font-size:28px}.trump-label{font-size:11px;font-weight:700}.trump-suit-buttons{gap:8px}.trump-selector-title{font-size:14px}.my-turn-indicator{font-size:13px;padding:8px 16px;border-radius:10px;text-align:center;animation:pulse 1s infinite}.trick-reveal-msg{font-size:13px;padding:8px 14px;text-align:center;border-radius:10px}.round-end-overlay{padding:8px}.round-end-modal{padding:22px 18px;gap:14px;border-radius:20px;max-height:90dvh;margin:0}.round-end-title{font-size:20px}.game-over-title{font-size:26px}.result-row{font-size:13px}.result-big{font-size:17px}.score-value-big{font-size:30px}.next-round-countdown{font-size:13px}.countdown-num{font-size:22px}.dealing-title{font-size:20px}.dealing-subtitle{font-size:13px}.trick-result-bar{font-size:13px;padding:8px 16px;min-width:200px;border-radius:12px}.home-screen{padding:16px}.home-card{padding:28px 20px;border-radius:20px;width:100%;max-width:420px}.home-title{font-size:32px}.home-subtitle{font-size:14px}.home-form{gap:16px}.lobby-screen{padding:12px}.lobby-container{padding:22px 16px;border-radius:18px}.teams-layout{flex-direction:column;gap:10px}.vs-divider{padding-top:0;justify-content:center}.team-header{font-size:15px}.player-slot{padding:10px 12px}.player-name{font-size:15px}.lobby-actions .btn{width:100%;justify-content:center}}
