:root{
  --bg:#070a10;--bg2:#0b111a;--panel:#101722;--panel2:#0d141e;
  --line:rgba(255,255,255,.075);--line2:rgba(255,255,255,.12);
  --text:#f5f7fb;--muted:#8b96a8;--muted2:#b4bdca;
  --neon:#67f58c;--neon2:#44d873;--cyan:#5ed8ff;--danger:#ff607b;--gold:#ffd25c;
  --r:18px;--shadow:0 16px 45px rgba(0,0,0,.28);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);color-scheme:dark}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,Arial,sans-serif;overscroll-behavior:none}
body{min-height:100vh;min-height:100dvh;overflow-x:hidden;background:radial-gradient(760px 360px at 50% -120px,rgba(37,77,112,.32),transparent 62%),linear-gradient(180deg,#08101a 0%,#070a10 44%,#070a10 100%)}
button,input{font:inherit}button{touch-action:manipulation}.bg-orb{display:none}
.app-shell{width:min(100%,560px);margin:0 auto;min-height:100dvh;padding:calc(14px + env(safe-area-inset-top)) 15px calc(104px + env(safe-area-inset-bottom));position:relative}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 1px 18px}.topbar>div:first-child{min-width:0}.eyebrow{display:block;font-size:9px;line-height:1.15;font-weight:800;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1;font-weight:950;letter-spacing:-.055em}h1 span{color:var(--neon)}
.profile-pill{flex:0 0 auto;max-width:132px;min-height:38px;display:flex;align-items:center;justify-content:center;padding:0 13px;border-radius:13px;background:#121a26;border:1px solid var(--line2);font-size:11px;line-height:1;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.view{display:none}.view.active{display:block;animation:fade .16s ease}@keyframes fade{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 1px 14px}.section-title h2{margin-top:3px;font-size:25px;line-height:1;font-weight:950;letter-spacing:-.045em}.subtext{color:var(--muted);font-size:12px;line-height:1.45;margin:-4px 1px 14px}

/* GAME */
.game-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:9px}.game-head>div{min-width:0;background:linear-gradient(180deg,#111824,#0e151f);border:1px solid var(--line);border-radius:15px;padding:9px 6px;text-align:center}.label{display:block;font-size:8px;line-height:1;font-weight:850;color:var(--muted);letter-spacing:.14em;margin-bottom:5px}.game-head b{display:block;font-size:19px;line-height:1;font-weight:900}
.game-mode-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#0d141e}.game-mode-card>div{min-width:0;display:flex;align-items:baseline;gap:6px;overflow:hidden}.game-mode-card span{flex:0 0 auto;font-size:10px;line-height:1.2;color:var(--muted);font-weight:800}.game-mode-card b{min-width:0;font-size:11px;line-height:1.2;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-mode-card p{max-width:150px;font-size:9px;line-height:1.3;text-align:right;color:#aab4c2}.game-mode-card[data-tier="6"],.game-mode-card[data-tier="7"],.game-mode-card[data-tier="8"]{border-color:rgba(168,101,255,.22);background:linear-gradient(90deg,rgba(146,79,245,.07),#0d141e 58%)}
.game-card{position:relative;border-radius:21px;padding:6px;background:linear-gradient(145deg,rgba(103,245,140,.16),rgba(94,216,255,.045));border:1px solid rgba(103,245,140,.24);box-shadow:var(--shadow)}canvas{display:block;width:100%;aspect-ratio:1;border-radius:16px;background:#06090e;touch-action:none}.game-overlay{position:absolute;inset:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:16px;background:rgba(6,9,14,.82);backdrop-filter:blur(10px);padding:20px}.game-overlay.hidden{display:none}.snake-logo{font-size:49px;line-height:1;filter:drop-shadow(0 0 20px rgba(103,245,140,.32))}.game-overlay h2{font-size:25px;line-height:1;font-weight:950;margin-top:8px}.game-overlay p{max-width:260px;color:var(--muted);font-size:11px;line-height:1.4;margin:8px 0 17px}
.primary,.secondary,.ghost,.buy,.admin-delete,.privilege-switch button{appearance:none;-webkit-appearance:none;cursor:pointer}.primary{border:0;background:var(--neon);color:#06110a;font-size:12px;line-height:1;font-weight:950;padding:13px 24px;border-radius:13px;box-shadow:0 8px 24px rgba(103,245,140,.13)}.primary:active{transform:translateY(1px);filter:brightness(.95)}.secondary{width:100%;border:1px solid var(--line2);background:#141c29;color:#fff;font-size:11px;line-height:1;font-weight:900;padding:13px;border-radius:13px}.ghost{border:1px solid var(--line2);background:#121925;color:#dce3ed;border-radius:12px;width:40px;height:40px;font-size:18px;line-height:1}
.controls{display:flex;flex-direction:column;align-items:center;gap:7px;margin:16px auto 4px}.controls>div{display:flex;justify-content:center;gap:10px}.controls button{display:flex;align-items:center;justify-content:center;width:62px;height:49px;margin:0;border:1.5px solid rgba(255,255,255,.12);border-radius:14px;background:#111823;color:#dce3ee;font-size:15px;line-height:1;font-weight:950;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.controls button:active{background:#182130;border-color:rgba(103,245,140,.3);transform:scale(.98)}.hint{text-align:center;color:#737e91;font-size:9px;line-height:1.3;margin-top:7px}

/* RANK + PROFILE */
.rank-card,.big-profile{border:1px solid rgba(103,245,140,.19);background:linear-gradient(145deg,rgba(103,245,140,.07),#0d141e 56%);border-radius:17px;padding:14px;margin-bottom:11px}.rank-row{display:flex;align-items:center;gap:11px}.rank-icon{flex:0 0 auto;font-size:31px;line-height:1}.rank-name{font-size:17px;line-height:1.12;font-weight:950}.small{font-size:9px;line-height:1.25;color:var(--muted)}.rank-name+.small{margin-top:3px}.progress{height:6px;background:rgba(255,255,255,.075);border-radius:999px;overflow:hidden;margin-top:11px}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--neon),var(--cyan));border-radius:inherit}
.rating-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 12px}.rating-tabs button{min-width:0;min-height:42px;border:1px solid var(--line2);border-radius:13px;background:#101722;color:#8f9aad;padding:0 8px;font-size:10px;line-height:1.15;font-weight:900;white-space:normal}.rating-tabs button.active{border-color:rgba(103,245,140,.30);background:rgba(103,245,140,.10);color:#f3fff6}.rating-panel{display:none}.rating-panel.active{display:block}.rating-caption{font-size:10px;line-height:1.35;color:var(--muted);margin:0 2px 9px}.leaderboard{display:flex;flex-direction:column;gap:7px}.leader{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;background:#0e151f;border:1px solid var(--line);border-radius:14px;padding:10px 11px}.leader.me{border-color:rgba(103,245,140,.32);background:rgba(103,245,140,.065)}.place{font-size:13px;line-height:1;font-weight:900;color:var(--muted)}.leader-name{min-width:0;font-weight:900;font-size:12px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-meta{font-size:9px;line-height:1.3;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.leader-score{min-width:50px;text-align:right;font-size:13px;font-weight:950}.priv-badge{display:inline-block;vertical-align:1px;font-size:7px;padding:2px 4px;border:1px solid rgba(255,210,92,.27);color:var(--gold);border-radius:5px;margin-left:4px}.my-place{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;margin:11px 0 2px;padding:11px 12px;border:1px solid rgba(94,216,255,.18);border-radius:13px;background:rgba(94,216,255,.045)}.my-place span{font-size:9px;color:var(--muted)}.my-place b{grid-row:1/3;grid-column:2;font-size:18px;line-height:1;color:var(--cyan)}.my-place em{font-size:10px;color:#c3ccd8;font-style:normal}
.big-profile .nick{font-size:22px;line-height:1.1;font-weight:950;overflow-wrap:anywhere}.big-profile .tg{font-size:10px;line-height:1.3;color:var(--muted);margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.stat{min-width:0;background:#0e151f;border:1px solid var(--line);border-radius:14px;padding:12px}.stat span{display:block;color:var(--muted);font-size:9px;line-height:1.2}.stat b{display:block;margin-top:4px;font-size:18px;line-height:1.05;overflow:hidden;text-overflow:ellipsis}.stats-grid .stat:last-child:nth-child(odd){grid-column:1/-1}

/* STORE */
.currency-card,.referral-card,.admin-owner-panel{background:#0e151f;border:1px solid var(--line);border-radius:17px;padding:14px;margin-bottom:10px}.currency-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-color:rgba(103,245,140,.16)}.currency-card>div:first-child span{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.currency-card b{font-size:16px;line-height:1;color:var(--neon)}.currency-note{max-width:145px;text-align:right;font-size:8px;line-height:1.35;color:#788396}.referral-card{border-color:rgba(94,216,255,.16)}.referral-head,.admin-owner-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.referral-card h3,.admin-owner-panel h3{margin-top:4px;font-size:17px;line-height:1.05;font-weight:950}.reward-pill,.stars-balance{flex:0 0 auto;padding:6px 8px;border:1px solid rgba(103,245,140,.24);border-radius:9px;color:var(--neon);font-size:10px;line-height:1;font-weight:950;white-space:nowrap}.referral-card p{font-size:10px;line-height:1.45;color:#aeb8c8;margin:10px 0}.ref-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:9px}.ref-stats>div{min-width:0;background:rgba(255,255,255,.028);border:1px solid var(--line);border-radius:10px;padding:8px}.ref-stats span{display:block;color:var(--muted);font-size:8px;line-height:1.15;margin-bottom:3px}.ref-stats b{display:block;font-size:12px;line-height:1.1;overflow:hidden;text-overflow:ellipsis}.ref-link{min-height:38px;display:flex;align-items:center;padding:9px 10px;border-radius:10px;background:#080d14;border:1px solid var(--line);font-size:9px;line-height:1.35;overflow-wrap:anywhere;color:#bdc7d6}.ref-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.compact{min-height:40px;padding:0 8px;font-size:9px}
.store-grid{display:grid;gap:10px}.product{position:relative;overflow:hidden;background:#0e151f;border:1px solid var(--line);border-radius:17px;padding:14px}.product.featured{border-color:rgba(94,216,255,.25);box-shadow:0 10px 35px rgba(42,128,160,.06)}.product h3{font-size:17px;line-height:1.15;margin:3px 0 0;font-weight:950}.product-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.price{flex:0 0 auto;font-size:16px;line-height:1.1;font-weight:950;color:var(--gold)}.product ul{padding-left:18px;margin:11px 0;color:#aeb8c8;font-size:10px;line-height:1.65}.product .equivalent{font-size:9px;line-height:1.35;color:var(--cyan);margin:-1px 0 10px}.buy-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(86px,.65fr);gap:7px}.buy{min-width:0;min-height:41px;border:0;border-radius:12px;padding:8px;background:#f2f4f7;color:#090c12;font-size:10px;line-height:1.15;font-weight:950}.buy-neon{background:rgba(103,245,140,.10);color:var(--neon);border:1px solid rgba(103,245,140,.25)}.buy:disabled{opacity:.45}

/* ADMIN */
.bottom-nav.admin-enabled{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.admin-summary>div{background:#0e151f;border:1px solid var(--line);border-radius:14px;padding:12px}.admin-summary span{display:block;color:var(--muted);font-size:9px}.admin-summary b{display:block;margin-top:4px;font-size:20px}.admin-summary .admin-alert{border-color:rgba(255,96,123,.20)}.admin-summary .admin-alert b{color:var(--danger)}.owner-balance{margin:10px 0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:9px}.owner-balance b{color:var(--neon);font-size:11px}.admin-control-label{font-size:8px;color:var(--muted);font-weight:850;letter-spacing:.09em;margin:10px 0 6px}.privilege-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.privilege-switch button{min-width:0;border:1px solid var(--line);background:rgba(255,255,255,.04);color:#b8c2d0;border-radius:9px;padding:9px 2px;font-size:8px;line-height:1;font-weight:900}.privilege-switch button.active{border-color:rgba(103,245,140,.38);color:var(--neon);background:rgba(103,245,140,.08)}.grant-grid{display:grid;grid-template-columns:minmax(0,1fr) 95px;gap:7px}.grant-grid input{min-width:0;background:#080d14;color:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:10px;outline:none}.grant-grid input:focus{border-color:rgba(103,245,140,.38)}.grant-grid button{grid-column:1/-1;width:100%;padding:11px;font-size:9px}.admin-list{display:flex;flex-direction:column;gap:8px}.admin-player{background:#0e151f;border:1px solid var(--line);border-radius:15px;padding:12px}.admin-player.suspicious{border-color:rgba(255,96,123,.38);background:rgba(255,96,123,.045)}.admin-player-head{display:flex;justify-content:space-between;align-items:flex-start;gap:9px}.admin-nick{font-size:14px;line-height:1.2;font-weight:950;overflow-wrap:anywhere}.admin-tg{font-size:9px;line-height:1.3;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.owner-badge,.suspicious-badge{display:inline-block;border-radius:6px;padding:3px 5px;font-size:7px;line-height:1;font-weight:950;letter-spacing:.04em}.owner-badge{color:var(--neon);border:1px solid rgba(103,245,140,.31);margin-left:4px}.suspicious-badge{flex:0 0 auto;color:#ff8fa3;border:1px solid rgba(255,96,123,.32);white-space:nowrap}.moderation-reason{margin-top:8px;padding:8px;border-radius:9px;background:rgba(255,96,123,.07);color:#ff98aa;font-size:9px;line-height:1.35}.admin-player-stats{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.admin-player-stats span{font-size:8px;line-height:1;color:#b6c0cf;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:7px;padding:5px 6px}.admin-delete{width:100%;margin-top:9px;border:1px solid rgba(255,96,123,.28);background:rgba(255,96,123,.07);color:#ff8fa3;border-radius:10px;padding:10px;font-weight:900;font-size:9px}.admin-delete:disabled{opacity:.42}

/* NAV */
.bottom-nav{position:fixed;z-index:30;bottom:calc(9px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(calc(100% - 24px),536px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;background:rgba(11,16,24,.94);border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:6px;border-radius:20px;box-shadow:0 14px 45px rgba(0,0,0,.38)}.bottom-nav button{min-width:0;min-height:55px;background:transparent;color:#7c8799;border:0;padding:6px 2px;border-radius:14px;font-size:8px;line-height:1;font-weight:850;white-space:nowrap}.bottom-nav button span{display:block;font-size:17px;line-height:1;margin-bottom:5px}.bottom-nav button.active{background:rgba(103,245,140,.10);color:#f7fff9}.bottom-nav button[hidden]{display:none!important}

/* MODAL / TOAST */
.modal{position:fixed;z-index:100;inset:0;display:none;place-items:center;padding:20px;background:rgba(0,0,0,.76);backdrop-filter:blur(8px)}.modal.show{display:grid}.modal-card{width:min(100%,390px);background:#101722;border:1px solid var(--line2);border-radius:21px;padding:20px;box-shadow:0 30px 90px rgba(0,0,0,.52)}.modal-card h2{font-size:24px;line-height:1;margin:5px 0 7px}.modal-card p{font-size:11px;line-height:1.4;color:var(--muted);margin-bottom:12px}.modal-card input{width:100%;border-radius:12px;border:1px solid var(--line2);background:#080d14;color:#fff;padding:13px 14px;outline:none;font-size:13px;font-weight:800}.modal-card input:focus{border-color:rgba(103,245,140,.48)}.modal-card .primary{width:100%;margin-top:11px}.input-help{font-size:8px;line-height:1.35;color:var(--muted);margin-top:7px}.error{min-height:16px;color:var(--danger);font-size:10px;line-height:1.3;margin-top:8px}.toast{position:fixed;z-index:200;left:50%;top:calc(12px + env(safe-area-inset-top));width:max-content;max-width:calc(100% - 30px);transform:translate(-50%,-70px);opacity:0;background:#161e2a;border:1px solid var(--line2);border-radius:12px;padding:10px 13px;font-size:10px;line-height:1.3;font-weight:750;transition:.22s;box-shadow:0 10px 35px rgba(0,0,0,.35);text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}

@media(min-width:520px){.controls{display:none}.game-card,.game-mode-card,.game-head{max-width:490px;margin-left:auto;margin-right:auto}.game-head{margin-bottom:9px}}
@media(max-width:390px){.app-shell{padding-left:12px;padding-right:12px}.topbar{margin-bottom:15px}h1{font-size:22px}.profile-pill{max-width:112px;padding:0 10px}.game-mode-card{grid-template-columns:1fr}.game-mode-card p{max-width:none;text-align:left}.rating-tabs button{font-size:9px}.buy-row{grid-template-columns:1fr 92px}.bottom-nav{width:calc(100% - 16px);bottom:calc(7px + env(safe-area-inset-bottom))}.bottom-nav button{font-size:7.5px}.bottom-nav.admin-enabled button{font-size:7px}.bottom-nav.admin-enabled button span{font-size:16px}.controls button{width:59px;height:47px}.controls>div{gap:8px}}
@media(max-width:350px){.app-shell{padding-left:10px;padding-right:10px}.profile-pill{max-width:98px}.game-head{gap:6px}.game-head b{font-size:17px}.leader{grid-template-columns:31px minmax(0,1fr) 46px;padding:9px}.ref-stats{gap:4px}.ref-stats>div{padding:7px 6px}.buy-row{grid-template-columns:1fr}.bottom-nav{padding:5px}.bottom-nav button{min-height:52px}.bottom-nav.admin-enabled button{font-size:6.5px}.controls button{width:55px;height:45px}}
@media(max-height:720px){.app-shell{padding-top:calc(10px + env(safe-area-inset-top))}.topbar{margin-bottom:13px}.game-head>div{padding:8px 5px}.game-mode-card{padding-top:8px;padding-bottom:8px;margin-bottom:8px}.controls{margin-top:11px}.controls button{height:44px}.hint{margin-top:4px}}

@media(max-width:360px){.app-shell{padding-left:11px;padding-right:11px}.controls>div{gap:8px}.controls button{width:57px}.bottom-nav.admin-enabled button{font-size:6.8px}}
@media(max-height:700px){.app-shell{padding-top:calc(9px + env(safe-area-inset-top))}.topbar{margin-bottom:12px}.game-head>div{padding:8px 5px}.game-mode-card{padding-top:8px;padding-bottom:8px;margin-bottom:8px}.controls{margin-top:10px}.controls button{height:43px}.hint{margin-top:3px}}

/* v7 admin / ranking controls */
.profile-note{margin-top:7px;text-align:center;font-size:8px;line-height:1.35;color:var(--muted)}
#changeNickBtn:disabled{opacity:.42;cursor:not-allowed}
.leader{position:relative}
.rating-remove{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:8px;border:1px solid rgba(255,96,123,.28);background:rgba(255,96,123,.08);color:#ff91a4;font-size:17px;line-height:18px;font-weight:800;padding:0;cursor:pointer}
.leader:has(.rating-remove) .leader-score{margin-right:20px}
.admin-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:11px}
.admin-tabs button{min-height:38px;border:1px solid var(--line);background:#0e151f;color:var(--muted);border-radius:11px;font-size:8px;line-height:1;font-weight:950;letter-spacing:.04em}
.admin-tabs button.active{border-color:rgba(103,245,140,.32);background:rgba(103,245,140,.08);color:#effff3}
.admin-tab-panel{display:none}.admin-tab-panel.active{display:block}
.admin-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}
.admin-stats-grid>div{min-width:0;background:#0e151f;border:1px solid var(--line);border-radius:14px;padding:11px}
.admin-stats-grid span{display:block;font-size:8px;line-height:1.25;color:var(--muted)}
.admin-stats-grid b{display:block;margin-top:5px;font-size:20px;line-height:1;color:#fff}
.reset-card{border:1px solid rgba(255,196,84,.18);background:rgba(255,196,84,.035);border-radius:15px;padding:12px;margin-bottom:10px}
.reset-card>div{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:9px}.reset-card b{font-size:10px}.reset-card span{font-size:8px;color:var(--muted);text-align:right}.reset-card p{font-size:8px;line-height:1.4;color:var(--muted);margin:8px 0 0}
.admin-danger,.admin-block,.admin-restore{appearance:none;-webkit-appearance:none;width:100%;border-radius:10px;padding:10px;font-size:9px;font-weight:950;cursor:pointer}
.admin-danger,.admin-block{border:1px solid rgba(255,96,123,.3);background:rgba(255,96,123,.075);color:#ff91a4}
.admin-restore{border:1px solid rgba(103,245,140,.28);background:rgba(103,245,140,.07);color:var(--neon);margin-top:9px}
.admin-block{margin-top:9px}.admin-block:disabled,.admin-restore:disabled,.admin-danger:disabled{opacity:.45}
.blocked-badge{display:inline-block;margin-left:4px;padding:3px 5px;border-radius:6px;border:1px solid rgba(255,96,123,.35);color:#ff91a4;font-size:7px;line-height:1;font-weight:950}
.admin-player.banned{opacity:.68}.admin-player.excluded{border-style:dashed}
.rating-state{flex:0 0 auto;font-size:7px;line-height:1;border:1px solid var(--line);border-radius:7px;padding:5px 6px;color:var(--muted)}

@media(max-width:350px){.admin-tabs button{font-size:7px}.admin-stats-grid b{font-size:18px}.rating-remove{width:21px;height:21px}}

/* v8 staged release */
.admin-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.release-card{background:#0e151f;border:1px solid rgba(94,216,255,.18);border-radius:17px;padding:14px}
.release-card h3{margin:5px 0 7px;font-size:17px}.release-card>p{font-size:9px;line-height:1.45;color:var(--muted)}
.release-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}
.release-grid>div{min-width:0;background:#090f17;border:1px solid var(--line);border-radius:11px;padding:9px}
.release-grid span{display:block;font-size:7.5px;color:var(--muted);margin-bottom:4px}.release-grid b{display:block;font-size:10px;overflow-wrap:anywhere}
.release-card textarea{width:100%;min-height:72px;resize:vertical;box-sizing:border-box;background:#080d14;color:#fff;border:1px solid var(--line);border-radius:11px;padding:10px;font:inherit;font-size:10px;outline:none}
.release-card textarea:focus{border-color:rgba(103,245,140,.38)}.release-approve{width:100%;margin-top:8px;min-height:42px}.release-approve:disabled{opacity:.42;cursor:not-allowed}.release-hint{margin:9px 0 0!important}
@media(max-width:390px){.admin-tabs button{font-size:6.8px}.release-grid{grid-template-columns:1fr}}

/* v9 progression + phone-first gameplay */
html,body{overflow-y:auto!important;overscroll-behavior-x:none;overscroll-behavior-y:contain;scroll-behavior:smooth}
body{-webkit-overflow-scrolling:touch}
#gameView{padding-bottom:clamp(120px,20vh,190px)}
.game-card{scroll-margin-top:calc(8px + env(safe-area-inset-top))}
.controls{display:flex!important;gap:10px;margin:18px auto 8px;user-select:none;-webkit-user-select:none}
.controls>div{gap:10px}
.controls button{width:clamp(94px,29vw,112px)!important;height:clamp(74px,22vw,92px)!important;border-width:2px!important;border-radius:22px!important;font-size:clamp(24px,7vw,30px)!important;background:linear-gradient(180deg,#151f2e,#0e1622)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 9px 26px rgba(0,0,0,.22)!important}
.controls button:active{background:linear-gradient(180deg,#1b293a,#121e2d)!important;border-color:rgba(103,245,140,.52)!important;transform:scale(.96)!important}
.game-perks{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:10px auto 4px;max-width:360px}
.game-perks button{appearance:none;-webkit-appearance:none;min-height:43px;border-radius:13px;border:1px solid rgba(94,216,255,.22);background:rgba(94,216,255,.07);color:#bceeff;padding:0 14px;font-size:9px;font-weight:950;letter-spacing:.03em}
.game-perks button:last-child{border-color:rgba(255,210,92,.26);background:rgba(255,210,92,.07);color:#ffe7a0}
.game-perks button:disabled{opacity:.42}
.game-pause-overlay{position:absolute;z-index:4;inset:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:16px;background:rgba(6,9,14,.94);backdrop-filter:blur(12px);padding:22px}
.game-pause-overlay[hidden]{display:none!important}.pause-icon{font-size:42px;line-height:1}.game-pause-overlay h2{margin-top:8px;font-size:25px}.game-pause-overlay p{max-width:250px;margin:8px 0 16px;color:var(--muted);font-size:10px;line-height:1.4}
.game-device-blocked .controls,.game-device-blocked .game-perks{display:none!important}.game-device-blocked #game{opacity:.54;filter:saturate(.7)}.game-device-blocked #gameOverlay{background:rgba(6,9,14,.91)}

.title-card,.level-card{margin-top:10px;border:1px solid rgba(183,106,255,.20);border-radius:14px;background:linear-gradient(135deg,rgba(183,106,255,.075),rgba(94,216,255,.035));padding:11px}
.title-line{display:flex;align-items:center;gap:9px}.title-icon{flex:0 0 auto;font-size:24px;filter:drop-shadow(0 0 12px rgba(183,106,255,.28))}.title-line>div{min-width:0}.title-line span:not(.title-icon),.level-card span{display:block;color:var(--muted);font-size:7px;line-height:1;letter-spacing:.13em;font-weight:850}.title-line b,.level-card b{display:block;margin-top:4px;font-size:13px;line-height:1.1;font-weight:950;overflow-wrap:anywhere}.title-line small,.level-card small{display:block;margin-top:3px;color:#8f9bad;font-size:8px;line-height:1.3}.title-progress,.level-progress{margin-top:8px}.title-progress>i{background:linear-gradient(90deg,#b76aff,#5ed8ff,#67f58c)}.level-card{border-color:rgba(94,216,255,.18);background:linear-gradient(135deg,rgba(94,216,255,.055),rgba(103,245,140,.025))}.level-progress>i{background:linear-gradient(90deg,var(--cyan),var(--neon))}
.leader-title{margin-top:3px;color:#cda8ff;font-size:8px;line-height:1.25;font-weight:850;overflow-wrap:anywhere}.leader-title span{color:#7fa9b9;font-weight:800}.leader-meta{margin-top:3px}

@media(max-width:390px){
  #gameView{padding-bottom:150px}
  .controls{margin-top:16px}
  .controls>div{gap:8px}
  .controls button{width:clamp(92px,28vw,105px)!important;height:clamp(72px,21vw,84px)!important}
}
@media(max-width:350px){
  .controls>div{gap:6px}
  .controls button{width:92px!important;height:72px!important;font-size:23px!important;border-radius:19px!important}
}
@media(max-height:700px){#gameView{padding-bottom:170px}.controls button{height:78px!important}.topbar{margin-bottom:10px}}


/* v9.0.2 Android Telegram WebView scroll hardening */
:root{--app-viewport-height:100dvh}
html,body{height:100%!important;min-height:100%!important;overflow:hidden!important;overscroll-behavior:none!important}
body{position:relative}
.app-shell{
  height:var(--app-viewport-height,100dvh)!important;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:scroll!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  scroll-padding-top:8px;
  scroll-padding-bottom:calc(126px + env(safe-area-inset-bottom));
}
#gameView{min-height:max-content;padding-bottom:clamp(170px,24vh,230px)!important}
.game-card{touch-action:pan-y}
.game-card canvas{touch-action:none}
.controls,.controls>div{touch-action:pan-y}
.controls button{touch-action:manipulation}
/* Mobile Telegram can report a CSS viewport wider than 520px (landscape/foldables).
   Do not hide touch controls by width; access is already guarded by Telegram platform. */
@media(min-width:520px){.controls{display:flex!important}}
html[data-tg-platform="android"] .app-shell{overflow-y:scroll!important;touch-action:pan-y!important}
html[data-tg-platform="android"] #gameView{padding-bottom:max(210px,26vh)!important}
