/* Game window is independent of chat, calendar and skin styles. */
.games-pop{--game-bg:#fff;--game-fg:#243046;--game-line:#dbe1ea;position:fixed;z-index:1500;top:10vh;left:50%;transform:translateX(-50%);width:min(490px,calc(100vw - 20px));max-height:82dvh;display:flex;flex-direction:column;background:var(--game-bg);color:var(--game-fg);border:1px solid var(--game-line);border-radius:14px;box-shadow:0 12px 50px #0004;font:14px/1.5 var(--font,sans-serif)}
.games-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--game-line);cursor:move;touch-action:none}.games-head button{border:0;background:none;font-size:24px;color:inherit}.games-body{padding:16px;overflow:auto;overscroll-behavior:contain}.games-body h3{margin:16px 0 8px}.games-body p{margin:10px 0}.games-body button,.games-invite button{background:var(--game-bg,#fff);color:inherit;border:1px solid var(--game-line,#ccd3dd);border-radius:7px;padding:9px 12px;font-size:13px}.games-body button:disabled{opacity:.55;cursor:default}.games-body button:focus-visible,.games-head button:focus-visible{outline:3px solid #4b83eb;outline-offset:1px}.games-tabs,.games-actions,.games-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.games-tabs{border-bottom:1px solid var(--game-line);padding-bottom:12px;margin-bottom:12px}.games-tabs .selected{background:#356bd4;color:#fff;border-color:#356bd4}.games-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.games-form{margin-top:10px}.games-form input{min-width:100px;flex:1;width:100%;border:1px solid var(--game-line);padding:10px;border-radius:7px;background:var(--game-bg);color:inherit}.games-error{color:#bd3434}.games-status{font-weight:600}.games-gomoku{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));background:#ddbb7e;border:1px solid #957347;aspect-ratio:1;gap:0}.games-gomoku .games-point{min-width:0;min-height:0;aspect-ratio:1;padding:0;border:1px solid #b28d56;border-radius:0;font-size:clamp(12px,4vw,23px);line-height:1;background:transparent;color:#181818;opacity:1}.games-gomoku .white{color:#fff;text-shadow:0 0 2px #222}.games-gomoku .last{background:#f0ce59}.games-bingo{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.games-bingo button{aspect-ratio:1;font-size:18px}.games-bingo .called{background:#356bd4;color:#fff;opacity:1;text-decoration:line-through}.games-words{display:flex;gap:8px;flex-wrap:wrap;max-height:120px;overflow:auto;padding-left:28px}.games-words li{margin-right:20px}.games-forfeit{display:block;margin-top:18px}.games-invite{position:fixed;z-index:1600;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;max-width:calc(100vw - 24px);padding:12px 16px;border-radius:10px;box-shadow:0 4px 24px #0004;background:#fff;color:#243046;font:14px var(--font,sans-serif)}
body.dark .games-pop{--game-bg:#252a34;--game-fg:#edf1f7;--game-line:#4b5363}body.dark .games-invite{--game-bg:#252a34;--game-line:#4b5363;background:#252a34;color:#edf1f7}body.dark .games-error{color:#ff9a9a}
@media(max-width:480px){.games-pop{top:5vh;max-height:88dvh}.games-body{padding:12px}.games-tabs{gap:4px}.games-tabs button{padding:8px}.games-invite{width:calc(100vw - 24px);font-size:12px}}

/* Mobile touch/keyboard sizing; zoomed board scrolls inside the window only. */
.games-pop{top:calc(var(--games-viewport-top,0px) + 10px);max-height:min(88dvh,calc(var(--games-viewport-height,100dvh) - 20px))}
.games-body{min-height:0}.games-body button,.games-invite button{min-height:44px}.games-head button{min-width:44px;min-height:44px}.games-head{padding-block:4px}.games-form input{font-size:16px;min-height:44px}
.games-board-scroll{max-width:100%;overflow:auto;margin:10px 0;-webkit-overflow-scrolling:touch}.games-gomoku.zoomed{width:600px;max-width:none}.games-gomoku .games-point{min-height:0}
.games-invite{flex-wrap:wrap}.games-invite span{overflow-wrap:anywhere;flex:1;min-width:100px}

/* Fifteen lines / fifteen intersections. Buttons are hit areas centred ON each crossing. */
.games-gomoku{padding:10px;gap:0;background-color:#dcb77b;background-image:linear-gradient(100deg,#ffffff12,#8b58120d);border:1px solid #a37b43;border-radius:5px;box-shadow:inset 0 1px 5px #70471433}
.games-gomoku .games-point{position:relative;isolation:isolate;display:grid;place-items:center;border:0;background:transparent;color:transparent;text-shadow:none;box-shadow:none;font-size:0;overflow:visible}
.games-point::before,.games-point::after{content:'';position:absolute;z-index:-1;background:#76572e;pointer-events:none}
.games-point::before{height:1px;top:50%;left:var(--line-left,0);right:var(--line-right,0)}
.games-point::after{width:1px;left:50%;top:var(--line-top,0);bottom:var(--line-bottom,0)}
.games-point.star:not(.occupied){background:radial-gradient(circle at center,#624523 0 2px,transparent 2.5px)}
.games-gomoku .games-point.last{background-color:transparent}
.games-stone{width:86%;height:86%;border-radius:50%;position:relative;box-shadow:1px 2px 3px #0007;pointer-events:none}
.games-point.black .games-stone{background:radial-gradient(circle at 32% 26%,#666 0,#292929 30%,#080808 75%);border:1px solid #151515}
.games-point.white .games-stone{background:radial-gradient(circle at 32% 26%,#fff 0,#fafafa 30%,#d0d0d0 85%);border:1px solid #b8b8b8}
.games-point.last .games-stone::after{content:'';position:absolute;inset:34%;border-radius:50%;background:#ef5350;box-shadow:0 0 0 1px #fff8}
.games-gomoku .games-point:not(:disabled):hover{background:radial-gradient(circle at center,#fff6 0 35%,transparent 38%)}
.games-checking{color:#4875bf;font-weight:600}body.dark .games-checking{color:#a1c2ff}

/* Give each game a clear play area instead of a stack of generic controls. */
.games-body .games-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:112px;text-align:left;padding:14px;border-radius:12px;transition:border-color .15s,background-color .15s}
.games-card strong{font-size:15px}.games-card small{font-size:11px;line-height:1.5;color:#6d7684}.games-card-icon{font-size:23px}.games-body .games-card:hover:not(:disabled){border-color:#527fe0;background:#edf3ff}
.games-status{padding:10px 12px;border-radius:8px;background:#edf3ff;color:#2856a6;border-left:3px solid #5582df}.games-status.finished{background:#eaf7ed;color:#27673b;border-left-color:#45a765}
.games-body .games-rps-choice{flex:1;min-height:76px;font-size:19px}.games-body .games-balance-choice{display:block;width:100%;text-align:left;min-height:64px;margin:10px 0;font-size:16px}
.games-body progress{display:block;width:100%;height:8px;margin:12px 0;accent-color:#4f7bd9}.games-body .quiz-correct:disabled{background:#e4f5e9;border-color:#49a864;color:#245e35;opacity:1}.games-body .quiz-selected:disabled{border-color:#5c82ce;opacity:1}.games-bingo .called-last{box-shadow:inset 0 0 0 3px #f6c54c}
.games-words{list-style:none;padding:0;gap:6px}.games-words li{padding:6px 10px;border-radius:9px;background:#edf2fa;margin:0}.games-words li:last-child{background:#dce9ff;font-weight:600}
body.dark .games-status{background:#283b58;color:#c4d9ff}body.dark .games-status.finished{background:#283e30;color:#b6e1c3}body.dark .games-card small{color:#aeb8c9}body.dark .games-body .games-card:hover:not(:disabled){background:#2c3a53}body.dark .games-words li{background:#303b4c}body.dark .games-words li:last-child{background:#344b70}body.dark .games-body .quiz-correct:disabled{background:#294532;color:#c5f0d2}
@media(max-width:360px){.games-body .games-card{padding:10px;min-height:106px}.games-card strong{font-size:13px}}
/* Compact default board; enlargement is always an explicit user choice. */
.games-pop:has(.games-gomoku){width:min(370px,calc(100vw - 20px))}
.games-gomoku{width:min(100%,280px);margin-inline:auto;padding:9px}
.games-gomoku.zoomed{width:600px;margin-inline:0}

/* Enlarge the window with the board, and keep both scroll axes in the board viewport. */
.games-pop.games-expanded{max-height:calc(var(--games-viewport-height,100dvh) - 20px)}
.games-expanded .games-tabs,.games-expanded .games-body>h3{display:none}
.games-expanded .games-board-scroll{position:relative;width:100%;max-height:max(160px,calc(var(--games-viewport-height,100dvh) - 300px));overscroll-behavior:contain;overflow:auto;scrollbar-gutter:stable}
.games-expanded .games-gomoku.zoomed{flex:none;max-width:none}
@media(min-width:600px){
 .games-pop.games-expanded{--expanded-board-size:max(320px,min(600px,calc(var(--games-viewport-height,100dvh) - 360px),calc(100vw - 76px)));width:min(calc(var(--expanded-board-size) + 64px),calc(100vw - 20px))}
 .games-expanded .games-gomoku.zoomed{width:var(--expanded-board-size);margin-inline:auto}
}
@media(max-width:599px){
 .games-pop.games-expanded{width:calc(100vw - 20px)}
 .games-expanded .games-gomoku.zoomed{width:600px;margin-inline:0}
 .games-expanded .games-forfeit,.games-expanded .games-body>small{display:none}
}
