:root{
  --card:#fff;--text:#242424;--muted:#777;--line:#eadfd7;
  --red:#b31318;--red-dark:#8e0d12;--red-soft:#fff3f3;
  --good:#1e9b59;--danger:#a32027;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:linear-gradient(180deg,#fff 0,#f7f2ee 26%,#f3f3f3 100%);
  color:var(--text);
}
button,input,select{font:inherit}
button:disabled{opacity:.55;cursor:not-allowed}
.party-banner{
  width:100%;background:linear-gradient(90deg,#961116,#b31318 45%,#981015);
  color:#fff;box-shadow:0 2px 8px rgba(120,0,0,.2)
}
.banner-inner{
  min-height:88px;display:flex;align-items:center;justify-content:center;
  padding:18px 24px;font-size:34px;font-weight:800;letter-spacing:4px;text-align:center
}
.shell{max-width:1320px;margin:0 auto;padding:24px}.compact-top{padding-top:0}
.topbar{display:flex;justify-content:space-between;align-items:center}
.brand{font-size:23px;font-weight:800;color:#5c1114}.muted{color:var(--muted)}
.card{
  background:rgba(255,255,255,.97);border:1px solid var(--line);
  border-radius:16px;padding:24px;box-shadow:0 15px 42px rgba(76,37,25,.08)
}
.auth{max-width:480px;margin:5vh auto}.auth h1{color:#611114;text-align:center}.auth>p{text-align:center}
.real-name-tip{color:var(--red);font-size:16px}.tabs{display:flex;gap:10px;margin-bottom:18px}
.btn{
  border:1px solid #dfd4ce;border-radius:10px;padding:10px 15px;
  background:#fff;color:#4e3731;cursor:pointer
}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:var(--red-dark)}
.btn.danger{background:#fff2f2;color:#9d2027;border-color:#efc7c9}
.btn.full{width:100%;font-weight:700;font-size:16px;margin-top:6px}
.btn.mini{padding:6px 9px;border-radius:8px;font-size:13px}
.text-btn{
  border:0;background:transparent;color:var(--red);cursor:pointer;
  width:100%;padding:12px;text-align:center
}
.field{margin:15px 0}.compact-field{margin:0}
.field label{display:block;margin-bottom:7px;color:#563d37;font-size:14px;font-weight:600}
.field input,.field select,.filter-grid select{
  width:100%;padding:11px 12px;border-radius:10px;border:1px solid #ded2cc;
  background:#fff;color:var(--text);outline:none
}
.field input:focus,.field select:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(179,19,24,.08)}
.field-help{font-size:12px;color:#82716b;margin-top:6px}.field-help.warn{color:#a32027;font-weight:600}
.gender-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.radio-card{position:relative}
.radio-card input{position:absolute;opacity:0}.radio-card span{
  display:block;text-align:center;padding:11px;border:1px solid #ded2cc;
  border-radius:10px;background:#fff;cursor:pointer
}
.radio-card input:checked+span{background:var(--red-soft);border-color:var(--red);color:var(--red);font-weight:700}
.error,.modal-error{color:#c0222a;margin-top:10px;min-height:20px}
.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat strong{display:block;font-size:30px;margin-top:8px;color:#7b1519}
.nav{display:flex;gap:10px;flex-wrap:wrap}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.spacer{height:16px}h1,h2,h3,p{margin-top:0}
.video-wrap{
  position:relative;width:100%;aspect-ratio:16/9;background:#060606;border-radius:14px;
  border:1px solid #2b2b2b;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff
}
.video-wrap video{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.player-status{text-align:right}.player-detail{margin-top:6px;font-size:13px;color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 10px;background:#f5eeee}
.dot{width:9px;height:9px;border-radius:50%;background:#aaa}.dot.online{background:var(--good);box-shadow:0 0 0 4px rgba(30,155,89,.12)}
table{width:100%;border-collapse:collapse}th,td{padding:11px 9px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
th{color:#77564f;font-weight:700;background:#fffafa;white-space:nowrap}.table-actions{white-space:nowrap}.table-actions .btn{margin:2px}
.filter-card{padding:18px}.filter-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:14px;align-items:end}
.filter-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.empty-note{padding:22px;text-align:center;color:var(--muted)}
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;
  align-items:center;justify-content:center;padding:18px;z-index:9999
}
.modal-card{
  width:min(540px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;
  padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.28)
}
.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}
.icon-btn{border:0;background:transparent;font-size:28px;cursor:pointer;color:#777}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
@media(max-width:900px){
  .filter-grid{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .banner-inner{min-height:68px;font-size:23px;letter-spacing:2px;padding:14px 12px}
  .shell{padding:14px}.compact-top{padding-top:0}.topbar,.row{align-items:flex-start;flex-direction:column}
  .filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}
  .stats{grid-template-columns:1fr 1fr}.player-status{text-align:left}
  table{display:block;overflow:auto}.card{padding:16px}
}

.admin-security-card{
  border-left:4px solid var(--red);
}
.admin-command-box{
  margin-top:14px;
  padding:14px 16px;
  border:1px solid #eadfd7;
  border-radius:12px;
  background:#fffafa;
}
.admin-command-title{
  margin-bottom:8px;
  font-weight:700;
  color:#6b171b;
}
.admin-command-box code{
  display:inline-block;
  padding:8px 10px;
  border-radius:8px;
  background:#2b2525;
  color:#fff;
  font-family:Consolas,Monaco,monospace;
  user-select:all;
}


.admin-help{
  margin-top:8px;
  border-top:1px dashed #e3d5cf;
  padding-top:10px;
  font-size:12px;
  color:#8a7770;
}
.admin-help summary{
  cursor:pointer;
  user-select:none;
  text-align:center;
  color:#8a7770;
}
.admin-help-body{
  margin-top:8px;
  padding:10px 12px;
  border-radius:9px;
  background:#faf7f5;
  border:1px solid #eee3de;
  line-height:1.6;
}
.admin-help code{
  display:block;
  margin-top:6px;
  padding:7px 9px;
  border-radius:7px;
  background:#f1ece9;
  color:#6b3f37;
  font-size:12px;
  word-break:break-all;
}
.admin-help-note{
  margin-top:6px;
  color:#a08d86;
}
