.game-body{overflow:hidden;background:#f2f7fd}.game-page{width:100vw;height:100vh;margin:0;padding:8px 10px 8px 0;overflow:hidden}.game-hub{--menu-w:190px;--rank-w:360px;width:100%;height:100%;display:grid;grid-template-columns:var(--menu-w) minmax(0,1fr) var(--rank-w);gap:10px;align-items:stretch;transition:grid-template-columns .18s ease}.game-hub.menu-collapsed{--menu-w:58px}.game-menu,.game-window,.game-ranking{border:1px solid #dce8f4;background:#fff;box-shadow:0 10px 28px rgba(28,84,142,.07)}
.game-menu{min-width:0;height:100%;padding:8px 7px 10px;border-left:0;border-radius:0 18px 18px 0;display:flex;flex-direction:column;gap:8px;overflow:hidden}.game-menu-toggle{width:34px;height:34px;flex:0 0 34px;margin-left:auto;border:1px solid #d5e4f3;border-radius:10px;background:#f5f9fd;color:#177ee8;font-size:25px;font-weight:800;line-height:1;display:grid;place-items:center;cursor:pointer}.game-menu-toggle:hover{background:#eaf5ff;border-color:#85bfff}.game-menu-toggle-icon{display:block;transform:translateY(-1px);transition:transform .18s ease}.game-hub.menu-collapsed .game-menu-toggle{margin-left:auto;margin-right:auto}.game-hub.menu-collapsed .game-menu-toggle-icon{transform:rotate(180deg) translateY(1px)}.game-menu-list{display:grid;gap:7px;align-content:start;min-width:0}.game-menu-item{min-height:54px;padding:8px 10px;border-radius:12px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:7px;text-decoration:none;color:#17263a;border:1px solid transparent;overflow:hidden}.game-menu-item.active{background:#edf7ff;border-color:#62aefe;color:#0878e8}.game-menu-item.disabled{background:#f5f7f9;color:#9aa4af;cursor:default}.game-menu-number{font-size:11px;font-weight:900;letter-spacing:.04em;color:inherit;text-align:center}.game-menu-item strong{font-size:14px;line-height:1.15;white-space:normal}.game-hub.menu-collapsed .game-menu-item{grid-template-columns:1fr;padding:7px 4px;min-height:50px}.game-hub.menu-collapsed .game-menu-item strong{display:none}.game-hub.menu-collapsed .game-menu-number{font-size:12px}
.game-window{min-width:0;min-height:0;height:100%;border-radius:18px;padding:12px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;position:relative;overflow:hidden}.number-game-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.number-game-status>div{min-height:72px;border:1px solid #dce8f4;border-radius:14px;padding:8px 10px;background:#f8fbfe;display:grid;place-items:center;align-content:center;gap:1px;text-align:center}.number-game-status small{font-size:9px;font-weight:900;color:#788696;letter-spacing:.08em}.number-game-status strong{font-size:22px;color:#183653}.number-target-box strong{color:#0d86f7;font-size:29px}.number-stage{position:relative;min-height:0;height:100%;border:1px solid #dbe8f4;border-radius:16px;background:#f4f9fd;overflow:hidden;padding:10px}.number-board{width:100%;height:100%;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:7px}.number-cell{width:100%;height:100%;min-width:0;min-height:0;border:1px solid #c9ddf0;border-radius:10px;background:#fff;color:#132f4c;font-size:clamp(15px,1.35vw,22px);font-weight:900;cursor:pointer;box-shadow:0 2px 7px rgba(25,86,143,.05);transition:transform .1s ease,background .12s ease,color .12s ease,border-color .12s ease}.number-cell:hover:not(:disabled){transform:translateY(-1px);border-color:#3b9cff;background:#eef8ff}.number-cell.found,.number-cell:disabled{background:#dfe4e9!important;color:#9aa3ad!important;border-color:#d4d9df!important;box-shadow:none;cursor:default;transform:none}.number-ready{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:rgba(248,252,255,.97);z-index:2}.number-ready img{width:64px;height:64px;padding:14px;border-radius:18px;background:linear-gradient(135deg,#1ac4ff,#2f86ff);margin-bottom:13px}.number-ready strong{font-size:30px;line-height:1.15}.number-ready span{font-size:14px;color:#6e7d8d;margin:7px 0 18px}.number-ready .btn{min-width:150px;min-height:46px}.number-result{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 40px));padding:22px;border-radius:18px;background:#fff;border:1px solid #bfe1ff;box-shadow:0 20px 55px rgba(18,70,120,.2);text-align:center}.number-result-badge{display:inline-block;padding:5px 10px;border-radius:999px;background:#168cff;color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em}.number-result h2{margin:8px 0 3px;font-size:22px}.number-result>strong{display:block;font-size:30px;color:#168cff;margin-bottom:5px}.number-result p{margin:0 0 12px;color:#657487;font-size:13px}.game-window.is-playing .number-ready{display:none}.game-window.is-finished .number-board{pointer-events:none;opacity:.72}
.game-ranking{min-width:0;height:100%;border-radius:18px;padding:12px;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.game-ranking-head{display:grid;gap:2px;padding:2px 3px 9px;border-bottom:1px solid #edf1f5;margin-bottom:6px}.game-ranking-head>strong{font-size:21px}.game-ranking-head span{font-size:11px;color:#7e8b9a}.game-leader-list{min-height:0;display:grid;grid-template-rows:repeat(20,minmax(0,1fr));gap:3px}.game-leader-row{display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:0;padding:3px 7px;border-radius:8px;border:1px solid #edf1f5;background:#fff}.game-leader-row:nth-child(-n+3){background:#f8fcff;border-color:#dcecff}.game-leader-row.is-empty{background:#fbfcfd;border-color:#eef2f6}.game-leader-row.is-me{background:#eaf6ff;border-color:#73b8ff;box-shadow:inset 3px 0 #258df5}.game-rank{font-size:12px;font-weight:900;color:#228cff}.game-leader-name{min-width:0;display:grid;gap:0;line-height:1.08}.game-leader-name strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-leader-name small{font-size:9px;color:#8995a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-leader-time{font-size:11px;color:#1e344a;white-space:nowrap}.game-personal-divider{height:1px;background:#cfdceb;margin:4px 2px}.game-leader-list:has(.game-personal-row){grid-template-rows:repeat(20,minmax(0,1fr)) auto auto}.game-personal-row{min-height:42px;margin-top:1px}
@media(max-width:1180px){.game-hub{--menu-w:165px;--rank-w:320px;gap:8px}.game-page{padding-right:8px}.number-board{gap:5px}.number-cell{border-radius:8px}.game-ranking{padding:9px}.game-leader-row{padding-left:5px;padding-right:5px}}
/* Responsive mobile/tablet sẽ tiếp tục tinh chỉnh ở bước sau. */
@media(max-width:900px){.game-body{overflow:auto}.game-page{height:auto;min-height:100vh;padding:8px}.game-hub,.game-hub.menu-collapsed{height:auto;min-height:calc(100vh - 16px);grid-template-columns:1fr}.game-menu{height:auto;border-left:1px solid #dce8f4;border-radius:16px}.game-menu-toggle{display:none}.game-menu-list{display:flex;overflow-x:auto}.game-menu-item{min-width:150px}.game-window{min-height:650px}.game-ranking{min-height:760px}.number-board{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(10,minmax(48px,1fr))}}

/* Number Hunt top replay */
.number-game-status{grid-template-columns:repeat(4,minmax(0,1fr))}
.number-replay-box{min-height:72px;border:1px solid #dce8f4;border-radius:14px;padding:8px 10px;background:#eef7ff;color:#117fe8;display:grid;place-items:center;align-content:center;gap:2px;text-align:center;cursor:pointer;font:inherit;transition:background .15s ease,border-color .15s ease,transform .12s ease}
.number-replay-box small{font-size:9px;font-weight:900;letter-spacing:.08em;color:#6d91b6}.number-replay-box strong{font-size:15px;font-weight:900}.number-replay-box:hover:not(:disabled){background:#e0f1ff;border-color:#79bbfa;transform:translateY(-1px)}.number-replay-box:disabled{opacity:.55;cursor:wait;transform:none}

@media(max-width:900px){.number-game-status{grid-template-columns:repeat(2,minmax(0,1fr))}}









/* v43: Merge Pet lives inside Phòng Game. The pet board itself keeps one fixed 375x794 layout on all devices. */
.pet-embed-window{grid-template-rows:minmax(0,1fr);padding:0;background:#eef4f9}.pet-embed-stage{min-width:0;min-height:0;width:100%;height:100%;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:10px}.pet-embed-frame{display:block;flex:0 0 auto;width:395px;height:814px;border:0;background:transparent}.pet-login-required{height:100%;min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:28px}.pet-login-required>img{width:68px;height:68px;padding:15px;border-radius:20px;background:linear-gradient(135deg,#1ac4ff,#2f86ff)}.pet-login-required>strong{font-size:30px;color:#183653}.pet-login-required>span{max-width:430px;color:#6e7d8d;font-size:14px;line-height:1.55}.pet-login-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:6px}.pet-ranking-info{grid-template-rows:auto minmax(0,1fr)}.pet-ranking-message{display:flex;min-height:0;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:20px;color:#66788b}.pet-ranking-message strong{font-size:18px;color:#183653}.pet-ranking-message span{font-size:13px;line-height:1.55}.pet-ranking-message b{color:#168cff}
@media(max-width:900px){.pet-embed-window{min-height:834px}.pet-embed-stage{justify-content:flex-start;padding:10px 0}.pet-embed-frame{width:395px;height:814px}.pet-ranking-info{min-height:180px}.pet-ranking-message{min-height:130px}}

/* TestMaster ver4: standalone mini games moved out of the old Pet game. */
.mini-game-window{grid-template-rows:auto minmax(0,1fr);padding:18px}.mini-game-head{text-align:center;padding:6px 10px 12px}.mini-game-head>span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#168cff}.mini-game-head h1{margin:4px 0;font-size:28px;color:#183653}.mini-game-head p{margin:0;color:#738195;font-size:13px}.memory-game-panel{align-self:center;justify-self:center;width:min(640px,96%);display:grid;gap:18px;place-items:center}.mini-status{width:100%;min-height:48px;display:grid;place-items:center;text-align:center;border:1px solid #dce8f4;border-radius:14px;background:#f8fbfe;color:#35516d;font-weight:850;padding:10px}.memory-grid{width:min(470px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.memory-cell{aspect-ratio:1.25;border:1px solid #cbdff1;border-radius:16px;background:linear-gradient(160deg,#fff,#eef6fd);font-size:20px;font-weight:900;color:#46617c;cursor:pointer;transition:.14s}.memory-cell:hover:not(:disabled){transform:translateY(-2px);border-color:#77b8f6}.memory-cell.is-flash{background:linear-gradient(145deg,#bbf2ff,#40c9ee);border-color:#159fd1;box-shadow:0 0 0 3px rgba(21,159,209,.16),0 0 22px rgba(21,159,209,.28);transform:scale(1.035)}.memory-cell.is-correct{background:#e9f9ef;border-color:#65ba80}.memory-cell.is-wrong{background:#fff0ec;border-color:#d18772}.mini-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.mini-game-info{grid-template-rows:auto 1fr}.mini-game-note{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;gap:10px;color:#6b7b8d}.mini-game-note img{width:66px;height:66px;padding:15px;border-radius:20px;background:linear-gradient(135deg,#1ac4ff,#2f86ff)}.mini-game-note strong{font-size:22px;color:#183653}.mini-game-note p{font-size:13px;line-height:1.55;max-width:260px}.game-simple-mode .game-ranking{display:grid}
@media(max-width:900px){.mini-game-window{min-height:600px}.mini-game-info{min-height:260px}}
/* Test trí nhớ: chỉ mức Dễ hiện số thứ tự 1–9. */
.memory-levels{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.memory-levels label{cursor:pointer}.memory-levels input{position:absolute;opacity:0;pointer-events:none}.memory-levels span{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:9px 13px;border:1px solid #cfe0ef;border-radius:999px;background:#fff;color:#53677b;font-size:11px;font-weight:900;transition:.15s}.memory-levels input:checked+span{background:#168cff;border-color:#168cff;color:#fff;box-shadow:0 7px 18px rgba(22,140,255,.18)}.memory-levels input:disabled+span{opacity:.55;cursor:not-allowed}.memory-cell{font-size:0}.memory-cell::after{content:'';width:15px;height:15px;border-radius:50%;background:rgba(70,97,124,.12)}.memory-cell.is-flash::after{background:#fff;box-shadow:0 0 20px rgba(255,255,255,.9)}

/* Mức Dễ: số 1–9 luôn hiển thị, kể cả khi ô phát sáng. */
.memory-grid.memory-easy .memory-cell{font-size:clamp(20px,3vw,32px);font-weight:900;line-height:1}
.memory-grid.memory-easy .memory-cell::after{display:none}
.memory-grid.memory-easy .memory-cell.is-flash{color:#073e66}
