/* =========================================================
   天堂2盟约 · 全站统一设计系统 (ui.css)
   暗色基调 + 单一琥珀金主色；语义色仅绿/红/黄
   全局强制：按钮统一尺寸/圆角/去渐变/去重阴影
   原则：无渐变装饰、无彩虹色、克制阴影 —— 去 AI 味
   ========================================================= */
:root{
  /* 背景层级 */
  --bg:#0d1117; --bg-elev:#161b22; --surface:#21262d; --surface-2:#2d333b;
  /* 边框 */
  --border:#30363d; --border-strong:#3d444d;
  /* 文字 */
  --text:#e6edf3; --text-dim:#c9d1d9; --muted:#8b949e;
  /* 主色：琥珀金（天堂2 主题色，替代 AI 紫蓝） */
  --accent:#f0a500; --accent-hover:#ffb829; --accent-press:#c98700; --on-accent:#1a1205;
  /* 语义色 */
  --success:#3fb950; --success-on:#04210d;
  --danger:#f85149;  --danger-on:#2a0807;
  --warning:#d29922; --warning-on:#241a02;
  --info:#58a6ff;    --info-on:#031426;
  /* 圆角 */
  --radius:6px; --radius-sm:4px; --radius-lg:10px; --radius-pill:999px;
  /* 间距 */
  --sp-1:5px; --sp-2:9px; --sp-3:14px; --sp-4:18px; --sp-5:28px; --sp-6:36px;
  /* 字号 */
  --fs-xs:12px; --fs-sm:13px; --fs:15px; --fs-md:16px; --fs-lg:19px; --fs-xl:24px; --fs-2xl:30px;
  /* 阴影（克制） */
  --shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --shadow:0 2px 8px rgba(0,0,0,.45);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
}
/* ---------- 基础重置 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; padding:0;
  background:var(--bg); color:var(--text-dim);
  font-family:var(--font); font-size:var(--fs); line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{color:var(--text); line-height:1.3; margin:0 0 var(--sp-3)}
h1{font-size:var(--fs-2xl)} h2{font-size:var(--fs-xl)} h3{font-size:var(--fs-lg)}
p{margin:0 0 var(--sp-3)}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
hr{border:none; border-top:1px solid var(--border); margin:var(--sp-4) 0}
::selection{background:rgba(240,165,0,.3); color:var(--text)}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
img{max-width:100%}

/* ---------- 按钮（全站强制统一）---------- */
button, .btn, input[type="button"], input[type="submit"]{
  appearance:none; -webkit-appearance:none;
  font-family:inherit; font-size:var(--fs) !important; font-weight:500; line-height:1.2 !important;
  padding:8px 18px !important; border-radius:var(--radius) !important;
  border:1px solid var(--border) !important;
  background:var(--surface); color:var(--text);   /* 非!important：允许内联色/语义class覆盖，保留红=删/绿=确认 语义 */
  cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  white-space:nowrap; user-select:none;
  background-image:none !important;          /* 去渐变 */
  box-shadow:none !important;               /* 去重阴影 */
  transition:background .15s ease, border-color .15s ease, transform .05s ease, opacity .15s ease;
}
button:hover,.btn:hover{background:var(--surface-2) !important; border-color:var(--border-strong) !important}
button:active,.btn:active{transform:translateY(1px)}
button:disabled,.btn:disabled{opacity:.45 !important; cursor:not-allowed; transform:none}
.btn-primary{background:var(--accent) !important; border-color:var(--accent) !important; color:var(--on-accent) !important; font-weight:600}
.btn-primary:hover{background:var(--accent-hover) !important; border-color:var(--accent-hover) !important}
.btn-success{background:var(--success) !important; border-color:var(--success) !important; color:var(--success-on) !important; font-weight:600}
.btn-success:hover{filter:brightness(1.08)}
.btn-danger{background:var(--danger) !important; border-color:var(--danger) !important; color:var(--danger-on) !important; font-weight:600}
.btn-danger:hover{filter:brightness(1.08)}
.btn-warn{background:var(--warning) !important; border-color:var(--warning) !important; color:var(--warning-on) !important; font-weight:600}
.btn-warn:hover{filter:brightness(1.08)}
.btn-info{background:var(--info) !important; border-color:var(--info) !important; color:var(--info-on) !important; font-weight:600}
.btn-secondary{background:var(--surface) !important; border-color:var(--border) !important; color:var(--text-dim) !important}
.btn-secondary:hover{background:var(--surface-2) !important}
.btn-cancel{background:transparent !important; border-color:var(--border) !important; color:var(--muted) !important}
.btn-cancel:hover{background:var(--surface) !important; color:var(--text-dim) !important}
.btn-link{background:transparent !important; border-color:transparent !important; color:var(--accent) !important; padding-left:4px !important; padding-right:4px !important}
.btn-link:hover{text-decoration:underline; background:transparent !important}
.btn-sm{padding:5px 12px !important; font-size:var(--fs-sm) !important; border-radius:var(--radius-sm) !important}
.btn-lg{padding:11px 24px !important; font-size:var(--fs-md) !important}
.btn-block{width:100%}

/* ---------- 历史遗留按钮类兼容映射（去 AI 彩虹色，统一语义）---------- */
.btn-go{background:var(--success)!important; border-color:var(--success)!important; color:var(--success-on)!important; font-weight:600}
.btn-go:hover{filter:brightness(1.08)}
.btn-test{background:var(--info)!important; border-color:var(--info)!important; color:var(--info-on)!important; font-weight:600}
.btn-test:hover{filter:brightness(1.08)}
.btn-stop{background:var(--danger)!important; border-color:var(--danger)!important; color:var(--danger-on)!important; font-weight:600}
.btn-err{background:var(--danger)!important; border-color:var(--danger)!important; color:var(--danger-on)!important; font-weight:600}
.btn-exp{background:var(--info)!important; border-color:var(--info)!important; color:var(--info-on)!important; font-weight:600}
.btn-purple{background:var(--surface-2)!important; border-color:var(--border-strong)!important; color:var(--text)!important; font-weight:600}
.btn-afk{background:var(--surface-2)!important; border-color:var(--border-strong)!important; color:var(--text)!important; font-weight:600}

/* ---------- 弹性布局修正：覆盖 .modal .btn{width:100%} 等局部规则 ---------- */
.nick-edit{display:flex!important; gap:var(--sp-2); align-items:center}
.nick-edit input{flex:1; width:auto!important}
.nick-edit .btn{width:auto!important}
.config-row{display:flex!important; gap:var(--sp-2); align-items:center}
.config-row .btn{width:auto!important}
.btn-row{display:flex!important; gap:var(--sp-2); align-items:center}
.btn-row .btn{width:auto!important}
/* 模态框内上述布局的按钮不被 100% 宽度规则强制拉满 */
.modal .nick-edit .btn,.modal .config-row .btn,.modal .btn-row .btn{width:auto!important}

/* ---------- 表单控件 ---------- */
input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),
select, textarea{
  font-family:inherit; font-size:var(--fs); color:var(--text);
  background:var(--bg-elev); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:8px 12px; width:100%;
  transition:border-color .15s ease, box-shadow .15s ease;
}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 2px rgba(240,165,0,.25)}
textarea{resize:vertical; min-height:72px; line-height:1.5}
select{appearance:none; -webkit-appearance:none; cursor:pointer}
label{color:var(--text-dim); font-size:var(--fs-sm)}
::placeholder{color:var(--muted); opacity:1}

/* ---------- 卡片 / 面板 ---------- */
.card,.panel,.modal,.box{
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:var(--sp-4);
  background-image:none !important; box-shadow:var(--shadow-sm);
}
.card-header,.panel-header{
  background:var(--bg-elev); border-bottom:1px solid var(--border);
  padding:var(--sp-3) var(--sp-4); border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  background-image:none !important; font-weight:600; color:var(--text);
}
.section{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:var(--sp-4); margin-bottom:var(--sp-4)}

/* ---------- 表格 ---------- */
table{width:100%; border-collapse:collapse; font-size:var(--fs); background:transparent}
th,td{border:1px solid var(--border); padding:9px 12px; text-align:left; vertical-align:middle}
th{background:var(--bg-elev); color:var(--text); font-weight:600; white-space:nowrap}
tbody tr:nth-child(even){background:rgba(255,255,255,.02)}
tbody tr:hover{background:rgba(240,165,0,.06)}
caption{color:var(--muted); font-size:var(--fs-sm); padding:6px}

/* ---------- 标签 / 徽章 / 状态点 ---------- */
.tag,.badge,.chip{
  display:inline-flex; align-items:center; gap:4px;
  padding:2px 8px; border-radius:var(--radius-pill);
  font-size:var(--fs-xs); font-weight:600; line-height:1.6;
  background:var(--surface-2); color:var(--text-dim); border:1px solid var(--border);
}
.tag-success,.badge-success{background:rgba(63,185,80,.16); color:#56d364; border-color:rgba(63,185,80,.4)}
.tag-danger,.badge-danger{background:rgba(248,81,73,.16); color:#ff7b72; border-color:rgba(248,81,73,.4)}
.tag-warn,.badge-warn{background:rgba(210,153,34,.16); color:#e3b341; border-color:rgba(210,153,34,.4)}
.tag-accent,.badge-accent{background:rgba(240,165,0,.16); color:var(--accent); border-color:rgba(240,165,0,.4)}

/* ---------- 提示 / 警报 ---------- */
.alert,.notice{
  border:1px solid var(--border); border-left:3px solid var(--accent);
  background:var(--surface); color:var(--text-dim);
  padding:10px 14px; border-radius:var(--radius-sm); margin-bottom:var(--sp-3); font-size:var(--fs-sm);
}
.alert-success{border-left-color:var(--success)} .alert-danger{border-left-color:var(--danger)}
.alert-warn{border-left-color:var(--warning)} .alert-info{border-left-color:var(--info)}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:10px; height:10px}
::-webkit-scrollbar-thumb{background:var(--surface-2); border-radius:var(--radius-pill); border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}
::-webkit-scrollbar-track{background:transparent}
* { scrollbar-width:thin; scrollbar-color:var(--surface-2) var(--bg); }

/* ---------- 通用工具 ---------- */
.muted{color:var(--muted)} .text-dim{color:var(--text-dim)} .text-accent{color:var(--accent)}
.text-success{color:#56d364} .text-danger{color:#ff7b72} .text-warn{color:#e3b341}
.row{display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center}
.col{flex:1 1 0; min-width:0}
.wrap{display:flex; flex-wrap:wrap; gap:var(--sp-2)}
.stack{display:flex; flex-direction:column; gap:var(--sp-3)}
.center{display:flex; align-items:center; justify-content:center}
.between{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3)}
.spacer{flex:1}
.divider{height:1px; background:var(--border); margin:var(--sp-4) 0}

/* 顶部进度条/加载条 统一主色 */
.progress,progress{accent-color:var(--accent)}

/* ---------- 整站去渐变：容器去 background-image（保留实色/透明）---------- */
.card,.panel,.modal,.box,.section,.header,header,.banner,.topbar,.container,
.card-header,.panel-header,.alert,.notice,.user-info,.member-card,.guild-banner,
.tabs,.tab,.tab-panel,.stat-item,.role-badge,.chip,.tag,.badge,
.hero,.jumbotron,.sidebar,.navbar,.toolbar,.footer,.login-page,.controls,
.main,.content,.wrap,.item,.item-card,.auction-card,.list-item,.row,.col,
.stat,.panel-box,.info-box,.box-header,.modal-header,.dropdown,.menu,.nav,
.btn-go,.btn-warn,.btn-err,.btn-exp,.btn-purple{
  background-image:none !important;
}
