:root{--primary: #0099ff;--primary-hover: #33adff;--primary-active: #007acc;--bg: #eef3f9;--card: #ffffff;--text: rgba(0, 0, 0, .88);--text-secondary: rgba(0, 0, 0, .55);--border: #e2e8f0;--border-soft: #edf2f7;--danger: #ff4d4f;--success: #52c41a;--warning: #faad14;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-pill: 999px;--shadow-card: 0 2px 12px rgba(15, 40, 90, .06);--shadow-soft: 0 1px 4px rgba(15, 40, 90, .04);--tabbar-h: 56px;--header-h: 50px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#app{width:100%;height:100%;height:100dvh;background:var(--bg);color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit;outline:none}a{color:var(--primary);text-decoration:none}.app-shell{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;background:var(--bg);position:relative}.app-header{height:var(--header-h);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fffffff0;border-bottom:1px solid var(--border-soft);box-shadow:var(--shadow-soft);font-weight:700;font-size:16px;color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-main{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 12px calc(var(--tabbar-h) + 16px);background:var(--bg);scrollbar-width:thin}.app-main.no-pad{padding:0 0 calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px))}.app-main.no-pad:has(.hall-classic.is-lobby){overflow:hidden;display:flex;flex-direction:column}.app-main.no-pad:has(.hall-classic.is-lobby)>.hall-classic{flex:1 1 auto;min-height:0}.tabbar{position:absolute;left:0;right:0;bottom:0;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#fffffff5;border-top:1px solid var(--border);box-shadow:0 -4px 18px #0f285a0f;display:flex;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#8c8c8c;font-size:11px}.tabbar a.on{color:var(--primary);font-weight:600}.tabbar .tab-ico{display:flex;height:22px;align-items:center;justify-content:center}.tabbar svg{width:22px;height:22px}.card{background:var(--card);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:12px;border:1px solid var(--border-soft);box-shadow:var(--shadow-card)}.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);padding:11px 16px;background:var(--primary);color:#fff;cursor:pointer;width:100%;font-weight:700;box-shadow:0 6px 14px #0099ff47}.btn:active{background:var(--primary-active);opacity:.9}.btn.ghost{background:#fff;color:var(--primary);border:1.5px solid var(--primary);box-shadow:none}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{margin-bottom:12px}.field label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-md);padding:11px 14px;background:#fff;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0099ff24}.seg{display:flex;background:#eef3f9;border:1px solid var(--border-soft);border-radius:var(--radius-pill);padding:4px;gap:2px}.seg button{flex:1;border:none;background:transparent;padding:8px;border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer}.seg button.on{background:#fff;color:var(--primary);font-weight:700;box-shadow:var(--shadow-soft);border:1px solid var(--border-soft)}.hint{color:var(--text-secondary);font-size:12px;line-height:1.5}.muted{color:var(--text-secondary)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:8px}.list-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:#e6f4ff;color:var(--primary)}.rank-num{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;background:#f5f5f5;color:var(--text-secondary);flex-shrink:0}.rank-num.top1{background:#fff7e6;color:#d48806}.rank-num.top2{background:#f5f5f5;color:#595959}.rank-num.top3{background:#fff2e8;color:#d46b08}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.game-tile{background:var(--card);border-radius:var(--radius-md);padding:16px 12px;border:1.5px solid var(--border);box-shadow:var(--shadow-soft);cursor:pointer;text-align:left}.game-tile:active{border-color:var(--primary)}.game-tile h3{font-size:15px;margin-bottom:6px;color:var(--text)}.odds-card{border:1.5px solid var(--border);border-radius:var(--radius-md);padding:12px;margin-bottom:8px;box-shadow:var(--shadow-soft);cursor:pointer;background:#fff}.odds-card.on{border-color:var(--primary);background:#e6f4ff}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid #d9d9d9;background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font-size:13px}.chip.on{border-color:var(--primary);color:var(--primary);background:#e6f4ff}.auth-page{min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:24px 20px 40px;background:linear-gradient(180deg,#d9efff,#eef3f9 42%,#eef3f9)}.auth-page .card{border-radius:var(--radius-lg);padding:18px 16px 16px;border:1.5px solid #dbe8f6;box-shadow:0 10px 28px #0f3c781a}.brand-hero{text-align:center;margin-bottom:28px}.brand-hero .logo{width:72px;height:72px;margin:0 auto 12px;border-radius:18px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;box-shadow:0 8px 24px #1677ff59}.brand-hero .logo.logo-img{display:block;width:140px;height:140px;padding:0;border-radius:50%;background:#fff;object-fit:cover;box-shadow:0 10px 28px #0050a03d}.brand-hero h1{font-size:28px;color:var(--primary);letter-spacing:.08em}.brand-hero p{margin-top:8px;color:var(--text-secondary);font-size:14px}.menu-link{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{border-bottom:1px solid var(--border);padding:8px 4px;text-align:left}.table th{color:var(--text-secondary);font-weight:500;position:sticky;top:0;background:var(--card)}.empty{text-align:center;padding:32px 12px;color:var(--text-secondary)}.toast{position:fixed;left:50%;top:20%;transform:translate(-50%);background:#0f1e3ce0;color:#fff;padding:11px 18px;border-radius:var(--radius-pill);z-index:100;font-size:13px;max-width:80%;box-shadow:0 8px 24px #0003}.points-tip{margin-top:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid #ffe7ba;background:#fffbe6;color:#ad6800;font-size:12px;line-height:1.5}
