/* admin.css — UniPay 蓝设计令牌 + 抽象类(Tailwind CDN 不处理 @apply,这里手写)。 */
:root{
  --brand-50:#eaf1ff; --brand-100:#d4e3ff; --brand-300:#6e9bff; --brand-400:#3d74ff;
  --brand-500:#1f55e6; --brand-600:#1645c2; --brand-700:#0f3494; --brand-800:#0a2466;
  --ink-50:#f6f8fc; --ink-100:#f1f3f8; --ink-150:#ebeef4; --ink-200:#e3e7ee;
  --ink-300:#c1c5d3; --ink-400:#9aa3b2; --ink-500:#6b7280; --ink-700:#374151; --ink-900:#0f1729;
  --success-bg:#e6f7f0; --success:#0f7a52; --danger-bg:#fbe5e5; --danger:#a31d1d;
  --warning-bg:#fdf2dc; --warning:#8a5a04; --info-bg:#eaf1ff; --info:#1645c2;
  --radius:10px; --radius-sm:8px;
  --shadow-card:0 1px 2px rgba(10,36,102,.06),0 1px 3px rgba(10,36,102,.08);
  --font-cn:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",monospace;
  --font-num:"IBM Plex Sans","Noto Sans SC",system-ui,sans-serif;
}
body{ font-family:var(--font-cn); color:var(--ink-900); background:var(--ink-50); }
.font-mono,code,kbd,pre{ font-family:var(--font-mono); }

/* ----- Sidebar nav (on deep-blue --brand-800) ----- */
.nav-link{ display:block; padding:.5rem .75rem; font-size:.875rem; line-height:1.25rem;
  border-radius:var(--radius-sm); color:rgba(255,255,255,.78); text-decoration:none;
  transition:background .12s,color .12s; }
.nav-link:hover{ background:rgba(255,255,255,.10); color:#fff; }
.nav-link-active{ background:var(--brand-500); color:#fff; }
.nav-group-toggle{ width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:.4rem .75rem; margin-top:.35rem; font-size:.7rem; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:rgba(255,255,255,.45); background:none; border:0; cursor:pointer; }
.nav-group-toggle:hover{ color:rgba(255,255,255,.72); }
.nav-caret{ width:.7rem; height:.7rem; flex:none; transition:transform .15s; }
.nav-group.collapsed .nav-caret{ transform:rotate(-90deg); }
.nav-group.collapsed .nav-group-body{ display:none; }

/* ----- Cards ----- */
.card{ background:#fff; border:1px solid var(--ink-200); border-radius:var(--radius);
  box-shadow:var(--shadow-card); padding:1rem; }

/* ----- Buttons ----- */
.btn{ display:inline-flex; align-items:center; gap:.35rem; padding:.4rem .85rem;
  border-radius:var(--radius-sm); font-size:.875rem; font-weight:500; line-height:1.25rem;
  border:1px solid transparent; cursor:pointer; text-decoration:none;
  transition:background .12s,border-color .12s,filter .12s; }
.btn-primary{ background:var(--brand-500); color:#fff; border-color:var(--brand-500); }
.btn-primary:hover{ background:var(--brand-600); border-color:var(--brand-600); }
.btn-danger{ background:var(--danger); color:#fff; border-color:var(--danger); }
.btn-danger:hover{ filter:brightness(.92); }
.btn-default{ background:#fff; color:var(--ink-700); border-color:var(--ink-200); }
.btn-default:hover{ background:var(--ink-100); }

/* ----- Tables ----- */
.table-th{ padding:.55rem .75rem; text-align:left; font-size:.72rem; font-weight:600;
  color:var(--ink-500); text-transform:uppercase; letter-spacing:.05em; background:var(--ink-100); }
.table-td{ padding:.55rem .75rem; font-size:.875rem; color:var(--ink-900);
  border-top:1px solid var(--ink-150); }

/* ----- Badges ----- */
.badge{ display:inline-flex; align-items:center; padding:.125rem .5rem; border-radius:999px;
  font-size:.72rem; font-weight:500; }
.badge-green{ background:var(--success-bg); color:var(--success); }
.badge-red{ background:var(--danger-bg); color:var(--danger); }
.badge-yellow{ background:var(--warning-bg); color:var(--warning); }
.badge-gray{ background:var(--ink-100); color:var(--ink-700); }
.badge-blue{ background:var(--info-bg); color:var(--info); }

/* ----- Forms ----- */
.form-input{ display:block; width:100%; padding:.5rem .75rem; border:1px solid var(--ink-200);
  border-radius:var(--radius-sm); font-size:.875rem; background:#fff; color:var(--ink-900); }
.form-input:focus{ outline:none; border-color:var(--brand-400); box-shadow:0 0 0 3px var(--brand-50); }
.form-label{ display:block; font-size:.8rem; font-weight:500; color:var(--ink-700); margin-bottom:.25rem; }
