:root{
  --ink:#1b2430;
  --muted:#7b8794;
  --line:#e6ebf1;
  --paper:#f4f6f9;
  --card:#ffffff;
  --blue:#2563eb;
  --blue-dark:#1d4ed8;
  --blue-weak:#eef4ff;
  --red:#e2574c;
  --green:#16a34a;
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 1px 2px rgba(20,30,50,.04),0 12px 30px rgba(20,30,50,.06);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--paper);
  color:var(--ink);
  font:14px/1.65 -apple-system,"Segoe UI","Microsoft YaHei",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
main{padding-bottom:64px}
.wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}

/* ---------- Header ---------- */
header{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.nav{height:68px;display:flex;align-items:center;gap:22px}
.nav strong{font-size:19px;letter-spacing:.4px}
.nav span{color:var(--muted);flex:1}
.nav a{font-weight:600;color:#3b4856;transition:color .15s}
.nav a:hover{color:var(--blue)}
.nav .balance{color:var(--green);font-weight:700;flex:0 0 auto}

/* ---------- Hero ---------- */
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:56px 0 32px}
.eyebrow{margin:0 0 10px;color:var(--blue);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase}
.hero h1,.admin-title h1{font-size:40px;line-height:1.1;margin:0 0 12px;letter-spacing:-.5px}
.hero p{color:var(--muted);margin:0}
.next{background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;padding:20px 26px;border-radius:var(--radius);min-width:230px;display:grid;gap:4px;box-shadow:0 14px 32px rgba(15,23,42,.24)}
.next small,.next span{color:#9fb0c4;font-size:12px}
.next b{font-size:24px;letter-spacing:.5px}

/* ---------- Cards ---------- */
.grid{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:start}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}
.panel:last-child{margin-bottom:0}
.panel-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-head h2{font-size:17px;margin:0;display:flex;align-items:center;gap:8px}
.panel-head span{color:var(--muted);font-size:12px}
.grid .panel{margin-bottom:0}

/* ---------- Draw list ---------- */
.draw{display:grid;grid-template-columns:1fr auto 72px;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line)}
.draw:last-child{border-bottom:0}
.draw b{display:block;font-size:14px}
.draw small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.balls{display:flex;gap:6px;flex-wrap:wrap}
.balls i{font-style:normal;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--blue-weak);color:var(--blue);font-weight:700}
.balls.small i{width:26px;height:26px;font-size:12px;border-radius:8px}
.balls em{color:var(--muted);font-style:normal}
.status{font-size:12px;color:var(--muted);font-weight:600}
.status.drawn,.status.unsettled{color:var(--green)}
.status.settled{color:#b26a2b}

/* ---------- Forms ---------- */
.form{padding:24px;display:grid;gap:16px}
.form label,.login-box label{display:grid;gap:6px;font-weight:600;font-size:13px;color:#3b4856}
.form input,.form select,.login-box input,.draw-filter input,.inline-form input,table input,.odds-item input,.type-switch select{
  border:1px solid #dbe2ea;border-radius:var(--radius-sm);padding:11px 13px;font:inherit;color:var(--ink);background:#fff;outline:none;width:100%;transition:border-color .15s,box-shadow .15s;
}
.form input:focus,.form select:focus,.login-box input:focus,.draw-filter input:focus,table input:focus,.odds-item input:focus,.type-switch select:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.form textarea{border:1px solid #dbe2ea;border-radius:var(--radius-sm);padding:11px 13px;font:inherit;font-family:inherit;outline:none;resize:vertical;min-height:104px;transition:border-color .15s,box-shadow .15s}
.form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.hint{color:var(--muted);font-size:12px}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;font-weight:500!important;color:#3b4856}
.check-label input{width:auto!important}

/* ---------- Buttons: rounded outline style ---------- */
button{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:1px solid var(--blue);background:var(--blue);color:#fff;
  padding:11px 20px;border-radius:var(--radius-sm);
  font:inherit;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .06s;
}
button:hover{background:var(--blue-dark);border-color:var(--blue-dark);box-shadow:0 6px 16px rgba(37,99,235,.22)}
button:active{transform:translateY(1px)}
button:focus-visible{outline:2px solid rgba(37,99,235,.35);outline-offset:2px}
button.danger{background:#fff;border-color:#f0b7b1;color:var(--red)}
button.danger:hover{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 6px 16px rgba(226,87,76,.22)}
table button,.number-form button{background:#fff;border-color:#c9d8f5;color:var(--blue);padding:8px 14px;font-size:12px}
table button:hover,.number-form button:hover{background:var(--blue);border-color:var(--blue);color:#fff}
table button.danger{border-color:#f0b7b1;color:var(--red)}
table button.danger:hover{background:var(--red);border-color:var(--red);color:#fff}

/* ---------- Notice ---------- */
.notice{padding:13px 18px;border-radius:12px;background:var(--blue-weak);color:#1d4ed8;border:1px solid #d6e4ff;margin:0 0 20px;font-weight:500}
.error{background:#fff1f0;color:#b83b30;border-color:#ffd7d2}

/* ---------- Admin header ---------- */
.admin-title{padding:44px 0 24px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.stats{display:flex;gap:14px;flex-wrap:wrap}
.stats b{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 18px;font-size:22px;min-width:96px;text-align:center;box-shadow:var(--shadow);line-height:1.2}
.stats small{display:block;font-size:11px;color:var(--muted);font-weight:500;margin-top:4px}

/* ---------- Tabs ---------- */
.tabs{display:flex;gap:6px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:6px;margin-bottom:22px;overflow:auto;box-shadow:var(--shadow)}
.tabs a{padding:10px 16px;border-radius:9px;color:var(--muted);font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.tabs a:hover{background:#f6f8fb;color:var(--ink)}
.tabs a.active{background:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.22)}

/* ---------- Tables ---------- */
.table-panel{overflow:hidden}
.table-scroll{overflow:auto}
table{border-collapse:collapse;width:100%;min-width:760px}
th,td{text-align:left;padding:14px 22px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
th{color:var(--muted);font-weight:600;font-size:12px;background:#f9fbfd}
table tr:last-child td{border-bottom:0}
table tr:hover td{background:#fafcff}
.empty-row{text-align:center!important;color:var(--muted);padding:44px 20px!important}

/* ---------- Inline / filter forms ---------- */
.inline-form{padding:18px 22px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}
.inline-form input{min-width:120px;width:auto;flex:1}
.draw-filter{display:flex;align-items:flex-end;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.draw-filter label{display:grid;gap:5px;font-weight:600;font-size:12px;color:#3b4856}
.draw-filter input{min-width:180px;width:auto}
.reset-link{color:var(--muted);font-size:13px;padding:11px 6px;font-weight:500}
.reset-link:hover{color:var(--blue)}

/* ---------- Number editor ---------- */
.number-form{display:flex;gap:6px;align-items:center}
.number-input{width:36px!important;min-width:36px!important;padding:8px!important;text-align:center}

/* ---------- Pagination (centered, numeric) ---------- */
.pagination{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:22px;border-top:1px solid var(--line);flex-wrap:wrap;
}
.pagination a{
  min-width:40px;height:40px;padding:0 13px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:10px;background:#fff;
  color:#3b4856;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.pagination a:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-weak)}
.pagination a.active{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.28)}
.pagination a.disabled{opacity:.4;pointer-events:none}
.pagination .gap{color:var(--muted);padding:0 2px;user-select:none}

/* ---------- Type management ---------- */
.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:22px;align-items:start}
.type-grid .panel{margin-bottom:0}
.code-badge{font-size:11px;color:var(--muted);font-weight:500;border:1px solid var(--line);border-radius:6px;padding:2px 7px}
.odds-box{margin-top:2px;border:1px solid var(--line);border-radius:12px;padding:16px;background:#fafcff}
.odds-title{margin:0 0 12px;font-weight:700;font-size:13px}
.odds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}
.odds-item{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500;color:#3b4856}
.odds-item input{padding:8px 10px;border-radius:8px}

/* ---------- Toolbar ---------- */
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.type-switch{display:flex;align-items:center;gap:10px}
.type-switch label{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px}
.type-switch select{min-width:220px;width:auto}
.toolbar-note{color:var(--muted);font-size:12px}

/* ---------- Login ---------- */
.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 50% -10%,#e8effc 0%,var(--paper) 55%)}
.login-box{width:min(400px,calc(100% - 40px));background:#fff;padding:38px;border-radius:18px;display:grid;gap:16px;border:1px solid var(--line);box-shadow:0 24px 60px rgba(20,30,50,.14)}
.login-box h1{margin:0 0 6px;font-size:26px;letter-spacing:-.3px}
.login-box a{text-align:center;color:var(--muted);font-size:13px;padding-top:4px}
.login-box a:hover{color:var(--blue)}
.login-panel{max-width:520px;margin:0 auto 34px}
.settings-panel{max-width:680px}

/* ---------- Responsive ---------- */
@media(max-width:860px){
  .wrap{width:calc(100% - 28px)}
  .nav{height:60px;gap:12px}
  .nav span{display:none}
  .hero{display:block;padding:34px 0 24px}
  .hero h1,.admin-title h1{font-size:32px}
  .next{margin-top:22px}
  .grid{grid-template-columns:1fr}
  .draw{grid-template-columns:1fr auto}
  .draw .status{display:none}
  .admin-title{padding:32px 0 20px;align-items:flex-start}
  .stats{width:100%}
  .stats b{flex:1;min-width:0;font-size:19px}
  .type-grid{grid-template-columns:1fr}
  .tabs{margin-bottom:18px}
  .type-switch select{min-width:160px}
  .draw-filter input{min-width:140px}
  .pagination a{min-width:36px;height:36px;padding:0 10px}
}

/* ---------- Latest draw & countdown ---------- */
.latest-body{padding:28px 26px;display:grid;gap:16px}.balls.big{gap:10px}.balls.big i{width:56px;height:56px;border-radius:16px;font-size:26px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 10px 22px rgba(37,99,235,.28);transition:transform .2s}.balls.big i.rolling{animation:rollPulse .45s ease-in-out infinite;background:linear-gradient(135deg,#94a3b8,#64748b)}@keyframes rollPulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.04)}}.latest-meta{display:flex;gap:10px;align-items:baseline;color:var(--muted);font-size:13px}.latest-meta b{color:var(--ink)}.latest-status{color:var(--muted);font-size:13px}.latest-status b{color:var(--ink)}.next-body{padding:28px 26px;display:grid;gap:6px}.next-body > b{font-size:30px;letter-spacing:.5px;line-height:1.2}.next-body > span{color:var(--muted);font-size:13px}.countdown{margin-top:16px;background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;border-radius:12px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 12px 26px rgba(15,23,42,.22)}.countdown small{color:#9fb0c4;font-size:12px}.countdown b{font-size:28px;letter-spacing:1px;font-variant-numeric:tabular-nums}.next-body .hint{margin-top:10px}.bet-panel{margin-top:22px}@media(max-width:860px){.balls.big i{width:46px;height:46px;border-radius:13px;font-size:21px}.next-body > b{font-size:24px}.countdown b{font-size:24px}}

/* ---------- Front: draw left, bet right ---------- */
.front-grid{grid-template-columns:1.4fr .9fr;align-items:start}.draw-block{padding:24px 26px;border-bottom:1px solid var(--line);display:grid;gap:14px}.draw-block:last-child{border-bottom:0}.block-title{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;font-weight:600}.block-title span{color:var(--ink);font-weight:700;font-size:15px}.next-block{background:#fcfdff}.next-time{color:var(--muted);font-size:13px}.side-panel{align-self:start}@media(max-width:860px){.front-grid{grid-template-columns:1fr}}

button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

.link-mini{color:var(--blue);font-weight:600;font-size:12px;margin-left:4px}.link-mini:hover{text-decoration:underline}

/* ---------- Quick bet ---------- */
.hidden{display:none!important}.side-col{display:grid;gap:22px;align-self:start}.side-col .panel{margin-bottom:0}.quick-panel .form{gap:14px}.qb-examples{display:flex;gap:8px;flex-wrap:wrap}.qb-examples span{font-size:12px;color:#475569;background:#f1f5f9;border:1px solid var(--line);border-radius:8px;padding:4px 9px;cursor:pointer;transition:.15s}.qb-examples span:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-weak)}.qb-actions{display:flex;gap:10px}.qb-result:empty{display:none}.qb-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:260px;overflow:auto}.qb-list li{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:9px 12px;background:#f8fafc;border:1px solid var(--line);border-radius:9px}.qb-list li b{color:var(--blue);white-space:nowrap}.qb-total{font-weight:700;margin-top:10px;text-align:right}



/* ---------- Bet status & stats ---------- */
.bet-status{font-weight:700}.bet-won{color:var(--green)}.bet-lost{color:var(--red)}.bet-pending{color:#d99400}.bet-cancel{color:var(--muted)}

/* ---------- Bet stat table ---------- */
.stat-wrap{padding:20px 22px;border-bottom:1px solid var(--line);overflow-x:auto}.stat-table{width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.stat-table th{background:#f9fbfd;color:var(--muted);font-weight:600;font-size:12px;padding:12px 14px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap}.stat-table th:last-child{border-right:0}.stat-table td{padding:16px 14px;text-align:center;font-size:20px;font-weight:700;border-right:1px solid var(--line);white-space:nowrap;letter-spacing:.3px}.stat-table td:last-child{border-right:0}.stat-table tr:hover td{background:transparent}.stat-gold{color:#c8901a}.stat-positive{color:var(--green)}.stat-negative{color:var(--red)}
.bet-status{font-weight:700;display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;line-height:1.7}.bet-won{color:var(--green);background:rgba(22,163,74,.12)}.bet-lost{color:var(--red);background:rgba(226,87,76,.12)}.bet-pending{color:#b8860b;background:rgba(217,148,0,.14)}.bet-cancel{color:var(--muted);background:#eef1f4}@media(max-width:860px){.stat-table td{font-size:16px}.stat-table th{font-size:11px}}

/* ---------- Front admin operator ---------- */
.acting-form{display:flex;align-items:center;flex:0 0 auto}.acting-form select{border:1px solid #dbe2ea;border-radius:10px;padding:8px 12px;font:inherit;background:#fff;min-width:170px;outline:none;color:var(--ink)}.acting-form select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}.admin-tag{color:#64748b;font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:#f8fafc;flex:0 0 auto}.records-panel{margin-top:22px}@media(max-width:860px){.acting-form select{min-width:130px}}

.qb-account{font-size:13px;color:var(--muted);background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:9px 12px}.qb-account b{color:var(--ink);margin-left:4px}

/* ---------- Front view switch ---------- */
.view-switch{display:flex;gap:8px}.view-switch a{padding:9px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:600;color:#3b4856;transition:background .15s,border-color .15s,color .15s}.view-switch a:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-weak)}.view-switch a.active{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.22)}@media(max-width:860px){.list-toolbar{gap:12px}.view-switch{width:100%}.view-switch a{flex:1;text-align:center}}

/* ---------- Bulk select ---------- */
.check-col{width:44px;text-align:center!important}table input[type=checkbox]{width:16px;height:16px;min-width:0;padding:0;border:1px solid #cbd5e1;border-radius:4px;accent-color:var(--blue);cursor:pointer;vertical-align:middle;margin:0}
.bulk-bar{display:flex;align-items:center;gap:14px;padding:14px 22px;border-bottom:1px solid var(--line);background:#fafcff}.bulk-count{color:var(--muted);font-size:13px}.bulk-count b{color:var(--blue)}

/* ---------- Fly orders ---------- */
.bet-fly{color:#7c3aed;background:rgba(124,58,237,.12)}.draw-filter select{border:1px solid #dbe2ea;border-radius:var(--radius-sm);padding:9px 12px;font:inherit;background:#fff;min-width:110px}

/* ---------- Predict report ---------- */
.export-link{display:inline-flex;align-items:center;padding:9px 16px;border:1px solid var(--blue);border-radius:10px;color:var(--blue);font-weight:600;background:#fff;white-space:nowrap}.export-link:hover{background:var(--blue);color:#fff}.total-row td{background:#f9fbfd;font-weight:700}

/* ---------- Predict best numbers ---------- */
.best-row td{background:#f2fbf6}.panel-foot{padding:12px 22px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}

.ratio-input{width:76px!important;text-align:center;font-weight:700;color:var(--blue)}

.pool-value{color:#c8901a;font-weight:700}

/* ---------- 开关 ---------- */
.switch-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-weight:600!important;cursor:pointer;color:#3b4856}.switch-label input[type=checkbox]{appearance:none;-webkit-appearance:none;width:40px!important;min-width:40px!important;height:22px;border-radius:999px;background:#cbd5e1;position:relative;cursor:pointer;transition:background .18s;margin:0;padding:0;border:0}.switch-label input[type=checkbox]:checked{background:var(--blue)}.switch-label input[type=checkbox]::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch-label input[type=checkbox]:checked::after{left:20px}.switch-state{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px}.switch-state.on{color:#16a34a;background:rgba(22,163,74,.12)}.switch-state.off{color:#7b8794;background:#eef1f4}

.predict-apply-form{padding:0 22px 16px}

.draw-filter select[name=issue]{min-width:250px}
