/* ===== THEME TOKENS ===== */
:root{
  --bg:#f4f5fb; --card:#ffffff; --text:#1a1533; --muted:#7a7690;
  --primary:#6c3bff; --primary2:#a855f7; --accent:#ff6ba6;
  --gold:#ffb020; --green:#22c55e; --line:#ececf5; --shadow:0 8px 24px rgba(60,40,120,.10);
}
[data-theme="dark"]{
  --bg:#0f0e1a; --card:#1b1930; --text:#f2f0ff; --muted:#9d98bd;
  --primary:#8b5cff; --primary2:#c084fc; --accent:#ff6ba6; --line:#2a2745;
  --shadow:0 8px 24px rgba(0,0,0,.45);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--bg); color:var(--text); font-size:15px;
}
.app{max-width:480px; margin:0 auto; min-height:100vh; position:relative}
a{color:var(--primary); text-decoration:none}
.muted{color:var(--muted)} .small{font-size:12px} .center{text-align:center}

/* ===== TOP BAR ===== */
.topbar{position:sticky; top:0; z-index:20; display:flex; justify-content:space-between;
  align-items:center; padding:14px 16px;
  background:linear-gradient(135deg,var(--primary),var(--primary2)); color:#fff;
  border-radius:0 0 22px 22px; box-shadow:var(--shadow)}
.tb-left{display:flex; align-items:center; gap:10px}
.avatar{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.22);
  display:grid;place-items:center;font-size:20px}
.avatar.sm{width:34px;height:34px;font-size:17px;background:var(--line);color:var(--text)}
.avatar.xl{width:80px;height:80px;font-size:40px;margin:0 auto 8px}
.tb-name{font-weight:700} .tb-lvl{font-size:11px;opacity:.85}
.tb-right{display:flex; align-items:center; gap:8px}
.coin-pill{background:rgba(255,255,255,.9);color:#5b2ecc;padding:6px 12px;border-radius:20px;font-weight:800}
.icon-btn{font-size:20px;filter:grayscale(1) brightness(3)}

/* ===== LAYOUT ===== */
.content{padding:16px 16px 90px}
.content.auth{padding-top:48px}
.page-title{font-size:22px;margin:6px 0 4px} .section-title{font-size:16px;margin:20px 0 10px}
.card{background:var(--card);border-radius:18px;padding:16px;box-shadow:var(--shadow);margin-bottom:14px}
.flash{background:var(--green);color:#fff;padding:12px 16px;margin:12px 16px 0;border-radius:14px;font-weight:600}
.err{background:#ffe1e6;color:#c81e4b;padding:10px 14px;border-radius:12px;margin-bottom:12px}
.back{display:inline-block;margin-bottom:8px;font-weight:600}
.big-emoji{font-size:48px;text-align:center}

/* ===== HERO / DAILY REWARD ===== */
.hero{background:linear-gradient(135deg,#ff8a3d,#ff4f8b);color:#fff;border-radius:22px;
  padding:22px;text-align:center;box-shadow:var(--shadow);margin-bottom:16px}
.hero-streak{font-weight:800;letter-spacing:.5px;margin-bottom:6px}
.hero-title{font-size:22px;font-weight:800} .hero-sub{opacity:.9;margin:6px 0 0}

/* ===== BUTTONS ===== */
.btn{display:inline-block;border:none;cursor:pointer;font-weight:700;font-size:15px;
  padding:13px 20px;border-radius:14px;width:100%;margin-top:12px;text-align:center;color:#fff;
  background:var(--primary)}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary2))}
.btn-glow{background:#fff;color:#e0367a;box-shadow:0 6px 18px rgba(255,255,255,.5);animation:pulse 1.8s infinite}
.btn-ghost{background:transparent;color:var(--primary);border:2px solid var(--line)}
.btn-sm{width:auto;padding:8px 16px;margin:0;font-size:13px}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

/* ===== GRIDS ===== */
.grid{display:grid;gap:12px}
.quick{grid-template-columns:repeat(4,1fr)}
.qa{background:var(--card);border-radius:16px;padding:14px 6px;text-align:center;font-size:12px;
  font-weight:600;color:var(--text);box-shadow:var(--shadow)}
.qa span{display:block;font-size:24px;margin-bottom:4px}
.games{grid-template-columns:repeat(2,1fr)}
.stats3{grid-template-columns:repeat(3,1fr)}

/* ===== GAME CARDS ===== */
.game-card{background:var(--card);border-radius:16px;padding:14px;text-align:center;
  color:var(--text);box-shadow:var(--shadow)}
.game-card.big{text-align:left}
.game-thumb{font-size:38px} .game-thumb.big{font-size:56px;text-align:center}
.game-name{font-weight:700;margin-top:6px} .game-desc{font-size:12px;color:var(--muted);margin:4px 0}
.game-meta{font-size:12px;color:var(--muted);margin-top:4px}
.game-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.game-tags.center{justify-content:center}
.tag{background:var(--line);color:var(--text);font-size:11px;padding:4px 9px;border-radius:20px;font-weight:600}
.tag-off{opacity:.5}

/* ===== PLAY / RESULT ===== */
.play-head{text-align:center;margin-bottom:14px}
.result{text-align:center}
.coins-won{font-size:26px;font-weight:800;color:var(--gold);margin:8px 0}
.hint{background:var(--line);padding:10px;border-radius:12px;margin:10px 0;font-weight:600}

/* ===== TAP GAME ===== */
.tapzone{text-align:center}
.tap-timer{font-size:20px;font-weight:800;color:var(--accent)}
.tap-count{font-size:56px;font-weight:900;margin:8px 0}
.tap-btn{width:170px;height:170px;border-radius:50%;border:none;color:#fff;font-size:28px;font-weight:900;
  background:radial-gradient(circle at 35% 30%,var(--primary2),var(--primary));
  box-shadow:0 10px 30px rgba(108,59,255,.45);cursor:pointer;margin:6px auto;display:block;user-select:none}
.tap-btn:active{transform:scale(.94)}

/* ===== FORMS ===== */
.form label{display:block;font-size:13px;font-weight:600;margin:10px 0 4px}
.form input,.form select{width:100%;padding:13px;border:2px solid var(--line);border-radius:12px;
  background:var(--bg);color:var(--text);font-size:15px}
.brand{text-align:center;font-size:26px;font-weight:900;color:var(--primary);margin-bottom:6px}
.auth h1{text-align:center;margin:4px 0}

/* ===== TASKS / PROGRESS ===== */
.list{display:flex;flex-direction:column;gap:10px}
.task-top{display:flex;justify-content:space-between;align-items:flex-start}
.task-name{font-weight:700} .task-reward{color:var(--gold);font-weight:800;white-space:nowrap}
.task-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.progress{height:9px;background:var(--line);border-radius:6px;margin-top:10px;overflow:hidden}
.bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:6px;transition:width .4s}
.soon{text-align:center}

/* ===== WALLET ===== */
.balance{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;text-align:center}
.bal-label{opacity:.85} .bal-amount{font-size:34px;font-weight:900}
.stat{background:var(--card);border-radius:14px;padding:12px 6px;text-align:center;box-shadow:var(--shadow)}
.stat-n{font-size:18px;font-weight:800} .stat-l{font-size:11px;color:var(--muted)}
.tx{display:flex;justify-content:space-between;align-items:center;background:var(--card);
  border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}
.tx-type{font-weight:600} .tx-amt{font-weight:800}
.tx-amt.plus{color:var(--green)} .tx-amt.minus{color:#e0367a}

/* ===== LEADERBOARD ===== */
.myrank{text-align:center;background:linear-gradient(135deg,var(--gold),#ff8a3d);color:#fff}
.lb-row{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:14px;
  padding:10px 14px;box-shadow:var(--shadow)}
.lb-row.me{outline:2px solid var(--primary)}
.lb-rank{font-weight:800;width:34px;text-align:center} .lb-name{flex:1;font-weight:600}
.lb-coins{font-weight:800;color:var(--gold)}

/* ===== PROFILE ===== */
.profile-hero{text-align:center} .p-name{font-size:20px;font-weight:800}
.menu-item{display:flex;justify-content:space-between;background:var(--card);border-radius:14px;
  padding:15px 16px;box-shadow:var(--shadow);color:var(--text);font-weight:600}
.menu-item.danger{color:#e0367a}

/* ===== BOTTOM NAV ===== */
.bottomnav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;
  display:flex;justify-content:space-around;background:var(--card);
  border-top:1px solid var(--line);padding:8px 0 10px;z-index:30}
.bottomnav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;
  color:var(--muted);font-weight:600}
.bottomnav a span{font-size:22px} .bottomnav a.on{color:var(--primary)}
