:root{
  --bg:#090a0c;--panel:#14161a;--panel-2:#1d2025;--ink:#f7f7f8;--muted:#aeb4bd;--line:#3a3f47;--soft:#20242a;
  --accent:#facc15;--accent-2:#38bdf8;--up:#fb7185;--down:#38bdf8;--ok:#86efac;--warn:#fde047;--bad:#fb7185;
  --home:#fb923c;--away:#38bdf8;--draw:#6b7280;--shadow:0 12px 30px rgba(0,0,0,.34);
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--ink);color-scheme:dark;font-family:Inter,"Segoe UI","Microsoft YaHei",Arial,sans-serif}
body{margin:0;background:var(--bg)}
button,input,select{font:inherit;color:inherit}
.hidden{display:none!important}
.muted{color:var(--muted)}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
code{background:#24272d;border-radius:4px;padding:1px 5px;font-size:12px}

/* ===== 电脑端：框架 ===== */
.app{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:14px 0 40px}
.topbar{display:flex;align-items:center;gap:28px;padding:6px 0 14px;border-bottom:1px solid var(--line)}
.eyebrow{font-size:11px;font-weight:900;letter-spacing:.08em;color:#67e8f9}
h1{margin:2px 0 0;font-size:26px;line-height:1.1}
h2{margin:0;font-size:18px;font-weight:900}
.nav{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px}
.nav button{border:0;background:none;padding:8px 18px;border-radius:7px;font-weight:800;cursor:pointer;color:var(--muted)}
.nav button.on{background:var(--accent);color:#111318}
.mailchip{margin-left:auto;font-size:12px;font-weight:800;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--panel);cursor:pointer}
.mailchip:hover{border-color:var(--accent)}
.control,.btn{height:36px;border:1px solid #515761;border-radius:8px;background:var(--panel-2);color:var(--ink);padding:0 12px}
.btn{font-weight:800;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn:hover,.control:focus{border-color:var(--accent);outline:none}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.go{background:var(--accent);border-color:#fde047;color:#111318}
.btn.big{width:100%;height:52px;font-size:17px;border-radius:10px;margin-top:18px}
.btn.sm{height:30px;padding:0 10px;font-size:12px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row.split{justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid #262a30}
.card{border:1px solid var(--line);background:var(--panel);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}
.cardhead{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.cardhead small,.resulthead small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;margin-top:14px}
.side{display:grid;gap:14px;align-content:start}
.badge{border:1px solid #4c525c;background:#202329;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}
.badge.y{border-color:#6b6124;color:#fef08a;background:#2c2814}
.badge.g{border-color:#166534;background:#052e16;color:var(--ok)}
.pill{font-size:12px;font-weight:800;border:1px solid currentColor;border-radius:999px;padding:2px 9px;margin-left:10px;vertical-align:3px}
.kv{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;padding:7px 0;border-bottom:1px solid #262a30}
.kv:last-child{border-bottom:none}
.kv>span:first-child{color:var(--muted)}
.empty{padding:48px 16px;text-align:center;color:var(--muted);font-weight:700;line-height:1.7}
.tip{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 0}
.hint{font-size:12px;color:var(--muted);text-align:center;margin:8px 0 0;min-height:16px}

/* 步骤条 */
.stepper{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:16px 0 0;padding:0;
  border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}
.stepper li{display:flex;align-items:center;gap:12px;padding:12px 16px;position:relative;color:var(--muted)}
.stepper li+li{border-left:1px solid #2a2e35}
.stepper li i{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid #4b515b;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:900}
.stepper li b{display:block;font-size:14px}
.stepper li span{display:block;font-size:12px;margin-top:2px}
.stepper li.on{color:var(--ink);background:#1c1a0f;box-shadow:inset 0 -3px 0 var(--accent)}
.stepper li.on i{background:var(--accent);border-color:var(--accent);color:#111318}
.stepper li.done i{border-color:var(--ok);color:var(--ok)}
.stepper li.done i{font-size:0}.stepper li.done i::after{content:"✓";font-size:15px}
.stepper li.go{cursor:pointer}.stepper li.go:hover{background:#191c21}

/* 第 1 步：比赛列表 */
.listbar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line);font-size:13px;background:#181a1f}
.listbar label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700}
.listbar span{color:var(--accent);font-weight:800}
.mrows{max-height:calc(100vh - 300px);min-height:300px;overflow:auto}
.mrow{display:grid;grid-template-columns:22px 120px 120px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid #2a2e35;cursor:pointer}
.mrow:hover{background:#191c21}
.mrow.on{background:#1c1a0f}
.mrow input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}
.mrow .ko b{display:block;font-size:16px;font-variant-numeric:tabular-nums}
.mrow .ko small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.mrow .ko small.ok{color:var(--ok)}
.mrow .lg{color:var(--muted);font-size:13px;font-weight:700}
.mrow .vs{font-weight:900;font-size:15px}
.mrow .vs em{font-style:normal;color:var(--muted);font-weight:700;font-size:12px;margin:0 10px}
.plan{padding:16px}
.plan h3{font-size:15px;font-weight:900;margin:0 0 12px;display:flex;justify-content:space-between;align-items:center}
.plan h3 span{font-size:12px;color:var(--muted);font-weight:700}
.plan h4{font-size:12px;color:var(--muted);font-weight:800;margin:18px 0 8px;letter-spacing:.04em}
.sel{display:grid;gap:6px;font-size:13px}
.selrow{display:grid;grid-template-columns:44px 1fr 22px;align-items:center;gap:6px;background:#101216;border:1px solid #2a2e35;border-radius:8px;padding:6px 8px}
.selrow span{color:var(--muted);font-variant-numeric:tabular-nums}
.selrow button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0}
.selrow button:hover{color:var(--bad)}
.opt{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid #2a2e35;border-radius:8px;margin-bottom:6px;cursor:pointer}
.opt:hover{border-color:#515761}
.opt:has(input:checked){border-color:#6b6124;background:#1c1a0f}
.opt input{margin-top:3px;accent-color:var(--accent)}
.opt b{display:block;font-size:14px}
.opt span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.jobrow{display:grid;grid-template-columns:1fr auto auto;gap:12px;font-size:13px;padding:8px 6px;border-bottom:1px solid #262a30;cursor:pointer;border-radius:6px}
.jobrow:hover{background:#191c21}
.jobrow span:first-child{font-variant-numeric:tabular-nums}

/* 第 2 步：进度 */
.progress{max-width:860px;margin:24px auto 0;padding:28px 32px}
.progress h2{font-size:22px}
.bar{height:10px;border-radius:99px;background:#24272d;margin:18px 0 10px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .5s}
.prow{display:grid;grid-template-columns:96px minmax(0,1fr) 150px 200px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #262a30;font-size:14px}
.prow.wait{opacity:.55}
.prow .muted{font-size:12px}
.pst{font-weight:800;display:flex;align-items:center;gap:6px}
.psum{text-align:right;font-size:13px;color:var(--muted)}
.spin{width:12px;height:12px;border:2px solid var(--accent);border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* 第 3 步：结果 */
.resulthead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;margin-top:14px;flex-wrap:wrap}
.resulthead h2{font-size:20px}
.mtabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--line);background:#181a1f}
.mtabs button{border:0;background:none;padding:10px 16px;text-align:left;cursor:pointer;border-bottom:3px solid transparent;color:var(--muted);flex:none}
.mtabs button b{display:block;font-size:14px}
.mtabs button small{display:block;font-size:11px;margin-top:2px}
.mtabs button.on{color:var(--ink);border-bottom-color:#22d3ee;background:var(--panel)}
.vtabs{display:flex;gap:6px;padding:12px 16px}
.vtabs button{border:1px solid #4b515b;background:#202329;border-radius:999px;padding:6px 16px;font-size:13px;font-weight:800;cursor:pointer;color:var(--muted)}
.vtabs button.on{background:var(--ink);border-color:var(--ink);color:#111318}
.notes{font-size:13px;line-height:1.7;color:var(--muted)}
.notes p{margin:8px 0 0}
.notes b{color:var(--ink)}
.texts{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 16px}
.texts h4{margin:0 0 8px;font-size:13px;display:flex;justify-content:space-between;align-items:center}
pre.out{font-family:Consolas,"Microsoft YaHei",monospace;font-size:11.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all;
  background:#0d0f12;border:1px solid #2a2e35;border-radius:8px;padding:10px;color:#d4dae3;margin:0;max-height:560px;overflow:auto}
.tablewrap{overflow-x:auto;padding:0 0 4px}

/* 第 4 步：邮件 */
.mailcard{max-width:720px;margin:24px auto 0;padding:28px 32px}
.mstate{padding-bottom:16px;margin-bottom:8px;border-bottom:1px solid #262a30}
.mstate b{font-size:24px;display:block}
.mstate p{margin:6px 0 0;color:var(--muted);font-size:13px;min-height:18px}
.files{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.files a{color:#a5f3fc;font-size:13px}
.mailcard>.row:not(.split){margin-top:18px}
.mailcard .hint{text-align:left}
.guide{margin:16px 0 0;border:1px solid #6b6124;background:#1c1a0f;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.8}
.guide ol{margin:6px 0 0;padding-left:20px}

/* 赔率表 */
table.odds{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed;font-variant-numeric:tabular-nums}
table.odds th,table.odds td{padding:6px 8px;border-bottom:1px solid #30343b;text-align:right}
table.odds th:first-child,table.odds td:first-child{text-align:left}
table.odds th{color:#e4e4e7;font-weight:900;background:#24272d}
table.odds th.sub{font-size:11px;color:#7c838d;font-weight:700}
table.odds thead tr:first-child th{text-align:center;color:#fde047}
table.odds thead tr:first-child th:first-child{text-align:left}
table.odds .gs{border-left:1px solid #3a3f47}
table.odds .i{display:block;color:#7c838d;font-size:11px;line-height:1.25}
table.odds .c{display:block;font-weight:800;font-size:13px;line-height:1.35}
table.odds .c em{font-style:normal;font-size:11px;margin-left:3px}
.u{color:var(--up)}.d{color:var(--down)}.n{color:#6b7280}
table.odds td.name{font-weight:900;font-size:13px}
table.odds tr.miss td{color:#5d636c;text-align:center}
table.odds tr.miss td.name{text-align:left}

/* 阵容 */
.lhead{display:flex;gap:6px;padding:0 16px}
.sides{display:flex;justify-content:space-between;padding:12px 16px 0;font-size:14px;font-weight:900}
.sides .h{color:var(--home)}.sides .a{color:var(--away)}
.sides small{color:var(--muted);font-weight:700;margin:0 6px}
.pitch{position:relative;margin:10px 16px 12px;height:520px;border-radius:8px;overflow:hidden;
  background:repeating-linear-gradient(90deg,#123b25 0 80px,#10351f 80px 160px);border:2px solid #2f6b45}
.pitch .mid{position:absolute;left:50%;top:0;bottom:0;border-left:2px solid rgba(255,255,255,.35)}
.pitch .circle{position:absolute;left:50%;top:50%;width:140px;height:140px;margin:-70px;border:2px solid rgba(255,255,255,.35);border-radius:50%}
.pitch .box{position:absolute;top:50%;width:120px;height:260px;margin-top:-130px;border:2px solid rgba(255,255,255,.35)}
.pitch .box.l{left:-2px}.pitch .box.r{right:-2px}
.pl{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;width:120px}
.pl i{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:900;font-size:13px;color:#111318}
.pl.h i{background:var(--home)}.pl.a i{background:var(--away)}
.pl b{margin-top:4px;font-size:12px;font-weight:800;text-align:center;background:rgba(0,0,0,.5);padding:1px 5px;border-radius:4px;white-space:nowrap}
.est{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 16px}
.est div,.subs div{background:#101216;border:1px solid #2a2e35;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.8}
.est em,.subs em{font-style:normal;font-weight:900;display:block;margin-bottom:4px}
.est .h em,.subs .h em{color:var(--home)}.est .a em,.subs .a em{color:var(--away)}
.subs{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 16px}
.values{display:flex;justify-content:space-between;gap:12px;padding:0 16px 10px;font-size:12px;color:var(--muted)}

/* ===== 历史赔率 ===== */
section[data-page="history"]{margin-top:16px}
.hmsg{padding:10px 16px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line)}
.btn.file{cursor:pointer}
.hlist{width:100%;border-collapse:collapse;font-size:13px}
.hlist th,.hlist td{padding:11px 14px;border-bottom:1px solid #2a2e35;text-align:left}
.hlist th{background:#24272d;font-size:12px;color:#e4e4e7}
.hlist tbody tr[data-key]{cursor:pointer}
.hlist tbody tr[data-key]:hover td{background:#191c21}
.hlist .vs{font-weight:900}
.hlist td:first-child{font-variant-numeric:tabular-nums}
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.7);display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow:auto}
.dialog{width:min(1240px,100%);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.dhead{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px 6px}
.dhead h2{font-size:22px}
.dhead small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.x{border:0;background:#24272d;width:34px;height:34px;border-radius:50%;font-size:20px;cursor:pointer;color:var(--muted)}
.x:hover{color:var(--ink)}
.dbody{padding:0 0 18px;min-height:300px}
.dstats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 16px 14px}
.dstats div{background:#101216;border:1px solid #2a2e35;border-radius:8px;padding:10px 12px}
.dstats span{display:block;font-size:12px;color:var(--muted);font-weight:700}
.dstats b{display:block;font-size:22px;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.dstats small{font-size:11px;color:var(--muted)}
table.dist td.bar{padding:6px 12px}
table.dist td.l{text-align:left}
table.dist td.l small{color:var(--muted)}
.pbar{display:flex;height:22px;border-radius:5px;overflow:hidden;font-size:11px;font-weight:800}
.pbar i{font-style:normal;display:flex;align-items:center;justify-content:center;color:#111318;min-width:0;overflow:hidden}
.pbar i.h{background:var(--home)}.pbar i.d{background:var(--draw);color:#e5e7eb}.pbar i.a{background:var(--away)}
.foot{font-size:12px;color:var(--muted);padding:8px 16px 0;margin:0}
.dsec{font-size:13px;color:var(--muted);margin:6px 16px 10px;font-weight:800}
.recents{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px}
.recent h4{margin:0 0 8px;font-size:14px}
.rrow{background:#101216;border:1px solid #2a2e35;border-radius:8px;padding:10px 12px;margin-bottom:8px}
.rtop{display:flex;gap:10px;font-size:12px;align-items:center}
.rtop span:last-child{margin-left:auto}
.rrow p{margin:6px 0 0;font-size:13px;line-height:1.7}

@media (max-width:1100px){
  .grid{grid-template-columns:minmax(0,1fr)}
  .stepper li span{display:none}
  .prow{grid-template-columns:90px 1fr;}
  .prow .psum{text-align:left}
  .texts,.recents,.est,.subs{grid-template-columns:1fr}
  .dstats{grid-template-columns:repeat(2,1fr)}
}

.pager{display:flex;gap:12px;align-items:center;justify-content:center;padding:14px;font-size:13px;color:var(--muted)}
.changes{margin:14px 16px 0;border:1px solid #2a2e35;border-radius:8px;background:#101216}
.changes summary{cursor:pointer;padding:10px 12px;font-size:13px;font-weight:800;color:var(--muted)}
.chgs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 12px 12px}
.chgs h4{margin:0 0 6px;font-size:13px}.chgs h4 small{color:var(--muted);font-weight:700;margin-left:6px}
table.chg{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
table.chg th,table.chg td{padding:4px 6px;border-bottom:1px solid #262a30;text-align:left}
table.chg th{color:var(--muted);font-weight:700}
.chgs>div{max-height:360px;overflow:auto}

.dialog.narrow{width:min(620px,100%)}
.mform{padding:6px 20px 20px;display:grid;gap:12px}
.mform label{display:grid;gap:6px;font-size:13px;font-weight:800}
.mform label small{font-weight:700;font-size:12px}
.mform .control{width:100%}
.mform .adv summary{cursor:pointer;font-size:12px;color:var(--muted)}
.mform .adv .row{margin-top:8px;flex-wrap:nowrap}
.howto{font-size:12px;line-height:1.8;color:var(--muted);border:1px solid #2a2e35;background:#101216;border-radius:8px;padding:10px 12px}
.howto b{color:var(--ink)}
.mform .hint{text-align:left}

.bflist{margin:0;padding-left:18px;font-size:12px;line-height:1.9;color:var(--muted)}
.mform .row label{display:flex;align-items:center;gap:8px;font-weight:700}
.mform .row label .control{width:170px}
.bfbar{height:8px;border-radius:4px;background:#22262d;overflow:hidden}
.bfbar i{display:block;height:100%;background:var(--accent);transition:width .4s}

/* 登录 */
.login{max-width:360px;margin:12vh auto;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.login input{width:100%;margin:14px 0}

/* ===== 手机端 ===== */
.m-app{max-width:520px;margin:0 auto;padding:22px 18px 130px}
.m-app h1{font-size:22px}
.m-sub{font-size:13px;color:var(--muted);margin:4px 0 14px}
.m-steps{display:flex;gap:6px;font-size:12px;color:var(--muted);margin:0 0 14px}
.m-steps span{flex:1;text-align:center;padding:6px 0;border-bottom:2px solid #2c3037}
.m-steps span.on{color:var(--ink);border-color:var(--accent);font-weight:800}
.m-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #2c3037;cursor:pointer}
.m-row b{font-size:16px}
.m-row span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.m-ck{width:22px;height:22px;border-radius:50%;border:2px solid #4b515b;flex:none;margin-left:12px}
.m-row.on .m-ck{background:var(--accent);border-color:var(--accent)}
.m-mods{display:flex;gap:16px;margin:18px 0 8px;font-size:14px;flex-wrap:wrap}
.m-mods label{display:flex;align-items:center;gap:6px}
.m-bar{position:fixed;left:0;right:0;bottom:0;padding:12px 18px 18px;background:linear-gradient(transparent,var(--bg) 30%)}
.m-bar>div{max-width:520px;margin:0 auto}
.m-btn{width:100%;border:0;background:var(--accent);color:#111318;border-radius:14px;padding:16px;font-size:17px;font-weight:900}
.m-btn:disabled{opacity:.5}
.m-to{text-align:center;font-size:12px;color:var(--muted);margin-top:8px}
.m-to select{background:transparent;border:0;color:var(--muted)}
.m-st{font-size:28px;font-weight:900;margin:6px 0 4px}
.m-res{padding:14px 0;border-bottom:1px solid #2c3037}
.m-res b{display:block;font-size:16px;margin-bottom:6px}
.m-res p{margin:0;font-size:13px;color:var(--muted);line-height:1.7}
.m-links{display:flex;gap:10px;margin-top:22px}
.m-links button{flex:1;border:1px solid #4b515b;background:transparent;border-radius:12px;padding:12px;font-size:14px;font-weight:700}
.m-back{background:none;border:0;color:var(--muted);font-size:14px;padding:0;margin-bottom:10px}

/* 手机访问 */
.netstate { padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 6px; }
.netstate p { margin: 0; }
.neturl { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 16px; word-break: break-all; }
.neturl a { font-size: 22px; font-weight: 800; color: var(--accent); }
.netstate .qr { width: 200px; height: 200px; background: #fff; border-radius: 8px; }
#netChip.ok { font-size: 14px; padding: 7px 14px; }
.mailchip + .mailchip { margin-left: 0; }
