* { box-sizing: border-box; }
body { font-family: -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; background:#f6f7fa; color:#222; margin:0; }
.container { max-width: 1100px; margin: 24px auto; padding: 0 16px; }
.center-card { max-width: 360px; margin: 12vh auto; background:#fff; padding:28px; border-radius:12px; box-shadow:0 4px 18px rgba(0,0,0,.08); }
.center-card h1 { margin-top:0; font-size:22px; }
.topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.muted { color:#777; } .small { font-size: 12px; } .mono { font-family: ui-monospace, Menlo, monospace; }
.err { color:#c23; background:#fee; padding:8px 12px; border-radius:8px; margin:8px 0; }
button { background:#2563eb; color:#fff; border:none; padding:8px 16px; border-radius:6px; cursor:pointer; font-size:14px; }
button:hover { background:#1d4ed8; }
button.ghost { background:transparent; color:#444; border:1px solid #ccc; }
button.ghost:hover { background:#eee; }
button.danger { background:#dc2626; }
button.alipay { background:#1677ff; width:100%; padding:10px; font-size:15px; }
input, select { padding:8px 10px; border:1px solid #ccd; border-radius:6px; font-size:14px; outline:none; }
input:focus, select:focus { border-color:#2563eb; }
form.inline, form.inline-edit { display:inline-flex; gap:6px; align-items:center; }
.center-card form { display:flex; flex-direction:column; gap:10px; }
.grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap:12px; margin-top:8px; }
.card { background:#fff; padding:14px; border-radius:10px; box-shadow:0 2px 6px rgba(0,0,0,.05); }
.card h3 { margin:0 0 6px; font-size:15px; }
.card .rc-form { display:flex; gap:6px; margin-top:10px; }
.card .rc-form input { flex:1; }
/* 外围给表格加横向滑动，窄屏不溢 */
.t-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; margin-top:10px; border-radius:8px; }
.t { width:100%; border-collapse:collapse; background:#fff; border-radius:8px; overflow:hidden; }
.t th, .t td { border-bottom:1px solid #eee; padding:8px; text-align:left; font-size:13px; white-space:nowrap; }
.t th { background:#f0f2f7; }
.st-SUCCESS { color:#0a0; } .st-PENDING { color:#c80; } .st-FAILED, .st-EXPIRED { color:#c23; }
.adm-nav { display:flex; flex-wrap:wrap; gap:10px; background:#fff; padding:10px 14px; border-radius:8px; margin-bottom:16px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.adm-nav a { color:#2563eb; text-decoration:none; font-size:14px; }
.adm-nav a:hover { text-decoration:underline; }
.kpi { display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap:12px; }
.kpi .big { font-size:28px; font-weight:600; }
.modal { position:fixed; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; z-index:50; }
.hidden, .modal.hidden { display:none !important; }
.modal-inner { background:#fff; padding:22px; border-radius:12px; max-width:360px; text-align:center; }
.modal-inner img { max-width:280px; width:100%; margin:12px 0; border:1px solid #eee; border-radius:8px; }

/* ---------- 移动端（窄屏 <640px） ---------- */
@media (max-width: 640px) {
  .container { margin:12px auto; padding:0 10px; }
  .topbar { flex-wrap:wrap; gap:8px; }
  .topbar h2 { font-size:20px; }

  /* 广告户卡片内：金额输入框顶一行，按钮顶一行，避免挤压 */
  .card .rc-form { flex-direction:column; align-items:stretch; }
  .card .rc-form input { width:100%; }
  .card .rc-form button { width:100%; }

  /* 登录卡片不要顶到屏幕外 */
  .center-card { margin:6vh 16px; padding:20px; }

  /* admin 行内表单堆叠，避免"重置/禁用/删除"按钮被切 */
  form.inline, form.inline-edit { flex-wrap:wrap; }

  /* 弹窗二维码自适应 */
  .modal-inner { max-width:92vw; padding:16px; }
  .modal-inner img { max-width:100%; }

  /* 小屏只让表格横滑，不压缩字号 */
  .t th, .t td { padding:7px 6px; font-size:12px; }
}
@media (max-width: 400px) {
  body { font-size:13px; }
  button { padding:8px 12px; font-size:13px; }
  input, select { font-size:13px; }
}
