*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:#0A0A0E;
  --panel:#15151C;
  --panel2:#1D1D26;
  --line:#2A2A36;
  --txt:#F4F4F8;
  --dim:#9B9BA9;
  --acc:#D9FF3C;
  --acc2:#3FE0FF;
  --warn:#FF6B3D;
  --ok:#4ADE80;
}
html,body{background:var(--bg);}
body{
  font-family:"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--txt);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
  min-height:100vh;
}
.hidden{display:none !important;}

/* ---------- 登录页 ---------- */
.auth{max-width:460px;margin:0 auto;padding:0 18px;}
.brand{padding:52px 0 28px;text-align:center;}
.glowbar{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--acc),var(--acc2),var(--warn));margin-bottom:22px;}
.brand h1{font-size:44px;font-weight:900;letter-spacing:-.01em;}
.brand h1 span{color:var(--acc);}
.brand p{margin-top:8px;color:var(--dim);font-size:15px;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;}
.auth-card .tabs{display:flex;gap:8px;margin-bottom:18px;}
.tab{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--dim);
  font-size:15px;font-weight:700;padding:10px;cursor:pointer;}
.tab.active{background:var(--acc);color:#0A0A0D;border-color:var(--acc);}
.form{display:flex;flex-direction:column;gap:14px;}
label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--dim);font-weight:700;}
input,select{background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--txt);
  font-size:16px;padding:12px;outline:none;width:100%;}
input:focus{border-color:var(--acc);}
.btn{border:none;border-radius:10px;font-weight:800;font-size:15px;padding:12px 16px;cursor:pointer;}
.btn.primary{background:var(--acc);color:#0A0A0D;}
.btn.danger{background:var(--warn);color:#fff;}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--txt);}
.btn.sm{font-size:13px;padding:7px 12px;border-radius:8px;}
.hint{margin-top:12px;text-align:center;font-size:13px;color:var(--dim);}

/* ---------- 主界面 ---------- */
.app{max-width:640px;margin:0 auto;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;
  border-bottom:1px solid var(--line);background:var(--panel);}
.tb-title{font-weight:900;font-size:16px;}
.tb-title span{color:var(--acc);}
.tb-user{display:flex;align-items:center;gap:8px;font-size:14px;}
.pill{background:var(--acc);color:#0A0A0D;font-weight:900;border-radius:999px;padding:4px 11px;font-size:13px;}
.nav{display:flex;gap:6px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line);}
.navbtn{flex:1;background:transparent;border:1px solid var(--line);border-radius:10px;color:var(--dim);
  font-size:14px;font-weight:800;padding:9px 0;cursor:pointer;}
.navbtn.active{background:var(--acc);color:#0A0A0D;border-color:var(--acc);}
main{padding:16px;}
.view{display:flex;flex-direction:column;gap:14px;}

.card h2{font-size:18px;font-weight:900;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.muted{color:var(--dim);font-size:13px;}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.divider{height:1px;background:var(--line);margin:10px 0;}

/* 题目 */
.question{margin-bottom:8px;}
.qhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.qtitle{font-size:17px;font-weight:900;}
.qtitle .tag{font-size:12px;font-weight:900;color:var(--acc);border:1px solid rgba(217,255,60,.4);
  border-radius:6px;padding:2px 8px;margin-left:8px;background:rgba(217,255,60,.08);}
.qstatus{font-size:13px;font-weight:800;}
.qstatus.open{color:var(--ok);}
.qstatus.closed{color:var(--warn);}
.qstatus.settled{color:var(--dim);}
.poolbox{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.poolchip{flex:1;min-width:110px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;text-align:center;}
.poolchip .k{font-size:12px;color:var(--dim);}
.poolchip .v{font-size:18px;font-weight:900;color:var(--acc);margin-top:3px;}

.plist{display:flex;flex-direction:column;gap:8px;}
.prow{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);
  border-radius:12px;padding:10px 12px;}
.prow.winner{border-color:var(--ok);}
.prow img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#0E0E12;}
.prow .pinfo{flex:1;min-width:0;}
.prow .pname{font-size:15px;font-weight:800;}
.prow .pstake{font-size:12px;color:var(--dim);margin-top:1px;}
.prow .betbox{display:flex;align-items:center;gap:6px;}
.prow input{width:64px;padding:7px;font-size:14px;text-align:center;}
.prow .btn{padding:7px 10px;font-size:13px;}
.bet-hint{font-size:12px;color:var(--dim);margin-top:8px;}

/* 积分榜 */
.board-table{display:flex;flex-direction:column;gap:6px;}
.board-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;
  background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 14px;}
.board-row .rank{font-weight:900;color:var(--dim);font-size:14px;}
.board-row .rank.top3{color:var(--acc);}
.board-row .name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.board-row .pts{font-weight:900;color:var(--acc);}
.board-row.me{border-color:var(--acc);}
.board-row .adminbadge{font-size:11px;color:var(--dim);border:1px solid var(--line);border-radius:6px;padding:1px 6px;}

/* 我的 */
.hist-item{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;}
.hist-item .hmain{min-width:0;}
.hist-item .hreason{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hist-item .htime{font-size:12px;color:var(--dim);margin-top:1px;}
.hist-item .hdelta{font-weight:900;font-size:15px;white-space:nowrap;}
.hdelta.pos{color:var(--ok);}
.hdelta.neg{color:var(--warn);}

/* 管理 */
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.admin-grid .full{grid-column:1/-1;}
.admin-list{display:flex;flex-direction:column;gap:8px;}
.admin-item{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;}
.admin-item .row{margin-top:6px;}
.admin-item input{padding:8px;font-size:14px;}
.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.small{font-size:12px;color:var(--dim);}
.settle-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.settle-row label{flex:1;font-size:13px;color:var(--txt);font-weight:700;}

/* Toast */
.toast{position:fixed;left:50%;bottom:36px;transform:translateX(-50%);background:#111;
  border:1px solid var(--line);border-radius:10px;padding:11px 18px;font-size:14px;max-width:86vw;
  box-shadow:0 8px 30px rgba(0,0,0,.5);z-index:99;}
.toast.err{border-color:var(--warn);color:#ffb3a0;}

@media (min-width:700px){
  .admin-grid{grid-template-columns:1fr 1fr;}
}
