*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{height:100%}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",Helvetica,Arial,sans-serif;background:#f2f4f7;color:#333;max-width:750px;margin:0 auto}
body.app_body{height:100%;overflow:hidden}
a{text-decoration:none;color:inherit}
button{border:0;background:none;cursor:pointer;font-family:inherit}
b,strong{font-weight:400}

/* 主滚动区(顶栏与投注栏固定, 中间独立滚动) */
.app_scroll{position:fixed;top:48px;bottom:52px;left:0;right:0;margin:0 auto;max-width:750px;overflow:hidden;background:#f2f4f7;display:flex;flex-direction:column}

/* ===== 顶栏 ===== */
.head_box{display:flex;align-items:center;justify-content:space-between;background:#2161b3;color:#fff;height:48px;padding:0 12px;position:fixed;top:0;left:0;right:0;margin:0 auto;max-width:750px;z-index:50}
.head_box .left_btn,.head_box .right_btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:18px}
.head_box h1{font-size:17px;font-weight:400;letter-spacing:1px}
.head_box h1 small{font-size:12px;opacity:.85;margin-left:4px;font-weight:400}

/* ===== 余额栏 ===== */
.money_box{background:linear-gradient(90deg,#fceee8,#fff4ef);border-bottom:1px solid #f0d9cc;padding:6px 12px;display:flex;align-items:center;justify-content:space-between}
.money_box .bal .lab{font-size:11px;color:#b07050}
.money_box .bal .val{font-size:22px;font-weight:400;color:#f22000}
.money_box .stats{text-align:right;font-size:12px;color:#a0694b;line-height:1.7}
.money_box .stats b{color:#333}

/* ===== 期号栏 ===== */
.kj_box{background:#fff;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eee}
.kj_box .cur{display:flex;align-items:center;gap:8px;font-size:13px}
.kj_box .cur .no{font-size:15px;font-weight:400;color:#2161b3}
.kj_box .cur .st{font-size:12px;color:#fff;background:#22a06b;border-radius:3px;padding:2px 7px}
.kj_box .cur .st.close{background:#ee6c2d}
.kj_box .cur .st.open{background:#d94b4b}
.kj_box .cd{font-size:13px;color:#555}
.kj_box .cd b{color:#f22000;font-size:15px}
.kj_box .btn_ref{font-size:12px;color:#2161b3;border:1px solid #2161b3;border-radius:3px;padding:3px 9px}
.pre_box{background:#fff;border-bottom:1px solid #f0f0f0;padding:8px 14px;font-size:12px;color:#888;display:flex;align-items:center;gap:6px}
.pre_box .pnum{color:#2161b3;font-weight:400}

/* ===== 主体 ===== */
.m_box{flex:1;min-height:0;display:flex;align-items:stretch;margin-top:8px}
.m_left{width:86px;flex-shrink:0;background:#ebf2fc;overflow-y:auto;-webkit-overflow-scrolling:touch}
.m_left .item{display:block;padding:14px 8px;font-size:13px;color:#2b4a6b;text-align:center;border-bottom:1px solid #dbe6f5}
.m_left .item.on{background:#2161b3;color:#fff;font-weight:400}
.m_right{flex:1;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.view{display:none}
.view.on{display:block}

/* ===== 玩法区块 ===== */
.play_block{background:#fff;margin:8px;border-radius:8px;padding:10px}
.play_block .pb_t{font-size:13px;font-weight:400;color:#2161b3;padding:2px 2px 8px;border-bottom:1px solid #eef2f7;margin-bottom:8px}
#pbHz{text-align:center}
.odds_grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.odds_grid.g2{grid-template-columns:repeat(2,1fr)}
.odds_grid.g3{grid-template-columns:repeat(3,1fr)}
.odds_grid.g10{grid-template-columns:repeat(5,1fr)}
.od_btn{border:1px solid #d9e2ee;border-radius:6px;background:#f7fafd;padding:7px 2px;text-align:center;position:relative;transition:.12s}
.od_btn:active{transform:scale(.96)}
.od_btn .nm{font-size:14px;font-weight:400;color:#333;line-height:1.4}
.od_btn .od{font-size:12px;color:#f22000;margin-top:4px}
.od_btn.on{border-color:#ee6c2d;background:#fff3e9;box-shadow:0 0 0 1px #ee6c2d}
.od_btn.on .nm{color:#ee6c2d}
.od_btn.on .od{color:#ee6c2d}
.od_btn .ball{display:inline-block;width:30px;height:30px;line-height:30px;border-radius:50%;color:#fff;font-size:15px;font-weight:400;text-align:center;vertical-align:middle}
#grid-hz .od_btn .ball{width:26px;height:26px;line-height:26px;font-size:13px}
.ball.red{background:#e33b3b}.ball.blue{background:#2c6ec2}.ball.green{background:#22a06b}.ball.yellow{background:#f2b01e}
.od_btn .sel-mark{position:absolute;top:-6px;right:-4px;background:#ee6c2d;color:#fff;border-radius:50%;width:16px;height:16px;font-size:11px;line-height:16px;display:none}
.od_btn.on .sel-mark{display:block}
.sub_lab{font-size:11px;color:#999;margin:8px 0 4px}

/* ===== 投注面板 ===== */
.bet_panel{position:fixed;bottom:52px;left:0;right:0;margin:0 auto;max-width:750px;background:#fff;border-top:1px solid #e5e8ee;box-shadow:0 -2px 10px rgba(0,0,0,.06);z-index:40}
.bet_toggle{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;font-size:14px;color:#2161b3;cursor:pointer;user-select:none;border-bottom:1px solid #eef2f7}
.bet_toggle b{color:#2161b3;font-weight:400}
.bet_toggle .bet_arr{display:inline-block;font-size:16px;line-height:1;margin-left:4px;transition:transform .2s}
.bet_toggle.collapsed .bet_arr{transform:rotate(180deg)}
/* 已选注单明细 */
.sel_list{display:none;max-height:150px;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fbfcfe;border-bottom:1px solid #eef2f7;padding:4px 12px}
.sel_list.on{display:block}
.sel_item{display:flex;align-items:center;justify-content:space-between;padding:7px 2px;border-bottom:1px dashed #eef0f3;font-size:14px;color:#333}
.sel_item:last-child{border-bottom:0}
.sel_item .nm{flex:1;text-align:left}
.sel_item .x{width:20px;height:20px;line-height:19px;text-align:center;color:#fff;background:#d94b4b;border-radius:50%;font-size:12px;cursor:pointer;flex-shrink:0;margin-left:8px}
.bet_body{padding:10px 14px}
.bet_body.collapsed{display:none}
.bet_panel.collapsed .sel_list{display:none!important}
.bet_input_row{display:flex;gap:8px;margin-bottom:10px;align-items:stretch}
.bet_input_row .q_input{flex:1;margin:0}
.bet_input_row .btn_bet,.bet_input_row .btn_reset{flex:0 0 auto;padding:0 18px;border-radius:6px;font-size:16px;font-weight:400;color:#fff;min-width:64px}
.bet_input_row .btn_bet{background:#ee6c2d}
.bet_input_row .btn_bet:disabled{opacity:.5}
.bet_input_row .btn_reset{background:#2161b3}
.bet_chips{display:flex;gap:8px;align-items:stretch}
.bet_chips .q_chip{flex:1;border:1px solid #d0d6df;border-radius:6px;background:#f7f9fb;padding:9px 0;font-size:16px;font-weight:400;color:#2161b3;text-align:center}
.bet_chips .q_chip.on{border-color:#ee6c2d;background:#fff3e9;color:#ee6c2d}
.bet_chips .q_edit{flex:0 0 44px;border:1px solid #d0d6df;border-radius:6px;background:#f7f9fb;color:#2161b3;font-size:18px;display:flex;align-items:center;justify-content:center}
.q_input{width:100%;border:1px solid #d0d6df;border-radius:6px;padding:11px 12px;font-size:15px;text-align:center;outline:none;background:#fff}
.q_input:focus{border-color:#2161b3}

/* ===== 预设金额弹窗 ===== */
.preset_mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:80}
.preset_modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:88%;max-width:360px;background:#fff;border-radius:10px;z-index:90;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.3)}
.preset_title{position:relative;padding:20px 0 14px;font-size:18px;color:#2161b3;text-align:center;font-weight:400}
.preset_close{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:30px;height:30px;line-height:26px;text-align:center;font-size:22px;color:#9aa5b1;border:1px solid #cfd6df;border-radius:50%;cursor:pointer;background:#fff}
.preset_close:hover{color:#2161b3;border-color:#2161b3}
.preset_body{padding:0 22px 22px}
.preset_inp{width:100%;border:1px solid #d0d6df;border-radius:6px;padding:13px 14px;font-size:18px;text-align:center;margin-bottom:14px;outline:none;background:#fff}
.preset_inp:focus{border-color:#2161b3}
.preset_radios{display:flex;justify-content:center;gap:44px;padding:6px 0 22px;font-size:16px;color:#555}
.preset_radios .rd{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.preset_radios input{position:absolute;opacity:0;width:0;height:0}
.preset_radios .dot{width:20px;height:20px;border:2px solid #bbb;border-radius:50%;position:relative;transition:.15s;box-sizing:border-box}
.preset_radios .dot:after{content:"";position:absolute;inset:3px;background:#d33;border-radius:50%;transform:scale(0);transition:.15s}
.preset_radios input:checked + .dot{border-color:#d33}
.preset_radios input:checked + .dot:after{transform:scale(1)}
.preset_ok{width:100%;background:#2161b3;color:#fff;border-radius:6px;padding:13px;font-size:17px;font-weight:400}

/* ===== 底部导航 ===== */
.mobile_bottom_navigation{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:750px;background:#fff;display:flex;border-top:1px solid #e5e8ee;z-index:50}
.mobile_bottom_navigation a{flex:1;text-align:center;padding:8px 0 7px;font-size:11px;color:#666}
.mobile_bottom_navigation a i{display:block;font-size:20px;font-style:normal;margin-bottom:2px}
.mobile_bottom_navigation a.on{color:#2161b3;font-weight:400}

/* ===== 侧滑菜单 ===== */
.mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60;display:none}
.mask.on{display:block}
.menu_panel{position:fixed;top:0;right:0;width:76%;max-width:330px;height:100%;background:#fff;z-index:70;transform:translateX(100%);transition:.25s}
.menu_panel.on{transform:translateX(0)}
.menu_top{background:#2161b3;color:#fff;padding:22px 18px}
.menu_top .logo{font-size:18px;font-weight:400}
.menu_top .uinfo{font-size:12px;margin-top:10px;opacity:.95;line-height:1.8}
.menu_list a{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #f0f2f5;font-size:14px;color:#333}
.menu_list a i{font-style:normal;color:#bbb}

/* ===== 通用表格页 ===== */
.page{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:140px}
.page .page_head{display:flex;align-items:center;gap:10px;background:#fff;padding:12px 14px;border-bottom:1px solid #eee}
.page .page_head .back{font-size:16px;color:#2161b3}
.page .page_head h3{font-size:16px;flex:1}
.page_head .filter{font-size:12px;color:#2161b3}
table.list{width:100%;background:#fff;border-collapse:collapse;font-size:12px}
table.list th{background:#f6f8fb;padding:8px 6px;font-weight:400;color:#555;border-bottom:1px solid #e8ecf2;position:sticky;top:0;z-index:20}
table.list td{padding:8px 6px;border-bottom:1px solid #f0f2f5;text-align:center;color:#444}
table.list td.num{font-weight:400}
.ball_m{display:inline-block;width:24px;height:24px;line-height:24px;border-radius:50%;color:#fff;font-size:13px;font-weight:400;text-align:center;vertical-align:middle;margin:0 1px}
table.list .ball_m{width:26px;height:26px;line-height:26px;font-size:14px}
.empty{text-align:center;color:#aaa;padding:50px 0;background:#fff;font-size:13px}
.sum_bar{background:#fff;padding:10px 14px;font-size:12px;color:#555;display:flex;gap:18px;justify-content:space-between}
.sum_bar b{color:#f22000}

/* 提示 */
.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.78);color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;z-index:99;display:none}

/* 白色弹窗 */
.alert_mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:98}
.alert_box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;background:#fff;border-radius:10px;z-index:99;overflow:hidden;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.2)}
.alert_title{padding:20px 16px 6px;font-size:17px;font-weight:600;color:#c0392b}
.alert_msg{padding:6px 20px 18px;font-size:14px;color:#555}
.alert_ok{display:block;width:100%;padding:12px;border:0;border-top:1px solid #eee;background:#fff;color:#2c6ec2;font-size:16px;cursor:pointer}
.alert_ok:active{background:#f5f5f5}

/* ===== 三栏资金 ===== */
.money_box{display:flex;align-items:stretch;flex-shrink:0}
.money_box .mc{flex:1;text-align:center;padding:5px 4px;border-right:1px solid #f3dccd}
.money_box .mc:last-child{border-right:0}
.money_box .mc .val{font-size:14px;font-weight:400;color:#f22000;margin-bottom:2px}
.money_box .mc .lab{font-size:12px;color:#333}

/* ===== 综合开奖行 ===== */
.res_block{background:#fff;border-bottom:1px solid #f0f0f0;flex-shrink:0}
.res_block .res_row{display:flex;align-items:center;gap:2px;padding:8px 12px;font-size:14px;flex-wrap:wrap}
.res_block .res_row.cur_row{border-top:1px solid #f5f5f5}
.res_block .pnum{color:#f22000;font-weight:400;font-size:15px}
.res_block .qi{color:#333;font-weight:400;margin-right:1px}
.res_block .ball_plus{color:#c0c8d2;font-size:15px;font-weight:400;vertical-align:middle;margin:0 2px}
.res_block .ball_m{margin:0 2px}
.res_block .eq{color:#aab2bc;margin:0 3px}
.res_block .tag{font-size:12px;color:#e88b2e;margin-left:6px}
.res_block .tag.bao{color:#d33}
.res_block .ft{font-size:13px;color:#555;margin-left:6px}
.res_block .ft b{color:#f22000}
.res_block .ft b#openCd{color:#22a06b}
.res_block .ref_btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:#2c6ec2;font-size:16px;margin-left:6px}
.res_block .ref_btn:active{transform:rotate(180deg);transition:.3s}

/* ===== 报表查询 ===== */
.report_query{display:flex;align-items:center;gap:8px;background:#fff;padding:10px 14px;border-bottom:1px solid #eee}
.rp_inp{flex:1;min-width:0;border:1px solid #d0d6df;border-radius:5px;padding:8px;font-size:13px;color:#333}
.rp_to{color:#888;font-size:13px;flex:0 0 auto}
.rp_btn{width:100%;background:#2161b3;color:#fff;border-radius:0;padding:11px;font-size:15px;font-weight:400}

/* ===== 空状态图标 ===== */
.empty_box{width:72px;height:72px;margin:0 auto 12px;background:#e8edf3;border-radius:50%;position:relative}
.empty_box:after{content:"\f187";font-family:FontAwesome;font-size:32px;color:#aab6c2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}

/* ===== 游戏规则 ===== */
.rules_card{background:#fff;border-radius:10px;padding:14px 16px;margin-bottom:12px;line-height:1.8}
.rules_card h3{font-size:15px;color:#1e4f96;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f0f2f5}
.rules_card ol{padding-left:18px;color:#444;font-size:13px}
.rules_card ol li{margin-bottom:6px}
.rules_p{color:#444;font-size:13px;margin-bottom:10px}
.rules_sec{margin-bottom:12px}
.rules_sec h4{color:#2c6ec2;font-size:14px;margin-bottom:4px}
.rules_sec p{color:#444;font-size:13px}
