/* ============================================================
   assets/css/admin.css — 轻量化管理后台
   ============================================================ */
body.admin { background: var(--paper-2); }

.ad-login {
  min-height: 100svh; display: grid; place-items: center; padding: var(--gutter);
}
.ad-login__box {
  width: min(400px, 100%); background: var(--surface); border: 1px solid var(--line-soft);
  border-radius: var(--r-lg); padding: clamp(1.75rem, 4vw, 2.5rem); box-shadow: var(--shadow-md);
}
.ad-login__mark {
  width: 56px; height: 56px; border-radius: 50%; background: var(--teal-900); color: var(--paper);
  display: grid; place-items: center; font-family: var(--font-en); font-size: var(--fs-lg); margin-bottom: var(--sp-5);
}
.ad-login h1 { font-family: var(--font-display); font-size: var(--fs-xl); color: var(--teal-900); font-weight: 600; }
.ad-login p { font-size: var(--fs-xs); color: var(--muted); margin-top: var(--sp-2); line-height: 1.7; }

.ad-top {
  position: sticky; top: 0; z-index: 20; background: var(--teal-900); color: var(--paper);
  padding: var(--sp-4) var(--gutter);
}
.ad-top__inner {
  max-width: 1200px; margin-inline: auto; display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap;
}
.ad-top h1 { font-family: var(--font-display); font-size: var(--fs-md); font-weight: 600; letter-spacing: .06em; }
.ad-top__badge { font-size: var(--fs-3xs); letter-spacing: .12em; color: var(--gold-300); }
.ad-top__spacer { flex: 1; }
.ad-top__btn {
  padding: .5em 1em; border-radius: var(--r-pill); border: 1px solid rgba(247,244,238,.3);
  font-size: var(--fs-xs); color: var(--paper); transition: all var(--dur-fast);
}
.ad-top__btn:hover { background: var(--paper); color: var(--teal-900); }

.ad-wrap { max-width: 1200px; margin-inline: auto; padding: var(--sp-8) var(--gutter) var(--sp-16); }

.ad-tabs { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-8); border-bottom: 1px solid var(--line); }
.ad-tab {
  padding: .8em 1.2em; font-size: var(--fs-sm); color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.ad-tab.is-on { color: var(--teal-900); border-bottom-color: var(--gold-500); font-weight: 500; }
.ad-tab__n {
  display: inline-block; min-width: 18px; padding: 0 .35em; margin-left: .4em; border-radius: 9px;
  background: var(--gold-500); color: #241C0E; font-size: 10px; text-align: center; line-height: 18px; font-weight: 700;
}
.ad-tab__n:empty { display: none; }

.ad-panel { display: none; }
.ad-panel.is-on { display: block; }

.ad-card {
  background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-md);
  padding: var(--sp-6); margin-bottom: var(--sp-4);
}
.ad-card__head { display: flex; align-items: flex-start; gap: var(--sp-4); flex-wrap: wrap; }
.ad-card__title { font-weight: 600; color: var(--teal-900); font-size: var(--fs-base); }
.ad-card__meta { font-size: var(--fs-xs); color: var(--faint); margin-top: 3px; }
.ad-card__body { margin-top: var(--sp-4); font-size: var(--fs-sm); color: var(--ink-2); line-height: 1.75; }
.ad-card__body img { max-width: 180px; border-radius: var(--r-sm); margin-top: var(--sp-3); }
.ad-card__acts { margin-left: auto; display: flex; gap: var(--sp-2); flex-wrap: wrap; }

.ad-st { display: inline-block; padding: .2em .7em; border-radius: var(--r-pill); font-size: var(--fs-3xs); letter-spacing: .06em; }
.ad-st--pending  { background: var(--gold-100); color: var(--gold-700); }
.ad-st--approved { background: var(--teal-100); color: var(--teal-700); }
.ad-st--rejected { background: #F1E3E0; color: var(--error); }

.ad-empty { text-align: center; padding: var(--sp-12) 0; color: var(--faint); font-size: var(--fs-sm); }

.ad-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-4); margin-bottom: var(--sp-8); }
.ad-stat { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-md); padding: var(--sp-5); }
.ad-stat__n { font-family: var(--font-en); font-size: var(--fs-3xl); color: var(--teal-800); line-height: 1; }
.ad-stat__l { font-size: var(--fs-xs); color: var(--muted); margin-top: var(--sp-2); }

.ad-table { width: 100%; border-collapse: collapse; font-size: var(--fs-xs); }
.ad-table th, .ad-table td { text-align: left; padding: .7em .8em; border-bottom: 1px solid var(--line-soft); }
.ad-table th { color: var(--muted); font-weight: 500; letter-spacing: .06em; font-size: var(--fs-3xs); text-transform: uppercase; }
.ad-table td { color: var(--ink-2); }
.ad-table-wrap { background: var(--surface); border: 1px solid var(--line-soft); border-radius: var(--r-md); overflow-x: auto; max-height: 620px; overflow-y: auto; }
.ad-table code { font-family: var(--font-mono); font-size: 11px; background: var(--paper-2); padding: 1px 5px; border-radius: 3px; }

.ad-row { display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap; margin-bottom: var(--sp-6); }
/* 注：.ad-note 定义于 main.css（前台捐赠弹窗与后台共用） */
