/* 관리자 콘솔 — 최소 스타일(글라스 vocab .home-stat/.pl-row/.chip/.stage-panel 재사용). 토큰은 var(--x, fallback). */
.admin-wrap { display: flex; gap: var(--sp-lg, 24px); align-items: flex-start; padding: var(--sp-lg, 24px); max-width: 1100px; margin: 0 auto; }
.admin-subnav { display: flex; flex-direction: column; gap: var(--sp-xs, 6px); min-width: 132px; position: sticky; top: var(--sp-lg, 24px); }
/* 관리자 서브탭 — 좌측 목록형(전폭·좌측정렬)이라 알약 형태를 덮는다.
 * ⚠️ .btn.X 로 특이도 2 필요: button.css 가 admin.css 보다 뒤에 로드된다(index.html). */
.btn.admin-subnav-btn {
  width: 100%; min-width: 0; height: auto; justify-content: flex-start; text-align: left;
  padding: var(--sp-sm) var(--sp-md); border-radius: var(--r-md); border-color: transparent;
  color: var(--ink-64, rgba(255,255,255,0.64));
}
.btn.admin-subnav-btn:hover { background: rgba(255,255,255,0.05); color: var(--ink, #f2f4f8); transform: none; }
.btn.admin-subnav-btn:active { transform: none; }
.btn.admin-subnav-btn.is-active { background: var(--accent-soft); color: var(--ink, #f2f4f8); border-color: var(--hairline); }
.admin-pane { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--sp-md, 12px); }
.admin-h { font-size: var(--fs-tagline, 1.1rem); color: var(--ink, #f2f4f8); margin: 0; }
.admin-sub { font-size: var(--fs-caption, 0.85rem); color: var(--ink-64, rgba(255,255,255,0.62)); margin-bottom: var(--sp-xs, 6px); }
.admin-cards { display: flex; flex-wrap: wrap; gap: var(--sp-md, 12px); }
.admin-cards .home-stat { flex: 1 1 150px; }
.admin-stat-val { font-size: var(--fs-display-md, 1.6rem); color: var(--ink, #f2f4f8); }
.admin-stat-key { font-size: var(--fs-caption, 0.8rem); color: var(--ink-48, rgba(255,255,255,0.48)); }
.admin-table { width: 100%; border-collapse: collapse; font-size: var(--fs-caption, 0.85rem); }
.admin-table th, .admin-table td { text-align: left; padding: var(--sp-sm, 8px) var(--sp-md, 10px); border-bottom: 1px solid var(--hairline, rgba(255,255,255,0.08)); color: var(--ink, #e8ebf2); }
.admin-table th { color: var(--ink-48, rgba(255,255,255,0.5)); font-weight: 500; }
.admin-user-row { display: flex; align-items: center; gap: var(--sp-sm, 8px); flex-wrap: wrap; }
.admin-user-email { flex: 1 1 180px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
/* uid 복사 칩 — 모노스페이스 + 축소(.btn--chip --sm 위에). */
.btn.chip-uid { font-family: var(--font-mono); font-size: 0.75rem; min-width: 0; padding: 0 7px; height: 22px; opacity: 0.7; letter-spacing: 0.02em; flex: none; }
.btn.chip-uid .btn__icons { width: 11px; height: 11px; }
.admin-form { display: flex; flex-wrap: wrap; gap: var(--sp-sm, 8px); align-items: center; }
.admin-role-select, .admin-days, .admin-reason {
  padding: var(--sp-xs, 6px) var(--sp-sm, 8px); border-radius: var(--r-md, 8px);
  border: 1px solid var(--hairline, rgba(255,255,255,0.14)); background: rgba(255,255,255,0.04); color: var(--ink, #f2f4f8); font: inherit;
}
.admin-reason { flex: 1 1 140px; min-width: 90px; }
.admin-inbox { padding: var(--sp-md, 12px); border: 1px solid var(--accent-soft, rgba(70,120,255,0.3)); border-radius: var(--r-md, 10px); display: flex; flex-direction: column; gap: var(--sp-xs, 6px); }
.admin-flash { padding: var(--sp-sm, 8px) var(--sp-md, 12px); border-radius: var(--r-md, 8px); font-size: var(--fs-caption, 0.85rem); }
.admin-flash.is-ok { background: rgba(60,180,120,0.18); color: #bdf0d4; }
.admin-flash.is-err { background: rgba(220,80,80,0.18); color: #f3c2c2; }
@media (max-width: 720px) {
  .admin-wrap { flex-direction: column; }
  .admin-subnav { flex-direction: row; flex-wrap: wrap; position: static; }
}
