/* ========== 总管理后台 · 移动端 App 视觉（橙色主题，复刻设计图） ========== */
:root {
  --abrand: #ff6a00;
  --abrand-dark: #e65c00;
  --abtn-grad: linear-gradient(135deg, #ff8f3d, #ff5e00);
  --a-bg: #f6f7f9;
  --a-card: #ffffff;
  --a-border: #eef0f3;
  --a-text: #15181d;
  --a-t2: #6b7280;
  --a-t3: #9aa0aa;
  --a-dark1: #191c24;
  --a-dark2: #232736;
  --a-darkcard: #262b38;
  --a-green: #22c55e;
  --a-green-d: #16a34a;
  --a-red: #ef4444;
  --a-amber: #b7791f;
  --a-shadow: 0 2px 10px rgba(20, 24, 40, .05);
}

body[data-role="admin"] { background: #e9ebef; }
.adm-wrap { max-width: 560px; margin: 0 auto; min-height: 100vh; background: var(--a-bg); position: relative; box-shadow: 0 0 0 1px rgba(0, 0, 0, .04); }
.adm-main { padding-bottom: 92px; }

/* 按钮/表单品牌色覆盖（保持 main.css 变体语义） */
body[data-role="admin"] .btn { background: var(--abrand); }
body[data-role="admin"] .btn:hover { background: var(--abrand-dark); }
body[data-role="admin"] .btn-outline { background: #fff; color: var(--text); border: 1px solid var(--border); }
body[data-role="admin"] .btn-outline:hover { background: #f9fafb; }
body[data-role="admin"] .btn-danger { background: var(--danger); }
body[data-role="admin"] .btn-danger:hover { background: #b91c1c; }
body[data-role="admin"] .btn-success { background: var(--success); }
body[data-role="admin"] .btn-success:hover { background: #15803d; }
body[data-role="admin"] .form-input:focus,
body[data-role="admin"] .form-select:focus,
body[data-role="admin"] .form-textarea:focus { border-color: var(--abrand); box-shadow: 0 0 0 3px rgba(255, 106, 0, .12); }
body[data-role="admin"] .modal { border-radius: 16px; }

.ic { width: 20px; height: 20px; display: inline-block; vertical-align: middle; }
.ic-sm { width: 16px; height: 16px; }

/* ========== 顶部白色头部（子页） ========== */
.m-header { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; height: 52px; padding: 0 8px; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--a-border); }
.m-header .bk { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: var(--a-text); }
.m-header .ttl { flex: 1; text-align: center; font-size: 17px; font-weight: 600; color: var(--a-text); }
.m-header .rgt { min-width: 36px; display: flex; align-items: center; justify-content: flex-end; gap: 4px; font-size: 14px; color: var(--abrand); padding-right: 6px; }
.m-header .rgt a, .m-header .rgt button { color: var(--abrand); font-weight: 600; font-size: 14px; background: none; border: none; cursor: pointer; font-family: var(--font); display: inline-flex; align-items: center; gap: 2px; }
.m-header .rgt .gray { color: var(--a-t2); font-weight: 400; }

/* ========== 深色 Hero（总览 / 我的） ========== */
.hero { background: linear-gradient(180deg, var(--a-dark1), var(--a-dark2)); color: #fff; padding: 20px 16px 22px; border-radius: 0 0 18px 18px; }
.hero-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.hero-title { font-size: 20px; font-weight: 700; }
.hero-date { font-size: 12px; color: #9aa0ae; margin-top: 3px; }
.hero-ops { display: flex; align-items: center; gap: 14px; }
.hero-ico { position: relative; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: #e8eaef; }
.hero-ico .dot { position: absolute; top: 5px; right: 6px; width: 8px; height: 8px; border-radius: 50%; background: #ff4d4f; border: 2px solid var(--a-dark1); }
.hero-ava { width: 36px; height: 36px; border-radius: 50%; background: var(--abtn-grad); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.hero-ava.lg { width: 56px; height: 56px; font-size: 22px; }

/* 平台今日概况（深色卡） */
.ov-card { background: var(--a-darkcard); border: 1px solid rgba(255, 255, 255, .07); border-radius: 14px; padding: 16px 16px 8px; }
.ov-title { font-size: 13px; color: #c7ccd6; margin-bottom: 6px; }
.ov-grid { display: grid; grid-template-columns: 1fr 1fr; }
.ov-cell { padding: 12px 4px; }
.ov-cell:nth-child(odd) { border-right: 1px solid rgba(255, 255, 255, .08); }
.ov-cell:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .08); }
.ov-cell:nth-child(even) { padding-left: 20px; }
.ov-label { font-size: 12px; color: #9aa0ae; }
.ov-num { font-size: 24px; font-weight: 700; margin-top: 4px; }
.ov-num .u { font-size: 12px; font-weight: 400; color: #c7ccd6; margin-left: 4px; }
.odot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #ff8f3d; vertical-align: middle; margin-left: 2px; }

.adm-body { padding: 2px 14px 0; }
.sec-title { font-size: 15px; font-weight: 700; color: var(--a-text); margin: 16px 2px 10px; }
.m-card { background: var(--a-card); border-radius: 14px; box-shadow: var(--a-shadow); padding: 16px; margin-bottom: 12px; }

/* 核心指标 */
.core-row { display: flex; align-items: center; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--a-border); }
.core-row:last-child { border-bottom: none; }
.core-label { font-size: 14px; color: var(--a-t2); }
.core-val { font-size: 19px; font-weight: 700; color: var(--a-text); }
.core-val i { font-style: normal; font-size: 12px; font-weight: 400; color: var(--a-t2); margin-left: 4px; }
.core-val.money { color: var(--abrand); }

/* 资金总览 3 列 */
.fund3 { display: flex; }
.fund3 .f-cell { flex: 1; text-align: center; padding: 4px 2px; }
.fund3 .f-cell + .f-cell { border-left: 1px solid var(--a-border); }
.f-label { font-size: 12px; color: var(--a-t2); }
.f-val { font-size: 18px; font-weight: 700; margin-top: 6px; color: var(--a-text); }

/* 待处理事项 */
.todo-row { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--a-border); color: var(--a-text); }
.todo-row:last-child { border-bottom: none; }
.todo-ic { width: 38px; height: 38px; border-radius: 10px; background: #fff1e6; color: var(--abrand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.todo-name { font-size: 14px; font-weight: 600; white-space: nowrap; }
.todo-sub { flex: 1; text-align: right; font-size: 13px; color: var(--a-t2); }
.todo-go { font-size: 13px; color: var(--abrand); font-weight: 600; white-space: nowrap; margin-left: 8px; }

/* 近 7 日趋势柱状图 */
.trend-wrap { position: relative; height: 208px; margin-top: 6px; }
.trend-grid { position: absolute; left: 0; right: 0; top: 0; bottom: 46px; }
.tg-line { position: absolute; left: 0; right: 0; border-top: 1px dashed #eef0f3; font-size: 10px; color: #c3c8d0; }
.tg-line span { position: absolute; left: 0; top: -7px; }
.trend-bars { position: absolute; left: 26px; right: 0; top: 0; bottom: 0; display: flex; }
.tcol { flex: 1; display: flex; flex-direction: column; align-items: center; }
.tbarbox { flex: 1; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; margin-bottom: 6px; }
.tval { font-size: 11px; color: #6b7280; margin-bottom: 4px; }
.tcol.today .tval { color: var(--abrand); font-weight: 700; }
.tbar { width: 58%; max-width: 30px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, #ffc48f, #ffa45c); }
.tcol.today .tbar { background: linear-gradient(180deg, #ff8f3d, #ff5e00); }
.tday { font-size: 11px; color: var(--a-t3); line-height: 1.4; }
.tweek { font-size: 11px; color: var(--a-t3); line-height: 1.4; }

/* ========== 搜索胶囊 / 页签 / pills / chips ========== */
.search-pill { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 999px; padding: 4px 8px 4px 16px; box-shadow: var(--a-shadow); margin: 12px 14px; color: var(--a-t3); }
.search-pill input { flex: 1; border: none; outline: none; font-size: 14px; background: transparent; color: var(--a-text); font-family: var(--font); height: 34px; min-width: 0; }
.search-pill .ic-btn { background: none; border: none; color: var(--a-t3); display: flex; align-items: center; cursor: pointer; padding: 4px; }
.t-search { display: none; margin-top: 0; }
.t-search.show { display: flex; }

.m-tabs { display: flex; gap: 24px; padding: 8px 16px 0; overflow-x: auto; }
.m-tabs a { position: relative; padding: 8px 0 10px; font-size: 14px; color: #4b5563; white-space: nowrap; }
.m-tabs a.on { color: var(--abrand); font-weight: 700; }
.m-tabs a.on::after { content: ''; position: absolute; left: 50%; transform: translateX(-50%); bottom: 0; width: 22px; height: 3px; border-radius: 2px; background: var(--abrand); }
.m-tabs a .cnt { font-size: 12px; font-weight: 400; }

.pill-tabs { display: flex; gap: 10px; padding: 0 14px; margin-top: 14px; }
.pill-tabs a { flex: 1; text-align: center; padding: 8px 0; font-size: 14px; color: #4b5563; background: #fff; border-radius: 999px; box-shadow: var(--a-shadow); }
.pill-tabs a.on { background: var(--abrand); color: #fff; font-weight: 600; }

.chip-row { display: flex; gap: 8px; overflow-x: auto; padding: 12px 14px 2px; }
.chip { flex-shrink: 0; padding: 5px 14px; font-size: 13px; color: #4b5563; background: #fff; border: 1px solid #e7eaee; border-radius: 999px; cursor: pointer; }
.chip.on { color: var(--abrand); border-color: var(--abrand); background: #fff5ec; font-weight: 600; }

/* 头像 / 统计条 */
.ava { width: 46px; height: 46px; border-radius: 50%; color: #fff; font-size: 17px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.p-sum { display: flex; background: #fff; border-radius: 14px; box-shadow: var(--a-shadow); margin: 12px 14px; padding: 14px 0; }
.p-sum > div { flex: 1; text-align: center; }
.p-sum > div + div { border-left: 1px solid var(--a-border); }
.p-sum .l { font-size: 12px; color: var(--a-t2); }
.p-sum .n { font-size: 20px; font-weight: 700; margin-top: 4px; }
.p-sum .n i { font-style: normal; font-size: 12px; color: var(--a-t2); font-weight: 400; margin-left: 2px; }

/* 操作按钮组（卡片内） */
.p-btns, .u-btns, .t-btns { display: flex; gap: 8px; margin-top: 14px; }
.abtn { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 8px 0; font-size: 13px; border-radius: 8px; border: 1px solid #e2e5ea; background: #fff; color: #374151; cursor: pointer; font-family: var(--font); white-space: nowrap; }
.abtn:hover { background: #f8f9fb; }
.abtn.danger { color: var(--a-red); border-color: #ffd4d0; }
.abtn.green { color: #fff; background: var(--a-green-d); border-color: var(--a-green-d); }
.abtn.green:hover { background: #15803d; }
.abtn.orange { color: #fff; background: var(--abrand); border-color: var(--abrand); }
.abtn.fix { flex: 0 0 auto; padding: 8px 14px; }

/* ========== 推广员卡片 ========== */
.p-top { display: flex; gap: 12px; }
.p-idbox { flex: 1; min-width: 0; }
.p-name { font-size: 16px; font-weight: 700; }
.p-uname { font-size: 12px; color: var(--a-t3); background: #f3f4f6; border-radius: 6px; padding: 1px 8px; margin-left: 6px; font-weight: 400; }
.p-status { font-size: 12px; white-space: nowrap; margin-top: 4px; }
.p-status.on { color: var(--a-green-d); }
.p-status.off { color: var(--a-t3); }
.p-meta { font-size: 12px; color: var(--a-t3); margin-top: 6px; }
.p-stats { display: flex; background: #f8f9fb; border-radius: 10px; margin-top: 12px; padding: 12px 0; }
.p-stats > div { flex: 1; text-align: center; }
.p-stats > div + div { border-left: 1px solid var(--a-border); }
.ps-label { font-size: 12px; color: var(--a-t2); }
.ps-val { font-size: 16px; font-weight: 700; margin-top: 3px; }
.ps-val i { font-style: normal; font-size: 11px; font-weight: 400; color: var(--a-t2); margin-left: 2px; }

/* ========== 客户卡片 ========== */
.u-top { display: flex; gap: 12px; }
.u-idbox { flex: 1; min-width: 0; }
.u-name { font-size: 16px; font-weight: 700; display: flex; align-items: center; gap: 6px; }
.badge-ok { font-size: 11px; color: var(--a-green-d); background: #e8f9f0; border-radius: 4px; padding: 1px 6px; font-weight: 400; }
.badge-no { font-size: 11px; color: var(--a-t2); background: #f3f4f6; border-radius: 4px; padding: 1px 6px; font-weight: 400; }
.u-right { margin-left: auto; text-align: right; flex-shrink: 0; }
.u-earn { font-size: 12px; color: var(--a-t2); }
.u-bal { font-size: 16px; font-weight: 700; color: var(--abrand); margin-top: 2px; }
.u-meta { font-size: 12px; color: var(--a-t3); margin-top: 6px; }
.u-pro { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--a-t2); border-top: 1px solid var(--a-border); margin-top: 12px; padding-top: 12px; }
.u-pro a { color: var(--abrand); font-size: 13px; }
.u-frozen { background: #fdecec; color: #e23d3d; font-size: 13px; border-radius: 10px; padding: 8px 12px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.u-warn { background: #fff8e6; color: var(--a-amber); font-size: 13px; border-radius: 10px; padding: 9px 12px; margin: 0 14px 12px; display: flex; gap: 8px; align-items: center; }
.pid-chip { display: flex; align-items: center; justify-content: space-between; background: #fff5ec; color: var(--abrand); font-size: 13px; border-radius: 10px; padding: 8px 12px; margin: 0 14px 12px; }
.pid-chip a { color: var(--abrand); font-weight: 700; }

/* ========== 任务卡片 ========== */
.t-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.t-title { font-size: 16px; font-weight: 700; }
.t-meta { font-size: 12px; color: var(--a-t3); margin-top: 5px; }
.t-grid { display: flex; background: #f8f9fb; border-radius: 10px; margin-top: 12px; padding: 12px 0; }
.t-grid > div { flex: 1; text-align: center; }
.t-grid > div + div { border-left: 1px solid var(--a-border); }
.tg-label { font-size: 12px; color: var(--a-t2); }
.tg-val { font-size: 15px; font-weight: 700; margin-top: 3px; }
.t-freeze { display: flex; justify-content: space-between; align-items: center; font-size: 14px; font-weight: 700; margin-top: 12px; }
.t-done { font-size: 12px; color: var(--a-t3); font-weight: 400; }
.stag { flex-shrink: 0; font-size: 11px; color: #fff; border-radius: 999px; padding: 3px 10px; }
.stag-orange { background: var(--abrand); }
.stag-green { background: var(--a-green); }
.stag-gray { background: #b6bcc7; }
.stag-dark { background: #6b7280; }

/* ========== 提现审核 ========== */
.wd-top { display: flex; align-items: center; gap: 8px; }
.wtag { background: #3a3f4b; color: #fff; font-size: 11px; border-radius: 4px; padding: 2px 8px; }
.wd-name { font-size: 16px; font-weight: 700; }
.wd-time { margin-left: auto; font-size: 12px; color: var(--a-t3); white-space: nowrap; }
.wd-amtrow { display: flex; align-items: flex-end; justify-content: space-between; margin-top: 8px; }
.wd-amt { font-size: 32px; font-weight: 800; color: var(--abrand); }
.wd-fee { font-size: 12px; color: var(--a-t2); }
.wd-info { margin-top: 12px; border-top: 1px solid var(--a-border); }
.wd-row { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--a-border); font-size: 14px; }
.wd-row .k { color: var(--a-t2); }
.wd-row .v.ok { color: var(--a-green-d); font-weight: 600; }
.wd-banner { display: flex; gap: 8px; background: #fff8e6; color: var(--a-amber); font-size: 13px; border-radius: 10px; padding: 10px 12px; margin-top: 12px; align-items: flex-start; }
.wd-note { font-size: 12px; color: var(--a-t2); margin-top: 12px; }
.wd-btns { display: flex; gap: 10px; margin-top: 16px; }
.w-sec { font-size: 13px; color: var(--a-t2); margin: 16px 16px 8px; }
.w-row { display: flex; align-items: center; gap: 10px; background: #fff; border-radius: 12px; box-shadow: var(--a-shadow); padding: 14px; margin: 0 14px 10px; cursor: pointer; }
.w-name { font-size: 14px; font-weight: 600; }
.w-amt { font-size: 14px; font-weight: 700; color: var(--abrand); }
.w-time { flex: 1; text-align: right; font-size: 12px; color: var(--a-t3); }
.w-go { font-size: 12px; color: var(--a-t3); white-space: nowrap; }
.w-st { margin-left: 6px; }

/* ========== 充值管理 ========== */
.rc-banner { margin: 12px 14px 0; background: #fff8e6; border-radius: 12px; padding: 12px; display: flex; gap: 10px; align-items: flex-start; }
.rc-banner .t { font-size: 14px; font-weight: 700; color: var(--a-amber); }
.rc-banner .s { font-size: 12px; color: #c08a2e; margin-top: 2px; }
.rc-icon { width: 34px; height: 34px; border-radius: 50%; background: #ffe9c2; color: #d97706; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rc-title { font-size: 14px; font-weight: 700; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.rc-title::before { content: ''; width: 4px; height: 14px; border-radius: 2px; background: var(--abrand); }
.rc-row { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--a-border); }
.rc-row:last-child { border-bottom: none; }
.rc-ava { width: 40px; height: 40px; border-radius: 50%; background: #e8f9f0; color: var(--a-green-d); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 700; font-size: 15px; }
.rc-no { font-size: 13px; font-weight: 600; }
.rc-sub { font-size: 12px; color: var(--a-t3); margin-top: 2px; }
.rc-right { margin-left: auto; text-align: right; flex-shrink: 0; }
.rc-amt { font-size: 16px; font-weight: 700; }
.ltag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; margin-top: 4px; }
.ltag-green { background: #e8f9f0; color: var(--a-green-d); }
.ltag-orange { background: #fff1e6; color: var(--abrand); }
.ltag-gray { background: #f3f4f6; color: var(--a-t2); }
.list-more { text-align: center; font-size: 12px; color: var(--a-t3); padding: 10px 0 16px; }
.big-cta { display: block; width: 100%; border: none; border-radius: 10px; padding: 14px 0; font-size: 16px; font-weight: 700; color: #fff; background: var(--abtn-grad); cursor: pointer; font-family: var(--font); }
.big-cta:disabled { opacity: .6; }
.amt-wrap { position: relative; }
.amt-wrap .form-input { padding-left: 30px; }
.amt-wrap .unit-l { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 14px; color: var(--a-t2); }

/* ========== 资金流水 ========== */
.pool-card { background: linear-gradient(160deg, var(--a-dark1), var(--a-dark2)); color: #fff; border-radius: 16px; padding: 18px 16px; margin: 12px 14px 0; }
.pool-label { font-size: 12px; color: #9aa0ae; }
.pool-num { font-size: 30px; font-weight: 800; margin-top: 4px; }
.pool-sub { font-size: 11px; color: #9aa0ae; margin-top: 2px; }
.pool3 { display: flex; margin-top: 16px; border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 12px; }
.pool3 > div { flex: 1; min-width: 0; }
.pool3 > div + div { border-left: 1px solid rgba(255, 255, 255, .1); padding-left: 14px; }
.pool3 .l { font-size: 11px; color: #9aa0ae; }
.pool3 .v { font-size: 15px; font-weight: 700; margin-top: 4px; }
.fl-total { display: flex; justify-content: flex-end; padding: 10px 16px 0; font-size: 12px; color: var(--a-t2); }
.fl-row { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--a-border); }
.fl-row:last-child { border-bottom: none; }
.fl-ic { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.fl-t { font-size: 14px; font-weight: 700; }
.fl-s { font-size: 12px; color: var(--a-t2); margin-top: 2px; }
.fl-s2 { font-size: 11px; color: var(--a-t3); margin-top: 2px; }
.fl-right { margin-left: auto; text-align: right; flex-shrink: 0; }
.fl-amt { font-size: 16px; font-weight: 700; }
.fl-amt.up { color: var(--a-green-d); }
.fl-amt.down { color: var(--a-red); }
.fl-bal { font-size: 11px; color: var(--a-t3); margin-top: 4px; }

/* ========== 我的 ========== */
.mine-box { display: flex; align-items: center; gap: 14px; padding: 6px 2px; }
.mine-name { font-size: 18px; font-weight: 700; }
.mine-sub { font-size: 12px; color: #9aa0ae; margin-top: 3px; }
.menu-row { display: flex; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--a-border); color: var(--a-text); font-size: 15px; }
.menu-row:last-child { border-bottom: none; }
.menu-ic { width: 34px; height: 34px; border-radius: 9px; background: #fff1e6; color: var(--abrand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.menu-row .go { margin-left: auto; color: #c3c8d0; display: flex; align-items: center; gap: 8px; font-size: 12px; }
.menu-badge { background: #ff4d4f; color: #fff; font-size: 11px; border-radius: 999px; padding: 1px 8px; }

/* ========== 系统设置 ========== */
.set-card { background: #fff; border-radius: 14px; box-shadow: var(--a-shadow); padding: 2px 16px; margin-bottom: 14px; }
.set-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--a-border); }
.set-row:last-child { border-bottom: none; }
.set-label { font-size: 14px; color: var(--a-text); }
.set-hint { font-size: 11px; color: var(--a-t3); margin-top: 2px; }
.set-static { font-size: 13px; color: var(--a-t3); }
.unit-wrap { position: relative; width: 132px; flex-shrink: 0; }
.unit-wrap .form-input { padding-right: 30px; text-align: right; }
.unit-wrap.pre .form-input { padding-right: 12px; padding-left: 26px; text-align: right; }
.unit-wrap .unit { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 13px; color: var(--a-t3); }
.unit-wrap.pre .unit { right: auto; left: 10px; }
.switch { position: relative; width: 46px; height: 28px; border-radius: 999px; background: #e5e7eb; transition: background .2s; cursor: pointer; flex-shrink: 0; }
.switch::after { content: ''; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: left .2s; }
.switch.on { background: var(--a-green); }
.switch.on::after { left: 21px; }
.set-link { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 14px 0; font-size: 14px; color: var(--a-text); background: none; border: none; border-bottom: 1px solid var(--a-border); cursor: pointer; font-family: var(--font); text-align: left; }
.set-link:last-child { border-bottom: none; }
.set-link .go, .set-row .go { color: #c3c8d0; display: flex; align-items: center; gap: 6px; font-size: 13px; }
.set-foot { text-align: center; font-size: 12px; color: var(--a-t3); margin: 4px 16px 90px; }
.fixed-cta { position: fixed; left: 50%; transform: translateX(-50%); bottom: 0; width: 100%; max-width: 560px; padding: 12px 14px calc(14px + env(safe-area-inset-bottom)); background: linear-gradient(transparent, var(--a-bg) 45%); z-index: 25; }

/* ========== 底部 Tabbar ========== */
.m-tabbar { position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 560px; background: #fff; border-top: 1px solid var(--a-border); display: flex; padding: 6px 0 calc(8px + env(safe-area-inset-bottom)); z-index: 40; }
.m-tabbar a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 11px; color: #9aa0aa; }
.m-tabbar a .ic { width: 23px; height: 23px; }
.m-tabbar a.on { color: var(--abrand); }

/* 分页 / 详情 kv */
.pager { display: flex; gap: 14px; align-items: center; justify-content: center; padding: 12px 0 8px; font-size: 13px; color: var(--a-t2); }
.kv { font-size: 14px; margin-bottom: 8px; }
.kv b { color: var(--a-t2); font-weight: 500; margin-right: 8px; }

/* 登录页 */
.login-hero { text-align: center; padding: 46px 16px 40px; }
.login-hero .hero-ava.lg { margin: 0 auto 14px; }
.login-title { font-size: 22px; font-weight: 700; }
.login-sub { font-size: 13px; color: #9aa0ae; margin-top: 4px; }
.login-body { padding: 0 16px; }
