/* ===== jogos/sinuca.php ===== */
#screen-game.sn-mode { background: radial-gradient(120% 80% at 50% 40%, #13201a, #0a0f0c 70%); --brass: #c9a24a; --brass2: #f0d58a; --ivory: #efe6cf; --mute: #93a79b; }
#screen-game.sn-mode .players-bar { display: none; }
#screen-game.sn-mode .topbar { padding: 6px 10px 2px; }
#screen-game.sn-mode .topbar .icon-btn { background: rgba(239,230,207,.06); border: 1px solid rgba(239,230,207,.12); color: var(--ivory); }
#screen-game.sn-mode .room-title { font-family: 'Big Shoulders Display', Impact, sans-serif; font-weight: 900; letter-spacing: .04em; color: var(--brass2); text-transform: uppercase; }
#screen-game.sn-mode .game-area { padding: 0; gap: 0; justify-content: stretch; }
#screen-game.sn-mode .reactions { padding: 2px 8px max(6px, env(safe-area-inset-bottom)); }
#screen-game.sn-mode .reactions button { background: rgba(239,230,207,.06); width: 36px; height: 36px; font-size: 1.15rem; }
.sne { flex: 1; width: 100%; min-height: 0; display: flex; flex-direction: column; color: var(--ivory); font-family: 'Barlow', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; user-select: none; -webkit-user-select: none; }
.sne-hud { display: flex; align-items: center; gap: 6px; padding: 4px 10px 6px; flex: none; }
.sne-pc { flex: 1; min-width: 0; position: relative; display: flex; align-items: center; gap: 8px; padding: 8px 9px; border-radius: 18px; background: linear-gradient(180deg, rgba(26,38,31,.95), rgba(12,20,15,.95)); border: 1px solid rgba(239,230,207,.08); box-shadow: 0 6px 18px rgba(0,0,0,.35); transition: border-color .25s, box-shadow .25s, background .25s; }
.sne-pc.r { flex-direction: row-reverse; text-align: right; }
.sne-pc.on { border-color: rgba(201,162,74,.75); background: linear-gradient(180deg, rgba(52,44,24,.95), rgba(16,22,16,.95)); box-shadow: 0 0 0 1px rgba(201,162,74,.2) inset, 0 8px 24px rgba(201,162,74,.16); }
.sne-pc.on::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: -1px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, #f0d58a, transparent); }
.sne-avw { position: relative; flex: none; width: 40px; height: 40px; }
.sne-av { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-size: 21px; border: 2px solid rgba(201,162,74,.55); background: #2d4a3c; }
.sne-pc:not(.on) .sne-av { filter: saturate(.55) brightness(.8); }
.sne-ring { position: absolute; inset: -5px; width: 50px; height: 50px; transform: rotate(-90deg); opacity: 0; transition: opacity .2s; pointer-events: none; }
.sne-ring circle { fill: none; stroke: #3ccf7e; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 125.66; filter: drop-shadow(0 0 3px rgba(60,207,126,.6)); }
.sne-pc.tm .sne-ring { opacity: 1; }
.sne-pc.low .sne-ring circle { stroke: #e0574a; filter: drop-shadow(0 0 4px rgba(224,87,74,.8)); }
.sne-sec { position: absolute; right: -7px; bottom: -6px; min-width: 20px; height: 17px; padding: 0 4px; border-radius: 9px; background: #0a0f0c; border: 1px solid var(--brass); font-size: 10.5px; font-weight: 800; color: var(--brass2); display: none; place-items: center; }
.sne-pc.tm .sne-sec { display: grid; }
.sne-pc.low .sne-sec { border-color: #e0574a; color: #ffb3aa; }
.sne-pi { min-width: 0; flex: 1; }
.sne-nm { display: block; font-weight: 700; font-size: 14px; letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sne-gp { display: flex; gap: 1.5px; margin-top: 5px; align-items: center; min-height: 12px; font-size: 11px; color: var(--mute); overflow: hidden; }
.sne-pc.r .sne-gp { justify-content: flex-end; }
.sne-b { width: 11px; height: 11px; border-radius: 50%; flex: none; box-shadow: inset -1.5px -1.5px 2px rgba(0,0,0,.45), inset 1px 1px 1px rgba(255,255,255,.35); }
.sne-b.off { opacity: .18; }
.sne-mid { flex: none; width: 48px; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.sne-emb { width: 30px; height: 30px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #5a5a5a, #121212 55%, #000); display: grid; place-items: center; filter: drop-shadow(0 3px 5px rgba(0,0,0,.6)); }
.sne-emb span { width: 14px; height: 14px; border-radius: 50%; background: #f7f3e8; color: #111; font: 800 9px/14px Barlow, Arial, sans-serif; text-align: center; }
.sne-ml { font-size: 10px; font-weight: 600; color: var(--mute); white-space: nowrap; }
.sne-stage { flex: 1; position: relative; min-height: 0; background: radial-gradient(52% 48% at 50% 50%, rgba(255,222,165,.10), rgba(255,222,165,0) 72%); }
.sne-cv { position: absolute; inset: 0; touch-action: none; }
.sne-rail { position: absolute; top: 50%; transform: translateY(-50%); width: 38px; height: min(64%, 440px); display: flex; flex-direction: column; align-items: center; gap: 7px; transition: opacity .2s; }
.sne-rail.l { left: 4px; }
.sne-rail.r { right: 4px; }
.sne:not(.mine) .sne-rail { opacity: .45; }
.sne-rail small { font-size: 10.5px; font-weight: 600; letter-spacing: .02em; color: #b9ab86; }
.sne-power { flex: 1; width: 34px; border-radius: 17px; position: relative; touch-action: none; background: linear-gradient(90deg, #050a07, #0f1a14 50%, #050a07); border: 1px solid rgba(201,162,74,.4); box-shadow: inset 0 3px 12px rgba(0,0,0,.85), 0 0 0 3px rgba(0,0,0,.3); }
.sne-power .fill { position: absolute; left: 4px; right: 4px; top: 4px; height: 0; border-radius: 13px; background: linear-gradient(180deg, #3ccf7e, #e9c23a 55%, #e0574a); box-shadow: 0 0 14px rgba(233,194,58,.4); }
.sne-power .tk { position: absolute; inset: 0; border-radius: 17px; background: repeating-linear-gradient(180deg, transparent 0 9px, rgba(4,8,6,.75) 9px 11px); pointer-events: none; }
.sne-power .pcw { position: absolute; inset: 4px; border-radius: 13px; overflow: hidden; pointer-events: none; }
.sne-power .pcue { position: absolute; left: 50%; top: 4%; width: 7px; margin-left: -3.5px; height: 140%; border-radius: 4px; opacity: .9;
  background: linear-gradient(180deg, #3a78b5 0 1.2%, #f3eee2 1.2% 3%, #ecd2a0 3% 50%, #d4aa6c 50% 54%, #c9a24a 54% 56%, #5a2412 56% 77%, #c9a24a 77% 79%, #1a0d06 79% 94%, #3a170a 94%); }
.sne-power .knob { position: absolute; left: -4px; right: -4px; top: 2px; height: 14px; border-radius: 7px; background: linear-gradient(180deg, #fff3cc, #d6ae55 50%, #7a5a1c); box-shadow: 0 3px 8px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,255,255,.6); pointer-events: none; }
.sne-pval { font-family: 'Big Shoulders Display', Impact, sans-serif; font-weight: 700; font-size: 15px; color: var(--brass2); padding: 2px 7px; border-radius: 9px; background: rgba(0,0,0,.45); min-width: 40px; min-height: 20px; text-align: center; }
.sne-pval:empty { background: none; }
.sne-wheel { flex: 1; position: relative; width: 34px; border-radius: 17px; touch-action: none; border: 1px solid rgba(201,162,74,.4); background: linear-gradient(90deg, rgba(0,0,0,.65), rgba(255,255,255,.1) 45%, rgba(0,0,0,.65)), repeating-linear-gradient(180deg, #34463b 0 2px, #0b1410 2px 7px); box-shadow: inset 0 18px 16px -8px rgba(0,0,0,.9), inset 0 -18px 16px -8px rgba(0,0,0,.9); }
.sne-nd { width: 34px; height: 28px; border-radius: 10px; border: 1px solid rgba(201,162,74,.35); background: rgba(239,230,207,.05); color: var(--brass2); font-size: 11px; touch-action: none; }
.sne-ctrl { flex: none; height: 56px; margin: 0 10px 6px; padding: 0 8px; display: flex; align-items: center; gap: 8px; border-radius: 20px; background: linear-gradient(180deg, rgba(26,38,31,.94), rgba(12,20,15,.94)); border: 1px solid rgba(201,162,74,.22); box-shadow: 0 -6px 24px rgba(0,0,0,.35); }
.sne-ic { width: 44px; height: 44px; border-radius: 14px; background: rgba(239,230,207,.05); border: 1px solid rgba(239,230,207,.1); font-size: 18px; flex: none; }
.sne-status { flex: 1; min-width: 0; text-align: center; font-size: 14px; color: var(--mute); line-height: 1.25; }
.sne-status b { color: var(--ivory); font-weight: 700; }
.sne-status .foul { color: #ff9d92; font-size: 12.5px; }
.sne-status span:not(.foul) { color: var(--brass2); font-size: 12.5px; }
#screen-game.sn-mode .chat-box.drawer { background: #13201a; color: #efe6cf; border: 1px solid rgba(201,162,74,.35); }
#screen-game.sn-mode .chat-head { border-color: rgba(239,230,207,.1); }
#screen-game.sn-mode .chat-close { background: rgba(239,230,207,.08); color: #efe6cf; }
#screen-game.sn-mode .chat-form { border-color: rgba(239,230,207,.1); }
#screen-game.sn-mode .msg p { background: rgba(239,230,207,.08); color: #efe6cf; }
#screen-game.sn-mode .msg b { color: #f0d58a; }
#screen-game.sn-mode .game-area > * { margin: 0; }


/* ===== jogos/facas.php ===== */
.fk-cv { width: 100%; height: 100%; display: block; cursor: pointer; }
.fk-toast.crash { background: rgba(231,76,60,.85); }
#screen-game.fk-mode .players-bar { display: none; }
#screen-game.fk-mode .game-area { gap: 8px; }
#screen-game.fk-mode .tb-msg.empty { display: none; }
#screen-game.fk-mode .tb-head { min-height: 0; }


/* ===== jogos/tanques.php ===== */
.tq-stage { width: min(96vw, 620px, calc((100dvh - 330px) * 1.25), var(--fitw, 9999px)); }
.tq-ctrl { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; transition: opacity .2s; }
.tq-ctrl.off { opacity: .45; pointer-events: none; }
.tq-g { display: flex; align-items: center; gap: 4px; background: rgba(255,255,255,.18); border-radius: 14px; padding: 4px 6px; color: #fff; }
.tq-g small { font-weight: 700; margin-right: 2px; }
.tq-g b { min-width: 44px; text-align: center; font-size: 1.05rem; }
.tq-b { width: 36px; height: 36px; border: 0; border-radius: 10px; background: #fff; color: var(--ink); font-weight: 900; font-size: 1rem; touch-action: manipulation; }
.tq-big { border: 0; border-radius: 12px; padding: 8px 10px; background: rgba(255,255,255,.22); color: #fff; font-weight: 800; }
.tq-big.on { background: var(--red); }
.tq-big:disabled { opacity: .5; }
.tq-fire { padding: 10px 22px; font-size: 1.1rem; }


/* ===== jogos/bomba.php ===== */
.bm { max-width: 520px; }
.bm-top { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 10px; }
.bm-clock { font-family: 'Courier New', monospace; font-weight: 900; font-size: 2.3rem; color: #ff4040; background: #1a0d0d; border-radius: 12px; padding: 2px 16px; letter-spacing: .08em; box-shadow: inset 0 0 12px rgba(255,0,0,.35); text-shadow: 0 0 8px rgba(255,60,60,.8); }
.bm-clock.low { animation: pulse .6s infinite; }
.bm-strikes { display: flex; gap: 4px; }
.bm-strikes i { font-style: normal; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.2); color: #fff; display: grid; place-items: center; font-weight: 900; }
.bm-strikes i.x { background: var(--red); }
.bm-solved { color: #fff; font-weight: 800; background: rgba(255,255,255,.2); border-radius: 12px; padding: 4px 10px; }
.bm-role { color: #fff; font-weight: 700; text-align: center; margin: 0; font-size: .92rem; background: rgba(0,0,0,.2); border-radius: 12px; padding: 6px 10px; }
.bm-tabs { display: flex; gap: 6px; justify-content: center; margin-bottom: 8px; }
.bm-tabs button { border: 0; border-radius: 12px; padding: 8px 18px; font-weight: 800; background: rgba(255,255,255,.2); color: #fff; }
.bm-tabs button.on { background: #fff; color: var(--ink); }
.bm-bomb { display: flex; flex-direction: column; gap: 8px; width: 100%; background: #3b3f45; border-radius: 18px; padding: 10px; box-shadow: inset 0 0 0 4px #23262a, var(--shadow); }
.bm-info { display: flex; justify-content: space-between; color: #dfe6e9; font-size: .9rem; }
.bm-info b { color: #fff; font-family: 'Courier New', monospace; }
.bm-mod { background: #2d3136; border-radius: 14px; padding: 8px 10px; position: relative; }
.bm-mod.ok { box-shadow: inset 0 0 0 3px #2ecc71; }
.bm-mod.ok > :not(.bm-mt) { opacity: .45; pointer-events: none; }
.bm-mt { color: #b2bec3; font-weight: 800; font-size: .8rem; margin-bottom: 6px; display: flex; justify-content: space-between; }
.bm-mt i { font-style: normal; }
.bm-wires { display: flex; flex-direction: column; gap: 5px; }
.bm-wire { display: grid; grid-template-columns: 28px 1fr 26px; align-items: center; gap: 6px; border: 0; background: none; padding: 2px 0; color: #dfe6e9; cursor: pointer; }
.bm-wire span { height: 12px; border-radius: 6px; background: var(--c); box-shadow: inset 0 -3px 0 rgba(0,0,0,.25), 0 0 0 1px rgba(0,0,0,.4); }
.bm-wire.cut span { background: linear-gradient(90deg, var(--c) 45%, transparent 45% 55%, var(--c) 55%); }
.bm-wire:not(:disabled):hover span { outline: 2px solid #fff; }
.bm-bwrap { display: flex; align-items: center; gap: 12px; }
.bm-button { width: 108px; height: 108px; border-radius: 50%; border: 0; font-weight: 900; font-size: .95rem; color: #111; box-shadow: 0 7px 0 rgba(0,0,0,.45), inset 0 -6px 0 rgba(0,0,0,.2); touch-action: none; user-select: none; }
.bm-button.c-vermelho { background: #e74c3c; color: #fff; }
.bm-button.c-azul { background: #2e86de; color: #fff; }
.bm-button.c-amarelo { background: #f1c40f; }
.bm-button.c-branco { background: #ecf0f1; }
.bm-button.held { transform: translateY(5px); box-shadow: 0 2px 0 rgba(0,0,0,.45); }
.bm-strip { flex: 1; min-height: 40px; border-radius: 10px; background: #1e2125; color: #fff; font-weight: 800; display: grid; place-items: center; text-transform: uppercase; font-size: .85rem; }
.bm-keys { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.bm-key { aspect-ratio: 1; border: 0; border-radius: 12px; background: #dfe6e9; font-size: 1.9rem; box-shadow: 0 4px 0 #636e72; }
.bm-key.on { background: #2ecc71; color: #fff; }
.bm-manual { background: #fdf6e3; color: #3d3220; border-radius: 16px; padding: 10px 14px; width: 100%; font-size: .9rem; line-height: 1.35; box-shadow: var(--shadow); max-height: 54dvh; overflow-y: auto; }
.bm-manual h4 { margin: 8px 0 4px; font-size: 1.02rem; }
.bm-manual p { margin: 0 0 6px; }
.bm-manual ol { margin: 0 0 6px; padding-left: 20px; }
.bm-faixas { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
.bm-faixas span { border-radius: 8px; padding: 2px 8px; color: #fff; font-weight: 700; font-size: .82rem; }
.bm-cols { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.bm-cols div { display: flex; flex-direction: column; gap: 3px; background: #efe3c4; border-radius: 8px; padding: 4px; }
.bm-cols span { text-align: center; font-size: 1.4rem; background: #fff; border-radius: 6px; }
.bm-log { color: #fff; font-size: .85rem; text-align: center; min-height: 1.2em; }
.bm-log .ok { color: #9dffcf; }
.bm-log .bad { color: #ffb3c1; }
.bm-chat { padding: 6px 14px; }
@media (max-height: 760px) {
  .bm-clock { font-size: 1.8rem; }
  .bm-button { width: 86px; height: 86px; }
  .bm-key { font-size: 1.5rem; }
  .bm-wires { gap: 2px; }
}
.tb-head.bmh { min-height: 0; }
.bm-role { display: flex; align-items: center; gap: 8px; justify-content: center; font-size: .85rem; padding: 4px 8px; width: 100%; }
.bm-chat { border: 0; background: #fff; color: var(--primary); font-weight: 800; border-radius: 12px; padding: 4px 10px; flex: none; }
.bm-clock { font-size: 1.9rem; padding: 0 12px; }
.bm-bomb { gap: 6px; padding: 8px; }
.bm-mod { padding: 6px 8px; }
.bm-mt { margin-bottom: 4px; }
.bm-wires { gap: 1px; }
.bm-wire { padding: 1px 0; }
.bm-wire span { height: 11px; }
.bm-button { width: 84px; height: 84px; font-size: .82rem; }
.bm-keys { max-width: 300px; margin: 0 auto; }
.bm-key { font-size: 1.5rem; }
.bm-manual { max-height: min(56dvh, 520px); }
.bm .sbox-wrap { width: 100%; }
@media (max-height: 760px) {
  .bm-button { width: 70px; height: 70px; }
  .bm-keys { max-width: 240px; gap: 6px; }
  .bm-key { font-size: 1.3rem; }
  .bm-wire span { height: 9px; }
}
.bm-log:empty { display: none; }
@media (max-height: 660px) {
  .bm-role { font-size: .74rem; padding: 2px 6px; }
  .bm-clock { font-size: 1.5rem; }
  .bm-strikes i { width: 24px; height: 24px; }
  .bm-tabs button { padding: 5px 14px; }
  .bm-mt { margin-bottom: 2px; font-size: .72rem; }
}


/* ===== jogos/ludo.php ===== */
.ld-cell { position: absolute; width: calc(100% / 15); height: calc(100% / 15); box-sizing: border-box; border: 1px solid #d9d3ee; display: grid; place-items: center; font-size: calc(var(--bw) / 15 * .55); color: #fff; }
.ld-cell.trk { background: #fff; color: #b9b0d6; }
.ld-cell.safe { color: #c9a400; }
.ld-quad { position: absolute; width: 40%; height: 40%; display: grid; place-items: center; }
.ld-yard { width: 70%; height: 70%; background: #fff; border-radius: 16%; display: grid; grid-template-columns: 1fr 1fr; place-items: center; }
.ld-yard i { width: 50%; height: 50%; border-radius: 50%; opacity: .35; }
.ld-center { position: absolute; width: 20%; height: 20%; background: conic-gradient(from 45deg, #27ae60 0 25%, #f1c40f 0 50%, #2e86de 0 75%, #e74c3c 0); }
.ld-pc { position: absolute; width: calc(var(--bw) / 15 * .78); height: calc(var(--bw) / 15 * .78); border-radius: 50%; border: 3px solid #fff; transform: translate(-50%, -50%); padding: 0;
  box-shadow: 0 3px 0 rgba(0,0,0,.35), inset 0 -4px 0 rgba(0,0,0,.18); z-index: 3; }
.ld-pc.can { z-index: 5; animation: ldpulse .8s infinite; cursor: pointer; box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--ink), 0 4px 6px rgba(0,0,0,.4); }
.ld-bar { display: flex; align-items: center; gap: 14px; }
.ld-die { width: 66px; height: 66px; border-radius: 16px; border: 4px solid var(--c); background: #fff; padding: 8px; box-shadow: 0 5px 0 rgba(0,0,0,.25); }
.ld-die.can { animation: pulse 1s infinite; box-shadow: 0 0 0 4px var(--yellow), 0 5px 0 rgba(0,0,0,.25); }
.ld-die.roll { animation: ldroll .5s; }
.ld-die-f { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); width: 100%; height: 100%; place-items: center; }
.ld-die-f i { width: 9px; height: 9px; border-radius: 50%; }
.ld-die-f i.on { background: var(--ink); }
.ld .tb-note { text-align: left; }


/* ===== jogos/xadrez.php ===== */
.sq.chk { background: radial-gradient(circle, #ff3b3b 0 35%, rgba(255,59,59,.5) 60%, transparent 75%) !important; }
.sq .fl, .sq .rk { position: absolute; font-style: normal; font-size: 11px; font-weight: 800; opacity: .7; font-family: system-ui, sans-serif; }
.sq .fl { right: 3px; bottom: 1px; }
.sq .rk { left: 3px; top: 1px; }
.sq.lt .fl, .sq.lt .rk { color: #b58863; }
.sq.dk .fl, .sq.dk .rk { color: #f0d9b5; }
.cx-strip { min-height: 24px; display: flex; align-items: center; gap: 0; width: min(94vw, 520px); }
.cx-strip b { color: #fff; margin-left: 8px; font-size: .9rem; }
.cx-promo { display: flex; gap: 8px; }
.cx-promo button { width: 64px; height: 64px; border-radius: 14px; border: 0; background: #f0d9b5; font-size: 46px; line-height: 1; display: grid; place-items: center; box-shadow: 0 4px 0 #b58863; }
.cx-board + .cx-strip + .tb-note, .dm-board + .tb-note { min-height: 2.7em; display: flex; align-items: center; justify-content: center; }
.cx-strip { height: 26px; min-height: 0; overflow: hidden; }


/* ===== jogos/damas.php ===== */
.dm-board .sq.via::before { content: ''; position: absolute; width: 16%; height: 16%; border-radius: 50%; background: rgba(255,255,255,.45); }


/* ===== jogos/domino.php ===== */
.tb-chip { background: rgba(255,255,255,.2); color: #fff; font-weight: 700; padding: 4px 12px; border-radius: 20px; font-size: .9rem; }
.do-table { width: 100%; min-height: 150px; background: radial-gradient(ellipse at center, #1f8a5b, #126341); border-radius: var(--r); padding: 12px 8px; box-shadow: inset 0 0 0 6px rgba(0,0,0,.12), var(--shadow); display: grid; place-items: center; }
.dh { display: grid; grid-template-columns: repeat(3, var(--u)); grid-template-rows: repeat(3, var(--u)); place-items: center; }
.dh i { width: calc(var(--u) * .55); height: calc(var(--u) * .55); border-radius: 50%; }
.dh i.on { background: #222; }
.do-hand { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; padding: 4px; }
.do-hand .dt { --u: 13px; cursor: pointer; transition: transform .15s; }
.do-hand .dt.can { transform: translateY(-8px); box-shadow: 0 0 0 3px var(--yellow), 0 2px 0 #b9ad8e, 0 6px 8px rgba(0,0,0,.3); }
.do-hand .dt.sel { transform: translateY(-14px); box-shadow: 0 0 0 4px var(--primary), 0 6px 8px rgba(0,0,0,.3); }
.do-reveal { background: rgba(255,255,255,.18); border-radius: 14px; padding: 6px 10px; color: #fff; display: flex; flex-direction: column; gap: 2px; }
.do-table { min-height: 170px; overflow: hidden; }
.do-empty { color: #fff; text-align: center; font-weight: 700; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.do-empty small { display: block; opacity: .85; margin-bottom: 6px; }
.dt.mini2 { --u: 11px; }
.do-snake { position: relative; margin: 4px auto; }
.dtt { position: absolute; display: flex; padding: 1px; box-sizing: border-box; background: linear-gradient(#fffdf6, #eee5cf); border-radius: calc(var(--U) * .18);
  box-shadow: 0 1px 0 #b9ad8e, 0 2px 3px rgba(0,0,0,.35); transition: box-shadow .2s; }
.dtt.v { flex-direction: column; }
.dtt .dh { flex: 1; width: auto; height: auto; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); padding: calc(var(--U) * .1); }
.dtt .dh + .dh { border-left: 1px solid #cfc5a9; }
.dtt.v .dh + .dh { border-left: 0; border-top: 1px solid #cfc5a9; }
.dtt .dh i { width: calc(var(--U) * .19); height: calc(var(--U) * .19); }
.dtt.first { background: linear-gradient(#fff8e0, #f1e2b8); }
.dtt.end { box-shadow: 0 0 0 2px rgba(255,200,61,.95), 0 2px 4px rgba(0,0,0,.35); }
.dtt.new { animation: tilein .45s ease-out; }
.do-ghost { position: absolute; border: 2px dashed rgba(255,255,255,.55); border-radius: calc(var(--U) * .18); display: grid; place-items: center; padding: 0; background: rgba(255,255,255,.06); color: #fff; }
.do-ghost b { font-size: calc(var(--U) * .62); line-height: 1; background: rgba(0,0,0,.28); border-radius: 50%; width: calc(var(--U) * .9); height: calc(var(--U) * .9); display: grid; place-items: center; }
.do-ghost.can { border: 2px solid var(--yellow); background: rgba(255,200,61,.35); cursor: pointer; animation: pulse 1s infinite; }
.do-ghost.can b { background: var(--yellow); color: var(--ink); }
.tb-chip.ends b { background: #fff; color: var(--ink); border-radius: 8px; padding: 0 7px; margin: 0 2px; }
@media (max-height: 760px) {
  .do-hand .dt { --u: 11px; }
  .do-table { min-height: 110px; }
}


/* ===== jogos/cartas.php ===== */
.cd.back .cnt { position: absolute; bottom: 3px; right: 6px; font-style: normal; font-weight: 800; font-size: .8rem; }
.ca-table { display: flex; align-items: center; justify-content: center; gap: 22px; width: 100%; padding: 18px 8px; background: radial-gradient(ellipse at center, rgba(255,255,255,.2), rgba(255,255,255,.06)); border-radius: var(--r); }
.ca-table .cd { --cw: 78px; }
.ca-pile { position: relative; width: 78px; height: 113px; }
.ca-pile .cd { position: absolute; left: 0; top: 0; }
.ca-pile .cd.under:nth-child(1) { transform: rotate(-14deg) translate(-6px, 2px); }
.ca-pile .cd.under:nth-child(2) { transform: rotate(9deg) translate(5px, 1px); }
.ca-pile .cd.under:nth-child(3) { transform: rotate(-5deg); }
.ca-pile .cd.top { animation: pop .3s; }
.ca-info { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.ca-color { color: #fff; font-weight: 800; padding: 3px 12px; border-radius: 20px; box-shadow: 0 0 0 3px #fff; text-transform: capitalize; }
.ca-dir { color: #fff; font-size: 2rem; line-height: 1; }
.ca-hand { display: flex; justify-content: center; padding: 14px 10px 6px calc(10px - var(--ov)); max-width: 100%; overflow-x: auto; }
.ca-hand .cd { margin-left: var(--ov); transition: transform .15s; cursor: pointer; }
.ca-hand .cd.can { transform: translateY(-12px); box-shadow: 0 0 0 3px var(--yellow), 0 6px 10px rgba(0,0,0,.35); }
.ca-hand .cd.no { filter: brightness(.7) saturate(.8); }
.cd-colors { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cd-colors button { border: 0; color: #fff; font-weight: 800; height: 64px; width: 110px; border-radius: 14px; text-transform: capitalize; box-shadow: 0 4px 0 rgba(0,0,0,.25); }
.ca-tip { min-height: 1.4em; }
.btn.uno { background: #e8344a; box-shadow: 0 4px 0 #a51d30; font-size: 1.1rem; animation: pulse 1s infinite; }
.btn.uno.on { background: var(--green); box-shadow: 0 4px 0 #0a8a58; animation: none; }
.tb-pop-box.rules { max-width: 340px; text-align: left; }
.tb-pop-box.rules ul { margin: 0 0 12px; padding-left: 18px; font-size: .92rem; line-height: 1.35; }
.tb-pop-box.rules li { margin-bottom: 5px; }
.tb-pop-box.rules .btn { width: 100%; }
@media (max-height: 760px) {
  .ca-table { padding: 10px 6px; gap: 14px; }
  .ca-table .cd { --cw: 60px; }
  .ca-pile { width: 60px; height: 87px; }
  .ca-hand .cd { --cw: 54px; }
}


/* ===== jogos/poquer.php ===== */
.pk.slot, .pk.empty { background: rgba(255,255,255,.12); border: 2px dashed rgba(255,255,255,.4); box-shadow: none; }
.pk.deal { animation: pop .3s; }
.pq-others { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; width: 100%; }
.pq-seat { background: rgba(255,255,255,.18); color: #fff; border-radius: 14px; padding: 5px 7px; min-width: 104px; display: flex; flex-direction: column; align-items: center; gap: 3px; border: 2px solid transparent; position: relative; }
.pq-seat.turn, .pq-me.turn { border-color: var(--yellow); box-shadow: 0 0 0 3px rgba(255,200,61,.35); }
.pq-seat.folded { opacity: .55; }
.pq-seat.out { opacity: .35; }
.pq-seat.won, .pq-me .pq-tag.win { animation: pulse 1s 3; }
.pq-who { display: flex; align-items: center; gap: 4px; font-size: .85rem; max-width: 120px; }
.pq-who b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 64px; }
.pq-who .av { width: 24px; height: 24px; font-size: .9rem; background: #fff; }
.pq-cards { display: flex; gap: 3px; min-height: 48px; align-items: center; }
.pq-line { display: flex; gap: 6px; align-items: center; font-size: .8rem; font-weight: 700; }
.pq-tag { font-style: normal; background: var(--yellow); color: var(--ink); border-radius: 8px; padding: 0 6px; font-weight: 800; font-size: .75rem; }
.pq-tag.win { background: var(--green); color: #fff; }
.pq-tag.bet { background: #fff; }
.pq-hn { font-size: .72rem; font-weight: 800; color: var(--yellow); }
.pq-d { font-style: normal; background: #fff; color: var(--ink); border-radius: 50%; width: 18px; height: 18px; display: inline-grid; place-items: center; font-weight: 900; font-size: .7rem; }
.pq-felt { width: 100%; background: radial-gradient(ellipse, #1f8a5b, #0f5a3a); border-radius: 80px; padding: 14px 10px; display: flex; flex-direction: column; align-items: center; gap: 6px; box-shadow: inset 0 0 0 6px #5a3a22, var(--shadow); }
.pq-board { display: flex; gap: 5px; }
.pq-board .pk { --w: 46px; }
.pq-pot { color: #fff; text-align: center; display: flex; flex-direction: column; }
.pq-pot small { opacity: .85; }
.pq-me { display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.2); border-radius: 16px; padding: 8px 12px; color: #fff; border: 2px solid transparent; }
.pq-me.folded .pq-mycards { opacity: .5; }
.pq-mycards { display: flex; gap: 6px; }
.pq-myinfo { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; }
.pq-actions { width: 100%; display: flex; flex-direction: column; gap: 8px; align-items: center; min-height: 112px; }
.pq-actions.idle { justify-content: center; color: #fff; opacity: .85; }
.pq-row { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; width: 100%; }
.pq-range { width: min(360px, 90%); accent-color: var(--yellow); }
.pq-others { flex-wrap: nowrap; overflow-x: auto; justify-content: safe center; padding-bottom: 4px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.6) transparent; }
.pq-seat { flex: none; }
@media (max-height: 760px) {
  .pq-seat { min-width: 88px; padding: 3px 5px; }
  .pq-cards { min-height: 36px; }
  .pq-seat .pk.sm { --w: 26px; }
  .pq-felt { padding: 8px; gap: 3px; }
  .pq-board .pk { --w: 38px; }
  .pq-me { padding: 5px 10px; }
  .pq-mycards .pk.big { --w: 46px; }
  .pq-actions { min-height: 0; gap: 5px; }
  .pq-actions .btn { padding: 8px 12px; }
}
@media (max-height: 660px) {
  .pq-felt { padding: 5px 8px; border-radius: 50px; }
  .pq-board .pk { --w: 33px; }
  .pq-pot small { display: none; }
  .pq-mycards .pk.big { --w: 40px; }
  .pq-cards { min-height: 30px; }
  .pq-seat .pk.sm { --w: 22px; }
}


/* ===== jogos/pife.php ===== */
.pk.glow { box-shadow: 0 0 0 3px var(--yellow), 0 3px 8px rgba(0,0,0,.3); }
.pf-table { display: flex; gap: 26px; justify-content: center; align-items: center; padding: 12px; width: 100%; background: radial-gradient(ellipse, #1f8a5b, #126341); border-radius: var(--r); box-shadow: inset 0 0 0 5px rgba(0,0,0,.12); }
.pf-pile { border: 0; background: none; display: flex; flex-direction: column; align-items: center; gap: 4px; color: #fff; font-weight: 700; padding: 0; }
.pf-pile .pk { --w: 62px; }
.pf-pile:disabled { cursor: default; }
.pf-hand { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; padding: 6px 0 4px; }
.pf-meld, .pf-loose { display: flex; padding: 6px 6px 4px; border-radius: 12px; }
.pf-meld { background: rgba(18,194,126,.35); box-shadow: inset 0 0 0 2px rgba(255,255,255,.45); }
.pf-meld .pk + .pk, .pf-loose .pk + .pk { margin-left: -16px; }
.pf-hand .pk.can { cursor: pointer; }
.pf-hand .pk.sel { transform: translateY(-14px); box-shadow: 0 0 0 3px var(--yellow), 0 6px 10px rgba(0,0,0,.3); z-index: 2; }
.pf-hand .pk.took { outline: 2px dashed #fff; }
.pf-reveal { color: #fff; text-align: center; }


/* ===== jogos/naval.php ===== */
.nv-c { aspect-ratio: 1; border: 0; padding: 0; background: #2e86de; border-radius: 3px; position: relative; display: grid; place-items: center; font-size: .9rem; }
.nv-grid.aim .nv-c:not(:disabled) { cursor: crosshair; }
.nv-grid.aim .nv-c:not(:disabled):hover { background: #5dade2; }
.nv-c.ship { background: #95a5a6; box-shadow: inset 0 0 0 2px #7f8c8d; }
.nv-c.ship.sel { background: var(--yellow); box-shadow: inset 0 0 0 2px #c79500; }
.nv-c.miss::after { content: ''; width: 30%; height: 30%; border-radius: 50%; background: rgba(255,255,255,.75); }
.nv-c.hit { background: #e74c3c; }
.nv-c.hit::after { content: '🔥'; font-size: .8em; }
.nv-c.sunk { background: #6d1d14; }
.nv-c.sunk::after { content: '✖'; color: #fff; font-weight: 900; }
.nv-c.reveal { background: #95a5a6; }
.nv-c.last { outline: 2px solid var(--yellow); z-index: 1; }
.nv-c.boom { animation: nvboom .6s; }
.nv-grid.mine .nv-c::after { font-size: .55rem; }
.nv-lbl { color: #fff; font-weight: 700; }
.nv-low { display: flex; gap: 14px; align-items: flex-start; }
.nv-stats { display: flex; flex-direction: column; color: #fff; gap: 4px; padding-top: 22px; }
.nv-list { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.nv-ship { border: 0; background: rgba(255,255,255,.2); color: #fff; border-radius: 10px; padding: 4px 8px; display: flex; flex-direction: column; align-items: center; font-weight: 700; }
.nv-ship span { letter-spacing: -2px; color: #d5dbdb; }
.nv-ship.sel { background: var(--yellow); color: var(--ink); }
.nv-ship.sel span { color: var(--ink); }


/* ===== jogos/penalti.php ===== */
.pn-score { width: 100%; max-width: 420px; display: flex; flex-direction: column; gap: 4px; }
.pn-row { display: grid; grid-template-columns: 90px 1fr 30px; align-items: center; gap: 6px; background: rgba(255,255,255,.18); color: #fff; padding: 4px 10px; border-radius: 12px; }
.pn-row.me { background: rgba(255,255,255,.32); }
.pn-row b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pn-row strong { font-size: 1.3rem; text-align: right; }
.pn-kicks { display: flex; gap: 4px; flex-wrap: wrap; }
.pn-kicks i { width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,.25); display: grid; place-items: center; font-style: normal; font-size: .8rem; }
.pn-kicks i.x { background: var(--red); color: #fff; }
.pn-kicks i.g { background: #fff; }
.pn-goal { position: absolute; left: 10%; right: 10%; top: 12%; height: 52%; border: 6px solid #fff; border-bottom: 0; }
.pn-net { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,.35) 0 1px, transparent 1px 12px), repeating-linear-gradient(90deg, rgba(255,255,255,.35) 0 1px, transparent 1px 12px); }
.pn-z { position: absolute; width: 30%; height: 42%; transform: translate(-50%, -50%); border: 2px dashed transparent; border-radius: 10px; background: none; font-size: 1.4rem; opacity: 0; }
.pn-goal.aim .pn-z { opacity: 1; border-color: rgba(255,255,255,.8); background: rgba(255,255,255,.15); animation: pulse 1.2s infinite; }
.pn-goal.aim .pn-z:hover { background: rgba(255,200,61,.5); }
.pn-gk { position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 0); font-size: 2.8rem; transition: all .55s cubic-bezier(.2,.9,.3,1.2); transform-origin: 50% 100%; z-index: 2; }
.pn-ball { position: absolute; left: 50%; top: 150%; transform: translate(-50%, -50%); font-size: 2rem; transition: all .6s cubic-bezier(.3,.6,.4,1); z-index: 3; }
.pn-res { position: absolute; left: 50%; bottom: 8%; transform: translateX(-50%); font-size: 1.8rem; font-weight: 900; color: #fff; text-shadow: 0 3px 0 rgba(0,0,0,.35); white-space: nowrap; animation: popin .4s .5s both; }
.pn-res.gol { color: var(--yellow); }


/* ===== jogos/desenho.php ===== */
.dr-word { min-height: 34px; color: #fff; font-size: 1.5rem; font-weight: 900; letter-spacing: .08em; text-align: center; }
.dr-mask { display: inline-flex; gap: 5px; align-items: flex-end; }
.dr-mask i { width: 18px; border-bottom: 3px solid #fff; font-style: normal; text-align: center; line-height: 1.1; }
.dr-mask i.sp { border: 0; width: 12px; }
.dr-mask small { font-size: .8rem; letter-spacing: 0; opacity: .8; font-weight: 600; }
.dr-cv { width: 100%; height: 100%; display: block; }
.dr-stage.can .dr-cv { cursor: crosshair; }
.dr-emoji { position: absolute; inset: 0; display: none; place-items: center; font-size: 11rem; pointer-events: none; transition: filter .3s; }
.dr-emoji.on { display: grid; }
.dr-choose { position: absolute; inset: 0; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 10px; background: rgba(31,22,64,.75); color: #fff; font-weight: 800; }
.dr-choose.on { display: flex; }
.dr-choose .btn { min-width: 60%; font-size: 1.15rem; }
.dr-reveal { font-size: 2.2rem; margin: 0; color: var(--yellow); }
.dr-gains { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; padding: 0 10px; }
.dr-gains span { background: rgba(255,255,255,.2); padding: 2px 10px; border-radius: 12px; font-size: .9rem; }
.dr-tools { display: flex; flex-direction: column; gap: 6px; align-items: center; }
.dr-colors { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; }
.dr-col { width: 28px; height: 28px; border-radius: 50%; border: 3px solid rgba(255,255,255,.5); padding: 0; }
.dr-col.sel { border-color: #fff; transform: scale(1.18); box-shadow: 0 0 0 2px var(--ink); }
.dr-row { display: flex; gap: 6px; align-items: center; }
.dr-size { width: 36px; height: 36px; border-radius: 10px; border: 0; background: rgba(255,255,255,.22); display: grid; place-items: center; padding: 0; }
.dr-size i { background: #fff; border-radius: 50%; }
.dr-size.sel { background: var(--yellow); }
.dr-size.sel i { background: var(--ink); }
.dr-tool { border: 0; background: rgba(255,255,255,.22); color: #fff; font-weight: 700; border-radius: 10px; padding: 7px 10px; }
.dr-feed { width: 100%; max-width: 480px; display: flex; flex-direction: column; gap: 2px; color: #fff; font-size: .92rem; }
.dr-feed .ok { color: #b6ffd9; font-weight: 800; }
.dr-feed .close { color: var(--yellow); }
.dr-feed .sys { font-style: italic; opacity: .85; }


/* ===== jogos/cidade.php ===== */
.game-area.cd-night { background: radial-gradient(circle at 80% 8%, rgba(255,255,255,.15) 0 30px, transparent 31px), linear-gradient(#0d1033, #24124a); border-radius: 18px; transition: background .6s; }
.cd-card { display: flex; gap: 10px; align-items: center; background: rgba(255,255,255,.95); border-radius: 16px; padding: 8px 14px; width: 100%; max-width: 480px; }
.cd-ico { font-size: 2.2rem; }
.cd-card small { display: block; color: var(--muted); font-weight: 600; }
.cd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; width: 100%; max-width: 520px; }
.cd-p { border: 2px solid transparent; background: rgba(255,255,255,.2); color: #fff; border-radius: 14px; padding: 8px 4px; display: flex; flex-direction: column; align-items: center; gap: 2px; position: relative; min-height: 92px; }
.cd-p .av { background: #fff; }
.cd-p b { font-size: .85rem; max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cd-p.me { background: rgba(255,255,255,.32); }
.cd-p.dead { opacity: .5; filter: grayscale(.8); }
.cd-p.can { border-color: var(--yellow); cursor: pointer; animation: pulse 1.4s infinite; }
.cd-p.sel { background: var(--yellow); color: var(--ink); }
.cd-p.target { box-shadow: 0 0 0 3px var(--red); }
.cd-role { font-size: .72rem; font-weight: 700; background: rgba(0,0,0,.25); border-radius: 8px; padding: 0 6px; }
.cd-clue { font-size: .7rem; font-weight: 800; border-radius: 8px; padding: 0 5px; }
.cd-clue.bad { background: var(--red); }
.cd-clue.ok { background: var(--green); }
.cd-v { position: absolute; top: 4px; right: 6px; font-style: normal; }
.cd-votes { position: absolute; top: -8px; left: 50%; transform: translateX(-50%); background: var(--red); color: #fff; font-style: normal; font-weight: 800; font-size: .72rem; border-radius: 10px; padding: 0 7px; white-space: nowrap; }
.cd-talk { width: 100%; max-width: 520px; background: rgba(0,0,0,.2); color: #fff; border-radius: 14px; padding: 8px 12px; font-size: .9rem; display: flex; flex-direction: column; gap: 3px; }
.cd-ctrls { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; align-items: center; color: #fff; }
.cd-clues { color: #fff; font-size: .88rem; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cd-clues span { background: rgba(255,255,255,.2); border-radius: 10px; padding: 0 8px; }
.cd-clues .bad { background: var(--red); }
.cd-end { font-size: 1.4rem; font-weight: 900; color: #fff; background: var(--green); border-radius: 14px; padding: 6px 16px; }
.cd-end.assassinos { background: var(--red); }


/* ===== jogos/batata.php ===== */
.bq-cat { background: #fff; border-radius: 16px; padding: 6px 22px; text-align: center; box-shadow: var(--shadow); }
.bq-cat small { display: block; color: var(--muted); font-weight: 700; }
.bq-cat b { font-size: 1.5rem; color: #d35400; }
.bq-p { position: absolute; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; color: #fff; text-align: center; width: 84px; transition: transform .2s; }
.bq-p .av { background: #fff; }
.bq-p b { font-size: .8rem; max-width: 80px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bq-p small { font-size: .62rem; }
.bq-p.hold .av { box-shadow: 0 0 0 4px #ff7a1a, 0 0 18px #ff7a1a; }
.bq-p.out { opacity: .4; }
.bq-potato { position: absolute; transform: translate(-50%, -50%); font-size: 3rem; transition: left .35s ease-in-out, top .35s ease-in-out; filter: drop-shadow(0 4px 4px rgba(0,0,0,.3)); }
.bq-potato.hot { animation: bqshake calc(.7s - var(--heat, 0) * .55s) infinite; }
.bq-potato.boom { font-size: 5rem; animation: popin .3s; }
.bq-feed { color: #fff; font-size: .9rem; display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 60px; }
@media (max-height: 760px) {
  .bq-cat { padding: 4px 18px; }
  .bq-cat b { font-size: 1.25rem; }
}


/* ===== jogos/quemsou.php ===== */
.qs-a { border: 0; background: #fff; border-radius: 12px; padding: 4px 2px; display: flex; flex-direction: column; align-items: center; transition: all .2s; box-shadow: 0 3px 0 #d8d0ff; }
.qs-a span { font-size: 1.7rem; line-height: 1.15; }
.qs-a small { font-size: .62rem; font-weight: 700; color: var(--muted); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qs-a.out { opacity: .25; filter: grayscale(1); transform: scale(.92); }
.qs-a.wrong { background: #ffd9df; }
.qs-a.can { cursor: pointer; }
.qs-a.sel { background: var(--yellow); transform: scale(1.08); }
.qs-lbl { color: #fff; font-weight: 700; }
.qs-qs { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; max-width: 520px; }
.qs-q { border: 0; background: rgba(255,255,255,.92); color: var(--ink); font-weight: 700; border-radius: 12px; padding: 5px 9px; font-size: .82rem; }
.qs-q:disabled { opacity: .55; }
.qs-q.done { background: rgba(255,255,255,.2); color: #fff; }
.qs-q.done.yes b { color: #9dffcf; }
.qs-q.done.no b { color: #ffb3c1; }
.qs-log { color: #fff; font-size: .82rem; text-align: center; opacity: .9; }
.qs-others { color: #fff; font-size: .85rem; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.qs-others span { background: rgba(255,255,255,.2); border-radius: 10px; padding: 0 8px; }
.qs-a { aspect-ratio: 1; justify-content: center; min-width: 0; }
.qs-a span { font-size: calc(1.7rem * var(--fitk, 1)); }
.qs-a small { font-size: calc(.62rem * max(var(--fitk, 1), .8)); }
.qs-qs.sbox { max-height: min(20dvh, 150px); overflow-y: auto; align-content: flex-start; padding: 2px; }
.qs-log div:nth-child(n+3) { display: none; }
.qs-others { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; justify-content: flex-start; scrollbar-width: none; }
@media (max-height: 760px) {
  .qs-qs.sbox { max-height: 19dvh; }
  .qs-log div:nth-child(n+2) { display: none; }
  .qs .tb-note { font-size: .82rem; }
  .qs-lbl { font-size: .78rem; }
}
@media (max-height: 660px) {
  .qs-qs.sbox { max-height: 17dvh; }
  .qs-q { padding: 4px 8px; font-size: .78rem; }
}
@media (max-height: 660px) {
  .qs-others, .qs-log { display: none; }
}
@media (max-height: 660px) {
  .qs .tb-note { font-size: .74rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
}


/* ===== jogos/reflexo.php ===== */
.reflex-pad { width: 100%; flex: 1; min-height: 300px; border: 0; border-radius: 30px; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; user-select: none; touch-action: manipulation; box-shadow: 0 8px 0 rgba(0,0,0,.2); transition: background .12s; }
.reflex-pad .big { font-size: clamp(2rem, 9vw, 3.4rem); font-weight: 800; line-height: 1.1; text-align: center; padding: 0 10px; }
.reflex-pad .small { opacity: .9; font-weight: 600; }
.reflex-pad.ready { background: #6c63a8; }
.reflex-pad.wait { background: #e8395b; }
.reflex-pad.go { background: #12c27e; animation: flash .4s; }
.reflex-pad.result, .reflex-pad.end { background: #3a24c4; }
.reflex-pad.burned { background: #5a2733; }


/* ===== jogos/velha.php ===== */
.velha-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; width: min(86vw, 360px); aspect-ratio: 1; }
.velha-board .cell { border: 0; border-radius: 20px; background: var(--card); box-shadow: 0 6px 0 #d8d0ff; font-size: clamp(2.5rem, 13vw, 4.4rem); font-weight: 800; line-height: 1; display: grid; place-items: center; }
.velha-board .cell:not(:disabled):hover { background: #f8f6ff; }
.velha-board .cell.v0 { color: var(--p0); animation: popin .25s; }
.velha-board .cell.v1 { color: #e2a400; animation: popin .25s; }
.velha-board .cell.win { background: #fff6d6; box-shadow: 0 6px 0 var(--yellow-d); animation: winb .6s infinite alternate; }
.velha-board .cell:disabled { cursor: default; color: inherit; }
.velha-board .cell.v0:disabled { color: var(--p0); }
.velha-board .cell.v1:disabled { color: #e2a400; }


/* ===== jogos/lig4.php ===== */
.disc-mini { width: 16px; height: 16px; border-radius: 50%; display: inline-block; }
.disc-mini.d0 { background: var(--p0); }
.disc-mini.d1 { background: var(--p1); }
.lig4-board { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; background: #3a24c4; padding: 8px; border-radius: 20px; width: min(94vw, 460px); box-shadow: 0 8px 0 #24157f; }
.lig4-board .col { display: grid; gap: 4px; border-radius: 12px; padding: 2px; transition: background .15s; }
.lig4-board .col.can { cursor: pointer; }
.lig4-board .col.can:hover { background: rgba(255,255,255,.12); }
.disc.drop { animation: drop .35s cubic-bezier(.5, 0, .75, 1.3); }


/* ===== jogos/ppt.php ===== */
.ppt-score { display: flex; gap: 14px; align-items: center; color: #fff; font-size: 2.6rem; font-weight: 800; }
.ppt-score span { opacity: .7; font-size: 1.6rem; }
.ppt-reveal { display: flex; align-items: center; gap: 18px; background: var(--card); border-radius: 26px; padding: 14px 26px; box-shadow: var(--shadow); }
.ppt-reveal span { font-size: 3.8rem; line-height: 1; transition: transform .3s; }
.ppt-reveal span.w { transform: scale(1.25); filter: drop-shadow(0 0 10px var(--yellow)); }
.ppt-reveal small { font-weight: 800; color: var(--muted); }
.ppt-reveal.idle span { opacity: .4; }
.ppt-reveal.pop span:first-child { animation: shake .6s; }
.ppt-reveal.pop span:last-child { animation: shake .6s reverse; }
.ppt-buttons { display: flex; gap: 12px; }
.ppt-btn { border: 0; background: var(--card); border-radius: 22px; width: 96px; height: 106px; box-shadow: 0 6px 0 #d8d0ff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-transform: capitalize; font-weight: 700; color: var(--muted); }
.ppt-btn span { font-size: 2.8rem; line-height: 1.1; }
.ppt-btn:active:not(:disabled) { transform: translateY(4px); box-shadow: 0 2px 0 #d8d0ff; }
.ppt-btn.sel { outline: 4px solid var(--yellow); }
.ppt-btn:disabled:not(.sel) { opacity: .55; }


