:root{
 --bg:#071322;--panel:#102845;--panel2:#16365f;--line:#315f98;--text:#f6f8f5;--muted:#b8c8dc;--gold:#efc96a;--gold2:#d6a83a;--danger:#d95752;--ok:#74c69d;--shadow:0 16px 40px rgba(0,0,0,.28);
 --card-back:url("cards/backs/back-neutral.webp");--trump-accent:#efc96a;--table-glow:rgba(239,201,106,.12)
}
html[data-trump="N"]{--card-back:url("cards/backs/back-neutral.webp");--trump-accent:#efc96a;--table-glow:rgba(239,201,106,.12)}
html[data-trump="C"]{--card-back:url("cards/backs/back-clubs.webp");--trump-accent:#62d39a;--table-glow:rgba(26,171,98,.23)}
html[data-trump="D"]{--card-back:url("cards/backs/back-diamonds.webp");--trump-accent:#70a8ff;--table-glow:rgba(44,112,224,.26)}
html[data-trump="H"]{--card-back:url("cards/backs/back-hearts.webp");--trump-accent:#ff7878;--table-glow:rgba(211,45,55,.27)}
html[data-trump="S"]{--card-back:url("cards/backs/back-spades.webp");--trump-accent:#e7bd58;--table-glow:rgba(0,0,0,.42)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 15%,#164b8b 0,#0c2444 50%,#06111f 100%);color:var(--text);font:16px/1.42 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}body{transition:background .55s ease}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.wrap{width:min(1500px,100%);margin:auto;padding:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.centered-row{justify-content:center}.centered-text{text-align:center}.subtle{color:var(--muted);font-size:.9rem}.gold-text{color:var(--gold)}h1,h2,h3,p{margin-top:0}.panel{background:rgba(16,40,69,.95);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.btn{border:0;border-radius:12px;padding:10px 14px;background:#28578f;color:#fff;font-weight:800;box-shadow:0 6px 16px rgba(0,0,0,.15);transition:filter .15s ease,transform .1s ease}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.42}.btn.primary{background:var(--gold);color:#15233a}.btn.secondary{background:#24466f}.btn.danger{background:var(--danger)}.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.2)}.btn.small{padding:7px 10px;font-size:.84rem}.btn.tiny{padding:4px 8px;font-size:.72rem;border-radius:8px}.btn.big{padding:12px 18px;font-size:1rem}.btn.giant{padding:15px 24px;font-size:1.12rem}.wide{width:100%}.pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:900;background:rgba(255,255,255,.09)}.pill.gold{color:#ffe494;border:1px solid rgba(239,201,106,.4);background:rgba(239,201,106,.12)}.pill.ok{color:#bff1d7;background:rgba(116,198,157,.16)}.pill.bad{color:#ffd2cf;background:rgba(217,87,82,.18)}.you{font-size:.66rem;color:var(--gold);border:1px solid rgba(239,201,106,.4);border-radius:999px;padding:1px 5px}.presence{font-size:.7rem;color:var(--muted)}.presence.on:before{content:'● ';color:#6ed798}.presence.off:before{content:'● ';color:#8d9491}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-top:42px}.brand{display:flex;align-items:center;gap:10px}.brand h1{margin:0;font-size:clamp(1.25rem,3vw,1.75rem)}.brandmark-img{width:54px;height:54px;object-fit:contain;border-radius:14px;filter:drop-shadow(0 5px 10px rgba(0,0,0,.28))}.roomcode{font:900 1.02rem ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;color:var(--gold);padding:6px 9px;border:1px solid rgba(239,201,106,.28);border-radius:9px}
.auth{min-height:100vh;display:grid;place-items:center;padding:20px}.authbox{width:min(780px,100%)}.auth-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.auth-card{padding:16px;border-radius:15px;background:rgba(7,27,52,.52);border:1px solid rgba(255,255,255,.07)}.field{display:grid;gap:6px;margin:12px 0}.field input{width:100%;padding:12px 14px;border-radius:11px;border:1px solid #35649d;background:#091d37;color:#fff;outline:none}.field input:focus{border-color:var(--gold)}.install-hint{margin:18px 0 0;color:var(--muted);font-size:.84rem;text-align:center}
.players-list{display:grid;gap:8px}.lobby-player{display:flex;align-items:center;gap:9px;padding:10px 12px;background:#0b2444;border-radius:12px;border:1px solid rgba(255,255,255,.06)}.seatno{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#173f72;color:var(--gold);font-weight:900}.lobby-player .presence{margin-left:auto}.drag{display:flex;gap:5px}.invite-box{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;padding:14px;border-radius:14px;background:rgba(7,27,52,.52)}.lobby-actions{display:flex;justify-content:center;gap:12px;align-items:center;margin-top:18px}
.game-shell{display:grid;gap:10px}.score-area{display:grid;gap:6px}.score-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px}.player-chip{background:rgba(6,24,47,.86);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:8px 9px;min-width:0;transition:box-shadow .25s ease,border-color .25s ease}.player-chip.turn{border-color:var(--gold);box-shadow:0 0 0 2px rgba(239,201,106,.2)}.player-chip.sitter-chip{background:rgba(64,49,16,.27)}.pname{display:flex;justify-content:space-between;gap:9px;font-weight:850}.pname small{font-size:.6rem;color:var(--gold)}.score{color:var(--gold);font-weight:950;font-size:1.08rem}.chip-meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:.66rem;margin-top:3px}.mini-hand{height:26px;display:flex;align-items:center;overflow:hidden;padding-left:5px;margin-top:5px}.mini-back{width:17px;aspect-ratio:5/7;border-radius:3px;margin-left:-8px;background:var(--card-back) center/cover no-repeat;border:1px solid rgba(255,255,255,.45);box-shadow:0 2px 4px rgba(0,0,0,.25);transition:background-image .45s ease}.mini-back:first-child{margin-left:0}.history-toggle{display:flex;justify-content:flex-end}.history-wrap{overflow:auto;border-radius:12px;background:rgba(6,23,45,.72);border:1px solid rgba(255,255,255,.08)}.history-table{border-collapse:collapse;width:100%;min-width:520px;text-align:center}.history-table th,.history-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.07);border-right:1px solid rgba(255,255,255,.05)}.history-table th{color:#ffe294;background:rgba(239,201,106,.08);font-size:.78rem}.history-table td:first-child{font-weight:850;color:var(--muted)}.history-table td small{display:block;font-size:.65rem;color:var(--muted)}.history-table .now-row{background:rgba(239,201,106,.08)}
.game-table{background:radial-gradient(ellipse at center,#1e5599 0,#153d72 56%,#0a2343 100%);border:8px solid #80602c;border-radius:30px;min-height:575px;box-shadow:inset 0 0 70px rgba(0,0,0,.34),0 0 70px var(--table-glow),var(--shadow);position:relative;overflow:hidden;transition:box-shadow .55s ease}.table-topline{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;padding:8px 12px;background:rgba(4,18,36,.48);font-size:.82rem;color:#dae5f2}.phase-status{text-align:center;padding:8px 10px;display:grid;gap:2px}.phase-status span{font-size:.68rem;letter-spacing:.13em;color:var(--muted);font-weight:900}.phase-status strong{font-size:1.03rem}.phase-status.mine strong{color:#ffe28c;text-shadow:0 0 18px rgba(239,201,106,.28)}.phase-status.other strong{color:#f5d6d3}.table-body{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-height:490px;padding:12px}.center-stage{display:grid;justify-items:center;align-content:center;gap:15px;min-width:0}.trump-panel{align-self:start;display:grid;justify-items:center;gap:8px;padding:10px;border-radius:16px;background:rgba(7,27,52,.58);border:1px solid rgba(255,255,255,.08);text-align:center;transition:border-color .45s ease,box-shadow .45s ease}.trump-panel.has-trump{border-color:var(--trump-accent);box-shadow:0 0 22px var(--table-glow)}.trump-panel span{display:block;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.1em}.trump-panel strong{display:block;color:var(--trump-accent);font-size:.95rem}.trump-back{width:78px}.card-back{width:78px;aspect-ratio:5/7;border-radius:8px;background:var(--card-back) center/cover no-repeat;border:1px solid rgba(255,255,255,.65);box-shadow:0 7px 13px rgba(0,0,0,.28);transition:background-image .45s ease,filter .35s ease}.back-preview{width:72px}.small-back{width:62px}.last-move{position:absolute;left:10px;bottom:10px;width:150px;padding:7px 8px;border-radius:10px;background:rgba(3,14,29,.56);font-size:.7rem}.last-move strong{display:block;color:var(--gold);font-size:.62rem;letter-spacing:.08em}.last-move span{color:#dce8f4}
.action-card,.auction-board{width:min(760px,100%);padding:18px;border-radius:17px;background:rgba(7,29,56,.76);border:1px solid rgba(255,255,255,.1);text-align:center}.action-card h2,.auction-board h2{margin-bottom:9px}.big-bid{font:950 clamp(3rem,9vw,6.5rem)/1 Georgia,serif;color:var(--gold);text-shadow:0 7px 25px rgba(0,0,0,.35)}.auction-meta{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.82rem;margin:10px 0}.auction-meta strong{color:#fff}.auction-players{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0}.auction-player{min-width:120px;padding:8px 10px;border-radius:11px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.07);display:grid;gap:3px}.auction-player.high{border-color:var(--gold);box-shadow:0 0 0 2px rgba(239,201,106,.12)}.auction-player.passed{opacity:.42;text-decoration:line-through}.auction-controls{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:14px;max-height:145px;overflow:auto}.bid-btn,.contract-btn{min-width:66px}.contract-grid{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;max-height:185px;overflow:auto}.ready-card{padding:26px}.bomb-btn{background:linear-gradient(180deg,#d85b4f,#9f2d2b)!important}.hidden-talon{opacity:.88}
.talon-box{display:grid;justify-items:center;gap:8px;padding:10px 13px;border-radius:14px;background:rgba(0,0,0,.15)}.talon-box>strong{font-size:.7rem;letter-spacing:.12em;color:#e2ebf5}.talon-cards{display:flex;justify-content:center;gap:6px}.talon-cards .card{width:76px}.double-talons,.talon-choices{display:flex;gap:24px;justify-content:center;flex-wrap:wrap}.talon-pile{display:grid;justify-items:center;gap:6px;padding:7px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.08)}.talon-pile.chosen{border-color:var(--gold)}.talon-choice{border:1px solid rgba(239,201,106,.3);border-radius:15px;background:rgba(9,32,61,.84);color:#fff;padding:12px;display:grid;gap:8px;justify-items:center}.talon-choice:hover{border-color:var(--gold);filter:brightness(1.08)}.talon-choice>div{display:flex;gap:5px}.talon-choice .card-back{width:82px}
.trick-area{display:grid;justify-items:center;gap:8px;width:100%}.trick-head{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.82rem}.trick-head strong{color:#fff}.trick-cards{min-height:190px;display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}.played-card{display:grid;justify-items:center;gap:4px;font-size:.7rem;color:#dbe7f3}.played-card .card{width:104px}.trick-empty{color:rgba(255,255,255,.36);font-size:.86rem;border:1px dashed rgba(255,255,255,.16);border-radius:14px;padding:24px 30px}
.hand-panel{padding:11px 9px 9px}.hand-top{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:0 4px}.hand-tools{display:flex;gap:5px}.hand{display:flex;align-items:flex-end;overflow-x:auto;padding:16px 5px 19px;min-height:180px;scrollbar-width:thin}.card{width:108px;min-width:108px;aspect-ratio:5/7;border-radius:11px;background:#fff;overflow:hidden;position:relative;box-shadow:0 8px 15px rgba(0,0,0,.27);border:1px solid rgba(0,0,0,.12);transition:transform .14s ease,opacity .2s ease,filter .2s ease,box-shadow .14s ease}.card-face-img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none}.hand .card{margin-left:-23px;cursor:grab}.hand .card:first-child{margin-left:0}.hand .card:hover{transform:translateY(-7px);z-index:5}.card.selected{transform:translateY(-17px)!important;box-shadow:0 0 0 3px var(--gold),0 14px 20px rgba(0,0,0,.33);z-index:10}.card.illegal{filter:grayscale(.62) brightness(.55);opacity:.52}.card.illegal:hover{transform:none}.card.dragging{opacity:.35}.card.drag-target{box-shadow:-5px 0 0 var(--gold),0 8px 15px rgba(0,0,0,.27)}.selno{position:absolute;right:5px;top:5px;z-index:20;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#132745;font-size:.73rem;font-weight:950}.context-controls{text-align:center;padding:8px 5px 3px}.context-controls p{margin-bottom:7px}.meld-hint{display:block;text-align:center;color:#ffe291;font-weight:850;font-size:.84rem;margin:-5px 0 6px}
.results-panel{text-align:center}.winner-banner{font-size:clamp(1.4rem,4vw,2.4rem);font-weight:950;color:#ffe287;margin:8px 0 15px}.round-contract{margin-bottom:10px}.bomb-summary{margin:10px auto 15px;width:min(620px,100%);padding:12px;border-radius:13px;background:rgba(217,87,82,.17);border:1px solid rgba(255,121,111,.35);font-weight:900}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}.result-player{text-align:left;padding:12px;border-radius:13px;background:rgba(7,27,52,.62);border:1px solid rgba(255,255,255,.07)}.result-lines{display:grid;gap:3px;color:var(--muted);font-size:.8rem;margin-top:8px}.muted-flag{color:#ffe08c}.result-actions{margin-top:17px}
.toast{position:fixed;left:50%;bottom:24px;z-index:20000;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#17385f;color:#fff;border:1px solid rgba(255,255,255,.16);padding:11px 16px;border-radius:12px;box-shadow:0 15px 35px rgba(0,0,0,.4);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.err{background:#6c2a28;border-color:#a74c46}
#languageSwitchMount{position:fixed;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));z-index:23000}.lang-switch{position:relative}.lang-current{height:38px;display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:11px;border:1px solid rgba(239,201,106,.55);background:rgba(7,24,47,.97);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25);font-weight:850}.lang-flag-img{display:block;width:24px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.14)}.lang-caret{font-size:.65rem;color:var(--gold)}.lang-menu{position:absolute;right:0;top:44px;min-width:105px;display:none;padding:6px;border-radius:13px;background:#102b4c;border:1px solid rgba(255,255,255,.14);box-shadow:0 16px 38px rgba(0,0,0,.4)}.lang-menu.open{display:grid;gap:3px}.lang-option{display:grid;grid-template-columns:28px 32px;align-items:center;gap:8px;width:100%;border:0;border-radius:9px;padding:8px 10px;background:transparent;color:#fff;font-weight:850}.lang-option:hover,.lang-option.active{background:rgba(239,201,106,.15)}
body.rules-open{overflow:hidden}.rules-overlay{position:fixed;inset:0;z-index:22000;background:rgba(2,10,22,.88);backdrop-filter:blur(5px);display:grid;place-items:center;padding:16px}.rules-modal{width:min(980px,100%);max-height:94vh;background:linear-gradient(180deg,#14365f,#0a203d);border:1px solid rgba(239,201,106,.35);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.55);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.rules-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 19px;border-bottom:1px solid rgba(255,255,255,.1)}.rules-head h2{margin:0;color:var(--gold)}.rules-close{width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#1a426f;color:#fff;font-size:1.9rem}.rules-scroll{overflow:auto;padding:18px 22px 25px}.rules-intro{color:var(--muted)}.rules-scroll section{padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}.rules-scroll h3{color:#ffe298;margin:0 0 7px;font-size:1rem}.rules-scroll p{margin:5px 0;color:#e7eef7}
#fxMount{position:fixed;inset:0;pointer-events:none;z-index:21000}.meld-overlay,.bomb-overlay{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.meld-overlay:before{content:'';position:absolute;inset:-20%;background:radial-gradient(circle,rgba(255,235,151,.52),transparent 55%);animation:flashFade .8s ease-out}.meld-overlay.suit-C:before{background:radial-gradient(circle,rgba(72,214,139,.55),transparent 55%)}.meld-overlay.suit-D:before{background:radial-gradient(circle,rgba(78,139,255,.58),transparent 55%)}.meld-overlay.suit-H:before{background:radial-gradient(circle,rgba(255,70,74,.58),transparent 55%)}.meld-overlay.suit-S:before{background:radial-gradient(circle,rgba(239,201,106,.55),rgba(0,0,0,.28) 35%,transparent 60%)}.meld-number{position:relative;font:1000 clamp(6rem,25vw,16rem)/1 system-ui;color:#fff2b2;-webkit-text-stroke:3px rgba(85,47,5,.35);text-shadow:0 9px 0 rgba(88,45,5,.25),0 0 50px currentColor;animation:numberPunch .82s cubic-bezier(.18,.88,.22,1.2)}.meld-crest{position:absolute;font-size:clamp(16rem,55vw,36rem);opacity:.12;color:#fff;animation:crestZoom .85s ease-out}.bomb-overlay{background:radial-gradient(circle,rgba(255,228,124,.62) 0 8%,rgba(232,83,43,.45) 20%,rgba(88,9,8,.38) 40%,transparent 68%);animation:flashFade 1.15s ease-out}.bomb-word{font:1000 clamp(3.5rem,12vw,8.5rem)/1 system-ui;color:#fff1a6;-webkit-text-stroke:3px #3c130d;text-shadow:7px 8px 0 rgba(100,20,10,.32),0 0 45px #ff8b46;animation:bombPunch 1s cubic-bezier(.18,.88,.22,1.2)}@keyframes numberPunch{0%{transform:scale(.1) rotate(-8deg);opacity:.1}38%{transform:scale(1.22) rotate(2deg);opacity:1}100%{transform:scale(1.55);opacity:0}}@keyframes crestZoom{0%{transform:scale(.5);opacity:0}35%{opacity:.18}100%{transform:scale(1.25);opacity:0}}@keyframes bombPunch{0%{transform:scale(.08) rotate(-15deg)}40%{transform:scale(1.12) rotate(2deg)}100%{transform:scale(1.7);opacity:0}}@keyframes flashFade{0%,40%{opacity:1}100%{opacity:0}}.screen-shake{animation:shake .62s linear}.bomb-shake{animation:bombShake .95s linear}@keyframes shake{0%,100%{transform:none}12%{transform:translate(-7px,4px)}25%{transform:translate(6px,-5px)}40%{transform:translate(-4px,-2px)}55%{transform:translate(5px,4px)}70%{transform:translate(-3px,3px)}85%{transform:translate(2px,-2px)}}@keyframes bombShake{0%,100%{transform:none}8%{transform:translate(-11px,7px) rotate(-.2deg)}16%{transform:translate(10px,-8px) rotate(.2deg)}26%{transform:translate(-8px,-5px)}38%{transform:translate(8px,6px)}52%{transform:translate(-6px,5px)}68%{transform:translate(5px,-4px)}84%{transform:translate(-2px,2px)}}
@media(max-width:900px){.table-body{grid-template-columns:minmax(0,1fr)}.last-move{width:120px}.card{width:96px;min-width:96px}.hand .card{margin-left:-27px}.played-card .card{width:92px}.trump-back{width:65px}.score-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){#languageSwitchMount{top:6px;right:6px}.lang-current{height:34px;padding:4px 7px}.lang-menu{top:39px}.wrap{padding:7px}.topbar{padding-top:31px;margin-bottom:7px}.brandmark-img{width:44px;height:44px}.brand .subtle{display:none}.auth{padding:8px}.authbox{padding-top:32px}.auth-grid{grid-template-columns:1fr}.game-table{border-width:5px;border-radius:22px;min-height:500px}.table-topline{gap:8px;font-size:.7rem}.table-body{grid-template-columns:1fr;padding:7px;min-height:430px}.trump-panel{position:absolute;left:6px;top:5px;z-index:4;padding:6px;width:85px}.trump-back{width:48px}.trump-panel strong{font-size:.7rem}.trump-panel span{font-size:.55rem}.center-stage{padding-top:0}.last-move{position:static;width:auto;grid-column:1;padding:6px;margin-top:4px}.score-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.player-chip{padding:6px}.chip-meta{font-size:.58rem;gap:4px}.mini-hand{height:21px}.mini-back{width:14px}.hand{min-height:152px;padding:14px 3px 17px}.card{width:82px;min-width:82px;border-radius:8px}.hand .card{margin-left:-28px}.played-card .card{width:78px}.trick-cards{gap:7px;min-height:150px}.talon-cards .card{width:65px}.small-back{width:54px}.talon-choice .card-back{width:65px}.double-talons,.talon-choices{gap:10px}.action-card,.auction-board{padding:13px}.big-bid{font-size:4rem}.auction-player{min-width:94px;font-size:.78rem}.auction-controls{max-height:122px}.btn.giant{padding:12px 17px;font-size:.98rem}.history-toggle{justify-content:stretch}.history-toggle .btn{width:100%}.result-grid{grid-template-columns:1fr 1fr}.rules-overlay{padding:7px}.rules-modal{max-height:96vh;border-radius:15px}.rules-head{padding:12px 13px}.rules-scroll{padding:12px 14px 19px;font-size:.91rem}.meld-number{-webkit-text-stroke:1.5px rgba(85,47,5,.35)}}
@media(max-width:420px){.score-strip{grid-template-columns:1fr 1fr}.pname{font-size:.8rem}.score{font-size:.92rem}.result-grid{grid-template-columns:1fr}.card{width:76px;min-width:76px}.hand .card{margin-left:-29px}.played-card .card{width:72px}.trick-cards{gap:4px}.trick-head{font-size:.7rem}.roomcode{font-size:.82rem}.topbar .row{gap:5px}.btn.small{font-size:.75rem}.ready-card .row{display:grid;grid-template-columns:1fr 1fr;width:100%}.ready-card .btn{width:100%}}
html.action-busy .btn,html.action-busy .talon-choice{cursor:progress}
html.action-busy .talon-choice{filter:brightness(.92)}


.talon-reveal-card{width:min(820px,100%)}
.talon-reveal-card .talon-box{margin:14px auto;background:rgba(3,18,39,.42);border-color:rgba(239,201,106,.22)}
.seen-list{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:14px 0 12px}
.seen-chip{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:var(--muted);font-size:.82rem;font-weight:850}
.seen-chip.done{color:#c9f3df;background:rgba(116,198,157,.13);border-color:rgba(116,198,157,.36)}
.talon-wait{margin:8px 0 0}

/* v1.0.4 — dwuosobowy musik jako prawdziwa kupka odkładania */
.talon-pile{transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease}
.talon-pile.pot-pile{position:relative}
.talon-pile.drop-ready{cursor:pointer;border-color:rgba(239,201,106,.72);box-shadow:0 0 0 2px rgba(239,201,106,.12),0 10px 24px rgba(0,0,0,.2)}
.talon-pile.drop-ready:hover{transform:translateY(-2px);box-shadow:0 0 0 3px rgba(239,201,106,.2),0 14px 30px rgba(0,0,0,.28)}
.talon-pile.drop-ready .talon-cards{min-height:92px}
.drop-hint{display:block;margin-top:7px;max-width:170px;color:#ffe28c;font-size:.62rem;font-weight:900;line-height:1.2;letter-spacing:.035em}
.talon-taken{min-width:126px;min-height:82px;display:grid;place-items:center;padding:10px;border-radius:10px;border:1px dashed rgba(116,198,157,.46);background:rgba(116,198,157,.08);color:#c9f3df;font-size:.72rem;font-weight:900}
.discard-progress{display:block;margin-top:9px;color:#ffe28c;font-weight:900}
.discard-controls{padding-top:10px}
.discard-controls p{max-width:760px;margin:0 auto 10px;line-height:1.35}
@media(max-width:650px){.talon-taken{min-width:100px;min-height:70px}.drop-hint{max-width:130px;font-size:.56rem}.talon-pile.drop-ready .talon-cards{min-height:76px}}


/* v1.0.5 — menu pokoju, wyjście lokalne i wznowienie */
body.game-menu-open{overflow:hidden}
.game-menu-overlay{position:fixed;inset:0;z-index:22500;background:rgba(2,10,22,.82);backdrop-filter:blur(5px);display:grid;place-items:center;padding:16px}
.game-menu-modal{width:min(520px,100%);background:linear-gradient(180deg,#14365f,#0a203d);border:1px solid rgba(239,201,106,.4);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.58);overflow:hidden}
.game-menu-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.1)}
.game-menu-head h2{margin:0;color:var(--gold);font-size:1.2rem}
.game-menu-actions{display:grid;gap:8px;padding:18px}
.game-menu-actions>.btn{width:100%;text-align:center}
.game-menu-hint{margin:-2px 4px 8px;color:var(--muted);font-size:.78rem;line-height:1.35}
.game-menu-hint.danger-note{color:#ffc4bf}
.resume-strip{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:14px 0 2px;padding:12px 14px;border:1px solid rgba(239,201,106,.34);border-radius:14px;background:rgba(239,201,106,.08)}
.resume-strip div{display:grid;gap:2px}.resume-strip strong{color:#ffe69a}.resume-strip span{color:var(--muted);font-size:.8rem}
@media(max-width:650px){.game-menu-overlay{padding:8px}.game-menu-modal{border-radius:15px}.resume-strip{align-items:stretch;flex-direction:column}.resume-strip .btn{width:100%}}


/* v1.0.6 — czytelna kolej, kompaktowy naglowek, poprawiona logika musika */
body.in-room #languageSwitchMount{display:none}
.player-chip{position:relative}
.player-chip.turn{border-color:#ffd96b!important;box-shadow:0 0 0 2px rgba(255,217,107,.5),0 0 26px rgba(255,198,67,.34)!important;background:linear-gradient(180deg,rgba(35,77,128,.72),rgba(8,31,60,.92))}
.turn-badge{position:absolute;right:7px;top:-11px;background:#f2c75c;color:#10213a;border:1px solid #ffe79c;border-radius:999px;padding:2px 8px;font-size:.62rem;font-weight:950;letter-spacing:.05em;box-shadow:0 4px 12px rgba(0,0,0,.28);z-index:2}
.phase-status.turn-spotlight{width:min(620px,calc(100% - 24px));margin:7px auto 2px;border:2px solid rgba(255,215,97,.78);border-radius:14px;background:linear-gradient(180deg,rgba(239,201,106,.18),rgba(7,29,56,.34));box-shadow:0 0 28px rgba(239,201,106,.18)}
.phase-status.turn-spotlight strong{font-size:1.22rem;color:#ffe082!important;letter-spacing:.025em;text-shadow:0 0 18px rgba(255,206,78,.35)}
.waiting-only{opacity:.9}
.trick-area.play-target{cursor:pointer;border:2px solid rgba(255,216,99,.48);border-radius:18px;padding:9px;box-shadow:0 0 0 3px rgba(255,216,99,.08),0 0 28px rgba(255,194,54,.14);transition:.18s ease}
.trick-area.play-target:hover{border-color:#ffe08a;background:rgba(239,201,106,.06);box-shadow:0 0 0 3px rgba(255,216,99,.14),0 0 34px rgba(255,194,54,.22)}
.table-play-hint{color:#ffe085;font-weight:900;font-size:.82rem;letter-spacing:.02em;padding:5px 10px;border-radius:999px;background:rgba(5,22,44,.7)}
.menu-lang-block{display:grid;gap:8px;padding:10px 11px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(4,18,36,.3)}
.menu-lang-block>span{font-size:.72rem;color:var(--muted);font-weight:900;letter-spacing:.08em}
.menu-lang-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.menu-lang-row .btn{width:100%}
html.action-busy .btn,html.action-busy .talon-choice,html.action-busy .play-target{pointer-events:none}
@media(max-width:650px){.phase-status.turn-spotlight{width:calc(100% - 12px);padding:7px}.phase-status.turn-spotlight strong{font-size:1rem}.turn-badge{font-size:.54rem;right:4px}.menu-lang-row{gap:4px}}

/* v1.0.7 — ręczne zabieranie lewy, stała pula końcowa, pełne podsumowanie kart */
.trick-area.collect-target{cursor:pointer;border:2px solid rgba(116,198,157,.72);border-radius:18px;padding:9px;box-shadow:0 0 0 3px rgba(116,198,157,.12),0 0 30px rgba(116,198,157,.2);background:rgba(116,198,157,.05)}
.trick-area.collect-target:hover{background:rgba(116,198,157,.1);box-shadow:0 0 0 3px rgba(116,198,157,.18),0 0 38px rgba(116,198,157,.26)}
.trick-complete{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:7px 11px;border-radius:999px;background:rgba(116,198,157,.12);border:1px solid rgba(116,198,157,.36);color:#d8f8e8;font-size:.8rem}
.trick-complete strong{color:#9ce2bc}.collect-hint{background:rgba(22,88,65,.82);color:#dff8eb}
.final-pot{position:absolute;right:10px;top:10px;width:145px;padding:9px;border-radius:14px;background:rgba(5,22,44,.7);border:1px solid rgba(239,201,106,.28);box-shadow:0 9px 24px rgba(0,0,0,.22);display:grid;gap:8px;z-index:3}
.final-pot>strong{font-size:.65rem;letter-spacing:.1em;color:var(--gold);text-align:center}
.side-pot-group{display:grid;gap:4px}.side-pot-group>span{font-size:.58rem;color:var(--muted);font-weight:900;text-align:center}
.side-pot-cards{display:flex;justify-content:center;min-height:58px}.side-pot-cards .side-back{width:50px;margin-left:-22px}.side-pot-cards .side-back:first-child{margin-left:0}
.round-details{margin-top:16px;text-align:left;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(4,18,36,.25);overflow:hidden}
.round-details>summary{cursor:pointer;padding:11px 13px;font-weight:900;color:#ffe28c;letter-spacing:.03em}
.captured-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;padding:0 12px 12px}
.captured-player{padding:10px;border-radius:12px;background:rgba(7,27,52,.62);border:1px solid rgba(255,255,255,.07)}.captured-player h3{margin:0 0 8px}
.captured-trick{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid rgba(255,255,255,.06)}.captured-trick:first-of-type{border-top:0}
.captured-no{font-size:.7rem;color:var(--muted);font-weight:850}.captured-cards{display:flex;align-items:center;flex-wrap:wrap}.captured-cards .card{width:54px;min-width:54px;margin-left:-18px}.captured-cards .card:first-child{margin-left:0}
.pot-reveal{margin:0 12px 12px;padding:12px;border-radius:12px;background:rgba(239,201,106,.08);border:1px solid rgba(239,201,106,.3)}.pot-reveal h3{margin:0 0 10px;color:#ffe28c}.pot-reveal h3 span{float:right}.pot-reveal-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pot-reveal-groups>div{padding:8px;border-radius:10px;background:rgba(7,27,52,.5)}
@media(max-width:900px){.final-pot{width:125px}.side-pot-cards .side-back{width:44px;margin-left:-20px}}
@media(max-width:650px){.final-pot{position:static;width:auto;grid-column:1;display:flex;align-items:center;justify-content:center;gap:10px;margin:4px auto}.final-pot>strong{display:none}.side-pot-group{grid-template-columns:auto auto;align-items:center}.side-pot-cards .side-back{width:38px;margin-left:-18px}.captured-grid{grid-template-columns:1fr}.pot-reveal-groups{grid-template-columns:1fr}.captured-cards .card{width:48px;min-width:48px}}


/* v1.0.8 — redeal confirmation */
.redeal-review{max-width:980px;margin:12px auto;text-align:center}
.redeal-reveal-hand{display:flex;justify-content:center;align-items:flex-end;gap:0;margin:18px auto 20px;min-height:160px;flex-wrap:wrap}
.redeal-reveal-hand .card{margin-left:-18px;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.redeal-reveal-hand .card:first-child{margin-left:0}
.redeal-review .giant{margin-top:8px}
.redeal-wait{margin-top:14px}
@media(max-width:720px){.redeal-reveal-hand .card{transform:scale(.82);transform-origin:bottom center;margin-left:-31px}.redeal-reveal-hand{min-height:130px;margin-bottom:6px}}

/* v1.0.9 trick interaction fixes */
.collect-controls{padding-top:10px}.collect-controls .collect-btn{min-width:210px;background:#2f8f63;box-shadow:0 0 0 2px rgba(116,198,157,.18),0 10px 24px rgba(0,0,0,.22)}.collect-controls .collect-btn:hover{filter:brightness(1.08)}.trick-area.collect-target{user-select:none}.game-table[data-collectable="1"]{cursor:pointer}

/* v1.0.10 interaction fixes */
.game-table.exchange-drop-ready{cursor:pointer}
.game-table.exchange-drop-ready .table-body{box-shadow:inset 0 0 0 2px rgba(239,201,106,.16);border-radius:16px}


/* v1.0.11 - captured trick piles */
.player-chip{position:relative}
.won-pile{display:flex;align-items:center;gap:7px;z-index:5}
.won-pile-chip{position:absolute;right:12px;bottom:8px}
.won-stack{position:relative;width:76px;height:36px}
.won-back{position:absolute;left:calc(var(--i) * 7px);top:0;width:31px;height:43px;border-radius:5px;background-image:var(--card-back);background-size:cover;background-position:center;box-shadow:0 2px 5px rgba(0,0,0,.34);border:1px solid rgba(239,201,106,.45)}
.won-stack b{position:absolute;right:0;bottom:-4px;min-width:24px;height:24px;border-radius:12px;background:var(--gold);color:#10233f;display:grid;place-items:center;font-size:.72rem;box-shadow:0 3px 8px rgba(0,0,0,.3)}
.hand-panel{position:relative;padding-right:155px}
.won-pile-hand{position:absolute;right:16px;bottom:20px;display:grid;justify-items:center;gap:6px}
.won-pile-hand .won-stack{width:105px;height:58px}
.won-pile-hand .won-back{width:42px;height:59px;left:calc(var(--i) * 10px)}
.show-last-trick{border:1px solid rgba(239,201,106,.5);background:#0c2a4d;color:#ffe08a;border-radius:9px;padding:6px 8px;font-weight:800;font-size:.67rem;cursor:pointer;white-space:nowrap}
.show-last-trick:hover{filter:brightness(1.12)}
.last-trick-overlay{position:fixed;inset:0;background:rgba(2,8,18,.74);display:grid;place-items:center;z-index:10040;padding:18px}
.last-trick-modal{width:min(620px,96vw);background:#10233f;border:1px solid rgba(239,201,106,.5);border-radius:18px;padding:16px;box-shadow:0 24px 70px rgba(0,0,0,.55);text-align:center}
.last-trick-cards{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:18px 4px}
.last-trick-card{display:grid;justify-items:center;gap:5px;color:#dbe7f3;font-size:.76rem}.last-trick-card .card{width:92px;min-width:92px}
@media(max-width:800px){.hand-panel{padding-right:9px}.won-pile-hand{position:static;display:flex;justify-content:flex-end;margin:0 8px 8px}.won-pile-chip{right:8px;bottom:5px}.won-stack{transform:scale(.88);transform-origin:right bottom}}
