* { margin:0; padding:0; box-sizing:border-box; }

:root{
  --wx-bubble:#95EC69;
  --wx-green:#07C160;
  --bg:#F2F3F5;
  --card:#FFFFFF;
  --text:#191919;
  --text-2:#5A6070;
  --sub:#8A8F99;
  --line:#E8EAED;
  --line-2:#F2F4F7;
  --accent:#2B5CE6;
  --accent-soft:#EEF3FF;
  --warn:#F5A623;
  --warn-soft:#FFF8E6;
  --danger:#E5484D;
  --danger-soft:#FDECEC;
  --ok:#0C9C5B;
  --ok-soft:#E8F8EF;
  --r:10px;
  --shadow:0 8px 32px rgba(20,30,60,.08);
}

html,body{ height:100%; }
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  background:var(--bg); color:var(--text);
  -webkit-font-smoothing:antialiased;
  font-size:14px;
  line-height:1.55;
}
button{ font-family:inherit; }

/* ---------- 通用组件 ---------- */
.btn{
  border:0; border-radius:7px; padding:8px 15px; font-size:13px; cursor:pointer;
  font-weight:600; transition:.15s; white-space:nowrap;
}
.btn:active{ transform:scale(.98); }
.btn.primary{ background:var(--wx-green); color:#fff; }
.btn.primary:hover{ background:#06ad56; }
.btn.blue{ background:var(--accent); color:#fff; }
.btn.blue:hover{ background:#2450cc; }
.btn.ghost{ background:#F2F3F5; color:var(--text-2); font-weight:500; }
.btn.ghost:hover{ background:#E9EBEF; }
.btn.danger{ background:var(--danger-soft); color:#C0393E; }
.btn:disabled{ opacity:.45; cursor:not-allowed; }

.pill{
  font-size:10.5px; font-weight:600; padding:2.5px 8px; border-radius:5px;
  letter-spacing:.2px; display:inline-block;
}
.pill.ok{ background:var(--ok-soft); color:var(--ok); }
.pill.warn{ background:var(--warn-soft); color:#B7791F; }
.pill.danger{ background:var(--danger-soft); color:#C0393E; }
.pill.info{ background:var(--accent-soft); color:var(--accent); }
.pill.mute{ background:#F2F3F5; color:var(--sub); }

.mono{ font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace; letter-spacing:.2px; }
.muted{ color:var(--sub); }

/* 滚动条 */
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:#D5D9E0; border-radius:4px; }
::-webkit-scrollbar-thumb:hover{ background:#C2C7D0; }
::-webkit-scrollbar-track{ background:transparent; }
