*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif;color:#171717;background:#fff}
.app{max-width:1180px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e5e5e5}
h1{font-size:22px;margin:0 0 3px}header p{margin:0;color:#777;font-size:12px}.import,.primary{background:#087ff5;color:#fff;padding:9px 14px;border-radius:8px;font-weight:600;cursor:pointer}.import input,.primary input{display:none}
main{min-height:70vh}.empty{text-align:center;padding:100px 20px}.empty h2{margin-bottom:8px}.empty p{color:#777;margin-bottom:28px}
.controls{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid #eee;flex-wrap:wrap}.controls label{color:#666;font-size:14px}.controls select,.controls input{font:inherit;padding:6px;border:1px solid #ddd;border-radius:7px;background:#f6f6f6}.controls input[type=number]{width:60px}.second{position:relative}
.seg{margin-left:auto;display:flex;background:#eee;border-radius:8px;padding:2px}.seg button{border:0;background:transparent;padding:7px 10px;border-radius:7px}.seg button.active{background:#087ff5;color:#fff}
.cutoff,.derived{padding:10px 16px;border-bottom:1px solid #eee}.sectionTitle{font-weight:700;margin-bottom:6px}.sectionTitle span,.muted{color:#777;font-size:12px;font-weight:400}.balls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.ball{width:31px;height:31px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#111;background:#fff;border:7px solid;box-shadow:0 1px 3px #bbb;font-weight:700;font-size:11px}.ball.red{border-color:#ff3434}.ball.blue{border-color:#087ff5}.ball.green{border-color:#29c75f}.plus{color:#777;font-weight:700}
.derivedList{display:flex;gap:8px;overflow:auto;padding-top:8px}.derivedChip{display:flex;align-items:center;gap:7px;min-width:max-content;border:1px solid #ddd;border-radius:9px;padding:6px 8px;background:#fafafa}.derivedChip .txt{font-size:11px;line-height:1.45}.derivedChip b{display:block;font-size:12px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 235px;align-items:start}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:8px;padding:10px}.card{border:1px solid #ddd;border-radius:10px;background:#fafafa;padding:8px 5px;text-align:center;cursor:pointer;min-height:96px}.card.selected{outline:2px solid #087ff5}.card .balls{justify-content:center}.card .count{font-size:15px;font-weight:700;margin-top:6px}.card .miss{font-size:11px;color:#777;margin-top:5px}.detail{border-left:1px solid #ddd;padding:14px;min-height:360px;position:sticky;top:0}.detail h3{margin:0 0 12px}.detail .bigballs{display:flex;gap:9px}.detail .bigballs .ball{width:46px;height:46px;border-width:9px;font-size:15px}.dates{line-height:1.8;font-variant-numeric:tabular-nums}
@media(max-width:700px){header{padding:12px}h1{font-size:19px}.controls{gap:9px;padding:9px 10px}.seg{width:100%;margin-left:0}.seg button{flex:1}.cutoff,.derived{padding:10px}.workspace{display:block}.detail{display:none}.grid{grid-template-columns:repeat(3,1fr);gap:7px;padding:8px}.card{min-width:0;min-height:91px;padding:7px 3px}.card .ball{width:29px;height:29px;border-width:6px;font-size:10px}.derivedList{padding-bottom:3px}}
@media(max-width:370px){.grid{grid-template-columns:repeat(2,1fr)}}
.headerActions{display:flex;align-items:center;gap:8px}
.onlineStatus{font-size:12px;padding:6px 9px;border-radius:8px;background:#f1f2f4;color:#666;white-space:nowrap}
.onlineStatus.ok{background:#eaf8ee;color:#18743a}
.onlineStatus.bad{background:#fff1f0;color:#b42318}
.onlineStatus.checking{background:#eef5ff;color:#1769aa}
@media(max-width:700px){
  header{align-items:flex-start;gap:8px}
  .headerActions{flex-direction:column;align-items:flex-end}
  .onlineStatus{max-width:155px;white-space:normal;text-align:right;line-height:1.25}
  .import{padding:8px 11px}
}

.comboSeg{margin-left:0}
#customPeriod{width:76px}
@media(max-width:700px){.comboSeg{width:auto}.comboSeg button{min-width:88px}.card.three .balls{gap:2px}.card.three .ball{width:27px;height:27px;border-width:5px}}

.titleRow{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.titleRow h1{margin:0}
.researchNotice{font-size:12px;color:#888;font-weight:500}
.lotteryPickerLabel{font-size:12px;color:#666;display:flex;align-items:center;gap:5px}
.lotteryPicker{font:inherit;font-size:13px;font-weight:650;border:1px solid #ddd;border-radius:8px;background:#f6f6f6;padding:7px 28px 7px 9px;color:#111}
@media(max-width:700px){
  .titleRow{max-width:245px}
  .researchNotice{font-size:10.5px}
  .lotteryPickerLabel{font-size:11px}
  .lotteryPicker{padding:6px 24px 6px 8px}
  .headerActions{gap:5px}
}

/* V4.1：右侧组合详情 + 2码合成3码；整个工作区可左右滑动 */
body{overflow-x:auto}
.workspace{
  grid-template-columns:minmax(720px,1fr) 285px;
  min-width:1020px;
}
.rightColumn{
  border-left:1px solid #ddd;
  min-width:285px;
  display:flex;
  flex-direction:column;
  align-self:stretch;
}
.rightColumn .detail{
  border-left:0;
  min-height:300px;
  position:static;
}
.synthPanel{
  border-top:1px solid #ddd;
  padding:14px;
  background:#fff;
}
.synthHeader{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:8px;
  margin-bottom:10px;
}
.synthHeader h3{margin:0 0 3px;font-size:15px}
.synthList{display:flex;flex-direction:column;gap:8px}
.synthItem{
  border:1px solid #ddd;
  border-radius:9px;
  padding:8px 9px;
  background:#fafafa;
}
.synthNums{
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:5px;
}
.synthNums .ball{
  width:29px;height:29px;border-width:6px;font-size:11px;
}
.synthSource{
  font-size:11px;
  color:#666;
  line-height:1.4;
}

/* 覆盖旧的手机规则：不再隐藏详情，改为左右滑动看右栏 */
@media(max-width:700px){
  body{overflow-x:auto}
  main{overflow-x:visible}
  .workspace{
    display:grid;
    grid-template-columns:650px 280px;
    min-width:940px;
  }
  .grid{
    grid-template-columns:repeat(5,minmax(105px,1fr));
  }
  .detail{display:block}
  .rightColumn{min-width:280px}
}
.loginGate{position:fixed;inset:0;z-index:99999;background:#f5f6f8;display:flex;align-items:center;justify-content:center;padding:22px}.loginGate.unlocked{display:none}.loginCard{width:min(330px,88vw);background:#fff;border:1px solid #e2e2e2;border-radius:16px;padding:24px;box-shadow:0 10px 35px rgba(0,0,0,.08)}.loginBrand{font-size:24px;font-weight:800;margin-bottom:4px}.loginNotice{font-size:12px;color:#777;margin-bottom:18px}.loginPassword{width:100%;box-sizing:border-box;border:1px solid #d6d6d6;border-radius:10px;padding:12px;font-size:16px;outline:none;margin-bottom:10px}.loginPassword:focus{border-color:#1677ff}.loginButton{width:100%;border:0;border-radius:10px;background:#1677ff;color:#fff;font-size:15px;font-weight:700;padding:12px}.loginError{min-height:18px;margin-top:8px;color:#d93025;font-size:12px;text-align:center}
/* V5 特码分析：保持现有白色界面 */
.specialPage{padding:12px 16px 30px;min-width:880px}
.specialToolbar,.formulaSection{background:#fff;border-bottom:1px solid #e5e5e5;padding:13px 0;margin-bottom:8px}
.specialToolbarRow,.specialMetaRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}
.specialToolbar select,.specialToolbar input{font:inherit;border:1px solid #d7d7d7;border-radius:8px;background:#f7f7f7;padding:7px 9px}
#specialCustomPeriod{width:76px}.specialMetaRow{margin-top:10px;color:#444}
.primaryAction{border:0;border-radius:9px;background:#1677ff;color:white;font-weight:750;padding:9px 16px;font-size:13px}
.primaryAction:disabled{opacity:.55}.specialStale{margin-top:9px;background:#fff7e6;color:#9a6200;border-radius:8px;padding:8px 10px;font-size:12px}
.formulaHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.formulaHeader h2{margin:0;font-size:16px}
.formulaList{display:flex;flex-direction:column;gap:6px}.formulaRow{display:grid;grid-template-columns:34px 72px minmax(360px,1fr) 100px;gap:8px;align-items:center;border:1px solid #e1e1e1;border-radius:9px;background:#fafafa;padding:8px 9px;font-size:12px}
.formulaIndex{width:26px;height:26px;border-radius:50%;background:#1677ff;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.formulaTarget{font-weight:800}.formulaExpr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.formulaStreak{text-align:right;color:#16823a;font-weight:750}
.resultSummary{display:flex;gap:22px;flex-wrap:wrap;border:1px solid #e1e1e1;border-radius:9px;background:#fafafa;padding:10px;margin-bottom:10px;font-size:13px}.remainingHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.copyButton{border:0;border-radius:8px;background:#1677ff;color:#fff;font-weight:750;padding:8px 12px}.copyButton:disabled{opacity:.45}.remainingNumbers{display:flex;flex-wrap:wrap;gap:6px}.remainChip{min-width:32px;text-align:center;border:1px solid #ddd;border-radius:7px;background:#fff;padding:6px 7px;font-weight:700}
@media(max-width:700px){.specialPage{min-width:900px}.formulaRow{grid-template-columns:34px 72px minmax(430px,1fr) 100px}}

.remainingNumbers .ball{
  width:34px;height:34px;border-width:7px;font-size:12px;
}
