/* ============================================================
   A 主题 · 精修现有（亮色精修）
   只覆盖外观，不动任何逻辑；删掉这个文件即回到原样式
   取向：保留蓝白熟悉感，统一层级/间距/圆角/描边/阴影，
        弱化表头、加厚行高、次要操作降噪、徽标统一成胶囊
   ============================================================ */
:root{
  --pri:#2563eb; --pri2:#1d4ed8;
  --pri-soft:rgba(47,107,255,.10);
  --bg:#e9edf4;
  --panel:#ffffff;
  --text:#0f172a;
  --muted:#5a6675;
  --border:#e4e9f1;
  --border-soft:#eef2f7;
  --danger:#c22545; --ok:#16a34a; --warn:#b45309;
  --a-r:14px; --a-r-sm:10px;
  --a-tx3:#64748b;
  --a-soft:#f7f9fc;
  --a-head:#f8fafc;
  --a-row-hover:#f7faff;
  --a-shadow:0 1px 2px rgba(16,24,40,.04),0 10px 24px rgba(16,24,40,.06);
  --a-shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --a-shadow-pop:0 24px 60px rgba(16,24,40,.22);
}

body{
  background:
    radial-gradient(circle at 12% -10%, rgba(47,107,255,.09), transparent 34%),
    radial-gradient(circle at 92% 0%, rgba(14,165,233,.07), transparent 32%),
    var(--bg);
  color:var(--text);
}
::selection{background:rgba(47,107,255,.16)}
.muted,.sub{color:var(--muted)}
.user-cell span{color:var(--a-tx3)}

/* ---------- 侧栏：深色 → 亮色（选中态改成浅蓝药丸） ---------- */
.side{
  background:var(--panel);
  border-right:1px solid var(--border);
  border-radius:0;
  box-shadow:0 1px 2px rgba(16,24,40,.03);
  color:var(--text);
  padding:20px 14px;
  gap:3px;
}
.side-logo{color:var(--text);font-weight:800;letter-spacing:-.01em}
.nav{
  color:var(--muted); font-weight:600; font-size:13.5px;
  border-radius:var(--a-r-sm); padding:10px 12px; transition:background .16s,color .16s;
}
.nav:hover{background:var(--a-soft);color:var(--text);transform:none}
.nav.active{
  background:var(--pri-soft); color:#1d4ed8; font-weight:700;
  box-shadow:none; border-color:transparent; transform:none;
}
.side-foot{border-top:1px solid var(--border);padding-top:16px}
.side-foot #adminIdentity,.identity{color:var(--muted)}

/* ---------- 顶栏 ---------- */
.topbar{
  background:linear-gradient(180deg,#fff,#f9fbfe);
  border-bottom:1px solid var(--border); padding:15px 22px;
}
#pageTitle{font-weight:800;letter-spacing:-.015em}
.search-box{
  background:var(--a-soft); border:1px solid var(--border); border-radius:var(--a-r-sm);
}
.search-box input{background:transparent;border:0;color:var(--text)}
.search-box input::placeholder{color:var(--a-tx3)}

/* ---------- 面板 / 卡片 / KPI ---------- */
.panel,.card,.stat-card{
  background:var(--panel); border:1px solid var(--border);
  border-radius:var(--a-r); box-shadow:var(--a-shadow);
}
.panel-head{
  background:linear-gradient(180deg,#fff,#f9fbfe);
  border-bottom:1px solid var(--border); font-weight:700; padding:14px 18px;
}
.cards{gap:14px}
.stat-card{padding:14px 16px}
.stat-num{font-size:23px;font-weight:800;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}
.stat-label{font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--a-tx3)}

/* ---------- 表格（弱化表头 + 加厚行高） ---------- */
.table{font-size:13px;border-collapse:separate;border-spacing:0}
.table th{
  background:var(--a-head); color:var(--a-tx3); font-size:12px; font-weight:700;
  letter-spacing:.02em; padding:11px 14px; border-bottom:1px solid var(--border);
}
.table td{padding:14px;border-bottom:1px solid var(--border-soft);color:var(--text);vertical-align:middle}
.table tbody tr{transition:background .15s ease}
.table tbody tr:hover{background:var(--a-row-hover)}
.table tbody tr:last-child td{border-bottom:0}
.merchant-row td{background:transparent}
.merchant-row:hover td{background:var(--a-row-hover)}
.emp-row td{background:#fbfcfe}
.emp-row:hover td{background:#f5f9ff}
.emp-orphan td{background:#fff8ef}
.table-wrap,.table-scroll{
  background:var(--panel); border:1px solid var(--border); border-radius:var(--a-r);
}
.table-scroll::-webkit-scrollbar-thumb{background:#cfd8e6;border-radius:999px}
.table-scroll::-webkit-scrollbar{width:8px;height:8px}

/* ---------- 按钮（次要操作降噪） ---------- */
.btn{
  border:1px solid var(--border); background:var(--panel); color:var(--text);
  border-radius:var(--a-r-sm); padding:9px 14px; font-size:13px; font-weight:600;
  box-shadow:var(--a-shadow-sm); transition:background .16s,border-color .16s;
}
.btn:hover{background:var(--a-soft);border-color:#cdd6e3;transform:none;box-shadow:var(--a-shadow-sm)}
.btn.primary{background:var(--pri);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(47,107,255,.22)}
.btn.primary:hover{background:var(--pri2);filter:none}
.btn.ghost{background:transparent;border-color:var(--border);color:var(--muted);box-shadow:none}
.btn.ghost:hover{background:var(--pri-soft);border-color:rgba(47,107,255,.34);color:#1d4ed8}
.btn.danger{background:rgba(220,47,69,.08);border-color:rgba(220,47,69,.26);color:var(--danger);box-shadow:none}
.btn.danger:hover{background:rgba(220,47,69,.14);border-color:rgba(220,47,69,.4)}
.mini-btn{background:var(--a-soft);border:1px solid var(--border);color:var(--muted);border-radius:8px}
.mini-btn:hover{background:#eef2f8;color:var(--text)}
.row-actions .btn{font-size:12px;padding:6px 10px}

/* ---------- 徽标 / 标签（统一胶囊） ---------- */
.badge,.tag,.pill,.edit-tag,.status{
  border-radius:999px; padding:4px 9px; font-size:11px; font-weight:700; border:1px solid transparent;
}
.badge{background:var(--pri-soft);color:#1d4ed8;border-color:rgba(47,107,255,.22)}
.tag{background:var(--pri-soft);color:#1d4ed8;border-color:rgba(47,107,255,.22)}
.tag.expired{background:rgba(220,47,69,.10);color:var(--danger);border-color:rgba(220,47,69,.24)}
.tag.expiring{background:rgba(217,119,6,.10);color:var(--warn);border-color:rgba(217,119,6,.26)}
.status.ok,.pill.ok,.badge.ok{background:rgba(22,163,74,.10);color:#166534;border-color:rgba(22,163,74,.24)}
.status.warn,.pill.warn,.badge.warn{background:rgba(217,119,6,.10);color:#b45309;border-color:rgba(217,119,6,.26)}
.status.danger,.pill.danger,.badge.danger{background:rgba(220,47,69,.10);color:#be123c;border-color:rgba(220,47,69,.24)}
.status.expired{background:rgba(220,47,69,.10);color:var(--danger);border-color:rgba(220,47,69,.24)}
.edit-tag{background:#f2f5fa;color:var(--muted);border-color:var(--border)}
.edit-tag.role{background:rgba(47,107,255,.10);color:#1d4ed8;border-color:rgba(47,107,255,.24)}
.edit-tag.platform{background:rgba(217,119,6,.10);color:#b45309;border-color:rgba(217,119,6,.26)}
.edit-tag.byok{background:rgba(22,163,74,.10);color:#15803d;border-color:rgba(22,163,74,.24)}
.edit-tag.neutral{background:#f2f5fa;color:var(--muted);border-color:var(--border)}
.pos{color:#15803d}.neg{color:#be123c}

/* ---------- 表单 ---------- */
.field{background:#fcfdff;border:1px solid var(--border-soft);border-radius:var(--a-r-sm);padding:13px}
.field:focus-within{background:#fff;border-color:rgba(47,107,255,.36);box-shadow:0 0 0 3px rgba(47,107,255,.09)}
.field-label{font-weight:700;color:#33405a}
.field-hint{color:var(--a-tx3)}
.static-value{background:var(--a-soft);border:1px solid var(--border-soft);border-radius:var(--a-r-sm);color:var(--text)}
input,select,textarea,.input,.inline-input{
  background:#fff; border:1px solid #d9e0ea; border-radius:var(--a-r-sm); color:var(--text);
}
input:focus,select:focus,textarea:focus,.input:focus{border-color:var(--pri);box-shadow:0 0 0 3px rgba(47,107,255,.10);outline:0}
input::placeholder,textarea::placeholder{color:#9aa7b8}
.form-section{background:#fff;border:1px solid var(--border);border-radius:var(--a-r);box-shadow:var(--a-shadow)}
.section-head{background:linear-gradient(180deg,#fff,#f9fbfe);border-bottom:1px solid var(--border);font-weight:800}
.section-extra{background:#f2f5fa;border:1px solid var(--border);color:var(--muted);border-radius:999px}

/* ---------- 模块 / 套餐 / 授权卡 ---------- */
.module-card,.package-card,.api-mode-card,.checkbox-item{
  background:var(--panel); border:1px solid var(--border); border-radius:var(--a-r-sm); color:var(--text);
  box-shadow:var(--a-shadow-sm);
}
.package-card:hover{background:var(--a-soft)}
.module-card.active,.package-card.active,.api-mode-card.active{
  border-color:rgba(47,107,255,.45); background:var(--pri-soft);
  box-shadow:0 0 0 3px rgba(47,107,255,.08);
}
.package-icon{background:var(--a-soft);border:1px solid var(--border);color:var(--text)}
.api-mode-card.active .package-icon{background:rgba(47,107,255,.12);border-color:rgba(47,107,255,.3)}
.package-short{background:#f2f5fa;border:1px solid var(--border);color:var(--muted)}
.auth-layout-side{background:var(--a-soft);border:1px solid var(--border);border-radius:var(--a-r)}
.edit-user-banner{background:linear-gradient(135deg,rgba(47,107,255,.10),rgba(14,165,233,.10));border:1px solid var(--border);border-radius:var(--a-r)}

/* ---------- 弹窗 ---------- */
.modal{background:rgba(15,23,42,.42)}
.modal-card{border-radius:18px;border:1px solid var(--border);box-shadow:var(--a-shadow-pop)}
.modal-head{font-weight:800;border-bottom:1px solid var(--border);padding:15px 20px}
.modal-head .close,.close{background:#f2f5fa;color:var(--muted);border-radius:9px}
.modal-head .close:hover,.close:hover{background:#e8edf5;color:var(--text)}
.modal-actions{background:linear-gradient(to top,#fff 78%,rgba(255,255,255,0));border-top:1px solid var(--border)}
.confirm-icon{background:rgba(217,119,6,.10);border:1px solid rgba(217,119,6,.24)}
.confirm-danger{background:rgba(220,47,69,.08);border-color:rgba(220,47,69,.26);color:var(--danger)}

/* ---------- 空态 / 提示 ---------- */
.empty-state,.empty{color:var(--muted)}
.toast{border-radius:12px;box-shadow:0 14px 30px rgba(15,23,42,.18)}

/* ---------- 样式预览（沿用功能，只换皮） ---------- */
.bs-preview-box{background:var(--a-soft);border:1px solid var(--border);border-radius:var(--a-r-sm)}
.bs-preview-title{color:var(--muted)}
.bs-thumb,.bs-ksthumb{border:1px solid var(--border)}
.link{color:var(--pri);font-weight:700;text-decoration:none}
.link:hover{background:rgba(37,99,235,.08);color:#1d4ed8;text-decoration:underline}
.link.danger{color:var(--danger)}
.link.danger:hover{background:rgba(220,47,69,.08);color:#b01d3e}
