:root{--bg:#0b0f1a;--bg2:#111827;--card:#151c2e;--card2:#1b2440;--line:#26304a;--tx:#e6e9f2;--mut:#8b94ab;--pri:#7c5cff;--pri2:#22d3ee;--ok:#22c55e;--bad:#ef4444;--warn:#f59e0b;--r:14px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx);line-height:1.5;
background-image:radial-gradient(900px 400px at 10% -10%,#2a1f5c55,transparent),radial-gradient(800px 400px at 100% 0,#0e4a5f44,transparent);background-attachment:fixed}
a{color:var(--pri2);text-decoration:none}.ic{flex:none;vertical-align:middle}.wrap{max-width:1280px;margin:0 auto;padding:0 16px}.muted{color:var(--mut)}.small{font-size:.85rem}
.announce{display:flex;gap:8px;justify-content:center;align-items:center;padding:8px 16px;background:linear-gradient(90deg,var(--pri),#c026d3);color:#fff;font-size:.9rem;text-align:center}
.hdr{position:sticky;top:0;z-index:30;background:#0b0f1acc;backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:14px;height:64px}.logo{display:flex;align-items:center;gap:10px;color:var(--tx);font-weight:800;font-size:1.15rem;white-space:nowrap}
.logo img{height:36px;width:auto}.logo-mark{display:grid!important;flex:none;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff;box-shadow:0 6px 20px #7c5cff55}
.logo-mark svg{display:block}
.search{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:0 14px;width:min(420px,50vw);color:var(--mut)}
.search:focus-within{border-color:var(--pri);box-shadow:0 0 0 3px #7c5cff33}.search input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--tx);padding:10px 0;font-size:.95rem}
.ibtn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--tx);cursor:pointer}
.layout{display:grid;grid-template-columns:230px 1fr;gap:24px;padding-top:20px}.side nav{position:sticky;top:84px;display:flex;flex-direction:column;gap:2px}
.side a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--mut);font-weight:500;font-size:.93rem}.side a:hover{background:var(--card);color:var(--tx)}
.side a.on{background:linear-gradient(90deg,#7c5cff33,transparent);color:#fff;box-shadow:inset 3px 0 0 var(--pri)}.side a em{margin-left:auto;font-style:normal;font-size:.75rem;background:var(--card2);padding:1px 8px;border-radius:99px}
.side-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:16px 12px 6px}.only-m{display:none!important}.backdrop{display:none}
.main{min-width:0;padding-bottom:40px}
.hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px;border-radius:20px;margin-bottom:8px;background:linear-gradient(135deg,#2a1f5c,#0f3b5f);border:1px solid #ffffff14;overflow:hidden;position:relative}
.hero h1{margin:0 0 6px;font-size:clamp(1.4rem,3vw,2.1rem)}.hero p{margin:0;color:#c7cbe0;max-width:560px}.hero-art{color:#ffffff30;transform:rotate(-12deg)}
.sec{display:flex;align-items:center;gap:10px;font-size:1.15rem;margin:26px 0 14px}.sec .ic{color:var(--pri2)}.sec .more{margin-left:auto;font-size:.85rem;font-weight:500;display:flex;align-items:center}
.sec-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sec-bar .sec{margin-bottom:14px}.count{font-size:.8rem;background:var(--card2);color:var(--mut);padding:2px 10px;border-radius:99px}
.seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:3px}.seg a{padding:6px 14px;border-radius:8px;color:var(--mut);font-size:.88rem}.seg a.on{background:var(--pri);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:var(--tx);transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:#7c5cff88;box-shadow:0 12px 30px #0008,0 0 0 1px #7c5cff44}.card-img{position:relative;aspect-ratio:1;background:#0d1322}
.card-img img{width:100%;height:100%;object-fit:cover;display:block}.card-play{position:absolute;inset:0;display:grid;place-items:center;background:#0b0f1a99;color:#fff;opacity:0;transition:.2s}
.card:hover .card-play{opacity:1}.card-play .ic{background:var(--pri);border-radius:50%;padding:12px;width:48px;height:48px;fill:#fff}
.badge{position:absolute;top:8px;left:8px;background:var(--warn);color:#000;border-radius:8px;padding:4px;display:grid}.badge .ic{fill:#000}
.card-body{padding:10px 12px}.card-body b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.9rem;line-height:1.3;min-height:2.6em}.card-body small{color:var(--mut);display:flex;align-items:center;gap:4px;font-size:.78rem}
.pager{display:flex;gap:6px;justify-content:center;margin:28px 0}.pager a{display:grid;place-items:center;min-width:40px;height:40px;padding:0 10px;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--tx)}.pager a.on{background:var(--pri);border-color:var(--pri)}
.empty{text-align:center;padding:40px 20px;color:var(--mut);background:var(--card);border:1px dashed var(--line);border-radius:var(--r)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--pri),#6366f1);color:#fff;border:0;padding:10px 18px;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;font-family:inherit;text-decoration:none}
.btn:hover{filter:brightness(1.12)}.btn-lg{padding:14px 28px;font-size:1.1rem;border-radius:14px;box-shadow:0 10px 30px #7c5cff66}.btn .ic[aria-hidden]{}.btn-lg .ic{fill:#fff}
.btn.ghost{background:var(--card);border:1px solid var(--line);color:var(--tx)}.btn.danger{background:var(--bad)}.btn.sm{padding:6px 10px;font-size:.82rem;border-radius:8px}.btn.ok{background:var(--ok)}
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.85rem;color:var(--mut);margin-bottom:14px}.crumbs a{color:var(--mut)}.crumbs a:hover{color:var(--tx)}
.gd{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}.gd-stage{display:flex;flex-direction:column;align-items:center;gap:14px}
.player{position:relative;width:min(100%,460px);background:linear-gradient(160deg,#1f2740,#0d1220);border-radius:28px;padding:16px;border:1px solid #ffffff1a;box-shadow:0 30px 60px #000a,inset 0 1px 0 #ffffff1a}
.player-screen{aspect-ratio:var(--ar,3/4);background:#000;border-radius:12px;overflow:hidden;position:relative;width:100%}
.player.running .player-screen{aspect-ratio:auto}
.player-screen iframe{width:100%;height:100%;border:0;display:block;background:#000}
.player:fullscreen,.player.pseudo-fs{width:100%;max-width:none;height:100%;border-radius:0;padding:0;border:0;background:#000;display:flex}
.player.pseudo-fs{position:fixed;inset:0;z-index:100;height:100dvh}
.player:fullscreen .player-screen,.player.pseudo-fs .player-screen{flex:1;height:auto!important;aspect-ratio:auto;border-radius:0}
.fs-exit{display:none;position:absolute;top:8px;right:8px;z-index:3;width:40px;height:40px;border-radius:50%;border:0;background:#0009;color:#fff;cursor:pointer;place-items:center}
.player:fullscreen .fs-exit,.player.pseudo-fs .fs-exit{display:grid}
.poster{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:20px}
.poster{background:radial-gradient(120% 70% at 50% 30%,color-mix(in srgb,var(--c,#7c5cff) 45%,#0b0f1a),#0b0f1a 75%)}.poster>*{position:relative}.poster small{color:#c7cbe0}
.pc-hint{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;color:var(--mut);font-size:.85rem;margin:0;text-align:center}
@media (pointer:coarse){.only-pc{display:none!important}}
.stage-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.card-box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px}.gd-head{display:flex;gap:14px;align-items:center}.gd-head img{width:84px;height:84px;border-radius:16px;object-fit:cover}
.gd-head h1{margin:0 0 8px;font-size:1.35rem;line-height:1.25}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;padding:3px 10px;border-radius:99px;background:var(--card2);color:var(--mut)}
.desc{color:#c7cbe0}.gd-info h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin:18px 0 8px}.keys{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:.85rem;color:var(--mut)}
kbd{background:var(--card2);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:.78rem;color:var(--tx);font-family:inherit}
.foot{border-top:1px solid var(--line);padding:28px 0;color:var(--mut);font-size:.88rem;margin-top:20px}.foot-brand{display:flex;align-items:center;gap:8px;color:var(--tx);font-weight:700}
@media(max-width:1024px){.gd{grid-template-columns:1fr}}
@media(max-width:860px){.only-m{display:grid!important}.layout{grid-template-columns:1fr;padding-top:14px}
.side{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--bg2);z-index:50;transform:translateX(-100%);transition:transform .25s;padding:14px;overflow:auto;border-right:1px solid var(--line)}
.side nav{position:static}.side-head{display:flex!important;align-items:center;justify-content:space-between;margin-bottom:10px}
.nav-open .side{transform:none}.nav-open .backdrop{display:block;position:fixed;inset:0;background:#000a;z-index:40}
.hdr-in{height:58px;gap:10px}.logo>span:not(.logo-mark){display:none}.search{width:auto;flex:1}.hero{padding:20px}.hero-art{display:none}
.grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.card-body{padding:8px}.card-body b{font-size:.82rem}
.gd-stage{margin:0 -16px}.player{width:100%;border-radius:0;padding:0;border:0;box-shadow:none;background:#000}.player-screen{border-radius:0}.player.running.touch{margin-top:0}.keys{grid-template-columns:1fr}}
@media(min-width:861px){.logo>span:not(.logo-mark){display:inline}}
/* Admin */
.adm{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.adm-side{background:var(--bg2);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.adm-side .logo{margin:0 8px 20px}.adm-main{padding:24px;min-width:0}.adm-top{display:flex;align-items:center;gap:12px;margin-bottom:20px}.adm-top h1{margin:0;font-size:1.4rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;gap:14px;align-items:center}
.stat .ic{width:44px;height:44px;padding:10px;border-radius:12px;background:#7c5cff26;color:#a78bfa}.stat b{font-size:1.6rem;display:block;line-height:1.1}.stat span{color:var(--mut);font-size:.85rem}
.tbl-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--mut);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;background:#0f1526}
tr:last-child td{border-bottom:0}td img.th{width:44px;height:44px;border-radius:8px;object-fit:cover}.acts{display:flex;gap:6px;flex-wrap:wrap}
.form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;max-width:760px}.form label{display:block;margin:14px 0 6px;font-weight:600;font-size:.9rem}
.form input:not([type=checkbox]),.form select,.form textarea,.inp{width:100%;padding:10px 12px;background:#0d1322;border:1px solid var(--line);border-radius:10px;color:var(--tx);font:inherit}
.form input:focus,.form select:focus,.form textarea:focus,.inp:focus{outline:0;border-color:var(--pri)}.form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form .hint{color:var(--mut);font-size:.8rem;margin-top:4px}
.chk{display:flex!important;align-items:center;gap:8px;font-weight:500!important}.msg{display:flex;gap:8px;align-items:center;padding:12px 14px;border-radius:10px;margin:0 0 16px;background:#22c55e22;border:1px solid #22c55e55}
.msg.err{background:#ef444422;border-color:#ef444455}.pill{font-size:.72rem;padding:2px 8px;border-radius:99px;background:var(--card2);color:var(--mut)}.pill.on{background:#22c55e33;color:#86efac}.pill.warn{background:#f59e0b33;color:#fcd34d}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .inp{max-width:260px}.panel2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.center-box{max-width:440px;margin:8vh auto;padding:0 16px}.auth-logo{display:flex;justify-content:center;margin-bottom:16px}
@media(max-width:860px){.adm{grid-template-columns:1fr}.adm-side{position:fixed;left:0;top:0;width:260px;z-index:50;transform:translateX(-100%);transition:.25s}.nav-open .adm-side{transform:none}
.adm-main{padding:16px}.panel2,.form .row{grid-template-columns:1fr}.hide-m{display:none}}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex!important;margin:0!important;cursor:pointer}.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{padding:7px 14px;border-radius:99px;border:1px solid var(--line);background:#0d1322;color:var(--mut);font-weight:500;font-size:.88rem;transition:.15s}
.chip input:checked+span{background:#7c5cff33;border-color:var(--pri);color:#fff}.chip input:focus-visible+span{box-shadow:0 0 0 3px #7c5cff55}
.emu-set{margin-top:16px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#0f1526}.emu-set summary{cursor:pointer;font-weight:600;display:flex;align-items:center;gap:8px}
@media(max-width:860px){.stage-tools,.pc-hint{padding:0 16px}}
.player{scroll-margin-top:72px}@media(max-width:860px){.player{scroll-margin-top:58px}}
[hidden]{display:none!important}
.player:fullscreen .fs-exit,.player.pseudo-fs .fs-exit{display:none}
/* v5: tắt hiệu ứng nặng khi đang chơi */
body:has(iframe) .hdr{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0b0f1a}
body:has(iframe) *{animation:none!important;transition:none!important}

/* ===== v7: danh sách game kiểu kho ứng dụng, icon J2ME sắc nét ===== */
.gicon{--s:56px;flex:none;width:var(--s);height:var(--s);border-radius:calc(var(--s)*.26);display:grid;place-items:center;overflow:hidden;
 background:linear-gradient(145deg,color-mix(in srgb,var(--c) 38%,#1b2440),color-mix(in srgb,var(--c) 14%,#0d1322));
 box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent),0 4px 14px -6px color-mix(in srgb,var(--c) 70%,transparent)}
.gicon img{display:block;max-width:none}.gicon img.px{image-rendering:pixelated;image-rendering:crisp-edges}
.gicon.full img{border-radius:inherit}.gicon .ga-letter{display:block;width:100%;height:100%}
.glist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.grow{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;min-height:80px;background:var(--card);border:1px solid var(--line);border-radius:16px;color:var(--tx);
 transition:border-color .15s,background-color .15s}
.grow:hover{border-color:color-mix(in srgb,var(--c) 60%,var(--line));background:color-mix(in srgb,var(--c) 7%,var(--card))}
.gmeta{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.gmeta b{font-size:.95rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcat{color:var(--mut);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gstat{display:flex;align-items:center;gap:4px;color:#aab3c9;font-size:.76rem}.gstat .ic{fill:currentColor}
.gstat .hot{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;border-radius:99px;background:#f59e0b22;color:#fbbf24}
.gplay{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 30%,#26304a);color:#fff;transition:background-color .15s}
.gplay .ic{fill:#fff;margin-left:2px}.grow:hover .gplay{background:var(--pri)}
.rank{position:absolute;top:6px;left:6px;z-index:1;min-width:20px;height:20px;padding:0 5px;border-radius:99px;font-size:.7rem;font-weight:800;display:grid;place-items:center;background:#0b0f1acc;border:1px solid var(--line);color:#fbbf24}
.shelf{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;margin:0 -2px;scrollbar-width:thin}
.gtile{flex:0 0 150px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 12px 14px;border-radius:18px;color:var(--tx);
 border:1px solid color-mix(in srgb,var(--c) 35%,var(--line));background:radial-gradient(110% 80% at 50% 0,color-mix(in srgb,var(--c) 42%,#151c2e),#151c2e 72%)}
.gtile:hover{border-color:color-mix(in srgb,var(--c) 70%,var(--line))}
.gtile b{font-size:.88rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}
.gtile small{display:flex;align-items:center;gap:3px;color:#c7cbe0;font-size:.74rem}.gtile small .ic{fill:currentColor}
.gd-head .gicon{--s:84px}
.poster .gicon.big{box-shadow:0 10px 40px -8px color-mix(in srgb,var(--c) 80%,transparent),inset 0 0 0 1px #ffffff22}
@media (max-width:640px){.glist{grid-template-columns:1fr;gap:8px}.grow{min-height:72px;padding:8px 10px}.gtile{flex-basis:128px;padding:14px 10px 12px}}
@media (min-width:1100px){.glist{grid-template-columns:repeat(3,1fr)}}
/* v8: huy hiệu online */
.gstat .onl{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;border-radius:99px;background:#22c55e22;color:#4ade80}.gstat .onl .ic{fill:none;stroke:currentColor}
.net-note{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:12px;background:#22c55e14;border:1px solid #22c55e44;color:#bbf7d0;font-size:.85rem}
/* v9: thêm game theo bước */
.steps{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.steps span{padding:6px 14px;border-radius:99px;background:var(--card2);color:var(--mut);font-size:.85rem}.steps .on{background:var(--pri);color:#fff}.steps .done{background:#22c55e33;color:#86efac}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:36px 20px;border:2px dashed var(--line);border-radius:18px;background:var(--card);cursor:pointer;transition:border-color .15s,background-color .15s}
.drop:hover,.drop.over{border-color:var(--pri);background:color-mix(in srgb,var(--pri) 10%,var(--card))}.drop .ic{color:var(--pri2)}
.uq{display:grid;gap:10px;margin-top:14px}.uitem{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.uitem.ok{border-color:#22c55e55}.uitem.bad{border-color:#ef444466}
.uhead{display:flex;align-items:center;gap:10px}.uhead>b,.uhead>div{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.uhead img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated;border-radius:12px;background:var(--card2);padding:4px}
.ubar{height:8px;border-radius:99px;background:var(--card2);margin:10px 0 6px;overflow:hidden}.ubar i{display:block;height:100%;background:linear-gradient(90deg,var(--pri),var(--pri2));transition:width .15s}
.uitem dl,.jarinfo dl{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:10px 0 0;font-size:.85rem}.uitem dt,.jarinfo dt{color:var(--mut)}.uitem dd,.jarinfo dd{margin:0;word-break:break-word}
.jarinfo{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card2);margin-bottom:14px}.jarinfo img,.jarinfo .noic{width:64px;height:64px;object-fit:contain;image-rendering:pixelated;border-radius:14px;background:var(--card);padding:6px;display:grid;place-items:center;flex:none}
.gmeta-tbl{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:14px 0 0}.gmeta-tbl div{background:var(--card2);border-radius:12px;padding:8px 12px}.gmeta-tbl small{display:block;color:var(--mut);font-size:.72rem}.gmeta-tbl b{font-size:.88rem;word-break:break-word}
/* v10: trang Proxy online */
.pxgrid{display:grid;gap:12px;margin-bottom:16px}.pxstat{display:flex;align-items:center;gap:12px}.pxstat .dot{width:14px;height:14px;border-radius:50%;flex:none;background:var(--bad);box-shadow:0 0 0 4px #ef444433}
.pxstat.ok .dot{background:var(--ok);box-shadow:0 0 0 4px #22c55e33}.pre,.code{background:#0a0e18;border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow:auto;font:12px/1.5 ui-monospace,Menlo,Consolas,monospace;color:#cbd5e1;white-space:pre}
.code.log{max-height:360px}.pxsteps{padding-left:20px}.pxsteps li{margin-bottom:14px}
/* ===== v11: chuỗi dài, khối code, khoảng cách, bảng, nút – 360px → desktop ===== */
html{-webkit-text-size-adjust:100%}
img,svg,video,canvas{max-width:100%}
.brk,.msg,.hint,.muted,.card-box,.form,dd{overflow-wrap:anywhere;word-break:normal}td{overflow-wrap:break-word}
code{overflow-wrap:anywhere;word-break:break-all;background:#0a0e18;border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:.85em}
pre code{border:0;padding:0;background:none;word-break:normal;overflow-wrap:normal}
pre,.code,.pre{max-width:100%;overflow-x:auto;overflow-y:auto;white-space:pre;-webkit-overflow-scrolling:touch;word-break:normal;overflow-wrap:normal;padding:12px 14px;margin:8px 0 12px;box-sizing:border-box}
.code.log{white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;font-size:12px;line-height:1.55;color:#cfd6ea}
.code.log.err{color:#fca5a5;max-height:200px}
.card-box{margin-bottom:16px;min-width:0}.card-box>h3,.card-box .hrow h3,.form>h3{margin:0 0 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:1.05rem}
.card-box>:last-child,.form>:last-child{margin-bottom:0}
.adm-main h2,.adm-main h3{line-height:1.3}
.form{margin-bottom:16px;min-width:0}.form p{margin:10px 0}
.pxgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}.pxgrid>.card-box{margin-bottom:0}
.pxstat{flex-wrap:wrap}.pxstat .fx1{flex:1 1 200px;min-width:0}
.fx1{flex:1;min-width:0}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
form.inl{display:inline-flex;margin:0;vertical-align:middle}
.btn.xs{padding:4px 9px;font-size:.76rem;border-radius:7px;gap:5px}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.hrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.hrow h3{margin:0!important}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:10px 14px;margin:0;font-size:.9rem}.kv dt{color:var(--mut);padding-top:2px}.kv dd{margin:0;min-width:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.kv dd .hint{flex-basis:100%;margin:0}
.pill.ok{background:#22c55e33;color:#86efac}.pill.warn{background:#f59e0b33;color:#fcd34d}
.cmd{margin:10px 0 14px}.cmd pre{margin:4px 0 0}
details.card-box>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center}details.card-box>summary::-webkit-details-marker{display:none}
details.card-box>summary::before{content:'▸';color:var(--mut);transition:.15s}details[open].card-box>summary::before{transform:rotate(90deg)}
details[open].card-box>summary{margin-bottom:10px}
.msg{align-items:flex-start;line-height:1.45}.msg>.ic,.msg>svg{flex:none;margin-top:2px}.msg>div{min-width:0}
.tbl-wrap{margin-bottom:16px;-webkit-overflow-scrolling:touch}
td,th{vertical-align:middle}
.chips{gap:8px 8px;margin:4px 0 8px}
@media (max-width:480px){
 .card-box,.form{padding:14px;border-radius:12px}
 .adm-main{padding:12px}
 .adm-top{flex-wrap:wrap;margin-bottom:14px}.adm-top h1{font-size:1.2rem}
 .kv{grid-template-columns:1fr;gap:2px}.kv dt{padding-top:8px;font-size:.8rem}
 .btn{padding:9px 14px}.btn.sm{padding:6px 10px}
 .code,pre{font-size:11.5px;padding:10px 12px}

}
.panel2>*,.adm-main>*{min-width:0}
.jarinfo>div{min-width:0;flex:1}.uitem dd,.jarinfo dd{overflow-wrap:anywhere}
@media (max-width:480px){.jarinfo{flex-direction:column;gap:10px;padding:12px}.jarinfo img,.jarinfo .noic{width:56px;height:56px}
 .uitem dl,.jarinfo dl{grid-template-columns:1fr;gap:0}.uitem dt,.jarinfo dt{font-size:.78rem;margin-top:6px}}
.hint{color:var(--mut);font-size:.8rem;line-height:1.45}
@media (max-width:480px){td,th{padding:8px 10px}td form .inp{min-width:0;width:120px}}
@media (max-width:640px){
 .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toolbar>.inp,.toolbar select.inp{max-width:none!important;width:100%;min-width:0}
 .toolbar>input.inp:first-child{grid-column:1/-1}.toolbar>.btn,.toolbar>a.btn{width:100%;min-width:0}.toolbar>.muted{grid-column:1/-1}
 .tbl-wrap td a{word-break:normal;overflow-wrap:break-word}
}
/* v12 */
.favrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.favrow img{border-radius:10px;background:#0d1322;border:1px solid var(--line);flex:none;object-fit:contain}.favrow input{flex:1;min-width:0}
.favsizes{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:8px 0}.favsizes figure{margin:0;text-align:center;font-size:.72rem;color:var(--mut)}.favsizes img{display:block;margin:0 auto 4px;image-rendering:auto;background:#fff1;border-radius:4px}
.icsel{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%}.icsel .icprev{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:#7c5cff22;color:#c4b5fd}.icsel select{min-width:0;max-width:200px}
.catbar{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;margin:18px -2px 0;scrollbar-width:thin;scroll-snap-type:x proximity}
.catbar a{flex:none;display:inline-flex;align-items:center;gap:7px;padding:8px 14px 8px 10px;border-radius:99px;background:var(--card);border:1px solid var(--line);color:var(--tx);font-size:.88rem;font-weight:600;scroll-snap-align:start;white-space:nowrap}
.catbar a .ic{color:var(--pri2)}.catbar a:hover,.catbar a.on{border-color:var(--pri);background:#7c5cff22}
.side nav .ic{flex:none}
.home2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0 24px}
.home2>section{min-width:0}.home2 .glist{grid-template-columns:1fr}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.tgrid .gtile{flex:none;width:auto;min-width:0}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.gmini{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:var(--tx);min-width:0}
.gmini:hover{border-color:color-mix(in srgb,var(--c) 60%,var(--line))}.gmini>span:last-child{min-width:0;display:flex;flex-direction:column;gap:2px}
.gmini b{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gmini small{color:var(--mut);font-size:.74rem;display:flex;align-items:center;gap:3px}
.glist.podium .grow:nth-child(1) .rank{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1205}.glist.podium .grow:nth-child(2) .rank{background:linear-gradient(135deg,#e5e7eb,#9ca3af);color:#111}.glist.podium .grow:nth-child(3) .rank{background:linear-gradient(135deg,#f59e0b,#b45309);color:#fff}
.sec .btn.more{margin-left:auto}
.lead{margin:-6px 0 14px}
@media (max-width:900px){.home2{grid-template-columns:1fr}}
@media (max-width:480px){.tgrid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.mgrid{grid-template-columns:1fr 1fr}.gmini{padding:7px 8px;gap:8px}.catbar a{padding:7px 12px 7px 9px;font-size:.84rem}}
@media (max-width:360px){.mgrid{grid-template-columns:1fr}}
.vhist{margin-top:16px}.vhist ol{margin:6px 0 0;padding-left:20px}.vhist li{margin:8px 0}
.upbar{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card2);margin-bottom:6px}.upbar>.ic{color:var(--pri2);flex:none}
.fstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;margin-bottom:16px}
.fstat{display:flex;gap:12px;align-items:flex-start;margin:0;color:var(--tx);padding:14px}.fstat>.ic{color:var(--pri2);flex:none;margin-top:2px}.fstat.on{border-color:var(--pri);background:#7c5cff14}.fstat>div{min-width:0}
.warnc{color:#fcd34d}.ftbl code{font-size:.8em}.fthumb{width:28px;height:28px;object-fit:contain;image-rendering:pixelated;vertical-align:middle;margin-right:8px;border-radius:6px;background:var(--card2)}
tr.orph td{background:#f59e0b0a}
@media (max-width:640px){
 .cattbl,.cattbl tbody{display:block}.cattbl tr:first-child{display:none}
 .cattbl tr{display:grid;grid-template-columns:1fr auto;gap:8px 10px;padding:12px;border-bottom:1px solid var(--line);align-items:center}
 .cattbl td{display:block;padding:0;border:0}.cattbl td:nth-child(1),.cattbl td:nth-child(2){grid-column:1/-1}
 .cattbl td:nth-child(2) .inp{width:100%}.cattbl td[data-l]{display:flex;align-items:center;gap:8px;font-size:.85rem}.cattbl td[data-l]::before{content:attr(data-l);color:var(--mut)}
 .cattbl td.acts{grid-column:1/-1;display:flex;gap:8px}.cattbl .icsel select{max-width:none;flex:1}.cattbl .icsel{display:flex}
}
@media (max-width:640px){.cattbl td.hide-m{display:none}}
/* v17: màn hình ngang (320×240…) – khung rộng hơn trên máy tính */@media(min-width:861px){.player.land{width:min(100%,640px)}}
/* v18: phân trang */.pager{flex-wrap:wrap}.pager .gap,.pager .dis{display:grid;place-items:center;min-width:28px;height:40px;color:var(--mu,#8b94ab)}.pager .dis{opacity:.35;min-width:40px}.pager-info{text-align:center;margin:-18px 0 24px}.per-form{display:inline-flex;margin-left:auto}.per-form select{width:auto;margin-left:6px;padding:4px 8px}.list-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}
/* ===== v20: bình luận ===== */
.cmts{margin-top:20px}.cmts .sec{margin-top:0}
.cform{margin-bottom:18px}.crow{display:flex;gap:12px;align-items:flex-start}.cfields{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.cfields input,.cfields textarea{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;color:var(--tx);padding:10px 12px;font:inherit;outline:0;resize:vertical;transition:border-color .15s,box-shadow .15s}
.cfields input:focus,.cfields textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px #7c5cff33}.cfields input{max-width:320px}
.cbar{display:flex;align-items:center;gap:10px;justify-content:flex-end}.cbar .ccount{margin-right:auto}
.cmsg{font-size:.88rem;min-height:1.2em}.cmsg.ok{color:var(--ok)}.cmsg.err{color:#ff8a8a}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.creply-to{display:flex;align-items:center;gap:10px;font-size:.88rem;background:#7c5cff1a;border:1px solid #7c5cff44;border-radius:10px;padding:6px 10px;margin-bottom:8px}.creply-to[hidden]{display:none}
.linkbtn{background:none;border:0;color:var(--pri2);cursor:pointer;font:inherit;padding:0}
.cav{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-weight:800;color:#fff;background:linear-gradient(135deg,hsl(var(--h) 65% 55%),hsl(calc(var(--h) + 40) 70% 42%));font-size:1rem;text-transform:uppercase}
.cav.cav-a{background:linear-gradient(135deg,var(--pri),var(--pri2));box-shadow:0 0 0 2px #7c5cff66}
.cmt{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.cmt:first-child{border-top:0}.cmt.new{animation:cnew 1.6s ease-out}@keyframes cnew{from{background:#7c5cff22}}
.cbody{flex:1;min-width:0}.chead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.chead time{color:var(--mut);font-size:.8rem}
.ctext{margin:4px 0 2px;word-break:break-word;overflow-wrap:anywhere;color:#d5dbec}
.creply{display:inline-flex;align-items:center;gap:5px;background:none;border:0;color:var(--mut);font:inherit;font-size:.82rem;cursor:pointer;padding:4px 0}.creply:hover{color:var(--pri2)}
.creplies{margin-top:6px;padding-left:14px;border-left:2px solid var(--line)}.creplies .cmt{padding:10px 0}.creplies .cav{width:30px;height:30px;font-size:.85rem}
.cempty{display:flex;align-items:center;gap:8px;padding:14px 0}
.clatest{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:24px}
.clate{display:flex;gap:12px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);color:var(--tx);transition:border-color .15s,transform .15s}.clate:hover{border-color:#7c5cff88;transform:translateY(-1px)}
.clate>div{min-width:0}.clate p{margin:3px 0;font-size:.9rem;color:#c7cee3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.clate .cg{color:var(--pri2)}
/* quản trị bình luận */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line)}.tabs a{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a.on{color:var(--tx);border-color:var(--pri)}
.mini-stats{margin-bottom:12px}.mini-stats .stat{padding:12px 16px;color:var(--tx)}.mini-stats .stat b{font-size:1.3rem}
.cadm{display:flex;flex-direction:column;gap:10px}.cadm-row{display:flex;gap:12px;align-items:flex-start;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.cadm-row.st-pending{border-color:#f59e0b66}.cadm-row.st-hidden,.cadm-row.st-spam{opacity:.7}.cadm-row>.ck{margin-top:12px}.fx1{flex:1;min-width:0}
.cacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.cedit{margin-top:10px;display:flex;flex-direction:column;gap:8px}.cedit[hidden]{display:none}.cedit textarea{width:100%}
/* phát hiện trùng khi thêm game */
.dupbox{margin:12px 0;padding:14px;border:1px solid #f59e0b77;background:#f59e0b12;border-radius:var(--r)}.duph{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.duph b{color:#fbbf24;display:flex;align-items:center;gap:6px}
.dupitem{display:block;padding:10px;margin-bottom:8px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;cursor:pointer}.dupitem:has(input:checked){border-color:var(--pri);box-shadow:0 0 0 2px #7c5cff33}.dupitem>input{float:right;accent-color:var(--pri)}
.dupg{display:flex;gap:10px;align-items:center}.dupg img.px,.dupg .noic{width:40px;height:40px;border-radius:10px;image-rendering:pixelated;object-fit:contain;background:#0b0f1a;display:grid;place-items:center}
.dupt{width:100%;margin-top:8px;font-size:.85rem;border-collapse:collapse}.dupt th,.dupt td{text-align:left;padding:4px 8px;border-top:1px solid var(--line)}.dupt th{color:var(--mut);font-weight:600}
.dupact{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.btn.warn{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;border-color:transparent}
.gsu-sel .gsu-btn.inp{padding:8px 12px}
.cmts,.cmt{scroll-margin-top:80px}
/* ===== v21: header & footer mới ===== */
.hdr{background:#0b0f1af5;-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid #ffffff10;padding-top:env(safe-area-inset-top);transition:box-shadow .2s,background .2s;isolation:isolate}
.hdr.scrolled{box-shadow:0 8px 28px #0008;background:#0b0f1afa}
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,#7c5cff66,#22d3ee55,transparent);opacity:.7}
.hdr-in{height:66px;gap:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.logo{gap:11px;min-width:0;flex:none}.logo-txt{display:flex!important;flex-direction:column;line-height:1.15;min-width:0}
.logo-txt b{font-size:1.08rem;font-weight:800;letter-spacing:-.01em;background:linear-gradient(90deg,#fff,#c9c1ff);-webkit-background-clip:text;background-clip:text;color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logo-txt small{font-size:.72rem;font-weight:500;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.logo-mark{width:40px;height:40px;border-radius:12px}.logo-mark.sm{width:32px;height:32px;border-radius:10px}
.hnav{display:flex;align-items:center;gap:2px;margin-left:8px}
.hnav a{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:10px;color:var(--mut);font-weight:600;font-size:.9rem;white-space:nowrap;transition:background .15s,color .15s}
.hnav a:hover{color:var(--tx);background:#ffffff0a}.hnav a.on{color:#fff;background:#7c5cff26;box-shadow:inset 0 0 0 1px #7c5cff55}.hnav a.on .ic{color:#a996ff}
.search{margin-left:auto;width:min(360px,32vw);height:42px;padding:0 10px 0 14px;background:#151c2ecc;transition:width .2s,border-color .15s,box-shadow .15s}
.search:focus-within{width:min(440px,40vw)}.search input{padding:0;height:100%}.search input::-webkit-search-cancel-button{filter:invert(.6)}
.s-kbd{font:600 .72rem/1 ui-monospace,monospace;color:var(--mut);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:3px 7px}
.search:focus-within .s-kbd{display:none}.s-back{display:none!important}
.ibtn{width:42px;height:42px;border-radius:12px;background:#151c2e;transition:background .15s,border-color .15s}.ibtn:hover{border-color:#3a4670}
.main{min-width:0}
@media(max-width:1280px){.hnav a:nth-child(5){display:none}}
@media(max-width:1180px){.hnav a:nth-child(4){display:none}.logo-txt small{display:none}}
@media(max-width:1024px){.hnav{display:none}.search{width:min(420px,46vw)}.search:focus-within{width:min(480px,50vw)}}
@media(max-width:860px){
 .hdr-in{height:58px;gap:10px;position:relative}.logo{flex:1}.logo-txt b{font-size:1rem}.logo-mark{width:36px;height:36px}
 .search{display:none;position:absolute;inset:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));width:auto!important;height:auto;z-index:2;background:#151c2e;padding-left:4px}
 .hdr.s-open .search{display:flex;animation:sIn .18s ease-out}.hdr.s-open .s-back{display:grid!important;place-items:center;width:36px;height:36px;border:0;background:none;color:var(--tx);cursor:pointer;border-radius:50%}
 .hdr.s-open .s-open,.hdr.s-open #navbtn{visibility:hidden}
 .layout{padding-top:14px}
 .foot{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
}
@keyframes sIn{from{opacity:0;transform:scale(.98)}}
@media(max-width:380px){.logo-txt b{font-size:.94rem}.hdr-in{gap:8px}}
/* thanh điều hướng dưới (điện thoại) */
.mnav{position:fixed;left:0;right:0;bottom:0;z-index:35;display:none!important;grid-template-columns:repeat(5,1fr);background:#0d1220f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid #ffffff12;padding:6px max(6px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-right))}
.mnav a,.mnav button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:0;background:none;color:var(--mut);font-family:inherit;font-size:.68rem;font-weight:600;line-height:1.1;white-space:nowrap;border-radius:12px;cursor:pointer}
.mnav a.on{color:#fff}.mnav a.on .ic{color:#a996ff;filter:drop-shadow(0 0 8px #7c5cff88)}.mnav a:active,.mnav button:active{background:#ffffff0d}
@media(max-width:860px){.mnav{display:grid!important}}
body:has(.player.running) .mnav{display:none!important}
/* chân trang */
.foot{margin-top:40px;padding-top:40px;border-top:1px solid #ffffff10;background:linear-gradient(180deg,transparent,#080b14 60%)}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:32px}
.foot-brand{display:inline-flex;align-items:center;gap:10px;font-size:1.05rem;color:var(--tx)}.foot-about p{margin:12px 0 0;max-width:420px;line-height:1.6}
.foot-col h4{margin:4px 0 12px;font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:#cfd6ee}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.foot-col a{color:var(--mut);transition:color .15s}.foot-col a:hover{color:var(--pri2)}
.foot-tip{margin-top:14px;display:flex;align-items:center;gap:6px}.foot-tip kbd{font:600 .72rem ui-monospace,monospace;border:1px solid var(--line);border-radius:5px;padding:1px 6px}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:32px;padding:18px 0 22px;border-top:1px solid #ffffff0d;font-size:.8rem}
@media(max-width:1024px){.foot-grid{grid-template-columns:1fr 1fr 1fr}.foot-about{grid-column:1/-1}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr 1fr;gap:24px 16px}.foot-col:last-child{grid-column:1/-1}.foot-bot{flex-direction:column}}
/* ===== v23: bỏ highlight khi chạm, focus chỉ hiện khi dùng bàn phím ===== */
*,*::before,*::after{-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
a,button,[role=button],summary,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a:focus,button:focus,[tabindex]:focus{outline:none}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:2px solid var(--pri);outline-offset:2px;border-radius:8px}
a:active,button:active{opacity:.82}
.logo:active,.logo:focus{background:none}
dialog,.drawer,.sx{box-sizing:border-box;max-width:100%}
/* ===== v23: gợi ý tìm kiếm ===== */
@media(min-width:861px){.search{position:relative}}
.sx{position:absolute;top:calc(100% + 8px);left:0;right:0;min-width:min(380px,calc(100% + 0px));max-height:min(70vh,520px);overflow:auto;overscroll-behavior:contain;z-index:60;background:#161d31;border:1px solid #2f3a5c;border-radius:14px;box-shadow:0 20px 50px #000b;padding:6px;color:var(--tx);animation:sIn .14s ease-out}
.sx[hidden]{display:none}.sx.ld{opacity:.7}
.sx-h{padding:8px 10px 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font-weight:700}
.sx-i{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--tx);text-decoration:none;min-width:0}
.sx-i:hover,.sx-i.on{background:#7c5cff26}.sx-i:active{opacity:1;background:#7c5cff3a}
.sx-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;overflow:hidden;background:var(--t);color:#fff;font-weight:700}.sx-ic img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}
.sx-tx{display:flex;flex-direction:column;min-width:0}.sx-tx b,.sx-tx small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sx-tx b{font-weight:600;font-size:.95rem}
.sx-i small{color:var(--mut);font-size:.78rem}.sx-t{justify-content:space-between}
.sx mark{background:none;color:#b9a6ff;font-weight:700}
.sx-all{justify-content:center;margin-top:4px;border-top:1px solid #2a3350;border-radius:0 0 10px 10px;color:#b9a6ff;font-weight:600;font-size:.9rem}
.sx-e{padding:14px 10px;color:var(--mut);font-size:.9rem;text-align:center}
@media(max-width:860px){.hdr.s-open .search .sx{position:fixed;top:62px;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));min-width:0;max-height:calc(100dvh - 140px)}}
/* ===== v24: ô chọn trong quản trị – to, dễ bấm trên điện thoại, chọn cả hàng ===== */
.adm input[type=checkbox],.ftbl input[type=checkbox],.cadm-row>input[type=checkbox],table input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--pri,#7c5cff);cursor:pointer;vertical-align:middle;flex:none;position:relative;z-index:1;pointer-events:auto}
input[type=checkbox]:disabled{cursor:not-allowed;opacity:.45}
tr:has(>td>input.ck),tr:has(>td>input.fk:not(:disabled)),.cadm-row:has(>input.ck){cursor:pointer}
tr.sel>td,.cadm-row.sel{background:#7c5cff1f}
tr.nope{animation:nope .35s}@keyframes nope{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.selcount:empty{display:none}.selcount{align-self:center}
@media(max-width:760px){td:first-child>input[type=checkbox],th:first-child>input[type=checkbox]{width:24px;height:24px}}
.awl code{word-break:break-all}.awl td{vertical-align:middle}
@media(max-width:760px){.awl thead{display:none}.awl,.awl tbody{display:block}.awl tr{display:grid;grid-template-columns:1fr auto auto;gap:4px 12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.awl td{display:block;padding:0!important;border:0!important}.awl td:first-child{grid-column:1/-1}.awl td:last-child{grid-column:1/-1}.awl td:last-child .btn,.awl td.btnrow{justify-content:flex-start}}
/* ===== v25: quản lý file – bộ lọc, dọn tạm ===== */
.cleanbox{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 14px}.cleanbox input[type=number]{width:76px;padding:6px 8px;margin:0}
.ftabs{flex-wrap:wrap}.ftabs a small{opacity:.7;font-size:.75em;margin-left:4px;white-space:nowrap}
tr.act td{background:#3b82f60f}
@media(max-width:760px){.ftabs{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.ftabs a{text-align:center}.ftabs a small{display:block;margin:0}}
/* ===== v26: chống tràn ngang trên điện thoại (trang bị lệch sau khi vuốt) ===== */
html,body{overflow-x:hidden;max-width:100%}
@supports(overflow:clip){html,body{overflow-x:clip}}
body{position:relative;overscroll-behavior-x:none}
main,section,article,.wrap,.home2,.home2>*,.sec,.glist,.glist>*,.tgrid>*,.mgrid>*,.grid>*,.clatest,.clatest>*,.layout>*,.gd>*,.pxgrid>*,.fstats>*{min-width:0}
.glist,.tgrid,.mgrid,.home2{max-width:100%}
.grow{max-width:100%;overflow:hidden}
.shelf,.catbar,.chips,.tbl-wrap,.seg,.tabs{max-width:100%;overscroll-behavior-x:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
img,video,canvas,iframe,svg{max-width:100%}
h1,h2,h3,.hero p,.gmeta b,.cmt-body,.brk{overflow-wrap:anywhere}
pre,code{max-width:100%}
/* v31: tải từ URL */
.urlrow{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.urlrow .ic{color:var(--pri2);flex:none}.urlrow input{flex:1;min-width:0;border:0;background:transparent;padding:6px 2px;color:inherit;font:inherit;outline:none}
.urlrow.sm{margin-top:6px;padding:4px 8px}
/* v31: bình luận dạng luồng 2 cấp */
.creplies{position:relative}
.creplies:empty{display:none}
.creplies .creplies{padding-left:12px;margin-top:4px}
.creplies .creplies .cav{width:26px;height:26px;font-size:.78rem}
.creplies .cmt{border-top:0;padding:8px 0}
.cmt.d1>.cbody>.ctext,.cmt.d2>.cbody>.ctext{font-size:.95rem}
.cacts2{display:flex;gap:12px}
.ctoggle{display:inline-flex;align-items:center;gap:4px;margin-top:2px;background:none;border:0;color:var(--pri2);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;padding:4px 0}
.ctoggle .ic{transition:transform .15s}
.ctoggle[aria-expanded=true] .ic{transform:rotate(90deg)}
.ctoggle:hover span{text-decoration:underline}
.cmention{color:var(--pri2);font-weight:600;text-decoration:none;margin-right:2px}
.cmention:hover{text-decoration:underline}
.ciform{display:flex;flex-direction:column;gap:6px;margin:6px 0 4px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg2);animation:cnew .4s ease-out}
.ciform input[name=name],.ciform textarea{width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--tx);padding:8px 10px;font:inherit;outline:0;resize:vertical}
.ciform input[name=name]{max-width:260px}
.ciform input:focus,.ciform textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px #7c5cff33}
.ciform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cinote{margin:0}
.cmt.hl>.cbody>.ctext{background:#7c5cff26;border-radius:8px;box-shadow:0 0 0 4px #7c5cff26;transition:background .6s}
.cctx{margin:6px 0;padding:6px 10px;border-left:3px solid var(--line);background:var(--bg2);border-radius:0 8px 8px 0;font-size:.85rem;color:var(--mut)}
.cctx-i b{color:var(--tx)}
.cctx-i.l2{padding-left:14px;margin-top:2px;border-left:2px solid var(--line)}
.cadm-row.th-d1{margin-left:28px}.cadm-row.th-d2{margin-left:56px}
@media(max-width:640px){.creplies{padding-left:10px}.creplies .creplies{padding-left:8px}.cadm-row.th-d1{margin-left:12px}.cadm-row.th-d2{margin-left:24px}}
/* v31: chơi gần đây */
.recenthome[hidden]{display:none}
.rtile{position:relative}
.rtile .rgo{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 35%,#0000);border:1px solid color-mix(in srgb,var(--c) 60%,var(--line));font-size:.72rem;font-weight:700;color:#fff}
.rtile .rgo .ic{fill:currentColor}
.rlist{display:flex;flex-direction:column;gap:8px}
.rrow{position:relative;display:flex;align-items:center;gap:6px;transition:opacity .2s,transform .2s}
.rrow .grow{flex:1;min-width:0}
.rrow.gone{opacity:0;transform:translateX(20px)}
.rwhen{display:inline-flex;align-items:center;gap:4px;color:var(--mut);margin-left:auto;margin-right:8px;white-space:nowrap}
.rdel{flex:none}
.rlast{display:inline-flex;align-items:center;gap:5px}
.privacy{display:flex;gap:6px;align-items:flex-start;margin-top:14px}
@media(max-width:640px){.rwhen{display:none}}
/* v31: bảo trì */
.maint-bar{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 16px;background:repeating-linear-gradient(135deg,#f59e0b,#f59e0b 14px,#d97706 14px,#d97706 28px);color:#111;font-size:.88rem;text-align:center}
.maint-bar a{color:#111;font-weight:800;text-decoration:underline}
.maint-bar .ic{flex:none}
.maint-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1000px 500px at 50% -10%,#7c5cff33,transparent),var(--bg)}
.maint{max-width:560px;margin:0 auto;padding:40px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.maint h1{font-size:clamp(1.8rem,5vw,2.6rem);margin:8px 0 4px}
.maint-art{position:relative;margin-bottom:10px}
.maint-art .logo-mark{width:84px;height:84px;border-radius:24px;display:grid;place-items:center}
.maint-tool{position:absolute;right:-12px;bottom:-10px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--warn);color:#111;box-shadow:0 0 0 4px var(--bg);animation:mspin 3s ease-in-out infinite}
@keyframes mspin{0%,100%{transform:rotate(-15deg)}50%{transform:rotate(20deg)}}
.maint-logo{max-height:56px}
.maint-site{font-weight:800;color:var(--pri2);margin:0}
.maint-msg{color:#c7cbe0;font-size:1.05rem;line-height:1.6;margin:0 0 10px}
.maint-cd{display:flex;gap:10px;margin:8px 0}
.maint-cd div{min-width:68px;padding:12px 6px;border-radius:14px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}
.maint-cd b{font-size:1.8rem;font-variant-numeric:tabular-nums;line-height:1.1}
.maint-cd small{color:var(--mut);font-size:.75rem}
@media(max-width:400px){.maint-cd div{min-width:58px}.maint-cd b{font-size:1.4rem}}
.maint-status.on{border-color:var(--warn)}
/* v32: khoảng cách thanh tiêu đề + công cụ (khi xuống dòng trên điện thoại nút không dính vào danh sách) */
.sec-bar{row-gap:10px;margin-bottom:14px}
.sec-bar .sec{margin-bottom:0}
.sec-bar>.btn,.sec-bar>.seg,.sec-tools{flex:none}
.sec-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sec-bar+.glist,.sec-bar+div>.glist{margin-top:0}
.toolbar+.tbl-wrap,.toolbar+.cadm,.toolbar+.glist{margin-top:0}
.cleanbox+.cleanbox,.card-box+form.card-box{margin-top:10px}
.pager{margin-top:16px}
@media(max-width:640px){.sec-bar{align-items:flex-start}.sec-tools{width:100%;justify-content:space-between}.sec-tools .seg{max-width:100%;overflow-x:auto}}
/* v32: Game đã lưu */
.favb{display:inline-grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;color:var(--mut);background:transparent;cursor:pointer;transition:color .15s,background-color .15s,transform .15s;-webkit-tap-highlight-color:transparent}
.favb:hover,.favb:focus-visible{color:#f472b6;background:#f472b61f;outline:0}
.favb.on,.favbig.on{color:#f472b6}
.favb.on .ic,.favbig.on .ic{fill:currentColor}
.favb.pop .ic,.favbig.pop .ic{animation:favpop .35s ease-out}
@keyframes favpop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.grow .favb{margin-left:auto;margin-right:4px}
.grow .gstat+.favb{margin-left:auto}
.gtile{position:relative}
.favb.ontile{position:absolute;top:6px;right:6px;width:30px;height:30px;background:#0b0f1a99;color:#cbd2e6}
.favb.ontile.on{color:#f472b6;background:#0b0f1acc}
.gmini{position:relative}
.favb.onmini{margin-left:auto;width:28px;height:28px}
.favbig .fav-count{margin-left:2px;padding:0 7px;border-radius:999px;background:var(--card2);font-size:.78rem;line-height:1.6;color:var(--mut)}
.favbig .fav-count:empty{display:none}
.side nav .fav-n{font-style:normal}
.side nav .fav-n:empty{display:none}
#gstoast{position:fixed;left:50%;bottom:84px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:200;padding:10px 16px;border-radius:12px;background:#1b2440;border:1px solid var(--line);color:var(--tx);font-size:.9rem;box-shadow:0 8px 30px #0008;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px)}
#gstoast.show{opacity:1;transform:translate(-50%,0)}
#gstoast.bad{border-color:var(--bad)}
@media(min-width:900px){#gstoast{bottom:28px}}
/* v33: nút tim không tràn khung thẻ (iOS Safari): cột lưới minmax(0,1fr), flex min-width:0, reset nút */
.favb{-webkit-appearance:none;appearance:none;box-sizing:border-box;padding:0;margin:0;border:0;font:inherit;line-height:1;min-width:0;max-width:none;flex:0 0 auto;overflow:hidden}
.favb .ic{display:block;flex:none}
.mgrid{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}
.mgrid>*,.tgrid>*,.glist>*{min-width:0}
.gmini{position:relative;overflow:hidden;max-width:100%;box-sizing:border-box}
.gmini>:first-child{flex:none}
.gmini>span:not(.favb){flex:1 1 0%;min-width:0}
.gmini b,.gmini small{min-width:0;max-width:100%}
.favb.onmini{flex:0 0 28px;width:28px;height:28px;margin:0 -2px 0 0}
.gtile,.rtile{position:relative;overflow:hidden;min-width:0;box-sizing:border-box}
.gtile b{max-width:100%;min-width:0}
.grow{min-width:0}.grow>.favb{flex:0 0 32px}
@media (max-width:480px){.mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.gmini{gap:6px;padding:7px 6px 7px 8px}}
.gmini>span:nth-child(2):not(.favb){display:flex;flex-direction:column;gap:2px}
.gmini b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gmini>.favb{display:inline-grid;flex-direction:row;gap:0}
/* v34: vị trí quảng cáo – luôn nằm ngoài khung trình giả lập */
.ad{margin:12px 0;text-align:center;overflow:hidden;max-width:100%;clear:both}.ad-in{display:inline-block;max-width:100%}.ad-in img,.ad-in iframe{max-width:100%;height:auto}
.ad-header{margin:8px auto 0;padding:0 16px;max-width:1280px}.side .ad,.ad-sidebar{margin:14px 8px}.glist>.ad{grid-column:1/-1}
.ad-sticky{position:fixed;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));z-index:34;margin:0;padding:4px 28px 4px 4px;background:#0d1220f2;border-top:1px solid #ffffff14;display:none!important}
.ad-x{position:absolute;top:2px;right:4px;width:24px;height:24px;border:0;border-radius:50%;background:#ffffff1a;color:#fff;font-size:16px;line-height:24px;cursor:pointer}
@media(max-width:860px){.ad-sticky{display:block!important}body.has-adsticky{padding-bottom:150px}.side .ad{display:none}}

/* ==========================================================================
   v35 – Lớp hoàn thiện giao diện (mobile + PC). Đặt cuối file để thống nhất
   các bản vá cũ: thang khoảng cách, tiêu đề mục + tab, hàng game, lưới thẻ,
   thanh dưới (safe-area), quảng cáo, trang game.
   ========================================================================== */
:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r:14px;--r-sm:10px;--shadow:0 6px 24px #0006;--ring:0 0 0 3px #7c5cff55}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.wrap{max-width:1320px}
.layout{gap:var(--s5)}
@media(min-width:1600px){.wrap{max-width:1440px}}

/* --- Focus dễ thấy, không làm xấu khi bấm chuột --- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.grow:focus-visible,.gtile:focus-visible{outline:2px solid #a996ff;outline-offset:2px;box-shadow:var(--ring)}

/* --- Tiêu đề mục + công cụ (Mới / Phổ biến, Xem tất cả, Đổi): luôn cùng hàng, căn giữa, xuống dòng gọn --- */
.main .sec-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s3);margin:var(--s6) 0 var(--s4);position:static}
.main .sec-bar>.sec{margin:0;flex:1 1 auto;min-width:0}
.main .sec-bar>.seg,.main .sec-bar>.btn,.main .sec-bar>.sec-tools,.main .sec-bar>a{flex:0 0 auto;margin:0 0 0 auto;position:static;transform:none}
.main .sec{display:flex;align-items:center;gap:10px;margin:var(--s6) 0 var(--s4);font-size:1.12rem;line-height:1.3;min-width:0}
.main>.sec:first-child,.main>section:first-child>.sec:first-child,.main>.sec-bar:first-child{margin-top:var(--s2)}
.sec .count{flex:none;white-space:nowrap}
.sec .more,.sec>a:last-child{margin-left:auto;flex:none;white-space:nowrap}
.seg{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--card);border:1px solid var(--line);overflow-x:auto;scrollbar-width:none;max-width:100%}
.seg::-webkit-scrollbar{display:none}
.seg a{white-space:nowrap;padding:7px 14px;border-radius:9px;font-weight:600;line-height:1.2;transition:background-color .15s,color .15s}
.seg a:hover{color:var(--tx);background:#ffffff0a}
.seg a.on{background:linear-gradient(135deg,var(--pri),#6366f1);color:#fff;box-shadow:0 2px 10px #7c5cff55}
@media(max-width:420px){.main .sec{font-size:1.04rem}.seg a{padding:6px 11px;font-size:.84rem}}

/* --- Hàng game: lưới [icon | thông tin | tim | chơi], thông tin 1 dòng có dấu … --- */
.glist{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s2) var(--s3);margin:0}
.glist>.ad{grid-column:1/-1;margin:var(--s1) 0}
.grow{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;column-gap:var(--s3);min-height:76px;padding:var(--s2) var(--s3) var(--s2) var(--s2);border-radius:var(--r);overflow:hidden;transition:border-color .15s,background-color .15s,transform .15s}
.grow:hover{transform:translateY(-1px)}
.grow>.rank{position:absolute}
.grow>.gicon{grid-column:1}
.grow>.gmeta{grid-column:2;display:flex;flex-direction:column;gap:3px;min-width:0}
.grow>.favb{grid-column:3;margin:0!important}
.grow>.gplay{grid-column:4;margin:0}
.grow>.gmeta>b{display:block;font-size:.96rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.grow .gcat{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.grow .gstat{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;white-space:nowrap;overflow:hidden;min-width:0;line-height:1.3}
.grow .gstat>.ic{flex:none}
.grow .gstat .hot,.grow .gstat .onl{flex:0 1 auto;min-width:0;margin-left:2px;padding:1px 7px;font-size:.7rem;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:400px){
  .grow{column-gap:10px;padding-right:10px}
  .grow .gstat .hot,.grow .gstat .onl{padding:1px 5px;font-size:0;gap:0}         /* chỉ còn biểu tượng */
  .grow .gstat .hot .ic,.grow .gstat .onl .ic{width:12px;height:12px}
  .grow>.favb{width:30px;height:30px;flex-basis:30px}
  .grow>.gplay{width:34px;height:34px}
}

/* --- Lưới thẻ / dải cuộn --- */
.tgrid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s3)}
@media(max-width:640px){.tgrid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:var(--s2)}}
.gtile{border-radius:var(--r);transition:transform .15s,border-color .15s,box-shadow .15s}
.gtile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.gtile>b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25;overflow-wrap:anywhere}
.gtile>small{white-space:nowrap}
.mgrid{gap:var(--s2) var(--s3)}
.shelf{scroll-padding-inline:var(--s4)}

/* --- Phân trang: dòng "Trang x/y" không chồng lên danh sách khi chỉ có 1 trang --- */
.pager-info{margin:var(--s4) 0 var(--s5)}
.pager+.pager-info{margin-top:calc(-1 * var(--s2))}

/* --- Thẻ, nút --- */
.card-box{border-radius:var(--r)}
.btn{transition:filter .15s,transform .1s,background-color .15s}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}

/* --- Thanh dưới trên điện thoại: chừa safe-area, nội dung không bị che --- */
@media(max-width:860px){
  .main{padding-bottom:var(--s5)}
  .foot{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .mnav span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  body.has-adsticky{padding-bottom:0}
  body.has-adsticky .foot{padding-bottom:calc(150px + env(safe-area-inset-bottom))}
  .ad-sticky{bottom:calc(62px + env(safe-area-inset-bottom))}
}

/* --- Khoảng cách quảng cáo thống nhất --- */
.ad{margin:var(--s4) 0}
.ad-header{margin:var(--s3) auto 0}
.main>.ad-under_search:first-child{margin-top:0}
.ad-game_above{margin:0 0 var(--s4)}
.ad-game_below{margin:var(--s5) 0 0}

/* --- Trang game: cột trình giả lập + cột thông tin dính (PC), xếp chồng (mobile) --- */
@media(min-width:1100px){.gd{grid-template-columns:minmax(0,1fr) 360px;gap:var(--s5)}.gd-info{position:sticky;top:84px}}
.stage-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s2);margin-top:var(--s3)}
.stage-tools .btn{width:auto;flex:0 1 auto;white-space:nowrap}
@media(max-width:480px){.stage-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stage-tools .btn{width:100%;padding:9px 10px;font-size:.88rem}.stage-tools .btn .fav-count{margin-left:2px}}
.gd-info h1,.gd-info .gname{overflow-wrap:anywhere}

/* --- Quản trị: tab bộ lọc không xuống dòng --- */
.ftabs a,.adm .seg a{white-space:nowrap}
.list-tools+.pager-info,.list-tools~.pager-info{margin-top:var(--s3)}

/* v36: vòng focus cho ô nhập – không dùng outline vuông lệch.
   Ô tìm kiếm: viên thuốc (form) phát sáng bằng :focus-within, ô input bên trong trong suốt, không viền. */
.search input,.search input:focus,.search input:focus-visible{outline:none!important;box-shadow:none!important;border:0!important;background:transparent!important;border-radius:0;-webkit-appearance:none;appearance:none;min-width:0;flex:1 1 auto}
.search input::-webkit-search-decoration,.search input::-webkit-search-cancel-button{-webkit-appearance:none}
.search{transition:border-color .15s,box-shadow .15s}
.search:focus-within{border-color:#7c5cff!important;box-shadow:0 0 0 3px #7c5cff40!important}
.search>.ic{flex:none;pointer-events:none}
.search .s-back{flex:none}
/* Các ô nhập khác (bình luận, quản trị, cài đặt): viền tím + vòng mờ theo đúng bo góc của ô */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:#7c5cff;box-shadow:0 0 0 3px #7c5cff40}
.search input:not([type=checkbox]):focus-visible{box-shadow:none!important}
