:root{--bg:#f3f3ef;--paper:#fff;--paper2:#fafaf7;--line:#d6d7d2;--line2:#bfc2bb;--text:#252823;--muted:#6d7269;--blue:#275a91;--blue2:#eaf2fb;--green:#467a23;--green2:#edf5e7;--red:#b33939;--red2:#fff0f0;--gold:#b47a18;--shadow:0 2px 9px rgba(28,34,24,.09);--radius:5px;font-family:Verdana,Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}.topbar{min-height:52px;border-bottom:1px solid #c7c9c2;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(16px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:20;box-shadow:0 1px 3px rgba(0,0,0,.05)}.brand{font:700 22px Georgia,serif;color:#2e4f22}.brand span{color:#779b28}.topbar nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.topbar nav a,.link-button{color:#3f493b}.nav-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;margin-left:3px}.shell{width:min(1120px,calc(100% - 24px));margin:0 auto;padding:26px 0 55px}.hero{display:grid;grid-template-columns:1fr 280px;gap:30px;align-items:center;padding:30px;border:1px solid var(--line2);background:#fff;box-shadow:var(--shadow);border-radius:var(--radius)}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:#263422}.hero h1,.lobby-head h1,.auth-card h1,.room-title h1{font-size:clamp(30px,4vw,48px);margin:.2em 0;line-height:1.06;font-weight:500}.hero p{color:var(--muted);font-size:16px;line-height:1.65;max-width:700px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--green);font-weight:700;font-size:10px;margin:0}.status-card{display:grid;gap:0;border:1px solid var(--line);background:var(--paper2)}.status-card strong{padding:13px;color:#fff;background:#567d31;font-size:15px}.status-card span{padding:10px 13px;border-bottom:1px solid var(--line);color:var(--muted)}.status-card span:last-child{border:0}.actions{display:flex;gap:9px;margin-top:20px}.button{border:1px solid #386415;border-radius:4px;padding:9px 14px;background:#5d8734;color:#fff;font-weight:700;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;line-height:1.2}.button:hover{text-decoration:none;background:#4d7429}.button.secondary{background:#fff;color:#334d72;border-color:#9aa9ba}.button.secondary:hover{background:#f0f5fa}.button.danger{background:#fff;color:var(--red);border-color:#d9aaaa}.button.small{padding:6px 10px;font-size:12px}.button.wide{width:100%}.link-button{border:0;background:none;cursor:pointer;padding:0}.section-head{display:flex;justify-content:space-between;align-items:end;margin:35px 0 14px}.section-head.compact{margin:0 0 16px}.section-head h2,.panel h2,.game-sidebar h2{margin:3px 0 0;font-size:23px;font-weight:500}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.game-card{display:grid;grid-template-columns:64px 1fr;gap:15px;border:1px solid var(--line);background:var(--paper);padding:15px;border-radius:var(--radius);box-shadow:0 1px 2px rgba(0,0,0,.03)}.game-card:hover{border-color:#aeb6a7}.game-icon{width:64px;height:64px;border:1px solid var(--line);display:grid;place-items:center;font-size:31px;background:#f6f6f2;border-radius:3px}.game-icon.board{color:var(--blue)}.game-icon.card{color:var(--red)}.game-icon.party{color:var(--green)}.game-copy h3{margin:4px 0;font-size:20px}.game-copy p{color:var(--muted);line-height:1.48;margin:0 0 13px}.card-meta,.card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-meta,.card-footer{font-size:11px;color:var(--muted)}.badge{display:inline-flex;padding:3px 7px;border:1px solid #c8cbc4;border-radius:3px;background:#f4f5f1;color:#60665c;font-size:10px;text-transform:uppercase;font-weight:700}.badge.active,.badge.waiting{background:var(--green2);border-color:#bfd5ae;color:#426d26}.badge.beta,.badge.playing{background:#fff5df;border-color:#e0ca98;color:#8a641a}.badge.development{background:#f2f2f2}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:35px}.info-grid article,.panel,.notice,.classic-box{border:1px solid var(--line);background:var(--paper);padding:18px;border-radius:var(--radius)}.info-grid h3{margin-top:0;font-size:18px}.info-grid p,.muted{color:var(--muted);line-height:1.55}.centered{text-align:center}.auth-shell{min-height:calc(100vh - 52px);display:grid;place-items:center;padding:25px}.auth-card{width:min(420px,100%);border:1px solid var(--line2);background:var(--paper);padding:28px;border-radius:var(--radius);box-shadow:var(--shadow)}.auth-card h1{font-size:34px;margin:7px 0 23px}.auth-card form,.profile-form{display:grid;gap:14px}.auth-card label,.profile-form label{display:grid;gap:6px;color:#4c5149;font-weight:700;font-size:12px}input,select,textarea{width:100%;border:1px solid #bfc2bb;background:#fff;color:var(--text);border-radius:3px;padding:9px 10px;outline:none}textarea{resize:vertical;min-height:95px}input:focus,select:focus,textarea:focus{border-color:#6085aa;box-shadow:0 0 0 2px #e8f0f8}.form-error,.form-success{padding:10px;border:1px solid #d9aaaa;background:var(--red2);color:#8f2d2d;border-radius:3px}.form-success{border-color:#bad1a8;background:var(--green2);color:#3b6521}.lobby-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:22px}.lobby-head h1{font-size:39px}.lobby-head p{color:var(--muted);max-width:760px;line-height:1.55}.lobby-stats{display:flex;gap:7px;white-space:nowrap}.lobby-stats span{border:1px solid var(--line);background:var(--paper);padding:8px;border-radius:3px;color:var(--muted)}.inline-form{display:grid;grid-template-columns:minmax(210px,1fr) 130px 130px auto auto auto;gap:9px;align-items:center}.check{display:flex;align-items:center;gap:6px;color:var(--muted);white-space:nowrap;font-size:12px}.check input{width:auto}.rooms-table{display:grid;border:1px solid var(--line);background:#fff}.room-row{display:grid;grid-template-columns:minmax(220px,1fr) 85px 90px 90px auto;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid #e1e2dd;background:#fff}.room-row:last-child{border:0}.room-row>div{display:grid;gap:2px}.room-row span{color:var(--muted);font-size:11px}.empty{padding:26px;text-align:center;color:var(--muted)}.user-chip,.connection-state{padding:5px 8px;background:#f1f2ee;border:1px solid var(--line);border-radius:3px;color:var(--muted);font-size:11px}.connection-state.online{color:var(--green)}.connection-state.error{color:var(--red)}.game-shell{width:min(1400px,calc(100% - 16px));margin:0 auto;padding:12px 0;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:10px;height:calc(100vh - 52px)}.game-stage,.game-sidebar{border:1px solid var(--line2);background:var(--paper);border-radius:3px;overflow:hidden}.game-stage{display:flex;flex-direction:column}.room-title{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:#fafaf7}.room-title h1{font-size:24px;margin:3px 0}.room-actions{display:flex;gap:8px;align-items:center}.game-view{flex:1;display:grid;place-items:center;overflow:auto;padding:20px;background:#e7eadf}.loading{color:var(--muted)}.game-sidebar{display:grid;grid-template-rows:minmax(190px,38%) 1fr}.game-sidebar section{padding:14px;overflow:auto}.game-sidebar section+section{border-top:1px solid var(--line)}.member-list{display:grid;gap:5px;margin-top:10px}.member{display:flex;justify-content:space-between;align-items:center;padding:8px;border:1px solid #e2e3de;background:#fafaf7;border-radius:3px}.member .member-main{display:grid;gap:2px}.member small{color:var(--muted)}.member-status{display:flex;gap:6px;align-items:center}.member i{width:8px;height:8px;border-radius:50%;background:#a6aaa1}.member.online i{background:#5b9132}.member.disconnected{background:#fff6e9;border-color:#e5cfaa}.member .grace{color:#9a651c;font-size:10px}.chat-panel{display:flex;flex-direction:column!important}.chat-messages{flex:1;overflow:auto;display:flex;flex-direction:column;gap:6px;min-height:180px}.chat-message{font-size:12px;line-height:1.45}.chat-message strong{color:var(--blue)}.chat-message.system{color:#6b725f;font-style:italic}.chat-panel form{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:10px}.chat-panel button{border:1px solid #386415;border-radius:3px;background:#5d8734;color:#fff;font-weight:700}.timer{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #d8c596;background:#fff8e8;color:#7a591c;border-radius:3px;font-weight:700;font-variant-numeric:tabular-nums}.timer.urgent{background:#fff0f0;border-color:#dfa9a9;color:#a22f2f}.ttt-wrap{display:grid;gap:14px}.ttt-board{display:grid;grid-template-columns:repeat(3,105px);gap:4px;padding:7px;background:#496c2e;border:1px solid #36531f}.ttt-cell{height:105px;border:1px solid #b9bdaf;background:#fff;color:#2b3c25;border-radius:0;font:700 52px Georgia,serif;cursor:pointer}.ttt-cell:hover:not(:disabled){background:#f5f8f1}.game-status{text-align:center;margin-bottom:12px;color:#4d554a}.game-card-table{display:grid;gap:17px;text-align:center;min-width:480px}.card-table-felt{padding:25px;border:8px solid #795332;background:#4f7d36;box-shadow:inset 0 0 35px rgba(0,0,0,.22);min-height:330px;display:grid;align-content:center;gap:18px}.deck-area{display:flex;justify-content:center;align-items:center;gap:35px}.card-deck{position:relative;width:116px;height:166px}.card-back{position:absolute;inset:0;border:7px solid #fff;border-radius:8px;background:repeating-linear-gradient(45deg,#2c5e95 0 5px,#e9eef5 5px 10px);box-shadow:0 3px 8px rgba(0,0,0,.32)}.card-back:nth-child(2){transform:translate(-4px,-3px)}.card-back:nth-child(3){transform:translate(-8px,-6px)}.card-deck.shuffling .card-back:nth-child(1){animation:shuffleA .55s ease 3}.card-deck.shuffling .card-back:nth-child(2){animation:shuffleB .55s ease 3}.playing-card{width:116px;height:166px;background:#fff;color:#151515;border:1px solid #aaa;border-radius:8px;box-shadow:0 4px 11px rgba(0,0,0,.35);position:relative;display:grid;place-items:center;font-family:Georgia,serif}.playing-card.red{color:#c3212b}.card-corner{position:absolute;display:grid;font-weight:700;font-size:18px;line-height:.85}.card-corner.top{top:8px;left:8px}.card-corner.bottom{bottom:8px;right:8px;transform:rotate(180deg)}.card-suit{font-size:52px}.hidden-card{background:repeating-linear-gradient(45deg,#2c5e95 0 5px,#e9eef5 5px 10px);border:7px solid #fff}.reveal-row{display:flex;justify-content:center;gap:35px;align-items:end}.player-card{display:grid;gap:6px;justify-items:center;color:#fff}.score-line{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.score-line span{padding:7px 10px;background:#fff;border:1px solid var(--line);border-radius:3px}.charades-layout{width:100%;height:100%;display:grid;grid-template-rows:auto minmax(320px,1fr) auto;gap:10px}.charades-head{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);padding:9px}.charades-word{font-size:22px;font-weight:700;letter-spacing:.07em}.drawing-wrap{background:#fff;border:1px solid #b8bbb3;overflow:hidden;position:relative}.drawing-wrap canvas{display:block;width:100%;height:100%;touch-action:none}.drawing-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.color{width:25px;height:25px;border:2px solid #fff;border-radius:50%;padding:0;cursor:pointer;box-shadow:0 0 0 1px #777}.guess-form{display:flex;gap:7px}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);padding:10px 14px;border-radius:3px;background:#2d352a;color:#fff;box-shadow:var(--shadow);z-index:50}.notice{margin:16px 0}.account-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px}.profile-card{border:1px solid var(--line);background:#fff;padding:18px}.avatar{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;background:#eaf0e4;border:1px solid #b9c7ae;color:#42642a;font:700 35px Georgia,serif}.profile-card h1{font-size:28px;margin:12px 0 3px}.stat-pills{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.stat-pill{border:1px solid var(--line);background:#fff;padding:12px;text-align:center}.stat-pill strong{display:block;font-size:21px;font-family:Georgia,serif}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.tabs a{padding:8px 12px;background:#f4f5f1;border:1px solid var(--line);border-bottom:0}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}.data-table th,.data-table td{padding:9px 10px;border-bottom:1px solid #e1e2dd;text-align:left;font-size:12px}.data-table th{background:#f2f3ef;color:#4c5149}.data-table tr:last-child td{border-bottom:0}.rank-pos{font-weight:700;color:#6c752e}.positive{color:var(--green)}.negative{color:var(--red)}.notification-list,.friend-list{display:grid;gap:7px}.notification,.friend-row{border:1px solid var(--line);background:#fff;padding:11px;display:flex;justify-content:space-between;gap:12px;align-items:center}.notification.unread{border-left:4px solid var(--green)}.friend-actions{display:flex;gap:6px}.search-results{display:grid;gap:5px;margin-top:8px}.search-user{display:flex;justify-content:space-between;align-items:center;padding:9px;border:1px solid var(--line);background:#fff}footer{text-align:center;color:#7d8278;padding:20px;border-top:1px solid var(--line);background:#fff}code{color:#6b4d13}@keyframes shuffleA{0%,100%{transform:translate(0)}50%{transform:translate(80px,-12px) rotate(8deg)}}@keyframes shuffleB{0%,100%{transform:translate(-4px,-3px)}50%{transform:translate(-75px,10px) rotate(-8deg)}}@media(max-width:900px){.hero{grid-template-columns:1fr;padding:23px}.status-card{display:none}.game-grid,.info-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.lobby-head{align-items:start;flex-direction:column}.game-shell{height:auto;grid-template-columns:1fr}.game-stage{min-height:650px}.game-sidebar{min-height:500px}.account-grid{grid-template-columns:1fr}.stat-pills{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.topbar{padding:7px 10px}.topbar nav{gap:8px}.topbar nav a.optional{display:none}.shell{width:min(100% - 14px,1120px);padding-top:14px}.hero{padding:17px}.game-card{grid-template-columns:52px 1fr}.game-icon{width:52px;height:52px}.room-row{grid-template-columns:1fr auto}.room-row>:nth-child(2),.room-row>:nth-child(3),.room-row>:nth-child(4){display:none}.ttt-board{grid-template-columns:repeat(3,82px)}.ttt-cell{height:82px}.game-shell{width:100%;padding:0}.game-stage,.game-sidebar{border-radius:0}.game-view{padding:8px}.game-card-table{min-width:0;width:100%}.reveal-row{gap:12px}.playing-card{width:94px;height:136px}.card-deck{width:94px;height:136px}.stat-pills{grid-template-columns:1fr 1fr}.data-table{display:block;overflow-x:auto}}

.security-grid{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:24px;align-items:start}.session-list{display:grid;gap:8px}.session-row{display:flex;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);background:#fafafa}.session-row div{display:grid;gap:3px}.session-row span{font-size:.82rem;color:var(--muted)}.form-success{padding:10px;border:1px solid #86c58b;background:#effaf0;color:#225b27}.badge.active{background:#e9f6ea;color:#23642a;border-color:#a8d7ac}@media(max-width:760px){.security-grid{grid-template-columns:1fr}}

.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.achievement-card{display:flex;gap:11px;padding:12px;border:1px solid var(--line);background:#fff}.achievement-card.locked{opacity:.55;background:#f5f5f5}.achievement-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#eaf4e8;color:#27622c;font-weight:800}.achievement-card.locked .achievement-icon{background:#e7e7e7;color:#777}.achievement-card p{margin:3px 0;color:var(--muted);font-size:.86rem}.achievement-card span{font-size:.78rem;color:#6f6f6f}

/* Interfejs społeczności i rozgrywek */
.game-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.favorite-button{border:0;background:transparent;color:#b4b4aa;font-size:22px;line-height:1;cursor:pointer;padding:2px 5px}.favorite-button:hover,.favorite-button.active{color:#c58b00}.game-card.favorite{border-color:#d6bd78;box-shadow:inset 4px 0 #d6a82f}.compact-text{margin:0 0 8px;font-size:11px}.ready-badge{display:inline-flex;width:max-content;padding:2px 5px;border-radius:2px;font-size:9px;text-transform:uppercase;font-weight:800}.ready-badge.yes{background:#e6f4df;color:#376b1f}.ready-badge.no{background:#eee;color:#777}.waiting-room{display:grid;gap:10px;text-align:center;max-width:560px;background:#fff;border:1px solid var(--line);padding:25px}.board-game{display:grid;gap:12px;justify-items:center}.connect-columns{width:350px;display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.connect-columns button{border:0;background:transparent;color:#526c40;cursor:pointer;font-size:18px}.connect-board{display:grid;grid-template-columns:repeat(7,48px);gap:4px;padding:9px;background:#315c96;border:5px solid #264a79;box-shadow:var(--shadow)}.connect-cell{width:48px;height:48px;border-radius:50%;background:#f8f8f3;display:grid;place-items:center}.connect-cell i{width:40px;height:40px;border-radius:50%;display:block}.connect-cell.red-disc i{background:#d9443f}.connect-cell.yellow-disc i{background:#f3c938}.connect-cell.winning{outline:4px solid #72bd43;outline-offset:-2px}.reversi-board,.checkers-board{display:grid;grid-template-columns:repeat(8,52px);border:4px solid #375d2d;box-shadow:var(--shadow)}.reversi-cell,.checkers-cell{width:52px;height:52px;border:1px solid rgba(0,0,0,.18);display:grid;place-items:center;padding:0}.reversi-cell{background:#5f983f}.reversi-cell.legal{cursor:pointer;box-shadow:inset 0 0 0 4px #d7eb81}.disc{width:39px;height:39px;border-radius:50%;display:block;box-shadow:inset 0 -4px 7px rgba(0,0,0,.26),0 2px 3px rgba(0,0,0,.25)}.disc.black{background:#242424}.disc.white{background:#f3f3ee}.checkers-cell.light{background:#ead7b5}.checkers-cell.dark{background:#7f5538}.checkers-cell.selectable,.checkers-cell.target{cursor:pointer}.checkers-cell.selectable{box-shadow:inset 0 0 0 4px #c6dd5b}.checkers-cell.selected{box-shadow:inset 0 0 0 5px #ffda41}.checkers-cell.target:after{content:'';width:16px;height:16px;border-radius:50%;background:rgba(230,245,113,.78);position:absolute}.checkers-cell{position:relative}.checker{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 -6px 0 rgba(0,0,0,.18),0 2px 3px rgba(0,0,0,.25);z-index:1}.checker.red{background:#c94138}.checker.black{background:#252525}.checker.king:after{content:'♛';color:#f6d667;font-size:22px}.crazy-eight{width:min(880px,100%);display:grid;gap:15px;text-align:center}.crazy-table{display:flex;justify-content:center;gap:50px;align-items:end}.crazy-table>div{display:grid;gap:7px;justify-items:center}.card-back.large{position:static;width:116px;height:166px}.hand-counts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.hand-counts span{background:#fff;border:1px solid var(--line);padding:5px 9px}.card-hand{display:flex;justify-content:center;align-items:end;flex-wrap:wrap;gap:5px}.hand-card{border:0;background:transparent;padding:0;transition:transform .12s}.hand-card.legal{cursor:pointer}.hand-card.legal:hover{transform:translateY(-12px)}.hand-card .playing-card{width:88px;height:126px}.hand-card .card-suit{font-size:38px}.hand-card .card-corner{font-size:14px}.card-actions{display:grid;justify-items:center;gap:10px}.suit-picker{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);padding:8px}.suit-picker button{font-size:24px;border:1px solid var(--line);background:#fff;cursor:pointer}.challenge-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;align-items:end}.challenge-form label{display:grid;gap:5px;font-size:12px;font-weight:700}.challenge-form .wide-field{grid-column:span 3}.challenge-list{display:grid;gap:9px}.challenge-card{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);padding:13px;background:#fff}.challenge-card h3{margin:5px 0}.challenge-card p{margin:4px 0}.challenge-card blockquote{margin:7px 0;padding:7px 10px;border-left:3px solid #a9b89a;background:#f5f7f2}.challenge-actions{display:flex;gap:6px;flex-wrap:wrap}.profile-actions{display:grid;gap:7px;margin-top:12px}.danger-text{color:var(--red)}.tier{display:inline-flex;padding:3px 6px;border-radius:2px;border:1px solid #bbb;background:#f2f2ef;font-size:10px;font-weight:800;text-transform:uppercase}.tier-Bronze{background:#f1dfce;border-color:#c79b70;color:#75451e}.tier-Silver{background:#eef0f1;border-color:#b9bec1;color:#535b60}.tier-Gold{background:#fff1b8;border-color:#d0a929;color:#745b00}.tier-Platinum{background:#def2eb;border-color:#82bfa8;color:#24634d}.tier-Diamond{background:#e0eefc;border-color:#7eb0dc;color:#265e8d}.tier-Master{background:#ede0f8;border-color:#a47bc8;color:#66328f}.badge.pending{background:#fff4d9;color:#795a12;border-color:#ddc47b}.badge.accepted{background:#e7f4e1;color:#376b21;border-color:#a8cb98}.badge.declined,.badge.cancelled,.badge.expired{background:#eee;color:#666;border-color:#ccc}
@media(max-width:900px){.challenge-form{grid-template-columns:1fr 1fr}.challenge-form .wide-field{grid-column:span 2}.connect-board{grid-template-columns:repeat(7,42px)}.connect-cell{width:42px;height:42px}.connect-cell i{width:35px;height:35px}.reversi-board,.checkers-board{grid-template-columns:repeat(8,44px)}.reversi-cell,.checkers-cell{width:44px;height:44px}.disc,.checker{width:34px;height:34px}}
@media(max-width:600px){.room-actions{flex-wrap:wrap;justify-content:flex-end}.connect-board{grid-template-columns:repeat(7,38px);gap:2px}.connect-cell{width:38px;height:38px}.connect-cell i{width:31px;height:31px}.connect-columns{width:280px}.reversi-board,.checkers-board{grid-template-columns:repeat(8,38px)}.reversi-cell,.checkers-cell{width:38px;height:38px}.disc,.checker{width:30px;height:30px}.challenge-form{grid-template-columns:1fr}.challenge-form .wide-field{grid-column:auto}.challenge-card{align-items:flex-start;flex-direction:column}.crazy-table{gap:18px}.hand-card .playing-card{width:70px;height:102px}.hand-card .card-suit{font-size:30px}}
.tier-Brąz{background:#f1dfce;border-color:#c79b70;color:#75451e}.tier-Srebro{background:#eef0f1;border-color:#b9bec1;color:#535b60}.tier-Złoto{background:#fff1b8;border-color:#d0a929;color:#745b00}.tier-Platyna{background:#def2eb;border-color:#82bfa8;color:#24634d}.tier-Diament{background:#e0eefc;border-color:#7eb0dc;color:#265e8d}.tier-Mistrz{background:#ede0f8;border-color:#a47bc8;color:#66328f}
.report-list{display:grid;gap:9px}.report-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid var(--line);background:#fff}.report-row strong{display:block;margin:5px 0}.report-row p{margin:4px 0;max-width:760px}.badge.open{background:#fff0dc;color:#805616;border-color:#d8b57a}.badge.reviewing{background:#e8f1fb;color:#275f91;border-color:#9cbfe0}.badge.resolved{background:#e7f4e1;color:#376b21;border-color:#a8cb98}.badge.rejected{background:#eee;color:#666;border-color:#ccc}@media(max-width:700px){.report-row{align-items:flex-start;flex-direction:column}}

/* Plansze i stoły gier */
.chess-board{display:grid;grid-template-columns:repeat(8,58px);border:5px solid #684b2d;box-shadow:var(--shadow)}.chess-cell{width:58px;height:58px;border:0;font-size:39px;line-height:1;display:grid;place-items:center}.chess-cell.light{background:#f0d9b5}.chess-cell.dark{background:#b58863}.chess-cell.selected{box-shadow:inset 0 0 0 5px #f3d547}.chess-cell.target{box-shadow:inset 0 0 0 5px rgba(64,132,46,.72)}.chess-cell:disabled{opacity:1;color:#111}
.gomoku-board{display:grid;grid-template-columns:repeat(15,30px);padding:8px;background:#d8aa68;border:4px solid #8b5f2d}.gomoku-cell{width:30px;height:30px;border:1px solid rgba(62,39,14,.34);background:linear-gradient(90deg,transparent 48%,rgba(72,45,16,.42) 49% 51%,transparent 52%),linear-gradient(transparent 48%,rgba(72,45,16,.42) 49% 51%,transparent 52%);display:grid;place-items:center}.gomoku-cell:disabled{opacity:1}.stone{display:block;width:23px;height:23px;border-radius:50%;box-shadow:0 2px 3px rgba(0,0,0,.4)}.stone.black{background:#171717}.stone.white{background:#faf8ef}.gomoku-cell.winning{outline:3px solid #e33;outline-offset:-3px}
.ludo-track{width:min(780px,100%);display:grid;grid-template-columns:repeat(13,1fr);gap:2px}.ludo-cell{min-height:43px;border:1px solid #aeb5a7;background:#fff;position:relative;padding:2px;display:flex;flex-wrap:wrap;align-content:center;gap:2px}.ludo-cell small{position:absolute;top:1px;right:2px;color:#999;font-size:8px}.ludo-token,.ludo-pieces button{border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;color:#fff}.ludo-token{width:18px;height:18px;font-size:9px}.ludo-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;width:min(780px,100%)}.ludo-panels section{border:1px solid var(--line);background:#fff;padding:8px}.ludo-pieces{display:flex;gap:5px;margin-top:6px}.ludo-pieces button{width:38px;height:38px;border:2px solid #fff;box-shadow:0 0 0 1px #aaa}.ludo-pieces small{display:none}.seat-1{background:#d6453d!important}.seat-2{background:#3c71b8!important}.seat-3{background:#d0a51f!important}.seat-4{background:#4d913e!important}
.domino-chain,.domino-hand{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;max-width:900px}.domino-chain{min-height:100px;padding:15px;border:1px solid var(--line);background:#527c3d}.domino-tile{width:42px;height:78px;border:2px solid #222;border-radius:4px;background:#fff;display:grid;grid-template-rows:1fr 2px 1fr;place-items:center;font-size:20px;box-shadow:0 2px 3px rgba(0,0,0,.25)}.domino-tile i{width:100%;height:2px;background:#222}.domino-choice{display:grid;gap:4px;justify-items:center;border:1px solid transparent;padding:5px}.domino-choice.legal{border-color:#95b57c;background:#f2f8ed}.domino-choice button{font-size:10px;border:1px solid var(--line);background:#fff;cursor:pointer}
.dice-row{display:flex;gap:10px}.die{width:70px;height:70px;border:2px solid #aaa;background:#fff;border-radius:9px;font-size:48px;line-height:1;cursor:pointer}.die.held{border-color:#447c26;background:#eaf4e4;transform:translateY(-8px)}.dice-scorecard{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:5px;width:min(650px,100%)}.dice-scorecard button{display:flex;justify-content:space-between;padding:7px;border:1px solid var(--line);background:#fff}.dice-scorecard button:not(:disabled){cursor:pointer;background:#f1f7ec}
.lines-board{display:grid;grid-template-columns:repeat(9,44px);gap:2px;padding:5px;background:#5e6f4e}.lines-cell{width:44px;height:44px;border:1px solid #9aaa8a;background:#e9eee4;display:grid;place-items:center}.lines-cell.selected{outline:4px solid #fff129}.line-ball{display:inline-block;width:30px;height:30px;border-radius:50%;box-shadow:inset -5px -6px 8px rgba(0,0,0,.25),0 1px 2px #333}.line-ball.red{background:#e3423b}.line-ball.blue{background:#3977d5}.line-ball.green{background:#4cac42}.line-ball.yellow{background:#e5c733}.line-ball.purple{background:#9a4dc3}.line-ball.cyan{background:#3ec9cf}.line-ball.orange{background:#eb8735}.game-status .line-ball{width:14px;height:14px;margin:0 2px}
.mahjong-board{position:relative;width:min(920px,100%);height:560px;overflow:auto;background:#466d3a;border:8px solid #694a2f}.mahjong-tile{position:absolute;width:54px;height:68px;border:2px solid #7c6b4f;border-radius:5px;background:#f4ead1;color:#262318;font-size:18px;box-shadow:4px 5px 0 #c7b48c}.mahjong-tile.free{cursor:pointer}.mahjong-tile.selected{outline:4px solid #e7d63e}.mahjong-tile:disabled{opacity:.72}
.paper-soccer{width:min(600px,100%);background:#f8fff4;border:1px solid #8ba482}.paper-soccer rect,.paper-soccer path{fill:none;stroke:#48743b;stroke-width:2}.paper-soccer line{stroke:#294c74;stroke-width:3}.paper-soccer .ball{fill:#111}.paper-soccer .legal-node{fill:rgba(219,64,58,.6);cursor:pointer;stroke:#fff;stroke-width:2}
.backgammon-board{display:grid;grid-template-columns:repeat(12,52px);grid-template-rows:repeat(2,92px);gap:2px;padding:12px;background:#7c5331;border:7px solid #4f321e}.backgammon-point{position:relative;background:#ead6aa;clip-path:polygon(0 0,100% 0,50% 100%);display:grid;place-items:start center;padding-top:5px}.backgammon-point:nth-child(n+13){transform:rotate(180deg)}.backgammon-point:nth-child(n+13)>*{transform:rotate(180deg)}.backgammon-point.dark{background:#713b30}.backgammon-point small{font-size:9px;color:#333}.checker-stack{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-weight:800;box-shadow:0 1px 3px #333}.checker-stack.white{background:#f8f2e4;color:#222}.checker-stack.black{background:#202020;color:#fff}.backgammon-meta{padding:8px;background:#fff;border:1px solid var(--line)}.legal-moves{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.legal-moves button,.bid-grid button{border:1px solid #9daf91;background:#fff;padding:6px 9px;cursor:pointer}.legal-moves button:hover,.bid-grid button:hover{background:#eaf4e5}
.card-game{width:min(980px,100%);display:grid;gap:13px;text-align:center}.pan-pile,.durak-table,.trick-table{min-height:170px;padding:15px;background:#4c7739;border:7px solid #755032;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.pan-pile .playing-card{margin-left:-52px}.pan-pile .playing-card:first-child{margin-left:0}.hand-card.selected{transform:translateY(-14px);outline:3px solid #e0c325;border-radius:7px}.durak-pair{position:relative;display:grid;grid-template-columns:92px 92px;align-items:center}.durak-pair>span:nth-child(2){margin-left:-55px;margin-top:40px}.durak-pair em{color:#fff}.trick-table>div{display:grid;gap:5px;color:#fff}.bid-grid{display:flex;gap:5px;flex-wrap:wrap;justify-content:center}
@media(max-width:760px){.chess-board{grid-template-columns:repeat(8,42px)}.chess-cell{width:42px;height:42px;font-size:30px}.gomoku-board{grid-template-columns:repeat(15,22px)}.gomoku-cell{width:22px;height:22px}.stone{width:17px;height:17px}.ludo-track{grid-template-columns:repeat(8,1fr)}.dice-scorecard{grid-template-columns:1fr 1fr}.lines-board{grid-template-columns:repeat(9,34px)}.lines-cell{width:34px;height:34px}.line-ball{width:24px;height:24px}.backgammon-board{grid-template-columns:repeat(12,29px);grid-template-rows:repeat(2,66px);padding:7px}.checker-stack{width:23px;height:23px;font-size:10px}.mahjong-board{height:480px;transform-origin:top left}.mahjong-tile{width:44px;height:56px;font-size:14px}}

/* Production UI */
.production-hero{grid-template-columns:minmax(0,1fr) 300px}.live-status{align-self:stretch}.live-indicator{display:flex;align-items:center;gap:9px;padding:13px;background:#567d31;color:#fff}.live-indicator i,.online-chip i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#70bd45;box-shadow:0 0 0 3px rgba(112,189,69,.16)}.live-indicator strong{padding:0;background:transparent}.live-number{display:grid;justify-items:center;padding:20px 13px;border-bottom:1px solid var(--line)}.live-number b{font:600 42px/1 Georgia,serif;color:#315c25}.live-number span{margin-top:5px;color:var(--muted)}.live-secondary{display:grid;gap:0}.live-secondary span{padding:10px 13px;border-bottom:1px solid var(--line);color:var(--muted)}.live-secondary span:last-child{border:0}.online-chip{display:inline-flex;align-items:center;gap:5px;color:#49613d}.online-chip i{width:7px;height:7px;box-shadow:none}.lobby-stats{flex-wrap:wrap;justify-content:flex-end}.lobby-stats span{display:inline-flex;align-items:center;gap:5px}.user-presence{font-size:11px;font-weight:700}.user-presence.online{color:#477b28}.user-presence.offline{color:#7a7f76}.production-info article{min-height:145px}.pan-scoreboard{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.pan-score{display:grid;gap:2px;min-width:125px;padding:8px 10px;border:1px solid var(--line);background:#fff;text-align:left}.pan-score.active{border-color:#8fad72;box-shadow:inset 3px 0 #5d8734}.pan-score strong{font-size:12px}.pan-score b{color:#7d5a17;font-weight:800;letter-spacing:.12em}.pan-score.out{opacity:.67}.pan-table{display:grid;justify-items:center;gap:9px;min-height:230px;padding:18px;background:#4c7739;border:7px solid #755032;color:#fff}.pan-pile-stack{display:flex;align-items:center;justify-content:center;min-height:172px}.pan-pile-card{margin-left:-54px}.pan-pile-card:first-child{margin-left:0}.pan-top-info{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;font-size:12px}.pan-hand{display:flex;justify-content:center;align-items:end;gap:5px;flex-wrap:wrap}.pan-hand .hand-card{position:relative}.pan-hand .hand-card:disabled{opacity:.62}.pan-rules{max-width:780px;margin:0 auto;color:var(--muted);font-size:12px;line-height:1.5}.search-user .user-copy{display:grid;gap:3px}.relationship-note{font-size:11px;color:var(--muted)}
@media(max-width:900px){.production-hero{grid-template-columns:1fr}.production-hero .status-card{display:grid}.lobby-stats{justify-content:flex-start}.production-info article{min-height:0}}
@media(max-width:600px){.live-number{padding:14px}.live-number b{font-size:34px}.pan-pile-card{margin-left:-66px}.pan-pile-card:first-child{margin-left:0}.pan-score{min-width:100px}.lobby-stats{display:grid;width:100%}.lobby-stats span{justify-content:center}}

/* Stage VI: katalog, zasady, wiadomości, reputacja i dialogi */
.game-category{margin:0 0 28px}.category-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid #d8ded2;margin:0 0 14px;padding:0 0 8px}.category-heading h2{margin:0;font-size:1.2rem}.category-heading span{color:#697565;font-size:.85rem}.game-icon-img{width:64px;height:64px;flex:0 0 64px}.game-card{align-items:flex-start}.rules-card{max-width:900px;margin:24px auto;background:#fff;border:1px solid #d8ded2;padding:28px;box-shadow:0 8px 24px rgba(35,55,28,.07)}.rules-heading{display:flex;gap:18px;align-items:center}.rules-icon{width:76px;height:76px}.rules-heading h1{margin:.2rem 0}.rules-text{white-space:pre-line;font-size:1.04rem;line-height:1.75}.rules-notice{margin:22px 0;padding:16px;border-left:4px solid #315c25;background:#f0f5ed}.lobby-game-title{display:flex;align-items:center;gap:16px}.lobby-game-icon{width:72px;height:72px}.narrow-shell{max-width:650px}.form-message{margin-top:14px;padding:12px;border-radius:4px}.form-message.success{background:#edf8ea;color:#24551d}.form-message.error{background:#fff0ef;color:#9d1e17}.messages-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;min-height:70vh}.thread-list,.conversation-panel{background:#fff;border:1px solid #d8ded2;padding:18px}.thread-list h1{font-size:1.25rem}.thread-item{display:flex;flex-direction:column;padding:12px;border-top:1px solid #e3e7df;text-decoration:none;color:inherit}.thread-item:hover,.thread-item.active{background:#eef4eb}.thread-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#657060}.thread-item small{color:#7b8577}.conversation-panel{display:flex;flex-direction:column}.conversation-panel>header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e1e6dc}.direct-messages{min-height:360px;max-height:55vh;overflow:auto;padding:18px 4px}.direct-message{max-width:75%;margin:0 0 10px;padding:10px 12px;background:#f0f3ed;border-radius:8px}.direct-message.mine{margin-left:auto;background:#e4f1df}.direct-message p{margin:4px 0;white-space:pre-wrap}.direct-message small{color:#687264}.message-compose>div:last-child{display:flex;gap:10px}.message-compose textarea{flex:1}.emoji-row{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}.emoji-row button{border:1px solid #d8ded2;background:#fff;padding:4px 7px;cursor:pointer}.empty-conversation{margin:auto;text-align:center}.reliability-warning,.reliability-badge{background:#fff2cf;color:#744f00;border:1px solid #e5bd57}.reliability-warning{padding:12px;margin:12px 0;border-radius:4px}.reliability-badge{font-size:.72rem;padding:2px 5px;border-radius:3px;display:inline-block}.member-main{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.confirm-dialog{max-width:520px;border:1px solid #c9d1c4;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.confirm-dialog::backdrop{background:rgba(20,28,18,.55)}.button.danger{background:#a62620;border-color:#a62620;color:#fff}.room-emojis{margin-bottom:4px}.chess-cell{font-family:"DejaVu Sans","Segoe UI Symbol","Noto Sans Symbols 2",sans-serif;font-size:clamp(24px,4vw,42px);line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.3)}
@media(max-width:800px){.messages-layout{grid-template-columns:1fr}.thread-list{max-height:260px;overflow:auto}.direct-message{max-width:90%}.lobby-game-title{align-items:flex-start}.game-icon-img{width:52px;height:52px;flex-basis:52px}}

/* Stage VII account security */
.auth-details{margin-top:18px;border-top:1px solid #d8ded2;padding-top:14px}.auth-details summary{cursor:pointer;font-weight:700;color:#315c25}.auth-details form{margin-top:12px}.danger-zone{margin-top:18px;border:1px solid #d8b9b9;background:#fff8f8;padding:16px}.button.danger{background:#8b2424;border-color:#8b2424}.recovery-codes{margin-top:18px;border:2px solid #315c25;background:#f7fbf4;padding:18px}.recovery-codes pre{font-size:16px;letter-spacing:1px;line-height:1.7;white-space:pre-wrap}.profile-form code{display:block;padding:12px;background:#f1f3ed;border:1px solid #d8ded2;word-break:break-all;font-size:16px}.profile-form textarea[readonly]{min-height:90px;font-family:monospace;font-size:12px}.form-message.success,.form-success{color:#1e5f1b;background:#eff8ec;border:1px solid #b7d9ad;padding:10px}.form-message.error,.form-error{color:#842020;background:#fff2f2;border:1px solid #e1b8b8;padding:10px}
