/* ==========================================================================
   管理员端（后台）样式
   布局：左侧固定导航 + 顶栏 + 内容区；沿用影视飓风的黑白令牌
   ========================================================================== */

.admin-shell { display: grid; grid-template-columns: 236px minmax(0, 1fr); min-height: 100svh; background: var(--c-paper-100); }

/* --------------------------------------------------------------------------
   侧栏
   -------------------------------------------------------------------------- */
.admin-side {
  position: sticky; top: 0;
  height: 100svh;
  display: flex; flex-direction: column;
  background: var(--c-ink-800);
  color: rgba(255, 255, 255, .68);
  overflow-y: auto;
}
.admin-side__brand { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-5) var(--sp-5); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.admin-side__mark { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--r-md); background: #fff; color: var(--c-ink-800); font-family: var(--font-serif); font-weight: 700; font-size: 16px; flex: none; }
.admin-side__name { font-family: var(--font-serif); font-size: 15px; font-weight: 700; color: #fff; letter-spacing: .04em; }
.admin-side__sub { font-family: var(--font-mono); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255, 255, 255, .4); }
.admin-side__nav { flex: 1; padding: var(--sp-4) var(--sp-3) var(--sp-8); }
.admin-side__group { padding: var(--sp-5) var(--sp-3) var(--sp-2); font-family: var(--font-mono); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: rgba(255, 255, 255, .32); }
.admin-side__link {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 10px var(--sp-3);
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, .68);
  border-radius: var(--r-md);
  transition: all var(--dur-fast) var(--ease-out);
  margin-bottom: 2px;
}
.admin-side__link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.admin-side__link.is-active { background: rgba(255, 255, 255, .12); color: #fff; font-weight: 500; }
.admin-side__link.is-active::before { content: ""; position: absolute; }
.admin-side__link svg { width: 16px; height: 16px; flex: none; opacity: .85; }
.admin-side__link .badge {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 9px;
  padding: 2px 6px;
  background: var(--c-accent);
  color: #fff;
  border-radius: var(--r-pill);
}
.admin-side__foot { padding: var(--sp-4) var(--sp-5); border-top: 1px solid rgba(255, 255, 255, .08); font-size: var(--fs-2xs); color: rgba(255, 255, 255, .35); }

/* --------------------------------------------------------------------------
   主区
   -------------------------------------------------------------------------- */
.admin-main { display: flex; flex-direction: column; min-width: 0; }
.admin-topbar {
  position: sticky; top: 0; z-index: var(--z-header);
  display: flex; align-items: center; gap: var(--sp-5);
  height: 60px;
  padding: 0 var(--sp-6);
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border-color);
}
.admin-topbar__title { font-size: var(--fs-sm); font-weight: 600; }
.admin-topbar__crumb { font-size: var(--fs-2xs); color: var(--text-muted); }
.admin-topbar__spacer { flex: 1; }
.admin-topbar__actions { display: flex; align-items: center; gap: var(--sp-2); }
.admin-content { padding: var(--sp-6) var(--sp-6) var(--sp-16); flex: 1; }

/* 页头 */
.admin-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-6); margin-bottom: var(--sp-6); flex-wrap: wrap; }
.admin-head__title { font-size: var(--fs-h3); font-weight: 700; letter-spacing: -.01em; }
.admin-head__desc { margin-top: var(--sp-2); font-size: var(--fs-xs); color: var(--text-secondary); }
.admin-head__actions { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }

/* 表单页两栏 */
.admin-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--sp-6); align-items: start; }

/* 审核详情抽屉内容 */
.review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4) var(--sp-6); }
.review-item { display: flex; flex-direction: column; gap: 3px; padding-bottom: var(--sp-3); border-bottom: 1px solid var(--border-color); }
.review-item__label { font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.review-item__value { font-size: var(--fs-sm); }

/* 图片审核预览 */
.audit-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--sp-3); }
.audit-thumb { aspect-ratio: 1 / 1; border-radius: var(--r-md); overflow: hidden; background: var(--c-paper-100); }
.audit-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* 权限矩阵 */
.perm-table th:first-child, .perm-table td:first-child { width: 200px; }
.perm-table .perm-check { text-align: center; }
.perm-group-row td { background: var(--c-paper-050); font-weight: 600; color: var(--text-primary); font-size: var(--fs-xs); letter-spacing: .04em; }

/* 系统设置项 */
.setting-row { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-8); padding: var(--sp-5) 0; border-bottom: 1px solid var(--border-color); }
.setting-row:last-child { border-bottom: 0; }
.setting-row__label { font-size: var(--fs-sm); font-weight: 500; }
.setting-row__desc { font-size: var(--fs-2xs); color: var(--text-muted); margin-top: 3px; max-width: 56ch; line-height: var(--lh-normal); }
.setting-row__control { flex: none; display: flex; align-items: center; gap: var(--sp-3); }

/* 后台筛选条 */
.admin-filters { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.admin-filters .input, .admin-filters .select { height: 36px; font-size: var(--fs-xs); }
.admin-filters .input { min-width: 200px; }

/* 表格内联状态选择 */
.status-select { height: 30px; font-size: var(--fs-xs); padding: 0 var(--sp-8) 0 var(--sp-3); border-radius: var(--r-sm); }

/* 空表格 */
.table-empty { padding: var(--sp-16) var(--sp-6); text-align: center; color: var(--text-muted); font-size: var(--fs-sm); }

/* 概览页顶部的快捷入口 */
.quick-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--sp-4); }
.quick-link {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--sp-4); row-gap: var(--sp-3);
  padding: var(--sp-5);
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: var(--r-lg);
  transition: all var(--dur) var(--ease-out);
}
.quick-link:hover { border-color: var(--c-ink-200); box-shadow: var(--sh-sm); transform: translateY(-2px); }
.quick-link__ico { width: 36px; height: 36px; display: grid; place-items: center; border-radius: var(--r-md); background: var(--c-paper-100); color: var(--c-ink-600); flex: none; }
.quick-link__ico svg { width: 18px; height: 18px; }
/* 文本区给足收缩基准，避免中文标题被压成一字一行 */
.quick-link > span:not(.quick-link__ico):not(.tag) { flex: 1 1 140px; min-width: 0; }
.quick-link > .tag { flex: 0 0 auto; }
.quick-link__name { font-size: var(--fs-sm); font-weight: 600; }
.quick-link__desc { font-size: var(--fs-2xs); color: var(--text-muted); margin-top: 2px; }

/* 待办列表 */
.todo-list { display: flex; flex-direction: column; }
.todo-item { display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-4) 0; border-bottom: 1px solid var(--border-color); }
.todo-item:last-child { border-bottom: 0; }
.todo-item__ico { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--r-md); background: var(--c-accent-soft); color: var(--c-accent); flex: none; }
.todo-item__ico svg { width: 16px; height: 16px; }
.todo-item__title { font-size: var(--fs-sm); font-weight: 500; }
.todo-item__meta { font-size: var(--fs-2xs); color: var(--text-muted); margin-top: 2px; }
.todo-item__count { margin-left: auto; font-family: var(--font-mono); font-size: 1.25rem; font-weight: 600; }

/* 编辑弹窗内的区块 */
.form-section { padding: var(--sp-5) 0; border-bottom: 1px solid var(--border-color); }
.form-section:last-child { border-bottom: 0; padding-bottom: 0; }
.form-section__title { font-size: var(--fs-xs); font-weight: 600; letter-spacing: .04em; color: var(--text-secondary); margin-bottom: var(--sp-5); display: flex; align-items: center; gap: var(--sp-2); }
.form-section__title::before { content: ""; width: 3px; height: 12px; background: var(--c-accent); border-radius: var(--r-pill); }
