:root{
  --primary:#00f0ff;--secondary:#bc13fe;--accent:#ff006e;
  --success:#00ff88;--warning:#ffbe0b;--danger:#ff4444;
  --bg:#09090f;--bg2:#0f0f1a;--card:rgba(255,255,255,0.04);
  --border:rgba(255,255,255,0.08);--text:#e2e2e2;--muted:#666;
  --glow:0 0 20px rgba(0,240,255,0.4);--glow-sm:0 0 10px rgba(0,240,255,0.25);
  --red-glow:0 0 20px rgba(255,0,110,0.5);
  --blue-glow:0 0 20px rgba(0,240,255,0.6);
  --purple-glow:0 0 20px rgba(188,19,254,0.5);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Segoe UI',system-ui,sans-serif;
  background:var(--bg);
  background-image:
    linear-gradient(rgba(0,240,255,0.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,240,255,0.025) 1px,transparent 1px);
  background-size:48px 48px;
  color:var(--text);min-height:100vh;overflow-x:hidden;
}
#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.5;}

/* GLASS */
.glass{background:var(--card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:16px;}

/* LANG */
.language-switcher{position:fixed;top:18px;left:18px;z-index:1000;display:flex;gap:4px;}
.lang-btn{background:var(--card);border:1px solid var(--border);color:var(--muted);padding:6px 11px;border-radius:8px;cursor:pointer;font-size:11px;font-weight:700;transition:all .25s;}
.lang-btn:hover,.lang-btn.active{background:var(--primary);color:var(--bg);border-color:var(--primary);}

/* NAV */
.main-nav{position:fixed;top:16px;right:18px;left:130px;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;z-index:100;}
.logo{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800;}
.logo-icon{color:var(--primary);text-shadow:var(--glow-sm);}
.logo-text{background:linear-gradient(90deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.nav-links{display:flex;gap:24px;}
.nav-links a{color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s;cursor:pointer;}
.nav-links a:hover{color:var(--primary);}
.auth-buttons{display:flex;gap:8px;align-items:center;}
#user-info{display:flex;align-items:center;gap:10px;}
#user-name-display{color:var(--primary);font-weight:700;font-size:14px;}
.score-badge{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--bg);padding:4px 12px;border-radius:20px;font-size:12px;font-weight:800;}

/* BUTTONS */
.btn{padding:10px 22px;border:none;border-radius:10px;cursor:pointer;font-weight:600;font-size:14px;transition:all .25s;font-family:inherit;}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--bg);}
.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary);}
.btn-success{background:linear-gradient(135deg,var(--success),#00cc6a);color:var(--bg);}
.btn-danger{background:linear-gradient(135deg,var(--accent),var(--danger));color:#fff;}
.btn:hover{transform:translateY(-2px);filter:brightness(1.1);}
.btn-glow:hover{box-shadow:var(--glow);}
.btn-large{padding:14px 36px;font-size:17px;border-radius:14px;}
.btn-small{padding:5px 14px;font-size:12px;border-radius:8px;}
.w-full{width:100%;}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}

/* PAGES */
.page{display:none;min-height:100vh;}
.page.active{display:block !important;}
.hidden{display:none !important;}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:100px 20px 40px;}
.hero-content{max-width:720px;}
.hero-badge{display:inline-block;background:rgba(0,240,255,0.08);border:1px solid rgba(0,240,255,0.2);color:var(--primary);padding:6px 18px;border-radius:20px;font-size:13px;margin-bottom:24px;}
.hero-title{font-size:68px;font-weight:900;line-height:1.05;color:#fff;margin-bottom:18px;text-shadow:0 0 40px rgba(0,240,255,0.2);}
.hero-title .accent{background:linear-gradient(90deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.hero-sub{font-size:18px;color:var(--muted);margin-bottom:36px;line-height:1.6;}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:56px;}
.stats-row{display:flex;justify-content:center;gap:56px;}
.stat{text-align:center;}
.stat-num{display:block;font-size:34px;font-weight:800;color:var(--primary);text-shadow:var(--glow-sm);}
.stat-lbl{color:var(--muted);font-size:13px;}

/* CENTER PAGE */
.center-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 20px 40px;}
.page-title{font-size:32px;font-weight:800;color:var(--primary);text-align:center;margin-bottom:36px;}

/* MODAL */
.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.85);z-index:5000;align-items:center;justify-content:center;}
.modal.active{display:flex;animation:fadeIn .25s;}
.modal-content{padding:36px;max-width:440px;width:90%;position:relative;animation:slideUp .3s;}
.modal-content h2{color:var(--primary);margin-bottom:20px;font-size:22px;}
.close-btn{position:absolute;top:14px;right:18px;font-size:26px;cursor:pointer;color:var(--muted);line-height:1;transition:color .2s;}
.close-btn:hover{color:var(--accent);}
.form-group{display:flex;flex-direction:column;gap:12px;}
.form-input{width:100%;padding:12px 16px;background:rgba(255,255,255,0.05);border:1px solid var(--border);color:var(--text);border-radius:10px;font-size:14px;outline:none;transition:border-color .2s;font-family:inherit;}
.form-input:focus{border-color:var(--primary);}
.form-input option{background:var(--bg2);}
.auth-toggle{text-align:center;margin-top:16px;color:var(--muted);font-size:13px;}
.auth-toggle a{color:var(--primary);margin-left:6px;}
.select-label{font-size:12px;color:var(--muted);margin-bottom:2px;display:block;margin-top:8px;}

/* ROLE CARDS */
.role-cards{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;}
.role-card{padding:40px 32px;text-align:center;width:280px;cursor:pointer;transition:all .3s;}
.role-card:hover{transform:translateY(-8px);border-color:var(--primary);box-shadow:var(--glow);}
.role-icon{font-size:56px;margin-bottom:16px;}
.role-card h3{font-size:22px;margin-bottom:10px;color:#fff;}
.role-card p{color:var(--muted);font-size:14px;margin-bottom:20px;line-height:1.5;}

/* TEACHER DASHBOARD */
.container{max-width:1100px;margin:0 auto;padding:100px 20px 40px;}
.teacher-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.dash-card{padding:28px;}
.dash-card h3{font-size:17px;font-weight:700;margin-bottom:12px;}
.room-code-box{margin-top:16px;padding:16px;background:rgba(0,240,255,0.05);border:1px solid rgba(0,240,255,0.2);border-radius:12px;text-align:center;}
.big-code{font-size:36px;font-weight:900;color:var(--primary);letter-spacing:8px;text-shadow:var(--glow);font-family:monospace;margin:8px 0;}
.count-badge{display:inline-block;background:var(--primary);color:var(--bg);padding:2px 10px;border-radius:20px;font-size:12px;font-weight:800;margin-left:8px;}
.students-list{max-height:200px;overflow-y:auto;margin:12px 0;}
.student-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--border);}
.student-row .sname{font-weight:600;font-size:14px;}
.student-row .sonline{font-size:11px;padding:3px 10px;border-radius:20px;background:var(--success);color:var(--bg);font-weight:700;}
.roulette-box{margin:12px 0;padding:14px;border-radius:12px;background:rgba(188,19,254,0.08);border:1px solid rgba(188,19,254,0.3);text-align:center;font-size:15px;line-height:1.8;}
.teacher-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;}

/* CHAT */
.chat-msgs{height:180px;overflow-y:auto;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;scroll-behavior:smooth;}
.chat-msg{margin-bottom:8px;}
.chat-msg .cname{color:var(--primary);font-weight:700;font-size:12px;}
.chat-msg .ctext{color:var(--text);font-size:13px;margin-top:2px;}
.chat-row{display:flex;gap:8px;}
.chat-row .form-input{flex:1;}

/* JOIN */
.join-options{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;}
.join-card{padding:36px 28px;text-align:center;width:300px;display:flex;flex-direction:column;align-items:center;}
.join-icon{font-size:52px;margin-bottom:14px;}
.join-card h3{font-size:20px;font-weight:700;margin-bottom:8px;color:#fff;}
.join-card p{color:var(--muted);font-size:13px;margin-bottom:16px;}
.code-input{text-align:center;letter-spacing:8px;font-size:22px;font-weight:800;text-transform:uppercase;color:var(--primary);}

/* WAITING */
.waiting-card{padding:40px;text-align:center;max-width:560px;width:90%;}
.waiting-card h2{color:var(--primary);margin-bottom:20px;}
.waiting-code-row{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px;font-size:16px;}
.waiting-players{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0;min-height:40px;}
.waiting-player-tag{padding:6px 16px;background:rgba(0,240,255,0.1);border:1px solid rgba(0,240,255,0.25);border-radius:20px;font-size:13px;font-weight:600;}
.waiting-status{margin-top:16px;color:var(--warning);}
.waiting-status p{font-size:14px;margin-top:8px;}
.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .9s linear infinite;margin:0 auto;}

/* ═══ GAME PAGE ═══ */
.game-topbar{position:fixed;top:16px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;z-index:100;}
.game-type-badge{font-weight:700;font-size:15px;color:var(--primary);}
.game-timer-wrap{text-align:center;}
.game-timer{font-size:38px;font-weight:900;font-family:monospace;color:#fff;line-height:1;}
.game-timer.urgent{color:var(--accent);animation:pulse .4s infinite;}
.timer-bar{width:120px;height:4px;background:var(--border);border-radius:2px;margin:4px auto 0;overflow:hidden;}
.timer-fill{height:100%;background:var(--primary);border-radius:2px;transition:width 1s linear;}
.game-score-display{display:flex;gap:12px;align-items:center;font-weight:600;}

.game-layout{display:grid;grid-template-columns:240px 1fr;gap:20px;padding:92px 18px 20px;min-height:100vh;}
.game-sidebar{padding:20px;height:fit-content;position:sticky;top:88px;}
.game-sidebar h4{color:var(--primary);margin-bottom:14px;font-size:15px;}
.scoreboard-list{display:flex;flex-direction:column;gap:8px;}
.sb-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,0.04);font-size:13px;}
.sb-row.me{border:1px solid rgba(0,240,255,0.3);}
.sb-name{font-weight:600;}
.sb-score{color:var(--primary);font-weight:800;font-family:monospace;}
.vs-display{margin-top:16px;text-align:center;padding:12px;border-radius:10px;background:rgba(188,19,254,0.06);border:1px solid rgba(188,19,254,0.2);}
.vs-player{font-weight:700;font-size:14px;padding:4px;}
.vs-text{color:var(--accent);font-weight:900;font-size:22px;margin:4px 0;text-shadow:var(--red-glow);}

.game-main{display:flex;flex-direction:column;gap:16px;position:relative;}
.question-card{padding:28px;position:relative;overflow:hidden;}
.question-header{display:flex;gap:10px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}
.q-type-tag{background:rgba(0,240,255,0.1);color:var(--primary);padding:4px 12px;border-radius:20px;font-size:13px;font-weight:700;}
.lang-tag{background:rgba(188,19,254,0.1);color:var(--secondary);padding:4px 12px;border-radius:20px;font-size:13px;font-weight:700;}
.level-tag{background:rgba(255,190,11,0.1);color:var(--warning);padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;}
.question-task{font-size:15px;color:var(--text);margin-bottom:14px;line-height:1.6;padding:12px 16px;background:rgba(255,190,11,0.06);border:1px solid rgba(255,190,11,0.15);border-radius:10px;}
.code-block{background:#0d1117;color:#a9dc76;padding:20px;border-radius:12px;font-family:'Courier New',monospace;font-size:15px;line-height:1.7;border:1px solid #2a2a3a;overflow-x:auto;white-space:pre;margin-bottom:20px;}

/* ANSWER GRID */
.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ans-btn{padding:16px;border-radius:12px;background:rgba(255,255,255,0.04);border:2px solid var(--border);color:var(--text);font-size:15px;font-family:'Courier New',monospace;cursor:pointer;transition:all .2s;text-align:center;}
.ans-btn:hover:not(:disabled){border-color:var(--primary);background:rgba(0,240,255,0.08);transform:translateY(-2px);}
.ans-btn.correct{border-color:var(--success)!important;background:rgba(0,255,136,0.12)!important;color:var(--success)!important;}
.ans-btn.wrong{border-color:var(--accent)!important;background:rgba(255,0,110,0.1)!important;color:var(--accent)!important;}
.ans-btn:disabled{cursor:default;}

/* RESULT BANNER */
.result-banner{margin-top:14px;padding:14px 20px;border-radius:12px;font-weight:700;font-size:16px;text-align:center;animation:slideUp .3s;}
.result-banner.correct{background:rgba(0,255,136,0.12);border:1px solid var(--success);color:var(--success);}
.result-banner.wrong{background:rgba(255,0,110,0.1);border:1px solid var(--accent);color:var(--accent);}
.result-banner.perfect{background:rgba(255,190,11,0.12);border:1px solid var(--warning);color:var(--warning);}
.action-row{display:flex;gap:14px;justify-content:center;}

/* ═══ BUG HUNTER CYBER STYLE ═══ */
.bug-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:5;pointer-events:none;border-radius:16px;overflow:hidden;border:2px solid transparent;}
.bug-overlay.active{border-color:var(--accent);box-shadow:inset 0 0 30px rgba(255,0,110,0.2),var(--red-glow);}
.scan-line{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:scanDown 2s linear infinite;opacity:0;}
.bug-overlay.active .scan-line{opacity:1;}
@keyframes scanDown{0%{top:0;}100%{top:100%;}}
.bug-warning{position:absolute;top:10px;right:10px;background:rgba(255,0,110,0.15);border:1px solid var(--accent);color:var(--accent);padding:4px 12px;border-radius:6px;font-size:11px;font-weight:700;opacity:0;animation:none;}
.bug-overlay.active .bug-warning{opacity:1;animation:blink 1s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0.3;};}

/* Bug Hunter — code block special */
.page-game.bughunter .code-block{border-color:#ff006e;box-shadow:inset 0 0 20px rgba(255,0,110,0.1),0 0 15px rgba(255,0,110,0.2);}
.page-game.bughunter .game-topbar{border-color:rgba(255,0,110,0.3);}
.page-game.bughunter .game-type-badge{color:var(--accent);text-shadow:var(--red-glow);}
.page-game.bughunter .timer-fill{background:var(--accent);}
.page-game.bughunter .game-timer.urgent{text-shadow:var(--red-glow);}

/* NeuroRush SPEED style */
.page-game.neurorush .game-timer{color:var(--primary);text-shadow:var(--blue-glow);font-size:46px;}
.page-game.neurorush .timer-fill{background:linear-gradient(90deg,var(--primary),var(--secondary));}
.page-game.neurorush .ans-btn{transition:all .1s;border-width:2px;}
.page-game.neurorush .ans-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--glow);}
.page-game.neurorush .code-block{border-color:rgba(0,240,255,0.3);box-shadow:0 0 20px rgba(0,240,255,0.1);}
.page-game.neurorush .question-card{border-color:rgba(0,240,255,0.2);}

/* Code Clash PvP style */
.page-game.codeclash .vs-display{display:block!important;}
.page-game.codeclash .game-type-badge{color:var(--secondary);text-shadow:var(--purple-glow);}
.page-game.codeclash .timer-fill{background:linear-gradient(90deg,var(--secondary),var(--accent));}
.page-game.codeclash .code-block{border-color:rgba(188,19,254,0.3);box-shadow:0 0 20px rgba(188,19,254,0.1);}

/* Solo Code Hero style */
.page-game.solo .game-sidebar{border-color:rgba(0,255,136,0.2);}
.page-game.solo .timer-fill{background:linear-gradient(90deg,var(--success),var(--primary));}
.page-game.solo .game-type-badge{color:var(--success);}

/* SHOWCASE CARDS special */
.bughunter-card:hover{border-color:var(--accent)!important;box-shadow:var(--red-glow)!important;}
.neurorush-card:hover{border-color:var(--primary)!important;box-shadow:var(--blue-glow)!important;}
.codeclash-card:hover{border-color:var(--secondary)!important;box-shadow:var(--purple-glow)!important;}
.solo-card:hover{border-color:var(--success)!important;box-shadow:0 0 20px rgba(0,255,136,0.4)!important;}
.tag-red{background:rgba(255,0,110,0.1);border:1px solid rgba(255,0,110,0.3);color:var(--accent);}
.tag-blue{background:rgba(0,240,255,0.1);border:1px solid rgba(0,240,255,0.3);color:var(--primary);}
.tag-purple{background:rgba(188,19,254,0.1);border:1px solid rgba(188,19,254,0.3);color:var(--secondary);}
.tag-green{background:rgba(0,255,136,0.1);border:1px solid rgba(0,255,136,0.3);color:var(--success);}

/* OVERLAYS */
.full-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.92);z-index:4000;display:flex;align-items:center;justify-content:center;}
.countdown-box{text-align:center;}
.countdown-num{font-size:160px;font-weight:900;color:var(--primary);text-shadow:var(--glow);animation:countPop .8s;font-family:monospace;line-height:1;}
.countdown-box p{color:var(--muted);font-size:18px;margin-top:16px;}
.victory-box{padding:56px 48px;text-align:center;max-width:520px;width:90%;animation:victoryPop .5s;}
.victory-box h2{font-size:42px;color:var(--success);text-shadow:0 0 30px var(--success);margin:12px 0;}
.vs-score-row{display:flex;justify-content:space-between;padding:8px 16px;font-size:16px;}
.vs-score-row .vname{font-weight:600;}
.vs-score-row .vpts{color:var(--primary);font-weight:800;font-family:monospace;}
.victory-actions{display:flex;gap:14px;justify-content:center;margin-top:24px;}
.victory-winner{font-size:20px;margin:8px 0;color:var(--warning);}
.victory-scores{margin:16px 0;}

/* LEADERBOARD */
.lb-table{overflow:hidden;}
.lb-header{display:grid;grid-template-columns:50px 2fr 1fr 1fr 1fr;padding:14px 20px;background:rgba(0,240,255,0.05);color:var(--primary);font-weight:700;font-size:13px;border-bottom:1px solid var(--border);}
.lb-row{display:grid;grid-template-columns:50px 2fr 1fr 1fr 1fr;padding:13px 20px;border-bottom:1px solid var(--border);align-items:center;font-size:14px;transition:background .2s;}
.lb-row:hover{background:rgba(255,255,255,0.03);}
.lb-row.top{background:rgba(0,240,255,0.03);}
.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-weight:800;font-size:13px;}
.r1{background:gold;color:#000;}.r2{background:silver;color:#000;}.r3{background:#cd7f32;color:#fff;}

/* SHOWCASE */
.showcase-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.showcase-card{padding:30px;text-align:center;cursor:pointer;transition:all .3s;}
.showcase-card:hover{transform:translateY(-8px);border-color:var(--primary);box-shadow:var(--glow);}
.sc-icon{font-size:46px;margin-bottom:14px;}
.showcase-card h3{color:var(--primary);font-size:18px;margin-bottom:8px;}
.showcase-card p{color:var(--muted);font-size:13px;line-height:1.6;margin-bottom:14px;}
.sc-tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;}
.tag{padding:3px 12px;border-radius:20px;background:rgba(0,240,255,0.08);border:1px solid rgba(0,240,255,0.18);color:var(--primary);font-size:11px;font-weight:700;}

/* NOTIFICATION */
.notification{position:fixed;bottom:24px;right:24px;padding:14px 22px;border-radius:12px;background:rgba(9,9,15,0.95);border:1px solid var(--primary);color:var(--text);font-size:14px;font-weight:500;transform:translateX(400px);transition:transform .4s cubic-bezier(.34,1.56,.64,1);z-index:9999;max-width:320px;backdrop-filter:blur(10px);}
.notification.show{transform:translateX(0);}
.notification.success{border-color:var(--success);}
.notification.error{border-color:var(--accent);}
.notification.warning{border-color:var(--warning);}

/* SCROLLBAR */
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(0,240,255,0.3);border-radius:3px;}

/* ANIMATIONS */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes countPop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
@keyframes victoryPop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}
@keyframes glitch{0%,100%{transform:translate(0)}20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,2px)}80%{transform:translate(1px,-2px)}}
@keyframes neonPulse{0%,100%{box-shadow:0 0 5px var(--primary)}50%{box-shadow:0 0 20px var(--primary),0 0 40px var(--primary)}}

/* RESPONSIVE */
@media(max-width:900px){
  .main-nav{left:18px;flex-wrap:wrap;gap:10px;top:70px;padding:10px 16px;}
  .hero-title{font-size:40px;} .hero{padding-top:170px;}
  .teacher-grid{grid-template-columns:1fr;}
  .game-layout{grid-template-columns:1fr;}
  .game-sidebar{position:static;}
  .answer-grid{grid-template-columns:1fr;}
  .role-cards,.join-options{flex-direction:column;align-items:center;}
  .lb-header,.lb-row{grid-template-columns:40px 2fr 1fr 1fr;}
  .lb-header span:nth-child(3),.lb-row span:nth-child(3){display:none;}
}

/* ===== GAME TYPE THEMES ===== */

/* Bug Hunter — cyberpunk red */
.game-bughunter .question-card,
.bug-card {
    border-color: rgba(255,0,110,0.4) !important;
    box-shadow: 0 0 30px rgba(255,0,110,0.15) !important;
}
.game-bughunter .code-block {
    border-color: rgba(255,0,110,0.3);
    box-shadow: inset 0 0 20px rgba(255,0,110,0.1);
}
.game-bughunter .game-topbar {
    border-color: rgba(255,0,110,0.3);
}
.game-bughunter .game-type-badge { color: #ff006e; }
.game-bughunter .question-task {
    background: rgba(255,0,110,0.08);
    border-color: rgba(255,0,110,0.25);
    color: #ff5599;
    font-family: 'Courier New', monospace;
}
.game-bughunter .q-type-tag {
    background: rgba(255,0,110,0.15);
    color: #ff006e;
    border: 1px solid rgba(255,0,110,0.3);
    animation: glitchPulse 2s infinite;
}
@keyframes glitchPulse {
    0%,100%{ text-shadow: none; }
    50%{ text-shadow: 2px 0 #ff006e, -2px 0 #00f0ff; }
}
.game-bughunter .ans-btn:hover:not(:disabled) {
    border-color: #ff006e;
    background: rgba(255,0,110,0.1);
    box-shadow: 0 0 15px rgba(255,0,110,0.3);
}

/* Bug overlay warning */
.bug-overlay {
    position: absolute; top: 0; left: 0; right: 0;
    padding: 8px 16px;
    background: rgba(255,0,110,0.1);
    border: 1px solid rgba(255,0,110,0.4);
    border-radius: 10px 10px 0 0;
    color: #ff006e;
    font-family: monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    animation: scanline 1.5s infinite;
    z-index: 5;
}
@keyframes scanline {
    0%,100%{ background: rgba(255,0,110,0.08); }
    50%{ background: rgba(255,0,110,0.18); }
}

/* NeuroRush — electric speed */
.game-neurorush .question-card,
.neuro-card {
    border-color: rgba(255,190,11,0.4) !important;
    box-shadow: 0 0 30px rgba(255,190,11,0.15) !important;
}
.game-neurorush .game-timer {
    color: #ffbe0b;
    text-shadow: 0 0 20px #ffbe0b;
    font-size: 52px !important;
}
.game-neurorush .timer-fill { background: #ffbe0b !important; }
.game-neurorush .game-type-badge { color: #ffbe0b; }
.game-neurorush .q-type-tag {
    background: rgba(255,190,11,0.12);
    color: #ffbe0b;
    border: 1px solid rgba(255,190,11,0.3);
}
.game-neurorush .ans-btn {
    transition: all 0.1s !important;
}
.game-neurorush .ans-btn:hover:not(:disabled) {
    border-color: #ffbe0b;
    background: rgba(255,190,11,0.12);
    box-shadow: 0 0 20px rgba(255,190,11,0.3);
    transform: translateY(-4px) scale(1.02);
}

/* Code Clash — PvP arena */
.game-codeclash .question-card,
.clash-card {
    border-color: rgba(188,19,254,0.4) !important;
    box-shadow: 0 0 30px rgba(188,19,254,0.15) !important;
}
.game-codeclash .game-type-badge { color: var(--secondary); }
.game-codeclash .q-type-tag {
    background: rgba(188,19,254,0.12);
    color: var(--secondary);
    border: 1px solid rgba(188,19,254,0.3);
}
.game-codeclash .game-timer {
    color: var(--secondary);
    text-shadow: 0 0 20px var(--secondary);
}
.game-codeclash .timer-fill { background: var(--secondary) !important; }
.game-codeclash .ans-btn:hover:not(:disabled) {
    border-color: var(--secondary);
    background: rgba(188,19,254,0.1);
    box-shadow: 0 0 15px rgba(188,19,254,0.3);
}

/* Predict — default cyan */
.game-predict .q-type-tag { background: rgba(0,240,255,0.12); color: var(--primary); }

/* Solo — green */
.game-solo .question-card {
    border-color: rgba(0,255,136,0.3) !important;
}
.game-solo .q-type-tag {
    background: rgba(0,255,136,0.1);
    color: var(--success);
}
.game-solo .game-type-badge { color: var(--success); }

/* Question card — relative for bug-overlay */
.question-card { position: relative; overflow: visible; }

/* Result banners — game specific */
.result-banner.correct.bughunter-ok {
    background: rgba(0,255,136,0.15);
    border: 1px solid var(--success);
    color: var(--success);
    font-family: monospace;
    font-size: 18px;
    letter-spacing: 2px;
}
.result-banner.wrong.bughunter-fail {
    background: rgba(255,0,110,0.15);
    border: 1px solid var(--accent);
    color: var(--accent);
    font-family: monospace;
    animation: glitchShake 0.3s;
}
@keyframes glitchShake {
    0%,100%{ transform: translateX(0); }
    20%{ transform: translateX(-5px); }
    40%{ transform: translateX(5px); }
    60%{ transform: translateX(-3px); }
    80%{ transform: translateX(3px); }
}

/* ===== PRICING PAGE ===== */
.pricing-compare {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 24px;
    max-width: 860px;
    margin: 0 auto;
}
.pricing-col { padding: 32px; }
.pricing-header { margin-bottom: 24px; }
.pricing-header h3 { font-size: 22px; margin-bottom: 10px; }
.pricing-price {
    font-size: 42px; font-weight: 900;
    color: var(--primary); line-height: 1;
}
.pricing-price span { font-size: 16px; color: var(--muted); font-weight: 400; }
.pricing-features { list-style: none; margin-bottom: 24px; }
.pricing-features li { padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 14px; }
.pricing-features li.has { color: var(--text); }
.pricing-features li.no  { color: var(--muted); }
.featured-col {
    border-color: var(--primary) !important;
    box-shadow: var(--glow) !important;
    position: relative;
}
.popular-badge {
    position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: var(--bg); padding: 5px 20px; border-radius: 20px;
    font-size: 12px; font-weight: 800; white-space: nowrap;
}
.price-toggle {
    display: flex; gap: 6px; margin: 12px 0;
}
.ptoggle {
    padding: 6px 18px; border-radius: 20px;
    border: 1px solid var(--border);
    background: transparent; color: var(--muted);
    cursor: pointer; font-size: 13px; font-weight: 600;
    font-family: inherit; transition: all 0.2s;
}
.ptoggle.active {
    background: var(--primary); color: var(--bg);
    border-color: var(--primary);
}
.price-note { color: var(--success); font-size: 13px; margin-top: 4px; }
.pay-note { color: var(--muted); font-size: 12px; text-align: center; margin-top: 8px; }

/* FAQ */
.faq-item { margin-bottom: 10px; overflow: hidden; }
.faq-q {
    padding: 14px 18px; cursor: pointer;
    font-weight: 600; font-size: 14px;
    display: flex; justify-content: space-between;
    user-select: none;
}
.faq-q:hover { color: var(--primary); }
.faq-a {
    padding: 0 18px; max-height: 0; overflow: hidden;
    transition: all 0.3s; color: var(--muted); font-size: 13px;
    line-height: 1.7;
}
.faq-a.open { max-height: 120px; padding: 0 18px 14px; }

/* ===== PAYMENT MODAL ===== */
.pay-plans { display: flex; gap: 16px; margin-bottom: 8px; }
.pay-plan {
    flex: 1; padding: 20px; cursor: pointer;
    transition: all 0.3s; position: relative;
}
.pay-plan:hover, .pay-plan.selected {
    border-color: var(--primary);
    box-shadow: var(--glow);
    transform: translateY(-3px);
}
.pay-plan.featured {
    border-color: var(--primary);
    box-shadow: var(--glow-sm);
}
.plan-badge-top {
    position: absolute; top: -10px; right: 12px;
    background: linear-gradient(135deg,var(--primary),var(--secondary));
    color: var(--bg); padding: 3px 12px;
    border-radius: 20px; font-size: 11px; font-weight: 800;
}
.plan-top { margin-bottom: 12px; }
.plan-name { font-size: 18px; font-weight: 700; display: block; }
.plan-price { font-size: 30px; font-weight: 900; color: var(--primary); }
.plan-currency { font-size: 14px; color: var(--muted); }
.plan-features-list { font-size: 13px; }
.pf { padding: 4px 0; color: var(--text); }

.pay-info-box { background: rgba(0,0,0,0.3); border-radius: 12px; padding: 16px; }
.pay-info-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; font-size: 14px; }
.pay-methods { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.pay-method {
    flex: 1; padding: 10px 8px; text-align: center;
    border: 1px solid var(--border); border-radius: 10px;
    cursor: pointer; font-size: 13px; font-weight: 600;
    transition: all 0.2s; min-width: 90px;
}
.pay-method.active {
    border-color: var(--primary);
    background: rgba(0,240,255,0.08);
    color: var(--primary);
}
.pay-number-box { margin-bottom: 14px; }
.phone-number {
    font-size: 22px; font-weight: 800;
    color: var(--primary); text-shadow: var(--glow-sm);
    letter-spacing: 2px; margin: 4px 0;
    font-family: monospace;
}
.pay-success { text-align: center; padding: 20px 0; }
.activated-game-row {
    padding: 8px 12px; margin: 4px 0;
    background: rgba(0,255,136,0.08);
    border: 1px solid rgba(0,255,136,0.2);
    border-radius: 8px; font-size: 13px;
    display: flex; align-items: center; gap: 8px;
}

/* ===== SUB BADGE ===== */
.sub-badge {
    background: linear-gradient(135deg, #ffbe0b, #ff006e);
    color: #000; padding: 3px 12px;
    border-radius: 20px; font-size: 11px; font-weight: 800;
}
.score-badge {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: var(--bg); padding: 4px 12px;
    border-radius: 20px; font-size: 12px; font-weight: 800;
}

/* ===== LOCK BOX ===== */
.lock-box {
    text-align: center; padding: 20px;
    background: rgba(0,0,0,0.3); border-radius: 12px;
    border: 1px dashed var(--border);
}
.lock-box p { color: var(--muted); font-size: 13px; margin: 10px 0; }

/* No-sub banner */
.no-sub-banner {
    margin-top: 24px;
    padding: 14px 20px;
    background: rgba(255,190,11,0.08);
    border: 1px solid rgba(255,190,11,0.3);
    border-radius: 12px;
    display: flex; align-items: center; gap: 12px;
    font-size: 14px; color: var(--warning);
    flex-wrap: wrap; justify-content: center;
}

@media(max-width:700px) {
    .pricing-compare { grid-template-columns: 1fr; }
    .pay-plans { flex-direction: column; }
    .popular-badge { font-size: 10px; }
}

/* ===== QR CODE IN PAYMENT ===== */
.pay-owner-name {
    font-size: 18px; font-weight: 800;
    color: var(--text); margin-bottom: 4px;
    letter-spacing: 1px;
}
.qr-section {
    margin: 14px 0 8px;
    text-align: center;
}
.qr-img {
    width: 200px; height: 200px;
    border-radius: 16px;
    border: 3px solid var(--primary);
    box-shadow: var(--glow);
    display: block;
    margin: 0 auto 8px;
    object-fit: cover;
}
.qr-label {
    font-size: 12px;
    color: var(--muted);
}

/* ===== WHATSAPP BUTTON ===== */
.btn-whatsapp {
    background: linear-gradient(135deg, #25D366, #128C7E);
    color: #fff; font-weight: 700;
    padding: 14px; border-radius: 12px;
    text-decoration: none; display: flex;
    align-items: center; justify-content: center;
    gap: 10px; font-size: 16px;
    transition: all 0.3s; margin-top: 12px;
    border: none; cursor: pointer;
}
.btn-whatsapp:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37,211,102,0.4);
}
.wa-note {
    text-align: center; color: var(--muted);
    font-size: 12px; margin-top: 6px;
}
.whatsapp-instruction {
    background: rgba(37,211,102,0.06);
    border: 1px solid rgba(37,211,102,0.2);
    border-radius: 12px; padding: 14px;
    margin-bottom: 12px;
}
.wa-step {
    display: flex; align-items: center;
    gap: 12px; padding: 6px 0;
    font-size: 13px; color: var(--text);
}
.wa-num {
    width: 24px; height: 24px;
    border-radius: 50%;
    background: #25D366; color: #fff;
    display: flex; align-items: center;
    justify-content: center;
    font-size: 12px; font-weight: 800;
    flex-shrink: 0;
}

/* ===== PAYMENT NUMBER DISPLAY ===== */
.pay-bank-label {
    color: var(--muted); font-size: 12px;
    margin-bottom: 4px; margin-top: 8px;
}
.wa-divider {
    color: var(--border); font-size: 12px;
    text-align: center; margin: 12px 0;
}
.wa-contact-row {
    background: rgba(37,211,102,0.06);
    border: 1px solid rgba(37,211,102,0.2);
    border-radius: 12px; padding: 12px 16px;
    font-size: 13px; color: var(--text);
}
.wa-number {
    font-size: 22px; font-weight: 900;
    color: #25D366; letter-spacing: 1px;
    margin-top: 6px; font-family: monospace;
}

/* ===== PAY STEP 2 CLEAN ===== */
.pay-bank-block {
    background: rgba(0,240,255,0.05);
    border: 1px solid rgba(0,240,255,0.2);
    border-radius: 12px; padding: 16px;
    margin: 14px 0; text-align: center;
}
.pay-bank-title { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.pay-owner-name { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.pay-mbank-num {
    font-size: 26px; font-weight: 900;
    color: var(--primary); letter-spacing: 2px;
    font-family: monospace; margin: 6px 0 10px;
    text-shadow: var(--glow-sm);
}
.copy-btn { margin-top: 4px; }

.pay-wa-block {
    background: rgba(37,211,102,0.07);
    border: 1px solid rgba(37,211,102,0.25);
    border-radius: 12px; padding: 14px;
    margin-bottom: 14px; text-align: center;
}
.pay-wa-title { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.pay-wa-num {
    font-size: 24px; font-weight: 900;
    color: #25D366; letter-spacing: 1px;
    font-family: monospace;
}

.pay-steps {
    margin-bottom: 14px;
    background: rgba(255,255,255,0.03);
    border-radius: 10px; padding: 12px;
}
.pay-step-row {
    display: flex; align-items: center;
    gap: 10px; padding: 6px 0;
    font-size: 13px; color: var(--text);
}
.ps-num {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--primary); color: var(--bg);
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 800; flex-shrink: 0;
}

.wa-big-btn {
    display: flex; align-items: center; justify-content: center;
    gap: 10px; width: 100%;
    padding: 14px; border-radius: 12px;
    background: linear-gradient(135deg, #25D366, #128C7E);
    color: #fff; font-weight: 700; font-size: 16px;
    text-decoration: none; transition: all 0.3s;
    border: none; cursor: pointer;
}
.wa-big-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37,211,102,0.4);
}

/* ===== PAY STEPS FIX ===== */
#pay-step1, #pay-step2, #pay-step3 {
    transition: all 0.2s;
}
#pay-step2.hidden, #pay-step3.hidden { display: none !important; }
#pay-step1.hidden { display: none !important; }