/* ===================================
   ARCADE PAGE STYLES
   =================================== */

/* CSS Variables */
:root {
    --bg-dark: #0d1117;
    --bg-card: #1a1f2e;
    --bg-card-hover: #222838;
    --gradient-start: #00d9ff;
    --gradient-mid: #4c9eff;
    --gradient-end: #9b5de5;
    --btn-primary: #00d9ff;
    --btn-primary-hover: #00c4e8;
    --text-primary: #ffffff;
    --text-secondary: #a0a4b8;
    --text-muted: #6e7191;
    --badge-red: #ff4757;
    --badge-green: #2fb344;
    --border-radius: 16px;
    --border-radius-sm: 12px;
    --spacing-xs: 8px;
    --spacing-sm: 12px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
}

/* Reset & Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body.arcade-page {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --coin-gold: #ffd700;
    background: var(--bg-dark);
    color: var(--text-primary);
    min-height: 100vh;
    padding-bottom: 80px; /* Space for bottom nav */
    overflow-x: hidden;
}

/* Starfield Background Effect */
body.arcade-page::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image:
        radial-gradient(2px 2px at 20px 30px, rgba(255, 255, 255, 0.3), transparent),
        radial-gradient(2px 2px at 60px 70px, rgba(255, 255, 255, 0.2), transparent),
        radial-gradient(1px 1px at 50px 50px, rgba(255, 255, 255, 0.4), transparent),
        radial-gradient(1px 1px at 130px 80px, rgba(255, 255, 255, 0.3), transparent),
        radial-gradient(2px 2px at 90px 10px, rgba(255, 255, 255, 0.2), transparent);
    background-size: 200px 200px;
    background-position: 0 0, 40px 60px, 130px 270px, 70px 100px, 150px 50px;
    pointer-events: none;
    opacity: 0.5;
    z-index: 0;
}

/* ===================================
   HEADER
   =================================== */

.arcade-header {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 12px;
    background: rgba(13, 17, 23, 0.98);
    backdrop-filter: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: padding 0.2s ease, background 0.2s ease;
    transform: translateZ(0);
    backface-visibility: hidden;
    will-change: padding, background;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 6px;
}

.brand-logo {
    width: 20px;
    height: 20px;
    object-fit: contain;
    display: block;
    transition: width 0.2s ease, height 0.2s ease;
}

.header-icon {
    font-size: 20px;
    color: var(--btn-primary);
}

.brand-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    transition: font-size 0.2s ease;
}

.header-right {
    display: flex;
    align-items: center;
    gap: 6px;
}

.arcade-header-nav {
    display: none;
    align-items: center;
    gap: 10px;
    margin-right: 6px;
}

.arcade-header-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid transparent;
    transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.arcade-header-link i {
    font-size: 16px;
}

.arcade-header-link:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
    text-decoration: none;
}

.arcade-header-link.is-active {
    color: var(--btn-primary);
    background: rgba(0, 217, 255, 0.14);
    border-color: rgba(0, 217, 255, 0.25);
}

.arcade-header-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-end) 100%);
    color: white;
    font-size: 11px;
    font-weight: 700;
    border-radius: 10px;
    line-height: 1;
    margin-left: 2px;
    box-shadow: 0 2px 8px rgba(76, 158, 255, 0.3);
}

.arcade-header-link.is-active .arcade-header-badge {
    background: linear-gradient(135deg, #00d9ff 0%, #00a3cc 100%);
    box-shadow: 0 2px 8px rgba(0, 217, 255, 0.4);
}

body.arcade-page .arcade-header a:hover,
body.chat-arcade .chat-navbar a:hover {
    text-decoration: none;
}

.username {
    font-size: 11px;
    color: var(--text-secondary);
    transition: font-size 0.2s ease;
}

.arcade-user-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
    color: inherit;
}

.arcade-user-link i {
    font-size: 14px;
}

.arcade-user-link:hover {
    color: var(--text-primary);
}

.coins-display {
    display: flex;
    align-items: center;
    gap: 4px;
    background: rgba(255, 215, 0, 0.1);
    padding: 2px 6px;
    border-radius: 20px;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.coins-display:hover {
    background: rgba(255, 215, 0, 0.18);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(255, 215, 0, 0.15);
}

.coin-icon {
    color: var(--coin-gold);
    font-size: 11px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: font-size 0.2s ease;
}

.coin-amount {
    color: var(--coin-gold);
    font-weight: 700;
    font-size: 11px;
    transition: font-size 0.2s ease;
}

body.arcade-page.is-scrolled .arcade-header {
    padding: 6px 12px;
    background: rgba(13, 17, 23, 0.98);
    backdrop-filter: none;
}

body.arcade-page.is-scrolled .brand-logo {
    width: 20px;
    height: 20px;
}

body.arcade-page.is-scrolled .brand-name {
    font-size: 14px;
}

body.arcade-page.is-scrolled .username {
    font-size: 11px;
}

body.arcade-page.is-scrolled .coins-display {
    padding: 2px 6px;
}

body.arcade-page.is-scrolled .coin-icon {
    font-size: 11px;
}

body.arcade-page.is-scrolled .coin-amount {
    font-size: 11px;
}

body.arcade-page.is-scrolled .header-left,
body.arcade-page.is-scrolled .header-right {
    gap: 6px;
}

body.arcade-page .modal-backdrop.show {
    background-color: rgba(6, 10, 16, 0.55);
    opacity: 1;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

/* ===================================
   MAIN CONTENT
   =================================== */

.arcade-main {
    position: relative;
    z-index: 1;
    padding: var(--spacing-lg);
    max-width: 500px;
    margin: 0 auto;
}

/* Title Section */
.arcade-title {
    text-align: center;
    margin-bottom: var(--spacing-lg);
}

.arcade-title h1 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: var(--spacing-xs);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
}

.arcade-title h1 i {
    color: var(--btn-primary);
    font-size: 28px;
}

.title-arcade {
    color: var(--btn-primary);
}

.title-separator {
    color: var(--text-secondary);
}

.title-subtitle {
    color: var(--text-primary);
}

.arcade-tagline {
    font-size: 14px;
    color: var(--text-secondary);
    margin: 0;
}

/* ===================================
   DAILY QUEST
   =================================== */

.arcade-quest {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.quest-card {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.quest-card.is-complete {
    border-color: rgba(0, 255, 136, 0.4);
    box-shadow: 0 0 20px rgba(0, 255, 136, 0.15);
}

.quest-title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.quest-progress {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-sm);
    font-weight: 600;
    color: var(--text-primary);
}

.quest-count {
    font-weight: 800;
    color: var(--btn-primary);
}

.quest-bar {
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.quest-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 100%);
}

.quest-reward {
    font-size: 12px;
    color: var(--text-secondary);
}

.quest-status {
    font-size: 11px;
    font-weight: 700;
    color: #00ff88;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.quest-streak {
    justify-content: center;
    align-items: center;
    text-align: center;
}

.quest-streak-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--text-primary);
}

/* ===================================
   FEATURED CHALLENGE CARD
   =================================== */

.featured-challenge {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    border-radius: var(--border-radius);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 217, 255, 0.4), 0 0 60px rgba(76, 158, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.featured-challenge::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    animation: pulse 3s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 0.5; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.05); }
}

.daily-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--badge-red);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
    text-transform: uppercase;
}

.featured-title {
    font-size: 32px;
    font-weight: 800;
    color: white;
    margin-bottom: var(--spacing-xs);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.featured-record {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-lg);
}

.btn-play-now {
    background: rgba(255, 255, 255, 0.98);
    color: var(--gradient-mid);
    border: none;
    padding: 14px 40px;
    border-radius: 25px;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
    text-transform: uppercase;
    letter-spacing: 1px;
    display: inline-block;
    text-decoration: none;
}

.btn-play-now::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s ease;
}

.btn-play-now:hover {
    background: white;
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(255, 255, 255, 0.4);
}

.btn-play-now:hover::before {
    left: 100%;
}

.btn-play-now:active {
    transform: translateY(-1px);
}

/* ===================================
   GAMES GRID
   =================================== */

.games-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
}

/* Game Card */
.game-card {
    background: var(--bg-card);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    text-align: center;
    position: relative;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.game-card:hover {
    background: var(--bg-card-hover);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 217, 255, 0.2);
}

.game-badge-new {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--badge-green);
    color: white;
    padding: 4px 8px;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.game-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto var(--spacing-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    border-radius: 50%;
    font-size: 32px;
    color: white;
    box-shadow: 0 4px 12px rgba(0, 217, 255, 0.4), 0 0 20px rgba(76, 158, 255, 0.2);
    transition: all 0.3s ease;
}

.game-card:hover .game-icon {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 6px 20px rgba(0, 217, 255, 0.6), 0 0 30px rgba(76, 158, 255, 0.4);
}

.game-icon.brain-icon {
    background: linear-gradient(135deg, var(--gradient-mid) 0%, var(--gradient-end) 50%, #d946ef 100%);
    box-shadow: 0 4px 12px rgba(155, 93, 229, 0.4), 0 0 20px rgba(155, 93, 229, 0.2);
}

.game-card:hover .game-icon.brain-icon {
    box-shadow: 0 6px 20px rgba(155, 93, 229, 0.6), 0 0 30px rgba(155, 93, 229, 0.4);
}

.game-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: var(--spacing-sm);
}

.game-stats {
    margin-bottom: var(--spacing-md);
}

.stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    margin-bottom: 4px;
}

.stat-label {
    color: var(--text-muted);
}

.stat-value {
    color: var(--text-secondary);
    font-weight: 600;
}

.btn-play {
    background: linear-gradient(135deg, var(--gradient-start) 0%, #00e5ff 25%, var(--gradient-mid) 50%, #7c5ce8 75%, var(--gradient-end) 100%);
    color: white;
    border: none;
    padding: 6px 16px;
    border-radius: 16px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 16px rgba(0, 217, 255, 0.5), 0 2px 8px rgba(76, 158, 255, 0.3), 0 0 24px rgba(155, 93, 229, 0.2);
    position: relative;
    overflow: hidden;
    display: block;
    text-align: center;
    text-decoration: none;
}

.btn-play::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.btn-play:hover {
    background: linear-gradient(135deg, #00e5ff 0%, var(--gradient-mid) 25%, #7c5ce8 50%, var(--gradient-end) 75%, #d946ef 100%);
    box-shadow: 0 6px 24px rgba(0, 229, 255, 0.6), 0 3px 12px rgba(124, 92, 232, 0.5), 0 0 32px rgba(217, 70, 239, 0.4);
    transform: translateY(-2px);
}

.btn-play:hover::before {
    left: 100%;
}

.btn-play:active {
    transform: translateY(0) scale(0.98);
}

/* ===================================
   LEADERBOARD SECTION
   =================================== */

.leaderboard-section {
    margin-bottom: var(--spacing-xl);
}

.leaderboard-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-md);
}

.leaderboard-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0;
}

.leaderboard-title i {
    color: var(--coin-gold);
    font-size: 16px;
}

/* Leaderboard Table */
.leaderboard-table {
    background: var(--bg-card);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-sm);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.leaderboard-table.is-hidden {
    display: none;
}

.leaderboard-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    border-radius: 8px;
    transition: background 0.3s ease;
}

.leaderboard-row:not(:last-child) {
    margin-bottom: 4px;
}

.leaderboard-row:hover {
    background: var(--bg-card-hover);
}

.rank {
    width: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rank-icon {
    font-size: 18px;
}

.rank-icon.gold {
    color: #FFD700;
}

.rank-icon.silver {
    color: #C0C0C0;
}

.rank-icon.bronze {
    color: #CD7F32;
}

.rank-number {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
}

.player-info {
    flex: 1;
    min-width: 0;
}

.player-name {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.player-stats {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.stat-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--text-secondary);
}

.stat-item i {
    font-size: 14px;
    color: #ff6b6b;
}

.stat-value {
    font-size: 13px;
    font-weight: 700;
    color: var(--btn-primary);
    font-family: 'Courier New', monospace;
}

/* ===================================
   ACHIEVEMENTS
   =================================== */

.achievements-section {
    margin-bottom: var(--spacing-xl);
}

.achievements-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

.achievement-card {
    background: var(--bg-card);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-sm);
    border: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: var(--text-secondary);
    opacity: 0.6;
}

.achievement-card.is-unlocked {
    opacity: 1;
    border-color: rgba(0, 217, 255, 0.25);
    box-shadow: 0 8px 24px rgba(0, 217, 255, 0.12);
    color: var(--text-primary);
}

.achievement-icon {
    font-size: 18px;
    color: var(--btn-primary);
}

.achievement-title {
    font-weight: 700;
    color: var(--text-primary);
}

.achievement-desc {
    font-size: 12px;
}

.achievement-status {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

.achievement-card.is-unlocked .achievement-status {
    color: #00ff88;
}

/* ===================================
   GAME PAGE HELPERS
   =================================== */

.arcade-progress {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-sm);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.arcade-progress-line {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-secondary);
}

.arcade-progress-line strong {
    color: var(--text-primary);
    font-weight: 700;
}

.arcade-progress-bar {
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.arcade-progress-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 100%);
}

.arcade-position-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-sm);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.arcade-position-row {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-secondary);
}

.arcade-position-row strong {
    color: var(--text-primary);
}

.arcade-tabs {
    display: inline-flex;
    gap: 6px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 999px;
    padding: 4px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.arcade-tab {
    border: none;
    background: transparent;
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 999px;
    cursor: pointer;
}

.arcade-tab.is-active {
    background: rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

.arcade-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-sm);
}

.arcade-share-text {
    font-size: 13px;
    color: var(--text-secondary);
    font-weight: 600;
}

.arcade-share-status {
    font-size: 11px;
    color: var(--text-muted);
}

/* ===================================
   ACCOUNT PAGE (ARCADE)
   =================================== */

body.account-arcade .account-page {
    position: relative;
    z-index: 1;
}

body.account-arcade .account-arcade-main {
    max-width: 820px;
}

body.account-arcade .account-top {
    display: flex;
    justify-content: flex-start;
    margin-bottom: var(--spacing-md);
}

body.account-arcade .account-top.account-top-split {
    justify-content: space-between;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

body.account-arcade .account-top-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

body.account-arcade .account-title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--text-primary);
}

body.account-arcade .btn-arcade-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}

body.account-arcade .btn-arcade-outline:hover {
    background: rgba(255, 255, 255, 0.14);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.account-arcade .btn-arcade-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 18px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    color: white;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(0, 217, 255, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.account-arcade .btn-arcade-primary.btn-sm,
body.account-arcade .btn-arcade-outline.btn-sm,
body.account-arcade .btn-arcade-danger.btn-sm {
    padding: 8px 14px;
    font-size: 12px;
    letter-spacing: 0.4px;
}

body.account-arcade .btn-arcade-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 217, 255, 0.45);
}

body.account-arcade .btn-arcade-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 18px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, #ff4757 0%, #ff6b6b 50%, #ff8a80 100%);
    color: white;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(255, 71, 87, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.account-arcade .btn-arcade-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(255, 71, 87, 0.45);
}

body.account-arcade .btn-arcade-danger:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

body.account-arcade .btn-arcade-primary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

body.account-arcade .card {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
    color: var(--text-primary);
}

body.account-arcade .card-title {
    color: var(--text-primary);
}

body.account-arcade .list-group {
    border-radius: var(--border-radius-sm);
    overflow: hidden;
}

body.account-arcade .list-group-item {
    background: transparent;
    color: var(--text-primary);
    border-color: rgba(255, 255, 255, 0.08);
}

body.account-arcade .list-group-item i {
    color: var(--gradient-mid);
}

body.account-arcade .list-group-item-action:hover {
    background: var(--bg-card-hover);
    color: var(--text-primary);
}

body.account-arcade .list-group-item-action:focus {
    background: var(--bg-card-hover);
    color: var(--text-primary);
}

body.online-page .user-list-avatar,
body.members-page .user-list-avatar {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.online-page .nick,
body.members-page .nick {
    color: var(--text-primary);
}

body.arcade-page .nick[data-style-color],
body.chat-arcade .nick[data-style-color] {
    background: none;
    -webkit-text-fill-color: currentColor;
}

body.arcade-page .nick[data-style-color]:hover,
body.chat-arcade .nick[data-style-color]:hover {
    background: none;
    -webkit-text-fill-color: currentColor;
}

body.online-page .online-page-main,
body.members-page .members-page-main {
    padding: var(--spacing-sm) var(--spacing-md);
}

body.online-page .account-top,
body.members-page .account-top {
    margin-bottom: var(--spacing-sm);
}

body.account-arcade .account-menu-list {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    overflow: visible;
    display: grid;
    gap: 10px;
}

body.account-arcade .account-menu-item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px 12px 18px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    color: var(--text-primary);
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

body.account-arcade .account-menu-item::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--gradient-start), var(--gradient-end));
    opacity: 0.85;
}

body.account-arcade .account-menu-item:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(76, 158, 255, 0.35);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35);
    transform: translateY(-1px);
}

body.account-arcade .account-menu-item > span {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 0.95rem;
    font-weight: 600;
}

body.account-arcade .account-menu-item > span i {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.12);
    color: var(--gradient-mid);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.3);
}

body.account-arcade .account-menu-chevron {
    color: var(--text-muted);
    transition: color 0.2s ease;
}

body.account-arcade .account-menu-item:hover .account-menu-chevron {
    color: var(--text-secondary);
}

body.account-arcade .account-lang-row {
    cursor: default;
}

body.account-arcade .account-lang-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.account-arcade .account-logout {
    margin-top: 18px;
}

body.account-arcade .account-lang-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.08);
    transition: background 0.2s ease, color 0.2s ease, border 0.2s ease;
}

body.account-arcade .account-lang-btn:hover {
    background: rgba(255, 255, 255, 0.16);
    color: var(--text-primary);
}

body.account-arcade .account-lang-btn.is-active {
    background: linear-gradient(135deg, var(--gradient-start), var(--gradient-mid));
    border-color: transparent;
    color: #ffffff;
}

body.account-arcade .form-label {
    color: var(--text-secondary);
}

body.account-arcade .form-text {
    color: var(--text-muted);
}

body.account-arcade .form-control {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.account-arcade .form-select {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.account-arcade .form-control:focus {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(76, 158, 255, 0.6);
    color: var(--text-primary);
    box-shadow: 0 0 0 0.2rem rgba(76, 158, 255, 0.25);
}

body.account-arcade .form-select:focus {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(76, 158, 255, 0.6);
    color: var(--text-primary);
    box-shadow: 0 0 0 0.2rem rgba(76, 158, 255, 0.25);
}

body.account-arcade .form-select option {
    background: var(--bg-card);
    color: var(--text-primary);
}

body.account-arcade .btn-check:checked + .btn-arcade-outline {
    background: rgba(76, 158, 255, 0.22);
    border-color: rgba(76, 158, 255, 0.55);
    color: var(--text-primary);
    box-shadow: 0 0 0 0.2rem rgba(76, 158, 255, 0.2);
}

body.account-arcade .btn-check:focus-visible + .btn-arcade-outline {
    box-shadow: 0 0 0 0.2rem rgba(76, 158, 255, 0.25);
}

body.account-arcade .form-check-input {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.25);
}

body.account-arcade .form-check-input:checked {
    background-color: var(--btn-primary);
    border-color: var(--btn-primary);
}

body.account-arcade .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(76, 158, 255, 0.25);
}

body.account-arcade .form-range::-webkit-slider-runnable-track {
    background: rgba(255, 255, 255, 0.2);
}

body.account-arcade .form-range::-webkit-slider-thumb {
    background: var(--btn-primary);
    border: none;
}

body.account-arcade .form-range::-moz-range-track {
    background: rgba(255, 255, 255, 0.2);
}

body.account-arcade .form-range::-moz-range-thumb {
    background: var(--btn-primary);
    border: none;
}

body.account-arcade .alert {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--text-primary);
}

body.account-arcade .alert-success {
    border-color: rgba(47, 179, 68, 0.45);
    color: #86f7ab;
}

body.account-arcade .alert-warning {
    border-color: rgba(255, 193, 7, 0.5);
    color: #ffe39a;
}

body.account-arcade .alert-danger {
    border-color: rgba(255, 71, 87, 0.5);
    color: #ff9aa4;
}

body.account-arcade .alert-info {
    border-color: rgba(76, 158, 255, 0.45);
    color: #b6d4ff;
}

body.account-arcade .badge.bg-primary {
    background: rgba(76, 158, 255, 0.25) !important;
    color: #cbe0ff;
    border: 1px solid rgba(76, 158, 255, 0.45);
}

body.pm-page .pm-actions {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    justify-content: flex-start;
}

body.pm-page .pm-actions .btn-arcade-primary,
body.pm-page .pm-actions .btn-arcade-outline {
    min-width: 140px;
}

body.account-arcade .avatar-placeholder {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.account-arcade .account-avatar-page .avatar-preview {
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.account-arcade .account-avatar-page .avatar-choice-body {
    background: var(--bg-card);
    border-color: rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

body.account-arcade .account-avatar-page .avatar-choice input:checked + .avatar-choice-body {
    border-color: var(--gradient-mid);
    box-shadow: 0 0 0 3px rgba(76, 158, 255, 0.25);
    transform: translateY(-2px);
}

body.account-arcade .account-avatar-page .avatar-choice-label {
    color: var(--text-muted);
}

body.account-arcade .account-avatar-page .avatar-choice-placeholder {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.arcade-page .games-page .game-item {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
}

body.arcade-page .games-page .game-item:hover {
    border-color: rgba(76, 158, 255, 0.35);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}

body.arcade-page .games-page .game-item summary {
    background: linear-gradient(135deg, rgba(0, 217, 255, 0.16), rgba(155, 93, 229, 0.12));
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
}

body.arcade-page .games-page .game-body {
    background: transparent;
    color: var(--text-secondary);
}

body.arcade-page .games-page .game-block-title {
    color: var(--text-primary);
}

body.arcade-page .games-page .game-tag {
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
}

body.arcade-page .games-page .game-commands {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.12);
    color: var(--text-secondary);
}

body.arcade-page .games-page .game-table .table {
    color: var(--text-primary);
    background: transparent;
}

body.arcade-page .games-page .game-table .table th,
body.arcade-page .games-page .game-table .table td {
    border-color: rgba(255, 255, 255, 0.12);
}

body.arcade-page .games-page .game-table .table thead th {
    background: rgba(255, 255, 255, 0.08);
}

body.arcade-page.polls-page {
    background: var(--bg-dark);
    color: var(--text-primary);
}

body.arcade-page.polls-page .polls-page-logo {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.arcade-page.polls-page .polls-page-title {
    color: var(--text-primary);
}

body.arcade-page.polls-page .polls-page-subtitle,
body.arcade-page.polls-page .polls-page-description,
body.arcade-page.polls-page .polls-page-empty {
    color: var(--text-muted);
}

body.arcade-page.polls-page .polls-page-description i {
    color: var(--gradient-mid);
}

body.arcade-page.polls-page .polls-hidden-badge {
    background: rgba(255, 255, 255, 0.12);
    color: var(--text-secondary);
}

body.arcade-page.polls-page .chat-poll {
    background: var(--bg-card);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}

body.arcade-page.polls-page .chat-poll-description,
body.arcade-page.polls-page .chat-poll-option-votes,
body.arcade-page.polls-page .chat-poll-result-info,
body.arcade-page.polls-page .chat-poll-footer,
body.arcade-page.polls-page .chat-poll-meta-muted {
    color: var(--text-muted);
}

body.arcade-page.polls-page .chat-poll-option-button {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.arcade-page.polls-page .chat-poll-option-button:hover:not(:disabled) {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(76, 158, 255, 0.4);
}

body.arcade-page.polls-page .chat-poll-option-button.voted {
    border-color: rgba(76, 158, 255, 0.6);
    background: rgba(76, 158, 255, 0.2);
}

body.arcade-page.polls-page .chat-poll-progress {
    background: rgba(255, 255, 255, 0.12);
}

body.arcade-page.polls-page .chat-poll-progress-bar {
    background: var(--gradient-mid);
}

body.arcade-page.polls-page .chat-poll-toggle-btn {
    border-color: rgba(255, 255, 255, 0.22);
    color: var(--text-secondary);
}

body.arcade-page.polls-page .chat-poll-toggle-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.arcade-page.polls-page .chat-polls-hidden {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-muted);
}

body.arcade-page.polls-page .chat-polls-hidden-link,
body.arcade-page.polls-page .chat-poll-voters-button {
    color: var(--gradient-mid);
}

body.arcade-page.polls-page .poll-voters-modal-dialog {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.arcade-page.polls-page .poll-voters-modal-subtitle,
body.arcade-page.polls-page .poll-voters-group-title,
body.arcade-page.polls-page .poll-voters-name,
body.arcade-page.polls-page .poll-voters-empty {
    color: var(--text-secondary);
}

body.arcade-page.polls-page .poll-voters-modal-close {
    color: var(--text-secondary);
}

body.top-crowns-page .top-crowns-rules {
    margin: 0;
    padding-left: 18px;
    color: var(--text-secondary);
}

body.top-crowns-page .top-crowns-rules li {
    margin-bottom: 6px;
}

body.top-crowns-page .top-crowns-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.top-crowns-page .top-crowns-list .list-group-item {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    margin-bottom: 0;
}

body.top-crowns-page .top-crowns-list .list-group-item.is-current-user {
    border-color: var(--gradient-mid);
    box-shadow: 0 0 0 1px rgba(76, 158, 255, 0.35);
    background: rgba(76, 158, 255, 0.08);
}

body.top-crowns-page .user-list-avatar {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.top-crowns-page .nick {
    color: var(--text-primary);
}

body.emoji-rush-page .emoji-rush-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

body.emoji-rush-page .emoji-rush-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--bg-card);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.emoji-rush-page .back-button {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.2s ease;
}

body.emoji-rush-page .back-button:hover {
    color: var(--gradient-mid);
    transform: translateX(-4px);
}

body.emoji-rush-page .emoji-rush-stage {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
}

body.emoji-rush-page .emoji-rush-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    opacity: 0.4;
}

body.emoji-rush-page .emoji-rush-panel {
    position: relative;
    z-index: 1;
    width: min(820px, 100%);
    background: rgba(13, 17, 23, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--border-radius);
    padding: var(--spacing-lg);
    box-shadow: 0 24px 40px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

body.emoji-rush-page .emoji-rush-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: var(--border-radius);
    background: radial-gradient(circle at 30% 20%, rgba(76, 158, 255, 0.5), transparent 60%);
    opacity: 0;
    pointer-events: none;
}

body.emoji-rush-page .emoji-rush-panel::after {
    content: '';
    position: absolute;
    inset: 6px;
    border-radius: calc(var(--border-radius) - 6px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    pointer-events: none;
}

body.emoji-rush-page .emoji-rush-panel.is-success::before {
    animation: emojiPanelFlash 0.2s ease;
}

body.emoji-rush-page .emoji-rush-top {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

body.emoji-rush-page .emoji-target-card {
    gap: 4px;
}

body.emoji-rush-page .emoji-target {
    font-size: 42px;
    line-height: 1;
}

body.emoji-rush-page .emoji-target.is-pulse {
    animation: emojiTargetPulse 0.2s ease;
}

body.emoji-rush-page .emoji-score-line {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-sm);
    align-items: stretch;
    width: 100%;
}

body.emoji-rush-page .emoji-info-block {
    height: 68px;
    padding: 4px 8px;
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-align: center;
}

body.emoji-rush-page .emoji-score-label,
body.emoji-rush-page .emoji-target-label {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

body.emoji-rush-page .emoji-score-value {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.emoji-rush-page .emoji-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-sm);
    touch-action: manipulation;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

body.emoji-rush-page .emoji-grid.is-disabled {
    opacity: 0.6;
    pointer-events: none;
}

body.emoji-rush-page .emoji-grid.is-refresh .emoji-cell {
    animation: emojiGridPop 0.18s ease;
}

body.emoji-rush-page .emoji-cell {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    font-size: 32px;
    color: var(--text-primary);
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

body.emoji-rush-page .emoji-cell:focus {
    outline: none;
}

@media (hover: hover) and (pointer: fine) {
    body.emoji-rush-page .emoji-cell:hover {
        transform: translateY(-2px);
        border-color: var(--gradient-mid);
        box-shadow: 0 10px 20px rgba(76, 158, 255, 0.25);
    }
}

body.emoji-rush-page .emoji-cell.is-hit {
    border-color: #00ff88;
    background: rgba(0, 255, 136, 0.18);
    animation: emojiHit 0.2s ease;
}

body.emoji-rush-page .emoji-cell.is-miss {
    border-color: #ff6b6b;
    background: rgba(255, 107, 107, 0.2);
    animation: emojiMiss 0.2s ease;
}

body.emoji-rush-page .emoji-rush-panel.is-shake {
    animation: emojiShake 0.25s ease;
}

body.emoji-rush-page .emoji-rush-controls {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

body.emoji-rush-page .emoji-mode-toggle {
    display: inline-flex;
    gap: 6px;
}

body.emoji-rush-page .emoji-mode-btn {
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 6px 12px;
    border-radius: 999px;
    cursor: pointer;
}

body.emoji-rush-page .emoji-mode-btn.is-active {
    background: rgba(255, 255, 255, 0.14);
    color: var(--text-primary);
}

body.emoji-rush-page .emoji-mode-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

body.emoji-rush-page .emoji-rush-result {
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 72px;
}

body.emoji-rush-page .emoji-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    font-size: 13px;
    color: var(--text-secondary);
}

body.emoji-rush-page .emoji-rush-panel.is-running .emoji-rush-result,
body.emoji-rush-page .emoji-rush-panel.is-running .emoji-rush-hint {
    display: none;
}

body.emoji-rush-page .emoji-rush-result strong {
    color: var(--text-primary);
}

body.emoji-rush-page .btn-arcade-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}

body.emoji-rush-page .btn-arcade-outline:hover {
    background: rgba(255, 255, 255, 0.14);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.emoji-rush-page .btn-arcade-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 18px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    color: white;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(0, 217, 255, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.emoji-rush-page .btn-arcade-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 217, 255, 0.45);
}

body.emoji-rush-page .btn-arcade-primary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

body.emoji-rush-page .emoji-rush-hint {
    color: var(--text-secondary);
    font-size: 13px;
}

body.emoji-rush-page .emoji-rush-leaderboard {
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius);
    padding: var(--spacing-md);
}

body.emoji-rush-page .emoji-rush-leaderboard-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

body.emoji-rush-page .emoji-rush-leaderboard-title-text {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.emoji-rush-page .emoji-rush-meta {
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-md);
}

body.emoji-rush-page .emoji-leaderboard-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.emoji-rush-page .emoji-leaderboard-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

body.emoji-rush-page .emoji-leaderboard-rank {
    font-weight: 700;
    color: var(--gradient-mid);
    min-width: 42px;
}

body.emoji-rush-page .emoji-leaderboard-name {
    flex: 1;
    color: var(--text-primary);
}

body.emoji-rush-page .emoji-leaderboard-score {
    color: var(--text-secondary);
    font-weight: 600;
}

@keyframes emojiHit {
    0% { transform: scale(1); }
    50% { transform: scale(0.94); }
    100% { transform: scale(1); }
}

@keyframes emojiGridPop {
    0% { transform: scale(0.98); }
    60% { transform: scale(1.02); }
    100% { transform: scale(1); }
}

@keyframes emojiTargetPulse {
    0% { transform: scale(1); text-shadow: 0 0 0 rgba(76, 158, 255, 0); }
    50% { transform: scale(1.12); text-shadow: 0 0 18px rgba(76, 158, 255, 0.75); }
    100% { transform: scale(1); text-shadow: 0 0 0 rgba(76, 158, 255, 0); }
}

@keyframes emojiMiss {
    0% { transform: scale(1); }
    50% { transform: scale(0.96); }
    100% { transform: scale(1); }
}

@keyframes emojiShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
}

@keyframes emojiPanelFlash {
    0% { opacity: 0; }
    40% { opacity: 0.65; }
    100% { opacity: 0; }
}

@media (max-width: 600px) {
    body.emoji-rush-page .emoji-rush-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-sm);
    }

    body.emoji-rush-page .emoji-rush-top {
        align-items: stretch;
    }

    body.emoji-rush-page .emoji-score-line {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    body.emoji-rush-page .emoji-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.emoji-rush-page .emoji-target {
        font-size: 34px;
    }

    body.emoji-rush-page .emoji-cell {
        font-size: 30px;
    }

    body.emoji-rush-page .emoji-rush-panel {
        padding: var(--spacing-md);
    }

    body.emoji-rush-page .emoji-rush-controls {
        flex-direction: column;
    }

    body.emoji-rush-page .emoji-rush-controls .btn-arcade-primary,
    body.emoji-rush-page .emoji-rush-controls .btn-arcade-outline {
        width: 100%;
        justify-content: center;
    }

    body.emoji-rush-page .emoji-mode-toggle {
        width: 100%;
        justify-content: center;
    }

    body.emoji-rush-page .emoji-rush-meta {
        grid-template-columns: 1fr;
    }

    body.emoji-rush-page .emoji-info-block {
        height: 58px;
        padding: 4px 6px;
        gap: 2px;
    }

    body.emoji-rush-page .emoji-score-label,
    body.emoji-rush-page .emoji-target-label {
        font-size: 9px;
    }

    body.emoji-rush-page .emoji-score-value {
        font-size: 14px;
    }
}

body.quiz-challenge-page .quiz-challenge-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--bg-primary);
}

body.quiz-challenge-page .quiz-challenge-header {
    padding: var(--spacing-md) var(--spacing-lg);
}

body.quiz-challenge-page .back-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.2s ease;
}

body.quiz-challenge-page .back-button:hover {
    color: var(--gradient-mid);
    transform: translateX(-4px);
}

body.quiz-challenge-page .quiz-challenge-stage {
    position: relative;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--spacing-lg);
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}

body.quiz-challenge-page .quiz-challenge-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

body.quiz-challenge-page .quiz-challenge-panel {
    position: relative;
    z-index: 1;
    width: min(860px, 100%);
    background: rgba(13, 17, 23, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--border-radius);
    padding: var(--spacing-lg);
    box-shadow: 0 24px 40px rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(6px);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

body.quiz-challenge-page .quiz-challenge-panel::after {
    content: '';
    position: absolute;
    inset: 6px;
    border-radius: calc(var(--border-radius) - 6px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    pointer-events: none;
}

body.quiz-challenge-page .quiz-top-line {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

body.quiz-challenge-page .quiz-mode-toggle {
    display: flex;
    gap: 8px;
    padding: 4px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    width: fit-content;
    margin: 0 auto;
}

body.quiz-challenge-page .quiz-mode-btn {
    flex: 1;
    min-width: 80px;
    padding: 10px 20px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--text-muted);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

body.quiz-challenge-page .quiz-mode-btn:hover {
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-primary);
}

body.quiz-challenge-page .quiz-mode-btn.is-active {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-end) 100%);
    color: white;
    box-shadow: 0 4px 12px rgba(76, 158, 255, 0.3);
}

body.quiz-challenge-page .quiz-mode-btn.is-active:hover {
    box-shadow: 0 6px 16px rgba(76, 158, 255, 0.4);
}

body.quiz-challenge-page .quiz-pill {
    height: 64px;
    padding: 6px 12px;
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
}

body.quiz-challenge-page .quiz-pill-label {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

body.quiz-challenge-page .quiz-pill-value {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.quiz-challenge-page .quiz-timer.is-low {
    border-color: rgba(255, 107, 107, 0.6);
    box-shadow: 0 0 18px rgba(255, 107, 107, 0.2);
}

body.quiz-challenge-page .quiz-timer.is-low .quiz-pill-value {
    color: #ff6b6b;
}

body.quiz-challenge-page .quiz-question-card {
    padding: var(--spacing-md);
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    min-height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

body.quiz-challenge-page .quiz-question-card.is-clickable {
    cursor: pointer;
}

body.quiz-challenge-page .quiz-question-card.is-clickable:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: var(--gradient-mid);
    box-shadow: 0 4px 12px rgba(76, 158, 255, 0.2);
    transform: translateY(-2px);
}

body.quiz-challenge-page .quiz-question-text {
    font-size: 20px;
    font-weight: 700;
    color: var(--text-primary);
    text-align: center;
    line-height: 1.4;
}

body.quiz-challenge-page .quiz-answer-area {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

body.quiz-challenge-page .quiz-answer-input {
    width: 100%;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-primary);
    font-size: 16px;
}

body.quiz-challenge-page .quiz-answer-input:focus {
    outline: none;
    border-color: var(--gradient-mid);
    box-shadow: 0 0 0 2px rgba(76, 158, 255, 0.2);
}

body.quiz-challenge-page .quiz-answer-actions {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

body.quiz-challenge-page .btn-arcade-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}

body.quiz-challenge-page .btn-arcade-outline:hover {
    background: rgba(255, 255, 255, 0.14);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.quiz-challenge-page .btn-arcade-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 18px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    color: white;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(0, 217, 255, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.quiz-challenge-page .btn-arcade-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 217, 255, 0.45);
}

body.quiz-challenge-page .btn-arcade-primary:disabled,
body.quiz-challenge-page .btn-arcade-outline:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

body.quiz-challenge-page .quiz-feedback {
    min-height: 20px;
    font-size: 13px;
    color: var(--text-secondary);
}

body.quiz-challenge-page .quiz-feedback.is-skip {
    color: #ffb347;
}

body.quiz-challenge-page .quiz-controls {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

body.quiz-challenge-page .quiz-result {
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 72px;
}

body.quiz-challenge-page .quiz-result .btn-arcade-outline {
    align-self: flex-start;
}

body.quiz-challenge-page .quiz-result-main {
    font-size: 18px;
    font-weight: 800;
    color: var(--text-primary);
}

body.quiz-challenge-page .quiz-result-viral {
    font-size: 14px;
    color: var(--gradient-mid);
    font-weight: 700;
}

body.quiz-challenge-page .quiz-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    font-size: 13px;
    color: var(--text-secondary);
}

body.quiz-challenge-page .quiz-challenge-panel.is-running .quiz-result,
body.quiz-challenge-page .quiz-challenge-panel.is-running .quiz-results,
body.quiz-challenge-page .quiz-challenge-panel.is-running .quiz-hint {
    display: none;
}

body.quiz-challenge-page .quiz-results {
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

body.quiz-challenge-page .quiz-results-title {
    font-weight: 700;
    color: var(--text-primary);
}

body.quiz-challenge-page .quiz-results-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.quiz-challenge-page .quiz-result-item {
    border-radius: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.quiz-challenge-page .quiz-result-item.is-correct {
    border-color: rgba(0, 255, 136, 0.4);
    background: rgba(0, 255, 136, 0.08);
}

body.quiz-challenge-page .quiz-result-item.is-wrong {
    border-color: rgba(255, 107, 107, 0.35);
    background: rgba(255, 107, 107, 0.08);
}

body.quiz-challenge-page .quiz-result-question {
    font-weight: 700;
    color: var(--text-primary);
}

body.quiz-challenge-page .quiz-result-answers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

body.quiz-challenge-page .quiz-result-answer {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

body.quiz-challenge-page .quiz-result-label {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

body.quiz-challenge-page .quiz-result-value {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    word-break: break-word;
}

body.quiz-challenge-page .quiz-hint {
    color: var(--text-secondary);
    font-size: 13px;
}

body.quiz-challenge-page .quiz-challenge-meta {
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-md);
}

body.quiz-challenge-page .quiz-challenge-leaderboard {
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius);
    padding: var(--spacing-md);
}

body.quiz-challenge-page .quiz-challenge-leaderboard-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

body.quiz-challenge-page .quiz-challenge-leaderboard-title-text {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.quiz-challenge-page .quiz-leaderboard-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.quiz-challenge-page .quiz-leaderboard-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

body.quiz-challenge-page .quiz-leaderboard-rank {
    font-weight: 700;
    color: var(--gradient-mid);
    min-width: 42px;
}

body.quiz-challenge-page .quiz-leaderboard-name {
    flex: 1;
    color: var(--text-primary);
}

body.quiz-challenge-page .quiz-leaderboard-score {
    color: var(--text-secondary);
    font-weight: 600;
}

@media (max-width: 600px) {
    body.quiz-challenge-page .quiz-challenge-header {
        padding: var(--spacing-md);
    }

    body.quiz-challenge-page .quiz-challenge-panel {
        padding: var(--spacing-md);
    }

    body.quiz-challenge-page .quiz-top-line {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.quiz-challenge-page .quiz-pill {
        height: 56px;
        padding: 6px 8px;
    }

    body.quiz-challenge-page .quiz-pill-label {
        font-size: 9px;
    }

    body.quiz-challenge-page .quiz-pill-value {
        font-size: 15px;
    }

    body.quiz-challenge-page .quiz-mode-toggle {
        gap: 6px;
        padding: 3px;
    }

    body.quiz-challenge-page .quiz-mode-btn {
        min-width: 70px;
        padding: 8px 16px;
        font-size: 13px;
    }

    body.quiz-challenge-page .quiz-question-card {
        min-height: 120px;
        padding: var(--spacing-sm);
    }

    body.quiz-challenge-page .quiz-question-text {
        font-size: 17px;
    }

    body.quiz-challenge-page .quiz-answer-actions {
        flex-direction: column;
    }

    body.quiz-challenge-page .quiz-answer-actions .btn-arcade-primary,
    body.quiz-challenge-page .quiz-answer-actions .btn-arcade-outline {
        width: 100%;
        justify-content: center;
    }

    body.quiz-challenge-page .quiz-result-answers {
        grid-template-columns: 1fr;
    }

    body.quiz-challenge-page .quiz-challenge-meta {
        grid-template-columns: 1fr;
        margin: 0 var(--spacing-md) var(--spacing-md);
    }

    body.quiz-challenge-page .quiz-challenge-leaderboard {
        margin: 0 var(--spacing-md) var(--spacing-md);
    }
}

body.shape-swipe-page .shape-swipe-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

body.shape-swipe-page .shape-swipe-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--bg-card);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.shape-swipe-page .back-button {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.2s ease;
}

body.shape-swipe-page .back-button:hover {
    color: var(--gradient-mid);
    transform: translateX(-4px);
}

body.shape-swipe-page .shape-swipe-stage {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
}

body.shape-swipe-page .shape-swipe-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    opacity: 0.4;
}

body.shape-swipe-page .shape-swipe-panel {
    position: relative;
    z-index: 1;
    width: min(760px, 100%);
    background: rgba(13, 17, 23, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--border-radius);
    padding: var(--spacing-lg);
    box-shadow: 0 24px 40px rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

body.shape-swipe-page .shape-info-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

body.shape-swipe-page .shape-info-block {
    height: 64px;
    padding: 4px 8px;
    border-radius: var(--border-radius-sm);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-align: center;
}

body.shape-swipe-page .shape-info-label {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

body.shape-swipe-page .shape-info-value {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.shape-swipe-page .shape-target {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
}

body.shape-swipe-page .shape-target-icon {
    width: 30px;
    height: 30px;
}

body.shape-swipe-page .shape-swipe-card {
    align-self: center;
    width: min(360px, 100%);
    aspect-ratio: 1;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    position: relative;
    overflow: hidden;
    padding: var(--spacing-md);
    touch-action: pan-y;
    user-select: none;
}

body.shape-swipe-page .shape-swipe-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 20%, rgba(76, 158, 255, 0.25), transparent 60%);
    opacity: 0.7;
    pointer-events: none;
}

body.shape-swipe-page .shape-swipe-card-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    width: 100%;
}

body.shape-swipe-page .shape-swipe-card-inner.is-pop {
    animation: shapePop 0.16s ease;
}

body.shape-swipe-page .shape-current-icon {
    width: 160px;
    height: 160px;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.35));
}

body.shape-swipe-page .shape-placeholder {
    color: var(--text-secondary);
    font-weight: 600;
    text-align: center;
}

body.shape-swipe-page .shape-swipe-gesture {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    width: 100%;
    font-size: 12px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

body.shape-swipe-page .shape-swipe-actions {
    display: flex;
    justify-content: center;
    gap: var(--spacing-sm);
}

body.shape-swipe-page .shape-swipe-controls {
    display: flex;
    justify-content: center;
    gap: var(--spacing-sm);
}

body.shape-swipe-page .btn-arcade-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: all 0.2s ease;
}

body.shape-swipe-page .btn-arcade-outline:hover {
    background: rgba(255, 255, 255, 0.14);
    color: var(--text-primary);
    transform: translateY(-1px);
}

body.shape-swipe-page .btn-arcade-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    color: white;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(0, 217, 255, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.shape-swipe-page .btn-arcade-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 217, 255, 0.45);
}

body.shape-swipe-page .btn-arcade-primary:disabled,
body.shape-swipe-page .btn-arcade-outline:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

body.shape-swipe-page .shape-swipe-result {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
}

body.shape-swipe-page .shape-result-meta {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-secondary);
}

body.shape-swipe-page .shape-result-meta strong {
    color: var(--text-primary);
}

body.shape-swipe-page .shape-swipe-hint {
    text-align: center;
    color: var(--text-secondary);
    font-size: 13px;
}

body.shape-swipe-page .shape-swipe-panel.is-running .shape-swipe-result,
body.shape-swipe-page .shape-swipe-panel.is-running .shape-swipe-hint {
    display: none;
}

body.shape-swipe-page .shape-swipe-card.is-hit {
    border-color: rgba(0, 255, 136, 0.6);
    box-shadow: 0 0 24px rgba(0, 255, 136, 0.3);
    animation: shapeHit 0.18s ease;
}

body.shape-swipe-page .shape-swipe-card.is-miss {
    border-color: rgba(255, 107, 107, 0.6);
    box-shadow: 0 0 24px rgba(255, 107, 107, 0.3);
    animation: shapeMiss 0.22s ease;
}

body.shape-swipe-page .shape-swipe-meta {
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-md);
}

body.shape-swipe-page .shape-swipe-leaderboard {
    margin: 0 var(--spacing-lg) var(--spacing-lg);
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius);
    padding: var(--spacing-md);
}

body.shape-swipe-page .shape-swipe-leaderboard-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

body.shape-swipe-page .shape-swipe-leaderboard-title-text {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.shape-swipe-page .shape-leaderboard-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.shape-swipe-page .shape-leaderboard-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
}

body.shape-swipe-page .shape-leaderboard-rank {
    font-weight: 700;
    color: var(--gradient-mid);
    min-width: 42px;
}

body.shape-swipe-page .shape-leaderboard-name {
    flex: 1;
    color: var(--text-primary);
}

body.shape-swipe-page .shape-leaderboard-score {
    color: var(--text-secondary);
    font-weight: 600;
}

@keyframes shapePop {
    0% { transform: scale(0.95); opacity: 0.7; }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes shapeHit {
    0% { transform: scale(1); }
    50% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

@keyframes shapeMiss {
    0% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    50% { transform: translateX(6px); }
    75% { transform: translateX(-4px); }
    100% { transform: translateX(0); }
}

@media (max-width: 600px) {
    body.shape-swipe-page .shape-swipe-header {
        padding: var(--spacing-md);
    }

    body.shape-swipe-page .shape-swipe-panel {
        padding: var(--spacing-md);
    }

    body.shape-swipe-page .shape-info-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.shape-swipe-page .shape-info-block {
        height: 56px;
    }

    body.shape-swipe-page .shape-info-value {
        font-size: 16px;
    }

    body.shape-swipe-page .shape-current-icon {
        width: 120px;
        height: 120px;
    }

    body.shape-swipe-page .shape-swipe-actions {
        flex-direction: column;
    }

    body.shape-swipe-page .shape-swipe-actions .btn-arcade-primary,
    body.shape-swipe-page .shape-swipe-actions .btn-arcade-outline {
        width: 100%;
        justify-content: center;
    }

    body.shape-swipe-page .shape-swipe-meta {
        grid-template-columns: 1fr;
    }
}

body.account-arcade .avatar-builder-arcade-main {
    max-width: 980px;
}

body.account-arcade .avatar-card {
    background: var(--bg-card);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.35);
    color: var(--text-primary);
}

body.account-arcade .avatar-control-group {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.12);
}

body.account-arcade .avatar-control-summary {
    color: var(--text-secondary);
}

body.account-arcade .avatar-control-summary::after {
    color: var(--text-muted);
}

body.account-arcade .avatar-control-group[open] .avatar-control-summary {
    color: var(--text-primary);
}

body.account-arcade .avatar-status {
    color: var(--text-muted);
}

body.account-arcade .modal-content {
    background: var(--bg-card);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.account-arcade .modal-header,
body.account-arcade .modal-footer {
    border-color: rgba(255, 255, 255, 0.08);
}

body.account-arcade .btn-close {
    filter: invert(1);
}

body.account-arcade .badge.bg-success {
    background: rgba(47, 179, 68, 0.2) !important;
    color: #86f7ab;
    border: 1px solid rgba(47, 179, 68, 0.45);
}

body.account-arcade .badge.bg-info {
    background: rgba(76, 158, 255, 0.2) !important;
    color: #9dc6ff;
    border: 1px solid rgba(76, 158, 255, 0.45);
}

body.account-arcade .text-muted {
    color: var(--text-muted) !important;
}

/* ===================================
   SHOP PAGE (ARCADE CONTEXT)
   =================================== */

body.shop-arcade .shop-arcade-main {
    max-width: 1200px;
}

body.shop-arcade .navbar {
    background: rgba(13, 17, 23, 0.9) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.shop-arcade .bg-light {
    background-color: var(--bg-card) !important;
}

body.shop-arcade .navbar-light .navbar-brand,
body.shop-arcade .navbar-light .navbar-nav .nav-link,
body.shop-arcade .navbar-light .navbar-text {
    color: var(--text-primary) !important;
}

body.shop-arcade .navbar-light .navbar-nav .nav-link:hover,
body.shop-arcade .navbar-light .navbar-nav .nav-link:focus {
    color: var(--gradient-mid) !important;
}

body.shop-arcade .nav-tabs {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    gap: 6px;
}

body.shop-arcade .nav-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--text-secondary);
    background: transparent;
    padding: 6px 12px;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.2px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.shop-arcade .nav-tabs .nav-link i {
    font-size: 0.95em;
}

body.shop-arcade .nav-tabs .nav-link:hover {
    color: var(--text-primary);
    background: var(--bg-card-hover);
    border-color: rgba(255, 255, 255, 0.08);
}

body.shop-arcade .nav-tabs .nav-link.active {
    color: var(--text-primary);
    background: var(--bg-card);
    border-color: rgba(255, 255, 255, 0.16);
    box-shadow: none;
}

@media (min-width: 992px) {
    body.shop-arcade .nav-tabs .nav-link {
        font-size: 0.95rem;
        padding: 8px 14px;
    }
}

body.shop-arcade .btn-outline-primary {
    border-color: rgba(0, 217, 255, 0.4);
    color: var(--btn-primary);
}

body.shop-arcade .btn-outline-primary:hover {
    background: rgba(0, 217, 255, 0.16);
    border-color: rgba(0, 217, 255, 0.6);
    color: var(--text-primary);
}

body.shop-arcade .btn-outline-secondary {
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.05);
}

body.shop-arcade .btn-outline-secondary:hover {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.shop-arcade .btn-primary {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    border: none;
    color: #ffffff;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(0, 217, 255, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.shop-arcade .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0, 217, 255, 0.45);
}

body.shop-arcade .btn-success {
    background: linear-gradient(135deg, #2fb344 0%, #4ade80 100%);
    border: none;
    color: #0d1117;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(47, 179, 68, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.shop-arcade .btn-success:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(47, 179, 68, 0.45);
}

body.shop-arcade .btn-secondary {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
}

body.shop-arcade .btn-secondary:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.3);
}

body.shop-arcade .shop-coin-badge {
    background: rgba(255, 215, 0, 0.16) !important;
    border: 1px solid rgba(255, 215, 0, 0.4);
    color: var(--coin-gold);
}

body.shop-arcade .shop-coin-badge .ti-coin {
    color: var(--coin-gold);
}

body.shop-arcade .shop-buy-card {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
    color: var(--text-primary);
}

body.shop-arcade .shop-buy-icon {
    background: rgba(255, 255, 255, 0.08);
    color: var(--gradient-mid);
}

body.shop-arcade .shop-buy-section-title {
    color: var(--text-secondary);
}

body.shop-arcade .shop-buy-pack {
    background: rgba(255, 255, 255, 0.06);
    border: 1px dashed rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
}

body.shop-arcade .shop-buy-pack-price {
    color: var(--text-primary);
}

/* ===================================
   CHANNELS PAGE (ARCADE CONTEXT)
   =================================== */

body.channels-arcade .navbar {
    background: rgba(13, 17, 23, 0.92) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

body.channels-arcade .navbar-light .navbar-brand,
body.channels-arcade .navbar-light .navbar-nav .nav-link,
body.channels-arcade .navbar-light .navbar-text {
    color: var(--text-primary) !important;
}

body.channels-arcade .container {
    position: relative;
    z-index: 1;
}

body.channels-arcade .h4-text {
    color: var(--text-primary);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

body.channels-arcade .list-group {
    border-radius: var(--border-radius);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.35);
    background: transparent;
}

body.channels-arcade .list-group-item {
    background: var(--bg-card);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

body.channels-arcade .list-group-item-action:hover,
body.channels-arcade .list-group-item-action:focus {
    background: var(--bg-card-hover);
    color: var(--text-primary);
}

body.channels-arcade .list-group-item-success,
body.channels-arcade .list-group-item.active-channel {
    background: rgba(0, 217, 255, 0.14);
    border-color: rgba(0, 217, 255, 0.45);
    color: var(--text-primary);
}

body.channels-arcade .channels-list .channel-icon {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
}

body.channels-arcade .channels-list .channel-icon.is-pinned {
    background: rgba(255, 215, 0, 0.16);
    color: var(--coin-gold);
}

body.channels-arcade .channels-list .channel-title {
    color: var(--text-primary);
}

body.channels-arcade .channels-list .channel-desc {
    color: var(--text-muted);
}

body.channels-arcade .channels-list .channel-meta {
    color: var(--text-muted);
}

body.channels-arcade .channels-list .channel-flag {
    border-color: rgba(76, 158, 255, 0.35);
    background: rgba(76, 158, 255, 0.18);
    color: #9dc6ff;
}

body.channels-arcade .channels-list .channel-flag-registered {
    border-color: rgba(47, 179, 68, 0.4);
    background: rgba(47, 179, 68, 0.2);
    color: #86f7ab;
}

body.channels-arcade .channels-list .channel-flag-manage {
    border-color: rgba(0, 217, 255, 0.4);
    background: rgba(0, 217, 255, 0.2);
    color: var(--btn-primary);
}

body.channels-arcade .channels-list .channel-flag-private {
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-secondary);
}

body.channels-arcade .channels-list .channel-flag-password {
    border-color: rgba(255, 99, 172, 0.4);
    background: rgba(255, 99, 172, 0.2);
    color: #ff9ec9;
}

body.channels-arcade .badge-owner {
    border-color: rgba(76, 158, 255, 0.45);
    background: rgba(76, 158, 255, 0.2);
    color: #9dc6ff;
}

body.channels-arcade .badge-moderator {
    border-color: rgba(0, 217, 255, 0.35);
    background: rgba(0, 217, 255, 0.18);
    color: var(--btn-primary);
}

body.channels-arcade .channels-list .channel-online {
    background: linear-gradient(135deg, rgba(47, 179, 68, 0.95), rgba(130, 255, 176, 0.85)) !important;
    color: #0b1a12 !important;
    border: 1px solid rgba(130, 255, 176, 0.9);
    box-shadow: 0 10px 20px rgba(47, 179, 68, 0.35);
}

body.channels-arcade .form-control,
body.channels-arcade .form-select {
    background: var(--bg-card);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.channels-arcade .form-control:focus,
body.channels-arcade .form-select:focus {
    background: var(--bg-card-hover);
    border-color: rgba(76, 158, 255, 0.6);
    box-shadow: 0 0 0 3px rgba(76, 158, 255, 0.2);
}

body.channels-arcade .form-control::placeholder {
    color: var(--text-muted);
}

body.channels-arcade .form-select option {
    background: #111623;
    color: var(--text-primary);
}

body.channels-arcade .btn-outline-primary {
    border-color: rgba(0, 217, 255, 0.4);
    color: var(--btn-primary);
}

body.channels-arcade .btn-outline-primary:hover {
    background: rgba(0, 217, 255, 0.16);
    border-color: rgba(0, 217, 255, 0.6);
    color: var(--text-primary);
}

body.channels-arcade .btn-outline-secondary {
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.05);
}

body.channels-arcade .btn-outline-secondary:hover {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.channels-arcade .btn-primary {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    border: none;
    color: #ffffff;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(0, 217, 255, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.channels-arcade .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0, 217, 255, 0.45);
}

body.channels-arcade .btn-success {
    background: linear-gradient(135deg, #2fb344 0%, #4ade80 100%);
    border: none;
    color: #0d1117;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(47, 179, 68, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.channels-arcade .btn-success:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(47, 179, 68, 0.45);
}

body.channels-arcade .btn-secondary {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-primary);
}

body.channels-arcade .btn-secondary:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.3);
}

body.channels-arcade .channel-filter-count,
body.channels-arcade .badge.bg-secondary {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: var(--text-primary);
}

body.channels-arcade .form-check-input {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.25);
}

body.channels-arcade .form-check-input:checked {
    background-color: var(--btn-primary);
    border-color: var(--btn-primary);
}

body.channels-arcade .alert {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--text-secondary);
}

body.channels-arcade .alert-danger {
    background: rgba(255, 71, 87, 0.15);
    border-color: rgba(255, 71, 87, 0.4);
    color: #ff9aa2;
}

body.channels-arcade .alert-warning {
    background: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.4);
    color: #ffd266;
}

body.channels-arcade .alert-info {
    background: rgba(76, 158, 255, 0.15);
    border-color: rgba(76, 158, 255, 0.35);
    color: #9dc6ff;
}

body.channels-arcade .modal-content {
    background: var(--bg-card);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.channels-arcade .modal-header,
body.channels-arcade .modal-footer {
    border-color: rgba(255, 255, 255, 0.08);
}

body.channels-arcade .btn-close {
    filter: invert(1);
}

body.channels-arcade .text-muted {
    color: var(--text-muted) !important;
}

body.account-arcade.support-page .support-contact-list {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
    display: grid;
    gap: 6px;
    color: var(--text-secondary);
}

body.account-arcade.support-page .support-contact-label {
    display: inline-block;
    min-width: 140px;
    color: var(--text-muted);
    font-size: 0.85rem;
}

body.account-arcade.support-page .support-section-title {
    margin-top: 12px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-primary);
}

body.account-arcade.support-page .support-contact-list a {
    color: var(--gradient-mid);
    text-decoration: none;
}

body.account-arcade.support-page .support-contact-list a:hover {
    color: var(--btn-primary);
}

body.account-arcade .legal-content {
    color: var(--text-secondary);
    font-size: 14px;
    line-height: 1.6;
}

body.account-arcade .legal-content h3 {
    font-size: 15px;
    margin-top: 18px;
    color: var(--text-primary);
}

body.account-arcade .legal-content ul {
    padding-left: 18px;
    color: var(--text-secondary);
}

body.account-arcade .legal-content a {
    color: var(--gradient-mid);
    text-decoration: none;
}

body.account-arcade .legal-content a:hover {
    color: var(--btn-primary);
}

/* ===================================
   BOTTOM NAVIGATION
   =================================== */

.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(13, 17, 23, 0.95);
    backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 6px 0;
    z-index: 1000;
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    color: var(--text-muted);
    text-decoration: none;
    font-size: 9px;
    transition: color 0.3s ease;
    flex: 1;
}

.nav-item i {
    font-size: 18px;
}

.nav-item:hover {
    color: var(--text-secondary);
}

.nav-item.active {
    color: var(--btn-primary);
}

/* Center Nav Item (Special) */
.nav-item-center {
    position: relative;
}

.nav-center-icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    box-shadow: 0 6px 20px rgba(0, 217, 255, 0.5);
    position: relative;
    border: 2px solid rgba(0, 217, 255, 0.3);
}

.nav-item-center.active .nav-center-icon {
    border: 3px solid var(--btn-primary);
    box-shadow: 0 8px 24px rgba(0, 217, 255, 0.7);
    animation: glow-pulse 2s ease-in-out infinite;
}

@keyframes glow-pulse {
    0%, 100% {
        box-shadow: 0 6px 20px rgba(0, 217, 255, 0.5);
    }
    50% {
        box-shadow: 0 8px 28px rgba(0, 217, 255, 0.8);
    }
}

.nav-center-icon i {
    font-size: 16px;
    color: white;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
    margin-top: -1px;
}

.sneebo-text {
    font-size: 6px;
    font-weight: 800;
    color: white;
    white-space: nowrap;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
    margin-top: -1px;
}

.nav-center-text {
    position: absolute;
    bottom: -12px;
    font-size: 9px;
    font-weight: 700;
    color: var(--text-muted);
    white-space: nowrap;
    letter-spacing: 0.5px;
}

.nav-item-center.active .nav-center-text {
    color: var(--btn-primary);
}

/* ===================================
   ARCADE MAIN TABS
   =================================== */

.arcade-main-tabs {
    margin: 0 auto var(--spacing-lg);
    width: 100%;
}

.arcade-main-tabs.arcade-tabs {
    display: flex;
}

.arcade-main-tabs .arcade-tab {
    flex: 1;
}

a.arcade-tab {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

/* ===================================
   ARENA
   =================================== */

body.arena-page .arena-quick-card {
    background: linear-gradient(135deg, rgba(0, 217, 255, 0.12) 0%, rgba(124, 92, 232, 0.12) 100%);
    border: 1px solid rgba(0, 217, 255, 0.25);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

body.arena-page .arena-quick-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.arena-page .arena-quick-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}

body.arena-page .arena-quick-desc {
    font-size: 14px;
    color: var(--text-secondary);
}

body.arena-page .arena-quick-btn {
    padding: 10px 18px;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.arena-page .arena-section-title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: var(--spacing-sm);
}

body.arena-page .arena-grid {
    grid-template-columns: 1fr;
}

body.arena-page .arena-card {
    text-align: left;
}

body.arena-page .arena-icon {
    margin: 0 0 var(--spacing-sm) 0;
}

body.arena-page .arena-desc {
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: var(--spacing-md);
}

body.arena-page .arena-rankings-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
}

body.arena-page .arena-rankings-empty {
    color: var(--text-muted);
    font-size: 13px;
}

body.arena-page .arena-invites {
    display: grid;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

body.arena-page .arena-invite-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

body.arena-page .arena-invite-row {
    display: flex;
    gap: var(--spacing-sm);
}

body.arena-page .arena-invite-input {
    flex: 1;
    background: rgba(8, 12, 20, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    padding: 10px 14px;
    color: var(--text-primary);
    font-size: 13px;
}

body.arena-page .arena-invite-select {
    background: rgba(8, 12, 20, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    padding: 10px 14px;
    color: var(--text-primary);
    font-size: 13px;
    min-width: 120px;
}

body.arena-page .arena-invite-input::placeholder {
    color: var(--text-muted);
}

body.arena-page .arena-btn {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 100%);
    border: none;
    border-radius: 999px;
    padding: 10px 16px;
    color: white;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.arena-page .arena-btn-outline {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 10px 16px;
    color: var(--text-primary);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.arena-page .arena-btn-cancel {
    border-color: rgba(255, 107, 87, 0.35);
    color: rgba(255, 180, 170, 0.95);
}

body.arena-page .arena-invite-link {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    align-items: flex-start;
}

body.arena-page .arena-invite-details {
    width: 100%;
}

body.arena-page .arena-invite-summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 8px 14px;
}

body.arena-page .arena-invite-link .arena-invite-summary {
    cursor: default;
}

body.arena-page .arena-invite-summary::-webkit-details-marker {
    display: none;
}

body.arena-page .arena-invite-summary::marker {
    content: '';
}

body.arena-page .arena-invite-details[open] .arena-invite-summary {
    color: var(--text-primary);
    border-color: rgba(0, 217, 255, 0.3);
}

body.arena-page .arena-invite-link-row {
    margin-top: var(--spacing-sm);
    display: flex;
    gap: var(--spacing-sm);
    align-items: center;
    flex-wrap: wrap;
}

body.arena-page .arena-invite-link-row input {
    flex: 1;
    background: rgba(8, 12, 20, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    padding: 8px 12px;
    color: var(--text-primary);
    font-size: 12px;
}

body.arena-page .arena-invite-status {
    font-size: 12px;
    color: var(--text-muted);
}

body.arena-page .arena-invite-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

body.arena-page .arena-invite-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-sm);
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

body.arena-page .arena-invite-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
}

body.arena-page .arena-invite-actions {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    flex-wrap: wrap;
}

body.arena-page .arena-invite-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

body.arena-page .arena-invite-meta {
    font-size: 11px;
    color: var(--text-muted);
}

body.arena-page .arena-invite-empty {
    font-size: 12px;
    color: var(--text-muted);
}

body.arena-page .arena-invite-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
    z-index: 300;
}

body.arena-page .arena-invite-modal.is-open {
    display: flex;
}

body.arena-page .arena-invite-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 10, 18, 0.72);
    backdrop-filter: blur(8px);
}

body.arena-page .arena-invite-modal-card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 360px;
    border-radius: var(--border-radius);
    padding: var(--spacing-lg);
    background: linear-gradient(160deg, rgba(22, 28, 40, 0.97) 0%, rgba(14, 19, 30, 0.98) 100%);
    border: 1px solid rgba(0, 217, 255, 0.2);
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.55);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    animation: arenaInviteModalIn 0.2s ease-out;
}

body.arena-page .arena-invite-modal-title {
    font-size: 16px;
    font-weight: 700;
}

body.arena-page .arena-invite-modal-meta {
    font-size: 12px;
    color: var(--text-secondary);
}

body.arena-page .arena-invite-modal-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-xs);
}

@keyframes arenaInviteModalIn {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ===================================
   ARCADE MODAL
   =================================== */

body.arcade-page .arcade-modal {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
    z-index: 300;
}

body.arcade-page .arcade-modal.is-open {
    display: flex;
}

body.arcade-page .arcade-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 10, 18, 0.72);
    backdrop-filter: blur(8px);
}

body.arcade-page .arcade-modal-card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 360px;
    border-radius: var(--border-radius);
    padding: var(--spacing-lg);
    background: linear-gradient(160deg, rgba(22, 28, 40, 0.97) 0%, rgba(14, 19, 30, 0.98) 100%);
    border: 1px solid rgba(0, 217, 255, 0.2);
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.55);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    animation: arcadeModalIn 0.2s ease-out;
}

body.arcade-page .arcade-modal-title {
    font-size: 16px;
    font-weight: 700;
}

body.arcade-page .arcade-modal-meta {
    font-size: 12px;
    color: var(--text-secondary);
}

body.arcade-page .arcade-modal-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-xs);
    flex-wrap: wrap;
}

@keyframes arcadeModalIn {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* ===================================
   LINE DUEL
   =================================== */

body.line-duel-page {
    --player-one: #00d9ff;
    --player-two: #ff4757;
}

body.line-duel-page .line-duel-container {
    min-height: 100vh;
    padding: var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

body.line-duel-page .line-duel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
}

body.line-duel-page .back-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease, transform 0.2s ease;
}

body.line-duel-page .back-button:hover {
    color: var(--gradient-mid);
    transform: translateX(-4px);
}

body.line-duel-page .line-duel-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 16px;
    color: var(--text-primary);
}

body.line-duel-page .line-duel-panel {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

body.line-duel-page .line-duel-panel.is-waiting .line-duel-board {
    opacity: 0.4;
    pointer-events: none;
}

body.line-duel-page .line-duel-panel.is-waiting .line-duel-wait {
    opacity: 1;
    pointer-events: none;
}

body.line-duel-page .line-duel-panel.is-opponent .line-duel-board {
    opacity: 0.7;
}

body.line-duel-page .line-duel-panel.is-opponent .line-duel-wait {
    background: rgba(8, 12, 20, 0.55);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

body.line-duel-page .line-duel-scoreboard {
    display: flex;
    gap: var(--spacing-sm);
}

body.line-duel-page .line-duel-player {
    flex: 1;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

body.line-duel-page .line-duel-player.is-active {
    border-color: rgba(0, 217, 255, 0.4);
    box-shadow: 0 6px 18px rgba(0, 217, 255, 0.2);
}

body.line-duel-page .line-duel-player-label {
    font-size: 12px;
    color: var(--text-secondary);
}

body.line-duel-page .line-duel-player-score {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.line-duel-page .line-duel-status {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-muted);
}

body.line-duel-page .line-duel-turn {
    color: var(--text-secondary);
    font-weight: 600;
}

body.line-duel-page .line-duel-timer {
    color: var(--text-secondary);
    font-weight: 600;
}

body.line-duel-page .arena-share,
body.card-war-page .arena-share {
    margin-top: 10px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.line-duel-page .arena-share-label,
body.card-war-page .arena-share-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.line-duel-page .arena-share-row,
body.card-war-page .arena-share-row {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

body.line-duel-page .arena-share-row input,
body.card-war-page .arena-share-row input {
    flex: 1;
    min-width: 180px;
    background: rgba(8, 12, 20, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    padding: 8px 12px;
    color: var(--text-primary);
    font-size: 12px;
}

body.line-duel-page .arena-share-note,
body.card-war-page .arena-share-note {
    font-size: 11px;
    color: var(--text-muted);
}

body.line-duel-page .line-duel-board-wrap {
    position: relative;
}

body.line-duel-page .line-duel-board {
    --grid-count: 7;
    --cell-size: clamp(20px, 7vw, 30px);
    display: grid;
    grid-template-columns: repeat(var(--grid-count), var(--cell-size));
    grid-auto-rows: var(--cell-size);
    gap: 0;
    justify-content: center;
    align-items: center;
    padding: var(--spacing-md);
    background: rgba(8, 12, 20, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    position: relative;
    z-index: 1;
}

body.line-duel-page .line-duel-board.is-locked {
    opacity: 0.7;
}

body.line-duel-page .line-duel-wait {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--spacing-md);
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    background: rgba(8, 12, 20, 0.8);
    border-radius: var(--border-radius-sm);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
    z-index: 2;
}

body.line-duel-page .ld-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    margin: auto;
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.4);
}

body.line-duel-page .ld-edge {
    width: 100%;
    height: 100%;
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
    touch-action: manipulation;
}

body.line-duel-page .ld-edge::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    transition: background 0.2s ease, box-shadow 0.2s ease;
}

body.line-duel-page .ld-edge.edge-h::before {
    width: 70%;
    height: 4px;
}

body.line-duel-page .ld-edge.edge-v::before {
    width: 4px;
    height: 70%;
}

body.line-duel-page .ld-edge:not(.is-claimed):hover::before {
    background: rgba(0, 217, 255, 0.45);
    box-shadow: 0 0 8px rgba(0, 217, 255, 0.4);
}

body.line-duel-page .ld-edge.player-1::before {
    background: var(--player-one);
    box-shadow: 0 0 10px rgba(0, 217, 255, 0.6);
}

body.line-duel-page .ld-edge.player-2::before {
    background: var(--player-two);
    box-shadow: 0 0 10px rgba(255, 71, 87, 0.6);
}

body.line-duel-page .ld-edge:disabled {
    cursor: default;
}

body.line-duel-page .ld-box {
    width: 100%;
    height: 100%;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.02);
    transition: background 0.2s ease, box-shadow 0.2s ease;
}

body.line-duel-page .ld-box.is-claimed.player-1 {
    background: rgba(0, 217, 255, 0.2);
    box-shadow: inset 0 0 10px rgba(0, 217, 255, 0.3);
}

body.line-duel-page .ld-box.is-claimed.player-2 {
    background: rgba(255, 71, 87, 0.2);
    box-shadow: inset 0 0 10px rgba(255, 71, 87, 0.3);
}

body.line-duel-page .line-duel-actions {
    display: flex;
    gap: var(--spacing-sm);
}

body.line-duel-page .line-duel-btn {
    flex: 1;
    border: none;
    border-radius: 999px;
    padding: 10px 16px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
}

body.line-duel-page .line-duel-btn.primary {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 100%);
    color: white;
    box-shadow: 0 6px 18px rgba(0, 217, 255, 0.35);
}

body.line-duel-page .line-duel-btn.ghost {
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.16);
}

body.line-duel-page .line-duel-result {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: opacity 0.2s ease, max-height 0.2s ease;
    text-align: center;
}

body.line-duel-page .line-duel-result.is-visible {
    opacity: 1;
    max-height: 120px;
}

body.line-duel-page .line-duel-result-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.line-duel-page .line-duel-result-score {
    font-size: 14px;
    color: var(--text-secondary);
}

body.line-duel-page .line-duel-status-msg {
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
}

body.line-duel-page .line-duel-hint {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
}

body.line-duel-page .line-duel-hint-muted {
    color: var(--text-muted);
}

/* ===================================
   CARD WAR
   =================================== */

body.card-war-page {
    --player-one: #00d9ff;
    --player-two: #ffb347;
}

body.card-war-page .card-war-container {
    min-height: 100vh;
    padding: var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

body.card-war-page .card-war-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
}

body.card-war-page .back-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease, transform 0.2s ease;
}

body.card-war-page .back-button:hover {
    color: var(--gradient-mid);
    transform: translateX(-4px);
}

body.card-war-page .card-war-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    font-size: 16px;
    color: var(--text-primary);
}

body.card-war-page .card-war-panel {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    padding: var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

body.card-war-page .card-war-panel.is-waiting .card-war-board {
    opacity: 0.4;
    pointer-events: none;
}

body.card-war-page .card-war-panel.is-waiting .card-war-wait {
    opacity: 1;
    pointer-events: none;
}

body.card-war-page .card-war-panel.is-opponent .card-war-board {
    opacity: 0.7;
}

body.card-war-page .card-war-panel.is-opponent .card-war-wait {
    background: rgba(8, 12, 20, 0.55);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

body.card-war-page .card-war-scoreboard {
    display: flex;
    gap: var(--spacing-sm);
}

body.card-war-page .card-war-player {
    flex: 1;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

body.card-war-page .card-war-player.is-active {
    border-color: rgba(0, 217, 255, 0.4);
    box-shadow: 0 6px 18px rgba(0, 217, 255, 0.2);
}

body.card-war-page .card-war-player-label {
    font-size: 12px;
    color: var(--text-secondary);
}

body.card-war-page .card-war-player-score {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.card-war-page .card-war-status {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-muted);
}

body.card-war-page .card-war-turn {
    color: var(--text-secondary);
    font-weight: 600;
}

body.card-war-page .card-war-board-wrap {
    position: relative;
}

body.card-war-page .card-war-board {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: var(--spacing-md);
    align-items: center;
    justify-items: center;
    padding: var(--spacing-md);
    background: rgba(8, 12, 20, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--border-radius-sm);
    position: relative;
    z-index: 1;
}

body.card-war-page .card-war-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

body.card-war-page .card-war-slot-label {
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

body.card-war-page .card-war-slot.is-you .card-war-slot-label {
    color: var(--player-one);
}

body.card-war-page .card-war-slot.is-opponent .card-war-slot-label {
    color: var(--player-two);
}

body.card-war-page .card-war-middle {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    min-width: 120px;
}

body.card-war-page .card-war-message {
    display: block;
    width: 100%;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    text-align: center;
    line-height: 1.35;
    white-space: normal;
}

body.card-war-page .card-war-sub {
    display: block;
    width: 100%;
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
    line-height: 1.3;
    white-space: normal;
}

body.card-war-page .card-war-war {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--gradient-mid);
}

body.card-war-page .card-face {
    width: clamp(72px, 24vw, 110px);
    height: clamp(100px, 32vw, 150px);
    border-radius: 12px;
    background: #f8fafc;
    border: 2px solid rgba(15, 23, 42, 0.15);
    color: #0f172a;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 10px;
    font-weight: 700;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.18);
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.card-war-page .card-war-slot.is-you .card-face {
    outline: 2px solid rgba(0, 217, 255, 0.55);
    outline-offset: 2px;
}

body.card-war-page .card-war-slot.is-opponent .card-face {
    outline: 2px solid rgba(255, 179, 71, 0.45);
    outline-offset: 2px;
}

body.card-war-page .card-face.is-reveal {
    animation: cardWarReveal 0.25s ease;
}

body.card-war-page .card-face.is-back {
    background: linear-gradient(135deg, rgba(0, 217, 255, 0.85), rgba(255, 71, 87, 0.85));
    color: #fff;
    border: none;
    align-items: center;
    justify-content: center;
}

@keyframes cardWarReveal {
    from {
        transform: scale(0.96) rotate(-1.5deg);
    }
    to {
        transform: scale(1) rotate(0);
    }
}

body.card-war-page .card-back-text {
    font-size: 26px;
    letter-spacing: 0.12em;
}

body.card-war-page .card-rank {
    font-size: 22px;
}

body.card-war-page .card-suit {
    font-size: 24px;
}

body.card-war-page .card-suit.red {
    color: #ef4444;
}

body.card-war-page .card-suit.black {
    color: #1e293b;
}

body.card-war-page .card-war-wait {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--spacing-md);
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    background: rgba(8, 12, 20, 0.8);
    border-radius: var(--border-radius-sm);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
    z-index: 2;
}

body.card-war-page .card-war-actions {
    display: flex;
    gap: var(--spacing-sm);
}

body.card-war-page .card-war-btn {
    flex: 1;
    border: none;
    border-radius: 999px;
    padding: 10px 16px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
}

body.card-war-page .card-war-btn.primary {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 100%);
    color: white;
    box-shadow: 0 6px 18px rgba(0, 217, 255, 0.35);
}

body.card-war-page .card-war-btn.ghost {
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-primary);
    border: 1px solid rgba(255, 255, 255, 0.16);
}

body.card-war-page .card-war-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    box-shadow: none;
    filter: grayscale(0.2);
}

body.card-war-page .card-war-footer {
    display: flex;
    justify-content: center;
    gap: var(--spacing-sm);
    padding-top: var(--spacing-xs);
}

body.card-war-page .card-war-end {
    border-color: rgba(255, 107, 87, 0.45);
    color: rgba(255, 180, 170, 0.95);
}

body.card-war-page .card-war-new {
    max-width: 180px;
    width: 100%;
    opacity: 0.85;
}

body.card-war-page .card-war-result {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: opacity 0.2s ease, max-height 0.2s ease;
    text-align: center;
}

body.card-war-page .card-war-result.is-visible {
    opacity: 1;
    max-height: 120px;
}

body.card-war-page .card-war-result-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

body.card-war-page .card-war-result-score {
    font-size: 14px;
    color: var(--text-secondary);
}

body.card-war-page .card-war-status-msg {
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
}

body.card-war-page .card-war-rules {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 12px 14px;
}

body.card-war-page .card-war-rules-title {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 8px;
}

body.card-war-page .card-war-rules-list {
    margin: 0;
    padding-left: 16px;
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
}

body.card-war-page .card-war-rules-list li {
    margin-bottom: 6px;
}

body.card-war-page .card-war-rules-list li:last-child {
    margin-bottom: 0;
}

/* ===================================
   RESPONSIVE
   =================================== */

@media (max-width: 600px) {
    .arcade-title h1 {
        font-size: 20px;
    }

    .arcade-title h1 i {
        font-size: 22px;
    }

    .arcade-tagline {
        font-size: 12px;
    }

    .featured-title {
        font-size: 26px;
    }

    .featured-record {
        font-size: 13px;
    }

    body.sudoku-page .sudoku-title h1 {
        font-size: 22px;
    }

    body.sudoku-page .sudoku-title p {
        font-size: 12px;
    }

    .arcade-quest {
        grid-template-columns: 1fr;
    }

    .achievements-grid {
        grid-template-columns: 1fr;
    }

    body.arena-page .arena-quick-card {
        flex-direction: column;
        align-items: flex-start;
    }

    body.arena-page .arena-invite-row {
        flex-direction: column;
    }

    body.arena-page .arena-invite-link {
        flex-direction: column;
        align-items: stretch;
    }

    body.arena-page .arena-invite-item {
        align-items: stretch;
    }

    body.arena-page .arena-invite-top {
        flex-direction: column;
        align-items: stretch;
    }

    body.arena-page .arena-invite-actions {
        width: 100%;
        justify-content: flex-start;
    }

    body.arena-page .arena-invite-summary {
        width: 100%;
        justify-content: center;
    }

    body.arena-page .arena-invite-link-row {
        flex-direction: column;
        align-items: stretch;
    }

    body.arena-page .arena-invite-modal-actions {
        flex-direction: column;
        align-items: stretch;
    }

    body.arena-page .arena-invite-modal-actions .arena-btn,
    body.arena-page .arena-invite-modal-actions .arena-btn-outline {
        width: 100%;
    }

    body.line-duel-page .line-duel-actions {
        flex-direction: column;
    }

    body.line-duel-page .line-duel-status {
        flex-direction: column;
        gap: 4px;
    }

    body.card-war-page .card-war-actions {
        flex-direction: column;
    }

    body.card-war-page .card-war-board {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    body.card-war-page .card-war-slot.is-opponent {
        order: 0;
    }

    body.card-war-page .card-war-middle {
        order: 1;
    }

    body.card-war-page .card-war-slot.is-you {
        order: 2;
    }

    body.pm-page .pm-actions {
        flex-direction: column;
        align-items: stretch;
    }

    body.pm-page .pm-actions .btn-arcade-primary,
    body.pm-page .pm-actions .btn-arcade-outline {
        width: 100%;
    }
}

/* ===================================
   SUDOKU
   =================================== */

body.sudoku-page .arcade-main {
    max-width: 720px;
}

body.sudoku-page .sudoku-main {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.sudoku-page .sudoku-topbar {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    align-items: center;
    gap: 4px;
    padding: 4px 6px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

body.sudoku-page .sudoku-back,
body.sudoku-page .sudoku-menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    text-decoration: none;
    transition: all 0.2s ease;
}

body.sudoku-page .sudoku-back:hover,
body.sudoku-page .sudoku-menu:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
}

body.sudoku-page .sudoku-mode {
    font-size: 12px;
    font-weight: 700;
    color: #e8efff;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.sudoku-page .sudoku-topbar-stats {
    display: flex;
    gap: 3px;
    align-items: center;
    flex-wrap: nowrap;
    margin-left: auto;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

body.sudoku-page .sudoku-topbar-stats::-webkit-scrollbar {
    display: none;
}

body.sudoku-page .sudoku-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #eef4ff;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

body.sudoku-page .sudoku-chip i {
    color: #8cc0ff;
    font-size: 13px;
}

body.sudoku-page .sudoku-chip.is-warning {
    background: rgba(255, 199, 94, 0.18);
    color: #ffd07d;
}

body.sudoku-page .sudoku-chip.is-danger {
    background: rgba(255, 71, 87, 0.2);
    color: var(--badge-red);
}

body.sudoku-page .sudoku-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-lg);
    padding: var(--spacing-md);
    background: var(--bg-card);
    border-radius: var(--border-radius);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

body.sudoku-page .sudoku-header-left {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

body.sudoku-page .back-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-primary);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.2s ease;
}

body.sudoku-page .back-button:hover {
    color: var(--gradient-mid);
    transform: translateX(-3px);
}

body.sudoku-page .sudoku-title h1 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 26px;
    margin: 0;
}

body.sudoku-page .sudoku-title h1 i {
    color: var(--btn-primary);
}

body.sudoku-page .sudoku-title p {
    margin: 4px 0 0;
    color: var(--text-secondary);
    font-size: 14px;
}

body.sudoku-page .sudoku-header-right {
    display: flex;
    gap: var(--spacing-sm);
}

body.sudoku-page .sudoku-stat {
    min-width: 70px;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    text-align: center;
}

body.sudoku-page .sudoku-stat .stat-label {
    display: block;
    color: var(--text-muted);
    font-size: 10px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

body.sudoku-page .sudoku-stat .stat-value {
    font-weight: 700;
    font-size: 16px;
    color: var(--text-primary);
}

body.sudoku-page .sudoku-panel {
    padding: var(--spacing-md);
    border-radius: var(--border-radius);
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

body.sudoku-page .sudoku-panel-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

body.sudoku-page .sudoku-difficulty {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
}

body.sudoku-page .sudoku-difficulty-btn {
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    transition: all 0.2s ease;
}

body.sudoku-page .sudoku-difficulty-btn:hover {
    background: rgba(255, 255, 255, 0.12);
}

body.sudoku-page .sudoku-difficulty-btn.is-active {
    background: var(--gradient-start);
    color: #09131a;
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(0, 217, 255, 0.35);
}

body.sudoku-page .sudoku-panel-actions .btn-play {
    margin: 0;
}

body.sudoku-page .sudoku-daily-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

body.sudoku-page .sudoku-daily-meta {
    color: var(--text-secondary);
    font-size: 13px;
}

body.sudoku-page .sudoku-board {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: 2px;
    padding: 6px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

body.sudoku-page .sudoku-board.is-disabled {
    opacity: 0.6;
    pointer-events: none;
}

body.sudoku-page .sudoku-cell {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
    background: rgba(12, 16, 25, 0.9);
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
    font-size: clamp(16px, 4.8vw, 20px);
    font-weight: 700;
    line-height: 1;
    transition: background 0.2s ease, transform 0.1s ease;
}

body.sudoku-page .sudoku-cell:hover {
    transform: translateY(-1px);
}

body.sudoku-page .sudoku-cell-border-right {
    border-right: 3px solid rgba(0, 217, 255, 0.45);
}

body.sudoku-page .sudoku-cell-border-bottom {
    border-bottom: 3px solid rgba(0, 217, 255, 0.45);
}

body.sudoku-page .sudoku-cell.is-given {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

body.sudoku-page .sudoku-cell.is-selected {
    box-shadow: 0 0 0 2px var(--gradient-start);
}

body.sudoku-page .sudoku-cell.is-related {
    background: rgba(255, 255, 255, 0.08);
}

body.sudoku-page .sudoku-cell.is-line {
    background: rgba(0, 217, 255, 0.1);
}

body.sudoku-page .sudoku-cell.is-same {
    background: rgba(0, 217, 255, 0.12);
}

body.sudoku-page .sudoku-cell.is-possible {
    box-shadow: inset 0 0 0 2px rgba(0, 217, 255, 0.35);
}

body.sudoku-page .sudoku-cell.is-possible-line {
    background: rgba(0, 217, 255, 0.08);
}

body.sudoku-page .sudoku-cell.is-conflict {
    background: rgba(255, 71, 87, 0.2);
    border-color: rgba(255, 71, 87, 0.6);
}

body.sudoku-page .sudoku-cell.is-mistake {
    box-shadow: 0 0 0 2px rgba(255, 71, 87, 0.65);
    border-color: rgba(255, 71, 87, 0.8);
}

body.sudoku-page .sudoku-cell-value {
    font-size: clamp(18px, 5.2vw, 22px);
    line-height: 1;
}

body.sudoku-page .sudoku-cell-notes {
    position: absolute;
    inset: 2px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    align-items: center;
    justify-items: center;
    font-size: clamp(8px, 1.7vw, 11px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1;
    color: #cbd5f5;
    opacity: 0;
}

body.sudoku-page .sudoku-cell-notes span {
    font-weight: 400;
}

body.sudoku-page .sudoku-cell-notes.is-visible {
    opacity: 1;
}

body.sudoku-page .sudoku-controls {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

body.sudoku-page .sudoku-number-pad {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

body.sudoku-page .sudoku-number-btn {
    padding: 7px 0;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: var(--bg-card);
    color: var(--text-primary);
    font-size: 14px;
    font-weight: 700;
    transition: all 0.2s ease;
}

body.sudoku-page .sudoku-number-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0, 217, 255, 0.2);
}

body.sudoku-page .sudoku-number-btn:disabled {
    opacity: 0.5;
}

body.sudoku-page .sudoku-number-btn.is-complete {
    opacity: 0.45;
}

body.sudoku-page .sudoku-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

body.sudoku-page .sudoku-tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 8px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font-size: 11px;
    font-weight: 600;
    transition: all 0.2s ease;
}

body.sudoku-page .sudoku-tool:hover {
    background: rgba(255, 255, 255, 0.12);
}

body.sudoku-page .sudoku-tool.is-active {
    background: rgba(0, 217, 255, 0.2);
    border-color: rgba(0, 217, 255, 0.6);
}

body.sudoku-page .sudoku-submit {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    border: none;
    color: #ffffff;
    font-weight: 700;
}

body.sudoku-page .sudoku-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(0, 217, 255, 0.4);
}

body.sudoku-page .sudoku-message {
    min-height: 20px;
    text-align: center;
    font-size: 13px;
    color: var(--text-secondary);
}

body.sudoku-page .sudoku-message.is-success {
    color: var(--badge-green);
}

body.sudoku-page .sudoku-message.is-error {
    color: var(--badge-red);
}

body.sudoku-page .sudoku-message.is-info {
    color: var(--text-secondary);
}

body.sudoku-page .sudoku-start-modal .modal-content {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.sudoku-page .sudoku-start-modal .payment-modal-hero {
    background: radial-gradient(circle at 20% 20%, rgba(0, 217, 255, 0.35), transparent 60%),
                radial-gradient(circle at 80% 0%, rgba(155, 93, 229, 0.35), transparent 50%),
                rgba(12, 16, 25, 0.9);
}

body.sudoku-page .sudoku-start-modal .payment-modal-icon {
    color: var(--gradient-mid);
}

body.sudoku-page .sudoku-mistake-modal .modal-content,
body.sudoku-page .sudoku-alert-modal .modal-content {
    background: var(--bg-card);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--text-primary);
}

body.sudoku-page .sudoku-mistake-modal .payment-modal-hero,
body.sudoku-page .sudoku-alert-modal .payment-modal-hero {
    background: radial-gradient(circle at 20% 20%, rgba(0, 217, 255, 0.35), transparent 60%),
                radial-gradient(circle at 80% 0%, rgba(155, 93, 229, 0.35), transparent 50%),
                rgba(12, 16, 25, 0.9);
}

body.sudoku-page .sudoku-mistake-modal .payment-modal-icon {
    color: var(--badge-red);
}

body.sudoku-page .sudoku-alert-modal .payment-modal-icon {
    color: var(--gradient-mid);
}

body.sudoku-page .sudoku-modal-modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-sm);
    margin-top: var(--spacing-sm);
}

body.sudoku-page .sudoku-modal-mode {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-primary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-size: 11px;
    transition: all 0.2s ease;
}

body.sudoku-page .sudoku-mode-reward {
    position: static;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 1px 5px;
    border-radius: 999px;
    background: rgba(255, 215, 0, 0.18);
    border: 1px solid rgba(255, 215, 0, 0.45);
    color: #ffd861;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.2px;
    text-transform: uppercase;
    pointer-events: none;
    box-shadow: 0 4px 10px rgba(255, 215, 0, 0.18);
}

body.sudoku-page .sudoku-mode-reward i {
    font-size: 10px;
}

body.sudoku-page .sudoku-modal-mode.is-active {
    background: var(--gradient-start);
    color: #09131a;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(0, 217, 255, 0.3);
}

body.sudoku-page .sudoku-modal-mode.is-active .sudoku-mode-reward {
    background: rgba(9, 19, 26, 0.85);
    color: #ffd861;
    border-color: rgba(255, 215, 0, 0.55);
    box-shadow: 0 4px 10px rgba(9, 19, 26, 0.35);
}

body.sudoku-page .sudoku-modal-mode.is-active .sudoku-mode-reward i {
    color: #ffd861;
}

body.sudoku-page .sudoku-modal-section {
    margin-top: var(--spacing-md);
}

body.sudoku-page .sudoku-modal-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-muted);
    margin-bottom: 8px;
}

body.sudoku-page .sudoku-modal-difficulties {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-sm);
}

body.sudoku-page .sudoku-modal-difficulty {
    position: relative;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-primary);
    font-weight: 600;
    font-size: 12px;
    transition: all 0.2s ease;
}

body.sudoku-page .sudoku-modal-difficulty.is-active {
    background: rgba(0, 217, 255, 0.18);
    border-color: rgba(0, 217, 255, 0.4);
}

body.sudoku-page .sudoku-modal-difficulty.has-resume::after {
    content: '';
    position: absolute;
    top: 8px;
    right: 8px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--badge-green);
    box-shadow: 0 0 8px rgba(47, 179, 68, 0.6);
}

body.sudoku-page .sudoku-modal-daily-meta {
    font-size: 13px;
    color: var(--text-secondary);
}

body.sudoku-page .sudoku-modal-daily-reward {
    margin-top: 6px;
    font-size: 12px;
    color: var(--text-muted);
}

body.sudoku-page .sudoku-modal-resume {
    margin-top: 8px;
    font-size: 12px;
    color: var(--text-muted);
}

body.sudoku-page .sudoku-modal-leaderboard {
    margin-top: var(--spacing-md);
    max-height: 180px;
    overflow: auto;
}

body.sudoku-page .sudoku-modal-footer .btn {
    min-width: 120px;
}

/* ===================================
   ARCADE CHAT CHANNEL
   =================================== */

body.chat-arcade .chat-card {
    background: linear-gradient(135deg, rgba(26, 31, 46, 0.95) 0%, rgba(16, 20, 32, 0.95) 100%);
    border: 1px solid rgba(0, 217, 255, 0.2);
    box-shadow: 0 10px 24px rgba(9, 12, 18, 0.55), 0 0 0 1px rgba(76, 158, 255, 0.08);
}

body.chat-arcade {
    color: var(--text-primary);
    background: var(--bg-dark);
    --text: #edf5ff;
    --primary: #00d9ff;
    --primary-strong: #4c9eff;
    --surface: #121826;
    --surface-muted: #0f1420;
    --border: rgba(76, 158, 255, 0.2);
    --text-muted: #8b91a7;
    --bs-body-bg: #0d1117;
    --bs-body-color: #e6eefc;
    --bs-border-color: rgba(76, 158, 255, 0.2);
    --bs-secondary-bg: rgba(18, 24, 38, 0.9);
    --bs-tertiary-bg: rgba(14, 20, 32, 0.95);
    --bs-secondary-color: #8b91a7;
    --bs-primary: #00d9ff;
    --bs-primary-rgb: 0, 217, 255;
}

body.chat-arcade .chat-navbar {
    background: rgba(13, 17, 23, 0.96) !important;
    border-bottom: 1px solid rgba(0, 217, 255, 0.2);
    box-shadow: 0 10px 22px rgba(7, 10, 16, 0.6);
}

body.chat-arcade .navbar-brand img {
    background: rgba(13, 17, 23, 0.9);
    box-shadow: 0 0 0 1px rgba(76, 158, 255, 0.25);
}

body.chat-arcade .chat-channel-text {
    background: rgba(0, 217, 255, 0.12);
    border: 1px solid rgba(0, 217, 255, 0.28);
    color: var(--text-primary);
}

body.chat-arcade .chat-navbar .nav-actions .btn {
    background: rgba(15, 20, 32, 0.9);
    border: 1px solid rgba(76, 158, 255, 0.2);
    color: var(--text-secondary);
    box-shadow: none;
    transform: none;
}

body.chat-arcade .chat-navbar .nav-actions .btn:hover {
    background: rgba(20, 26, 40, 0.95);
    border-color: rgba(0, 217, 255, 0.45);
    color: var(--text-primary);
    transform: none;
}

body.chat-arcade .chat-navbar .nav-actions .btn:focus {
    box-shadow: 0 0 0 2px rgba(0, 217, 255, 0.2);
}

body.chat-arcade .header-layout-pill .nav-actions-full,
body.chat-arcade .header-layout-pill .nav-actions-admin {
    background: rgba(15, 20, 32, 0.75);
    border: 1px solid rgba(76, 158, 255, 0.2);
    box-shadow: none;
}

body.chat-arcade .nav-icon-btn.nav-coin-btn {
    border-color: rgba(255, 215, 0, 0.55) !important;
    color: #ffd700 !important;
}

body.chat-arcade .nav-icon-btn.nav-coin-btn:hover {
    background: rgba(255, 215, 0, 0.12);
    border-color: rgba(255, 215, 0, 0.7) !important;
}

body.chat-arcade .chat-navbar a[aria-label="Arcade"] i {
    display: inline-block;
    color: var(--gradient-mid);
    background: linear-gradient(135deg, var(--gradient-start), var(--gradient-mid), var(--gradient-end));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

body.chat-arcade .chat-input-group {
    background: rgba(14, 18, 30, 0.95);
    border: 1px solid rgba(76, 158, 255, 0.25);
    box-shadow: 0 8px 18px rgba(6, 10, 16, 0.55);
}

body.chat-arcade .chat-input-group:focus-within {
    border-color: rgba(0, 217, 255, 0.55);
    box-shadow: 0 0 0 2px rgba(0, 217, 255, 0.2);
}

body.chat-arcade .chat-input-group #messageBox {
    background: transparent;
    color: #edf4ff;
}

body.chat-arcade .chat-input-group #messageBox::placeholder {
    color: rgba(237, 244, 255, 0.4);
}

body.chat-arcade #sendButton {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
    color: #06121a;
    font-weight: 700;
    border: 0;
    box-shadow: 0 8px 18px rgba(0, 217, 255, 0.35);
}

body.chat-arcade #sendButton:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(76, 158, 255, 0.45);
}

body.chat-arcade #sendButton:disabled {
    background: rgba(76, 158, 255, 0.2);
    color: rgba(255, 255, 255, 0.5);
    box-shadow: none;
    transform: none;
}

body.chat-arcade.chat-compact .chat-input-group #sendButton {
    border-left: 0;
}

body.chat-arcade .game-command-btn {
    background: rgba(0, 217, 255, 0.12);
    border: 1px solid rgba(0, 217, 255, 0.28);
    color: var(--text-primary);
}

body.chat-arcade .game-command-btn:hover {
    background: rgba(0, 217, 255, 0.2);
    border-color: rgba(0, 217, 255, 0.45);
}

body.chat-arcade .chat-input-notices .alert {
    background: rgba(0, 217, 255, 0.12);
    border-color: rgba(0, 217, 255, 0.3);
    color: #d9f7ff;
}

body.chat-arcade .chat-input-notices .alert-warning {
    background: rgba(255, 215, 0, 0.12);
    border-color: rgba(255, 215, 0, 0.3);
    color: #ffe9a6;
}

body.chat-arcade .chat-game-alert {
    background: rgba(0, 217, 255, 0.12);
    border: 1px solid rgba(0, 217, 255, 0.35);
    color: #d9f7ff;
    box-shadow: 0 8px 16px rgba(6, 10, 16, 0.45);
}

body.chat-arcade .chat-game-alert a {
    color: var(--gradient-mid);
    text-decoration: none;
}

body.chat-arcade .chat-game-alert a:hover {
    color: var(--gradient-end);
    text-decoration: underline;
}

body.chat-arcade .chat-game-alert .small-grey-text {
    color: #a9b6d6;
}

body.chat-arcade .chat-game-alert .grid {
    --cell-size: 22px;
    display: grid;
    grid-template-columns: repeat(9, var(--cell-size));
    gap: 2px;
    margin: 6px 0;
}

body.chat-arcade .chat-game-alert .cell {
    width: var(--cell-size);
    height: var(--cell-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(76, 158, 255, 0.45);
    border-radius: 4px;
    background: rgba(10, 14, 22, 0.92);
    color: #eef4ff;
    font-size: clamp(0.8em, 2.6vw, 0.95em);
    font-weight: 600;
}

body.chat-arcade .chat-game-alert .correct-cell {
    background: rgba(47, 179, 68, 0.9);
    border-color: rgba(47, 179, 68, 0.95);
    color: #0b1a12;
    text-shadow: none;
}

body.chat-arcade .chat-reply-preview {
    background: rgba(15, 20, 32, 0.85);
    border: 1px solid rgba(76, 158, 255, 0.2);
    color: var(--text-secondary);
}

body.chat-arcade .chat-reply-preview-label,
body.chat-arcade .chat-reply-inline,
body.chat-arcade .chat-reply-text {
    color: var(--text-muted);
}

body.chat-arcade .chat-reply-inline {
    border-left-color: rgba(0, 217, 255, 0.35);
}

body.chat-arcade .chat-reply-preview-user,
body.chat-arcade .chat-reply-preview-text {
    color: var(--text-secondary);
}

body.chat-arcade .chat-reply-cancel,
body.chat-arcade .chat-reply-btn {
    color: var(--text-muted);
}

body.chat-arcade .chat-reply-cancel:hover,
body.chat-arcade .chat-reply-btn:hover {
    color: var(--btn-primary);
}

body.chat-arcade .chat-suggestions {
    background: rgba(12, 16, 26, 0.98);
    border: 1px solid rgba(0, 217, 255, 0.3);
    box-shadow: 0 12px 24px rgba(6, 10, 16, 0.6);
    color: var(--text-primary);
}

body.chat-arcade .chat-suggestion-item {
    color: var(--text-secondary);
}

body.chat-arcade .chat-suggestion-item.active,
body.chat-arcade .chat-suggestion-item:hover {
    background: rgba(0, 217, 255, 0.12);
    color: var(--text-primary);
}

body.chat-arcade .gif-card {
    background: rgba(16, 22, 34, 0.95);
    border-color: rgba(76, 158, 255, 0.2);
    box-shadow: 0 8px 18px rgba(6, 10, 16, 0.5);
}

body.chat-arcade .gif-title {
    color: var(--text-muted);
}

body.chat-arcade .gif-error {
    color: #ff8fa3;
}

body.chat-arcade .onboarding-card {
    background: rgba(14, 18, 30, 0.92);
    border: 1px solid rgba(76, 158, 255, 0.2);
}

body.chat-arcade .onboarding-title {
    color: var(--text-primary);
}

body.chat-arcade .onboarding-subtitle,
body.chat-arcade .onboarding-info-item {
    color: var(--text-muted);
}

body.chat-arcade .onboarding-channel-chip {
    border-color: rgba(0, 217, 255, 0.25);
    background: rgba(0, 217, 255, 0.08);
    color: var(--text-primary);
}

body.chat-arcade .onboarding-channel-chip:hover {
    border-color: rgba(0, 217, 255, 0.45);
    background: rgba(0, 217, 255, 0.16);
}

body.chat-arcade .user-menu-offcanvas {
    background: rgba(13, 17, 23, 0.98);
    color: var(--text-primary);
    border-left: 1px solid rgba(76, 158, 255, 0.2);
}

body.chat-arcade .user-menu-offcanvas .offcanvas-header {
    border-bottom: 1px solid rgba(76, 158, 255, 0.15);
}

body.chat-arcade .user-menu-offcanvas .btn-close {
    filter: invert(1) brightness(1.2);
}

body.chat-arcade .user-menu-avatar {
    background: rgba(18, 24, 38, 0.9);
    border: 1px solid rgba(76, 158, 255, 0.25);
    color: var(--text-secondary);
}

body.chat-arcade .user-menu-section-title {
    color: var(--text-muted);
}

body.chat-arcade .user-menu-tile,
body.chat-arcade .user-menu-row,
body.chat-arcade .user-menu-list {
    background: rgba(16, 22, 34, 0.95);
    border-color: rgba(76, 158, 255, 0.2);
}

body.chat-arcade .user-menu-row-meta {
    color: var(--text-muted);
}

body.chat-arcade .user-menu-count {
    background: rgba(0, 217, 255, 0.2);
    color: #06121a;
    border: 1px solid rgba(0, 217, 255, 0.4);
}

body.chat-arcade .user-menu-count.is-coin {
    background: rgba(255, 215, 0, 0.18);
    color: #ffd861;
    border-color: rgba(255, 215, 0, 0.45);
}

body.chat-arcade .user-menu-tile-icon {
    background: rgba(0, 217, 255, 0.18);
    color: var(--btn-primary);
}

body.chat-arcade .user-menu-tile-icon.is-warning {
    background: rgba(255, 215, 0, 0.2);
    color: #ffd861;
}

body.chat-arcade .user-menu-tile-icon.is-success {
    background: rgba(47, 179, 68, 0.2);
    color: #7ae887;
}

body.chat-arcade .user-menu-tile-icon.is-indigo {
    background: rgba(76, 158, 255, 0.2);
    color: #8cc0ff;
}

body.chat-arcade .user-menu-tile-icon.is-teal {
    background: rgba(0, 217, 255, 0.18);
    color: #7fe6ff;
}

body.chat-arcade .user-menu-list .user-menu-row + .user-menu-row {
    border-top-color: rgba(76, 158, 255, 0.15);
}

body.chat-arcade .user-menu-lang-btn {
    background: rgba(14, 20, 32, 0.9);
    border-color: rgba(76, 158, 255, 0.2);
    color: var(--text-secondary);
}

body.chat-arcade .user-menu-lang-btn.is-active {
    background: var(--btn-primary);
    border-color: var(--btn-primary);
    color: #06121a;
}

body.chat-arcade .channel-info-card {
    background: rgba(16, 22, 34, 0.95);
    border-color: rgba(76, 158, 255, 0.2);
}

body.chat-arcade .channel-info-logo {
    background: rgba(0, 217, 255, 0.08);
    border: 1px solid rgba(76, 158, 255, 0.2);
}

body.chat-arcade .channel-info-title {
    color: var(--text-primary);
}

body.chat-arcade .channel-info-desc,
body.chat-arcade .channel-info-link,
body.chat-arcade .channel-info-polls-action,
body.chat-arcade .channel-info-polls-count {
    color: var(--text-muted);
}

body.chat-arcade .channel-info-badge {
    border-color: rgba(0, 217, 255, 0.25);
    background: rgba(0, 217, 255, 0.08);
    color: var(--text-secondary);
}

body.chat-arcade .channel-info-polls-link {
    border-color: rgba(0, 217, 255, 0.2);
    background: rgba(0, 217, 255, 0.08);
    color: var(--text-primary);
}

body.chat-arcade .channel-info-polls-link:hover {
    background: rgba(0, 217, 255, 0.14);
    color: var(--text-primary);
}

body.chat-arcade .channel-info-polls-count {
    background: rgba(0, 217, 255, 0.2);
    color: #d9f7ff;
}

body.chat-arcade .chat-empty-card {
    border-color: rgba(76, 158, 255, 0.2);
    background: rgba(16, 22, 34, 0.95);
    box-shadow: 0 8px 18px rgba(6, 10, 16, 0.5);
}

body.chat-arcade .chat-empty-line,
body.chat-arcade .chat-empty-avatar {
    background: linear-gradient(90deg, rgba(26, 34, 52, 0.7) 0%, rgba(255, 255, 255, 0.15) 50%, rgba(26, 34, 52, 0.7) 100%);
}

body.chat-arcade .chat-game-updates-item {
    background: rgba(18, 24, 38, 0.9);
    color: var(--text-secondary);
}

body.chat-arcade .chat-game-updates-summary {
    color: var(--text-primary);
}

body.chat-arcade .chat-game-updates-preview {
    color: var(--text-muted);
}

body.chat-arcade .chat-game-updates-toggle {
    color: var(--text-muted);
}

body.chat-arcade .chat-game-rules-btn,
body.chat-arcade .chat-game-updates-help {
    background: rgba(16, 22, 34, 0.9);
    border-color: rgba(76, 158, 255, 0.2);
    color: var(--text-muted);
}

body.chat-arcade .chat-game-rules-btn:hover,
body.chat-arcade .chat-game-updates-help:hover {
    background: rgba(0, 217, 255, 0.12);
    color: var(--text-primary);
}

body.chat-arcade .game-rules-modal-overlay {
    background: rgba(9, 12, 20, 0.65);
}

body.chat-arcade .game-rules-modal-dialog {
    background: rgba(13, 17, 23, 0.98);
    border: 1px solid rgba(76, 158, 255, 0.2);
    color: var(--text-primary);
}

body.chat-arcade .game-rules-modal-close {
    color: var(--text-muted);
}

body.chat-arcade .chat-poll {
    background: rgba(16, 22, 34, 0.95);
    border: 1px solid rgba(0, 217, 255, 0.2);
    box-shadow: 0 8px 18px rgba(6, 10, 16, 0.5);
}

body.chat-arcade .chat-poll-question {
    color: var(--text-primary);
}

body.chat-arcade .chat-poll-description,
body.chat-arcade .chat-poll-option-votes,
body.chat-arcade .chat-poll-result-info,
body.chat-arcade .chat-poll-footer,
body.chat-arcade .chat-poll-meta-muted {
    color: var(--text-muted);
}

body.chat-arcade .chat-poll-option-button {
    background: rgba(18, 24, 38, 0.9);
    border: 1px solid rgba(76, 158, 255, 0.2);
    color: var(--text-primary);
}

body.chat-arcade .chat-poll-option-button:hover:not(:disabled) {
    background: rgba(0, 217, 255, 0.12);
    border-color: rgba(0, 217, 255, 0.45);
}

body.chat-arcade .chat-poll-option-button:disabled {
    opacity: 0.7;
}

body.chat-arcade .chat-poll-option-button.voted {
    background: rgba(0, 217, 255, 0.18);
    border-color: rgba(0, 217, 255, 0.5);
}

body.chat-arcade .chat-poll-progress {
    background: rgba(14, 20, 32, 0.9);
}

body.chat-arcade .chat-poll-progress-bar {
    background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-mid) 50%, var(--gradient-end) 100%);
}

body.chat-arcade .chat-card-body {
    background: rgba(9, 12, 20, 0.25);
}

body.chat-arcade .chat-message-text {
    color: #edf5ff;
}

body.chat-arcade .chat-message-text a {
    color: var(--gradient-mid);
    text-decoration: none;
}

body.chat-arcade .chat-message-text a:hover {
    color: var(--gradient-end);
    text-decoration: underline;
}

body.chat-arcade .chat-sys-text {
    color: var(--text-secondary);
}

body.chat-arcade .chat-footer-meta,
body.chat-arcade .chat-time-text {
    color: var(--text-muted);
}

body.chat-arcade .chat-avatar {
    background: rgba(13, 17, 23, 0.9);
    border: 1px solid rgba(76, 158, 255, 0.35);
    color: var(--text-secondary);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

@media (max-width: 600px) {
    body.sudoku-page .sudoku-topbar-stats {
        gap: 3px;
    }
}

@media (max-width: 420px) {
    body.sudoku-page .sudoku-board {
        padding: 4px;
        gap: 1px;
    }

    body.sudoku-page .sudoku-cell {
        border-radius: 8px;
    }
}

@media (max-width: 400px) {
    .arcade-main {
        padding: var(--spacing-md);
    }

    .featured-title {
        font-size: 24px;
    }

    .games-grid {
        gap: var(--spacing-sm);
    }

    .game-card {
        padding: var(--spacing-sm);
    }

    .game-icon {
        width: 50px;
        height: 50px;
        font-size: 28px;
    }
}

@media (min-width: 768px) {
    .arcade-main {
        max-width: 600px;
    }

    .games-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1024px) {
    .arcade-main {
        max-width: 900px;
    }

    .games-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .arcade-header-nav {
        display: flex;
    }

    body.arcade-page.has-header-nav .bottom-nav {
        display: none;
    }

    body.account-arcade .bottom-nav {
        display: none;
    }

    .header-right {
        gap: 12px;
    }
}

a,
a:hover,
a:focus,
a:active {
    text-decoration: none !important;
}
