/* 只声明浅色，避免浏览器强制深色反色 */
:root{color-scheme:light}
html,body{background:#f7f9fc !important;color:#1b2733 !important}
input,select,textarea,button{color-scheme:light}:root{
  --bg:#0e1116; --panel:#161a21; --panel2:#1b2029; --line:#262c38;
  --txt:#e7eaf0; --dim:#8b94a7; --accent:#4c8dff; --good:#3ddc97; --bad:#ff6b6b;
  --radius:12px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--txt);
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
.wrap{max-width:1120px;margin:0 auto;padding:28px 22px 60px}
header{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#4c8dff,#8b5cf6);
  display:grid;place-items:center;font-weight:700;font-size:15px;color:#fff}
h1{font-size:20px;margin:0;font-weight:600;letter-spacing:.2px}
.tag{color:var(--dim);font-size:12px;border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.spacer{flex:1}
button{font:inherit;cursor:pointer;border-radius:9px;border:1px solid var(--line);
  background:var(--panel2);color:var(--txt);padding:9px 16px;transition:.15s}
button:hover{border-color:#39435a;background:#202634}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
button.primary:hover{background:#3c7df0}
button.big{padding:12px 22px;font-size:16px}
button:disabled{opacity:.45;cursor:not-allowed}

.hero{font-size:30px;line-height:1.25;font-weight:650;letter-spacing:-.4px;margin:6px 0 8px;max-width:760px}
.sub{color:var(--dim);font-size:14px;margin:0 0 22px}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.grid{display:grid;gap:14px}

/* -------- quick -------- */
.odds-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.odds-row label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--dim)}
.odds-row input{font-size:26px;font-weight:600;letter-spacing:.5px;width:130px;
  background:var(--panel2);border:1px solid var(--line);color:var(--txt);
  border-radius:10px;padding:10px 14px;outline:none;font-variant-numeric:tabular-nums}
.odds-row input:focus{border-color:var(--accent)}
.odds-row button{margin-left:auto}

.dropsmall{margin-top:16px;border:1.5px dashed #39435a;border-radius:10px;padding:16px;
  text-align:center;color:var(--dim);font-size:13.5px;cursor:pointer;transition:.15s}
.dropsmall.hover{border-color:var(--accent);background:#151b26;color:var(--txt)}

.verdict-panel{margin-top:18px}
h2.verdict{font-size:20px;margin:0 0 10px;color:var(--txt)}
ul.plain{margin:0 0 14px;padding-left:20px;color:#c6cddb}
ul.plain li{margin:4px 0}
.hint{color:var(--dim);font-size:12.5px;margin:10px 0 0}
.morelink{margin:26px 0 0;text-align:center}

/* -------- advanced -------- */
#drop{border:1.5px dashed #39435a;border-radius:var(--radius);padding:34px;text-align:center;
  background:var(--panel);transition:.15s;cursor:pointer;margin-bottom:14px}
#drop.hover{border-color:var(--accent);background:#151b26}
#drop .big{font-size:16px;margin-bottom:4px}
#drop .small{color:var(--dim);font-size:13px}
.files{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--panel2);border:1px solid var(--line);border-radius:99px;
  padding:4px 11px;font-size:12.5px;color:var(--dim)}
.chip b{color:var(--txt);font-weight:500}

.rowline{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
input[type=text],select{font:inherit;background:var(--panel2);border:1px solid var(--line);
  color:var(--txt);border-radius:9px;padding:9px 12px;outline:none}
input[type=text]{flex:1;min-width:260px}
input[type=text]:focus,select:focus{border-color:var(--accent)}
label.opt{color:var(--dim);font-size:13px;display:flex;align-items:center;gap:6px}
label.opt input[type=text]{flex:none}

.status{margin-top:12px;font-size:13.5px;color:var(--dim);min-height:20px}
.status.err{color:var(--bad)}
.status.ok{color:var(--good)}

#results{margin-top:26px;display:none}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:10px;margin-bottom:18px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpi .v{font-size:20px;font-weight:600;letter-spacing:-.3px}
.kpi .l{color:var(--dim);font-size:11.5px;margin-top:2px;line-height:1.3}

h2{font-size:15px;font-weight:600;margin:26px 0 12px;color:#cfd6e4}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:right;color:var(--dim);font-weight:500;padding:9px 10px;border-bottom:1px solid var(--line);
  font-size:12px;text-transform:uppercase;letter-spacing:.4px}
td{text-align:right;padding:9px 10px;border-bottom:1px solid #1c222c}
th:first-child,td:first-child{text-align:left}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:#171d27}
tr.active td{background:#1a2230}
.good{color:var(--good)}.bad{color:var(--bad)}
.mono{font-variant-numeric:tabular-nums}

.chart{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px 8px}
.chart h3{margin:0 0 8px;font-size:13px;color:var(--dim);font-weight:500}
svg{display:block;width:100%;height:auto}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.two{grid-template-columns:1fr}}
footer{margin-top:44px;color:var(--dim);font-size:12px;border-top:1px solid var(--line);padding-top:14px}
a{color:var(--accent)}

/* league loader chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.chip{font-size:12.5px;padding:6px 12px;border-radius:99px;border:1px solid var(--line);
  background:var(--panel2);color:var(--dim);cursor:pointer;transition:.15s}
.chip:hover{border-color:#39435a;color:var(--txt)}
.chip.on{background:rgba(76,141,255,.16);border-color:var(--accent);color:var(--accent);font-weight:600}
/* what-this-does cards */
.what{margin:6px 0 26px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.card h3{margin:0 0 6px;font-size:14px;font-weight:600;color:#cfd6e4}
.card p{margin:0;color:var(--dim);font-size:13px;line-height:1.55}
.card em{color:var(--txt);font-style:normal}
.card strong{color:var(--txt)}

/* quit button */
.quit{margin-left:14px;font-size:12px;padding:4px 10px;color:var(--dim)}
.quit:hover{color:var(--bad);border-color:rgba(255,107,107,.4)}/* one-number verdict */
.bignum{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:6px 0 18px}
.bignum .n{font-size:56px;font-weight:700;letter-spacing:-1.5px;color:var(--bad);line-height:1}
.bignum .t{color:#c6cddb;font-size:15px;max-width:520px}
.sentence{font-size:15.5px;color:var(--txt);margin:0 0 18px;max-width:760px}

/* licence bar + today list */
.licbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 22px;
  padding:12px 16px;border-radius:10px;background:rgba(245,196,81,.08);
  border:1px solid rgba(245,196,81,.35);font-size:13.5px;color:#e8d9a8}
.licbar.expired{background:rgba(255,107,107,.08);border-color:rgba(255,107,107,.4);color:#f0b8b8}
.licbar.bad{background:rgba(255,107,107,.08);border-color:rgba(255,107,107,.4);color:#f0b8b8}
.licbar input{flex:1;min-width:260px;font:inherit;background:var(--panel2);
  border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:8px 12px}
.licbar button{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.pick{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:600;letter-spacing:.4px}
.pick.H{background:rgba(61,220,151,.15);color:var(--good)}
.pick.D{background:rgba(139,148,167,.18);color:#c6cddb}
.pick.A{background:rgba(76,141,255,.16);color:var(--accent)}
.pick.N{background:rgba(255,107,107,.14);color:var(--bad)}

/* three-row inputs */
.trow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:10px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.trow.ok{border-color:rgba(61,220,151,.45);background:rgba(61,220,151,.05)}
.tnum{width:22px;height:22px;border-radius:50%;background:var(--line);color:var(--txt);
  font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:none}
.trow.ok .tnum{background:rgba(61,220,151,.25);color:var(--good)}
.trow .odds-row{margin:0;flex:1;min-width:280px}
.okbtn{margin-left:auto;font-size:12.5px;padding:7px 16px;flex:none}
.trow.ok .okbtn{border-color:rgba(61,220,151,.5);color:var(--good)}
.ghost{background:transparent;color:var(--dim)}
.ghost:hover{color:var(--txt)}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.twocol.single{grid-template-columns:1fr}
.tcard{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.bignum.small .n{font-size:38px}
@media (max-width:820px){.twocol{grid-template-columns:1fr}}

/* before / after comparison */
table.compare td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.compare tr.hl td{background:rgba(76,141,255,.06)}
table.compare tr.hl td:first-child{font-size:13.5px}
table.compare td.num{text-align:right}

/* initial / live side by side */
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px}
.tcol{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--panel2)}
.tcolhead{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.tcol .opt{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0;font-size:13px}
.tcol .opt input{width:110px;min-width:110px;text-align:right}
@media (max-width:700px){.tgrid{grid-template-columns:1fr}}

/* live odds mini row */
.tcolsub{font-size:11.5px;color:var(--dim);margin:10px 0 6px}
.odds-mini{display:flex;gap:8px}
.odds-mini input{flex:1;min-width:0;text-align:center;padding:7px 8px}

/* verdict call */
.call{font-size:26px;font-weight:700;letter-spacing:-.5px;color:var(--good);margin:2px 0 4px;line-height:1.15}
.call.counter{color:#f5c451}
.callsub{font-size:13px;color:var(--dim)}

/* favourite hint */
.favhint{font-size:12.5px;color:var(--dim);margin:10px 0 0;min-height:18px}
.favhint strong{color:var(--txt)}

/* mirror the source table: 欧 row, 亚 row, initial + live */
.exchtable{width:100%;border-collapse:separate;border-spacing:8px 8px;table-layout:fixed}
.exchtable th.grp{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--dim);
  font-weight:600;padding:2px 0 6px}
.exchtable th.grp.init{color:#8fb4e8}
.exchtable th.grp.live{color:#c6a8e0}
.exchtable th.rowlab{width:44px;text-align:center;font-size:14px;color:var(--dim);font-weight:600}
.exchtable td{padding:0}
.exchtable td.lv{background:rgba(150,110,200,.05)}
.exchtable input{width:100%;text-align:center;padding:10px 6px;font-size:14px}
.exchlegend{font-size:11.5px;color:var(--dim);text-align:center;margin-top:2px}
@media (max-width:640px){
  .exchtable{border-spacing:5px 6px}
  .exchtable input{padding:8px 3px;font-size:12.5px}
}


/* three verdict states */
.call.play{color:var(--good)}
.call.stop{color:#c6cddb}
.call.avoid{color:var(--bad)}


/* verdict sits directly under the buttons, no scrolling */
#threeResult{margin-top:16px}
#threeResult .panel{margin-top:0}
#threeResult .tcard{background:var(--panel2);border:1px solid var(--line)}
#qdrop{margin-top:18px}

/* cloud picks */
.rank{font-weight:700;color:var(--accent);width:28px}

/* ---- 推荐名单：结果与滚动历史 ---- */
.res-hit{display:inline-block;background:#1f7a4d;color:#fff;padding:1px 7px;border-radius:5px;font-weight:600;font-size:12px}
.res-miss{display:inline-block;background:#9c3b3b;color:#fff;padding:1px 7px;border-radius:5px;font-weight:600;font-size:12px}
.res-pend{display:inline-block;background:#8a94a6;color:#fff;padding:1px 7px;border-radius:5px;font-size:12px}
.histwrap{margin-top:22px}
.histtitle{font-size:13px;color:#66748a;margin-bottom:8px;letter-spacing:.5px}
.hday{border:1px solid var(--line,#d5dce5);border-radius:10px;margin-bottom:10px;background:#fff;overflow:hidden}
.hhead{background:#eef2f7;padding:7px 12px;font-weight:600;font-size:13px;display:flex;justify-content:space-between}
.hcount{color:#1f7a4d;font-weight:600}
.hlist{list-style:none;margin:0;padding:0;max-height:190px;overflow-y:auto}
.hlist li{display:flex;gap:7px;align-items:center;padding:6px 12px;border-top:1px solid #eef2f7;font-size:13px}
.hlist li:first-child{border-top:0}
.hrank{color:#8a94a6;width:14px;flex:0 0 14px}
.hh,.ha{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hside{color:#33465c;font-weight:600;flex:0 0 18px}
.hscore{color:#66748a;flex:0 0 42px;text-align:right}

/* ---- 一行滚动历史 ---- */
.ticker{display:flex;align-items:center;gap:8px;margin-top:12px;padding:7px 10px;
  background:#fff;border:1px solid var(--line,#d5dce5);border-radius:9px;
  text-decoration:none;color:inherit;overflow:hidden}
.ticker:hover{border-color:#1a5fb4}
.tlabel{flex:0 0 auto;font-size:11px;color:#1b2733;border:1px solid #d5dce5;
  border-radius:5px;padding:1px 6px;letter-spacing:.3px}
.tflow{flex:1 1 auto;white-space:nowrap;overflow-x:auto;font-size:12.5px;
  color:#33465c;scrollbar-width:thin}
.tflow::-webkit-scrollbar{height:5px}
.tflow::-webkit-scrollbar-thumb{background:#c9d3e0;border-radius:3px}
.tday{display:inline-block;margin-right:4px}
.tdate{color:#1b2733;font-weight:600;margin-right:5px}
.trate{color:#1f7a4d;font-weight:600;margin-right:7px}
.titem{display:inline-block;margin-right:10px}
.titem em{font-style:normal;color:#1b2733}
.t-hit{color:#1f7a4d}
.t-miss{color:#9c3b3b}
.t-pend{color:#33465c}
.tsep{color:#8a94a6;margin:0 6px}

.tside{display:inline-block;background:#eef2f7;color:#33465c;border-radius:4px;
  padding:0 4px;font-size:11px;font-weight:600;margin:0 1px}

/* ---- 历史滚动条（CSS 动画，长时间无缝） ---- */
.ticker{display:flex;align-items:center;gap:8px;margin-top:12px;padding:7px 10px;
  background:#fff;border:1px solid var(--line,#d5dce5);border-radius:9px;
  text-decoration:none;color:inherit;overflow:hidden}
.ticker:hover{border-color:#1a5fb4}
.tlabel{flex:0 0 auto;font-size:11px;color:#1b2733;border:1px solid #d5dce5;
  border-radius:5px;padding:1px 6px;letter-spacing:.3px}
.tviewport{flex:1 1 auto;overflow:hidden;white-space:nowrap;position:relative}
.ttrack{display:inline-block;white-space:nowrap;font-size:12.5px;color:#33465c;
  animation:tickmove 40s linear infinite;padding-left:0}
.ticker:hover .ttrack{animation-play-state:paused}
@keyframes tickmove{from{transform:translateX(0)}to{transform:translateX(-33.3333%)}}
.tday{display:inline-block;margin-right:4px}
.tdate{color:#1b2733;font-weight:600;margin-right:5px}
.trate{color:#1f7a4d;font-weight:600;margin-right:7px}
.titem{display:inline-block;margin-right:10px}
.titem em{font-style:normal;color:#1b2733}
.tside{display:inline-block;background:#eef2f7;color:#33465c;border-radius:4px;
  padding:0 4px;font-size:11px;font-weight:600}
.t-hit{color:#1f7a4d;font-weight:700}
.t-miss{color:#9c3b3b;font-weight:700}
.t-pend{color:#33465c}
.tsep{color:#8a94a6;margin:0 6px}

.tnone{color:#9c3b3b;font-weight:700}
.tpend{color:#33465c;font-weight:700}
.lg{display:block;font-size:11px;color:#33465c;font-weight:500;margin-top:1px}

/* ---- 许可证过期横幅 ---- */
.licbanner{position:sticky;top:0;z-index:50;background:#fff4e5;border-bottom:1px solid #e8c48a;
  color:#7a4a12;font-size:14px}
.licbanner-in{max-width:1040px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;
  gap:12px;flex-wrap:wrap}
.licbanner.expired{background:#fdecea;border-bottom-color:#e6a5a0;color:#8a1f1f}
.licbanner.warn{background:#fff4e5;border-bottom-color:#e8c48a;color:#7a4a12}
#licBannerAction{color:inherit;font-weight:600;text-decoration:underline;white-space:nowrap}
#licBannerClose{margin-left:auto;background:transparent;border:0;font-size:20px;line-height:1;
  cursor:pointer;color:inherit;padding:0 4px}

/* ---------- 手机端（<=640px） ---------- */
@media (max-width:640px){
  body{padding:14px 12px 46px;font-size:15.5px;line-height:1.68}
  .wrap{padding:18px 12px 46px}
  h1{font-size:21px;line-height:1.3}
  h2{font-size:17px;margin:24px 0 8px}
  .lead{font-size:15.5px}
  header{flex-wrap:wrap;gap:6px;padding-bottom:8px}
  .tag{display:none}
  .spacer{display:none}
  table{font-size:13px}
  th,td{padding:6px 7px}
  .kpis{gap:8px;margin:14px 0}
  .kpi{flex:1 1 45%;padding:10px 11px}
  .kpi b{font-size:19px}
  .kpi span{font-size:11px}
  .row{flex-direction:column;gap:8px}
  .field{flex:1 1 100%}
  input{font-size:17px;padding:10px}
  button{font-size:15px;padding:11px 16px;width:100%}
  .card,.panel,.cta{padding:13px 13px}
  /* 表格太宽就横向滑动，不挤成一团 */
  #picks,#signalsBox,#results,.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  #picks table,#signalsBox table{min-width:520px}
  table{min-width:0}
  .licbanner-in{padding:8px 12px;font-size:12.5px;gap:8px}
  #licBannerClose{font-size:18px}
  .ticker{font-size:12.5px}
  nav{font-size:13px;flex-wrap:wrap;gap:8px}
  nav a{margin-right:10px}
  footer{font-size:12px}
}

/* 强制浅色：防浏览器暗黑模式把页面整成黑底灰字 */
html, body { background: #f7f9fc !important; color: #1b2733 !important; }
body, p, td, th, li, span, label, h1, h2, h3, h4 { color: #1b2733 !important; }
.panel, .card, .box, table, .exchlegend { background: #ffffff !important; }
input, select, textarea { background: #ffffff !important; color: #1b2733 !important; }
.hint, .meta, .sub, .exchlegend { color: #33465c !important; }
a { color: #1a5fb4 !important; }
