:root{--bg:#0b211b;--panel:#12352b;--panel2:#174537;--line:#2a6b57;--text:#f5f7f4;--muted:#b9c8c2;--gold:#efc96a;--danger:#d95f59;--ok:#74c69d;--card:#fff;--ink:#171717;--shadow:0 16px 40px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 20%,#184a3b 0,#0b211b 55%,#071712 100%);color:var(--text);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}.wrap{width:min(1180px,100%);margin:0 auto;padding:16px}.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}.brand{display:flex;align-items:center;gap:10px}.brandmark{width:42px;height:42px;border:2px solid var(--gold);border-radius:12px;display:grid;place-items:center;font-weight:900;color:var(--gold);transform:rotate(-4deg)}h1,h2,h3,p{margin-top:0}.subtle{color:var(--muted);font-size:.92rem}.panel{background:rgba(18,53,43,.92);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.auth{min-height:100vh;display:grid;place-items:center;padding:18px}.authbox{width:min(560px,100%)}.tabs{display:flex;gap:8px;margin:16px 0}.tabs button{flex:1}.field{display:grid;gap:6px;margin:12px 0}.field input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #2d6455;background:#0c271f;color:#fff;outline:none}.field input:focus{border-color:var(--gold)}.btn{border:0;border-radius:12px;padding:10px 14px;background:#2a6b57;color:#fff;font-weight:750;box-shadow:0 6px 16px rgba(0,0,0,.16)}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--gold);color:#243123}.btn.secondary{background:#315249}.btn.danger{background:var(--danger)}.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.18)}.btn.small{padding:6px 9px;border-radius:9px;font-size:.84rem}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.roomcode{font:800 1.1rem ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;color:var(--gold)}.players-list{display:grid;gap:9px}.lobby-player{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#0c2a21;border-radius:12px;border:1px solid rgba(255,255,255,.06)}.seatno{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--panel2);color:var(--gold);font-weight:800}.drag{margin-left:auto;display:flex;gap:6px}.game-shell{display:grid;gap:12px}.score-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.player-chip{background:rgba(7,24,19,.72);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:9px 10px;min-width:0}.player-chip.turn{outline:2px solid var(--gold);box-shadow:0 0 0 4px rgba(239,201,106,.13)}.pname{font-weight:800;display:flex;justify-content:space-between;gap:8px}.score{color:var(--gold);font-weight:800}.mini-hand{height:29px;display:flex;align-items:center;padding-left:5px;margin-top:5px;overflow:hidden}.mini-card{width:18px;height:26px;border-radius:4px;border:1px solid #d7ddd9;background:linear-gradient(135deg,#193d72 0 20%,#f4f5f3 20% 25%,#193d72 25% 45%,#f4f5f3 45% 50%,#193d72 50% 70%,#f4f5f3 70% 75%,#193d72 75%);margin-left:-9px;box-shadow:0 2px 3px rgba(0,0,0,.2)}.mini-card:first-child{margin-left:0}.table{background:radial-gradient(ellipse at center,#24664f 0,#174936 58%,#11362a 100%);border:8px solid #5a3926;border-radius:34px;min-height:390px;padding:18px;box-shadow:inset 0 0 45px rgba(0,0,0,.38),var(--shadow);position:relative}.piles{display:flex;justify-content:center;gap:28px;align-items:center;margin:12px 0 22px}.pile{width:80px;height:112px;border-radius:11px;border:2px solid rgba(255,255,255,.45);display:grid;place-items:center;position:relative;user-select:none}.pile.stock{background:repeating-linear-gradient(45deg,#173d75,#173d75 8px,#e8edf2 8px,#e8edf2 11px);box-shadow:5px 5px 0 rgba(255,255,255,.12),9px 9px 0 rgba(0,0,0,.18)}.pile-label{position:absolute;top:118px;white-space:nowrap;font-size:.83rem;color:#e9f0ec}.meld-zones{display:grid;gap:12px}.owner-zone{border-top:1px dashed rgba(255,255,255,.22);padding-top:10px}.owner-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#d4e3dc;margin-bottom:7px}.meld-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin:5px 0}.meld-actions{display:flex;gap:4px;margin-left:5px}.hand-panel{padding:14px 8px 5px}.hand{display:flex;align-items:flex-end;overflow-x:auto;padding:14px 5px 16px;min-height:140px;scrollbar-width:thin}.card{width:76px;height:108px;min-width:76px;background:var(--card);color:var(--ink);border-radius:10px;border:1px solid #dadada;box-shadow:0 7px 12px rgba(0,0,0,.24);padding:6px;position:relative;display:flex;flex-direction:column;justify-content:space-between;user-select:none;transition:transform .12s ease,box-shadow .12s ease}.hand .card{margin-left:-22px}.hand .card:first-child{margin-left:0}.hand .card:hover{transform:translateY(-7px)}.card.selected{transform:translateY(-16px)!important;box-shadow:0 0 0 3px var(--gold),0 12px 18px rgba(0,0,0,.28);z-index:5}.selno{position:absolute;right:4px;top:4px;background:var(--gold);color:#10251e;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-size:.72rem;font-weight:900}.corner{font-weight:900;font-size:1rem;line-height:1}.suit{font-size:1.25rem}.center{font-size:2rem;text-align:center}.red{color:#c43131}.joker{background:linear-gradient(135deg,#fff 0,#fff7d6 47%,#fff 48%);color:#482a7a}.joker .center{font-size:1.2rem;font-weight:950;transform:rotate(-8deg)}.controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:10px 0}.statusline{text-align:center;color:#d9e5df;min-height:24px;font-weight:700}.opening{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:.86rem;margin-top:5px}.badge{padding:4px 8px;border-radius:999px;background:rgba(0,0,0,.22)}.badge.ok{background:rgba(116,198,157,.18);color:#bff1d7}.badge.no{background:rgba(217,95,89,.18);color:#ffd0cd}.events{max-height:210px;overflow:auto;display:grid;gap:5px;font-size:.86rem}.event{padding:6px 8px;background:rgba(0,0,0,.13);border-radius:8px}.dealer-stage{text-align:center;display:grid;gap:18px}.draw-cards{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}.draw-player{display:grid;justify-items:center;gap:6px}.face-down{width:76px;height:108px;border-radius:10px;border:2px solid #f1f3f2;background:repeating-linear-gradient(45deg,#173d75,#173d75 8px,#edf2f6 8px,#edf2f6 11px);box-shadow:0 7px 12px rgba(0,0,0,.23)}.cutdeck{height:138px;width:min(520px,92vw);margin:0 auto;position:relative;background:repeating-linear-gradient(90deg,#eef2f0 0 2px,#173d75 2px 5px);border:7px solid #eee;border-radius:12px;box-shadow:var(--shadow);cursor:crosshair}.cutdeck:after{content:'KLIKNIJ W MIEJSCU PRZECIĘCIA';position:absolute;inset:0;display:grid;place-items:center;color:#10251e;font-weight:950;text-shadow:0 1px #fff;background:rgba(255,255,255,.13)}.peek-card{margin:0 auto}.round-table{width:100%;border-collapse:collapse}.round-table td,.round-table th{padding:8px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}.round-table td:last-child,.round-table th:last-child{text-align:right}.winner{font-size:1.25rem;color:var(--gold);font-weight:900}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:#111d19;color:#fff;border:1px solid rgba(255,255,255,.15);padding:10px 14px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;z-index:99;max-width:min(560px,92vw);box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.err{background:#642d2b}.hidden{display:none!important}
@media(max-width:700px){.wrap{padding:9px}.table{min-height:330px;border-width:5px;border-radius:24px;padding:10px}.card{width:64px;height:92px;min-width:64px}.hand .card{margin-left:-19px}.center{font-size:1.65rem}.piles{gap:20px}.pile{width:66px;height:94px}.pile-label{top:99px}.score-strip{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start}.brand h2{font-size:1.05rem}.controls .btn{flex:1 1 auto}.owner-zone{overflow-x:auto}.meld-row{flex-wrap:nowrap;min-width:max-content}}
