:root{--red:#e02e2e;--blue:#2b5fd9;--primary:#d32424;--primary-deep:#a91c1c;--bg:#f5f6fa;--card:#fff;--text:#1c1e26;--muted:#8a8f9c;--border:#ecedf2;--gold:#c9922d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{color:var(--text);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}button{font-family:inherit}a{color:inherit;text-decoration:none}.app-shell{background:var(--bg);max-width:480px;min-height:100vh;padding-bottom:calc(64px + env(safe-area-inset-bottom));margin:0 auto;position:relative}.page-head{background:linear-gradient(160deg, var(--primary) 0%, var(--primary-deep) 100%);color:#fff;padding:18px 16px 22px;position:relative}.page-head h1{align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.page-head .sub{opacity:.75;margin-top:5px;font-size:11.5px}.tabbar{border-top:1px solid var(--border);width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom);z-index:50;background:#fff;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:10.5px;display:flex}.tab .tab-icon{width:22px;height:22px}.tab.active{color:var(--primary);font-weight:600}.card{background:var(--card);border-radius:14px;margin:12px;padding:14px;box-shadow:0 1px 4px rgba(20,24,40,.04)}.card-title{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14.5px;font-weight:700;display:flex}.card-title .more{color:var(--muted);font-size:12px;font-weight:400}.balls{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.ball{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:inline-flex}.ball.red{background:linear-gradient(150deg, #f25252, var(--red));box-shadow:0 2px 5px rgba(224,46,46,.3)}.ball.blue{background:linear-gradient(150deg, #5a83e8, var(--blue));box-shadow:0 2px 5px rgba(43,95,217,.3)}.ball.gray{background:linear-gradient(150deg,#6b7280,#374151);box-shadow:0 2px 5px rgba(55,65,81,.3)}.ball.sm{width:26px;height:26px;font-size:12px}.ball.xs{width:20px;height:20px;box-shadow:none;font-size:9.5px;font-weight:600}.ball.plus{box-shadow:none;color:var(--muted);background:0 0;width:auto;font-weight:400}.game-card{background:var(--card);cursor:pointer;border-radius:14px;align-items:center;gap:12px;margin:12px;padding:16px 14px;transition:transform .12s;display:flex;box-shadow:0 1px 4px rgba(20,24,40,.04)}.game-card:active{transform:scale(.98)}.game-card .badge{color:#fff;letter-spacing:1px;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:15px;font-weight:800;display:flex}.game-card .badge small{opacity:.85;letter-spacing:0;font-size:9px;font-weight:400}.game-card .info{flex:1;min-width:0}.game-card .info b{font-size:15.5px}.game-card .info .desc{color:var(--muted);margin-top:3px;font-size:12px}.game-card .latest{color:var(--muted);flex-wrap:wrap;align-items:center;gap:3px;margin-top:5px;font-size:11px;display:flex}.game-card .arrow{color:var(--muted)}.tag{border-radius:10px;padding:2px 8px;font-size:11px;display:inline-block}.tag.green{color:#178a43;background:#e5f7eb}.tag.orange{color:#b26a00;background:#fdf0e0}.tag.gray{color:#6b7280;background:#f0f1f5}.tag.blue{color:#2b5fd9;background:#e8effc}.btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;padding:13px;font-size:15px;font-weight:700;display:flex}.btn.primary{background:linear-gradient(140deg, #ef4040, var(--primary-deep));color:#fff;box-shadow:0 4px 12px rgba(211,36,36,.3)}.btn.primary:disabled{opacity:.55;box-shadow:none}.btn.ghost{color:var(--text);border:1px solid var(--border);background:#fff;font-weight:500}.loading{text-align:center;color:var(--muted);padding:40px 0;font-size:13px}.loading:after{content:"";border:2.5px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:22px;height:22px;margin:10px auto 0;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--muted);padding:36px 0;font-size:13px}.compliance-strip{color:#8a6d1f;background:#fdf6e7;border:1px solid #f3e2bd;border-radius:10px;margin:0 12px 12px;padding:10px 12px;font-size:11.5px;line-height:1.6}.age-mask{z-index:200;backdrop-filter:blur(3px);background:rgba(10,10,20,.65);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.age-dialog{background:#fff;border-radius:18px;width:100%;max-width:360px;padding:26px 22px}.age-logo{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin:0 auto 14px;font-size:17px;font-weight:800;display:flex}.age-dialog h2{text-align:center;margin-bottom:12px;font-size:17px}.age-text{color:#55596a;margin-bottom:10px;font-size:12.5px;line-height:1.75}.age-actions{flex-direction:column;gap:9px;margin-top:16px;display:flex}.age-btn{cursor:pointer;border:none;border-radius:11px;padding:12px;font-size:14px}.age-btn.primary{background:var(--primary);color:#fff;font-weight:700}.age-btn.ghost{color:var(--muted);background:#f2f3f7}.row{align-items:center;display:flex}.between{justify-content:space-between}.muted{color:var(--muted)}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mono{font-family:Consolas,Courier New,monospace}@media (max-width:380px){.ball{width:28px;height:28px;font-size:12.5px}.ball.sm{width:22px;height:22px;font-size:10.5px}.ball.xs{width:18px;height:18px;font-size:9px}.balls{gap:4px}.card{margin:10px;padding:12px}.game-card{gap:9px;margin:10px;padding:13px 10px}.game-card .badge{border-radius:10px;width:46px;height:46px;font-size:13px}.page-head{padding:15px 13px 18px}.compliance-strip{margin:0 10px 10px}}@media (max-width:320px){.ball{width:25px;height:25px;font-size:11px}.ball.sm{width:20px;height:20px;font-size:9.5px}html,body{font-size:13.5px}}@media (min-width:768px){.app-shell,.tabbar{max-width:620px}.page-head{padding:24px 22px 28px}.page-head h1{font-size:21px}.page-head .sub{font-size:12.5px}.card{margin:14px 16px;padding:17px}.game-card{margin:14px 16px;padding:18px 16px}.game-card .badge{width:58px;height:58px;font-size:16px}.game-card .info b{font-size:16.5px}.ball{width:36px;height:36px;font-size:15px}.ball.sm{width:29px;height:29px;font-size:13px}.balls{gap:8px}.compliance-strip{margin:0 16px 14px}.btn{max-width:480px;margin-left:auto;margin-right:auto}}
