/* 관리자 화면 배치 — 토큰 값만 사용. 움직임은 최소. */

/* ===== 공통: 목록 머리·정렬·칩·필터 ===== */
.admin-section { margin-top: var(--s-8); }
.admin-section:first-child { margin-top: 0; }
.admin-section-title { font-weight: 700; font-size: var(--t-lg); color: var(--c-plum); margin-bottom: var(--s-3); display: flex; align-items: center; gap: 8px; }
.admin-chips { margin-bottom: var(--s-4); }
.admin-chips .chip:hover { transform: none; box-shadow: none; background: var(--c-milk); }
.admin-chips .chip[aria-current="page"]:hover { background: var(--c-plum); }
.chip-count { font-size: var(--t-xs); font-weight: 700; opacity: .85; }
.filter-bar .field.wide { flex: 2; min-width: 200px; }
.filter-bar .field.narrow { flex: 0 1 160px; min-width: 140px; }
.filter-actions { display: flex; gap: var(--s-2); align-items: flex-end; margin-left: auto; }
.filter-bar .field-error { font-size: var(--t-xs); }
.list-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-bottom: var(--s-3); }
.sort-links { display: flex; gap: 4px; flex-wrap: wrap; }
.sort-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: var(--r-sm); font-size: var(--t-sm); font-weight: 700; color: var(--c-muted); }
.sort-links a:hover { background: var(--c-milk); color: var(--c-plum); }
.sort-links a[aria-current="true"] { color: var(--c-plum); background: var(--c-milk-2); }
.pagination a { min-height: 44px; min-width: 44px; height: auto; }
.pagination span.disabled { min-height: 44px; min-width: 44px; height: auto; opacity: 1; color: var(--c-muted); border-color: var(--c-line); }

/* ===== 요약 숫자 ===== */
.stat .sub { font-size: var(--t-sm); color: var(--c-muted); }
.stat .label { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
a.stat { color: inherit; transition: box-shadow var(--m-fast); }
a.stat:hover { box-shadow: var(--shadow-2); }
.stat-grid { margin-bottom: var(--s-6); }
.stat-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rate { display: inline-flex; align-items: center; gap: 2px; font-weight: 700; font-size: var(--t-sm); }
.rate.up { color: var(--c-success); }
.rate.down { color: var(--c-danger); }

/* ===== 표 ===== */
.table td .title-cell { display: flex; flex-direction: column; gap: 2px; min-width: 200px; }
.table td .title-cell a { font-weight: 700; }
.table td .title-cell a:hover { text-decoration: underline; }
.table td .sub { font-size: var(--t-xs); color: var(--c-muted); }
.table .actions .btn, .table .actions form { flex: none; }
.table .num, .table .t-right { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.table .nowrap { white-space: nowrap; }
.table .faint { color: var(--c-muted); }
.table .thumb-cell { display: flex; align-items: center; gap: var(--s-3); min-width: 220px; }
.table .thumb-cell img, .table .thumb-cell .skeleton-thumb { width: 44px; height: 56px; object-fit: cover; border-radius: 6px; border: 1px solid var(--c-line); flex: none; font-size: 0; }
.admin-author { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.btn-group form { display: inline-flex; }
.actions form { display: inline-flex; }

/* ===== 상세 ===== */
.admin-detail { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--s-6); align-items: start; }
.admin-detail > * { min-width: 0; }
.admin-detail .stack-lg > .panel + .panel { margin-top: 0; }
.panel-stack > .panel + .panel { margin-top: var(--s-5); }
.panel-body .dl dd { word-break: break-all; }
.timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.timeline li { display: flex; gap: var(--s-3); padding: var(--s-3) 0; border-bottom: var(--border-soft); }
.timeline li:last-child { border-bottom: 0; }
.timeline .when { flex: none; width: 132px; font-size: var(--t-sm); color: var(--c-muted); font-variant-numeric: tabular-nums; }
.timeline .what { font-weight: 700; }
.timeline .what .sub { display: block; font-weight: 400; font-size: var(--t-sm); color: var(--c-muted); }
.body-text { white-space: pre-wrap; line-height: 1.75; }
.thumb-one { max-width: 220px; }
.thumb-one figure { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.thumb-one img, .thumb-one .skeleton-thumb { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border: var(--border); border-radius: var(--r-sm); }
.thumb-one figcaption { font-size: var(--t-xs); color: var(--c-muted); text-align: center; }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-form { max-width: 760px; }
.form-foot { display: flex; justify-content: flex-end; gap: var(--s-2); margin-top: var(--s-6); flex-wrap: wrap; }
.inline-note { display: flex; gap: 8px; align-items: flex-start; font-size: var(--t-sm); color: var(--c-muted); }

/* ===== 로그인 ===== */
.admin-auth .auth-card h1 { font-family: var(--f-display); font-weight: 700; font-size: var(--t-2xl); }
.admin-auth-brand { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: var(--s-5); }
.admin-auth-brand .logo { font-size: 22px; }
.admin-auth .auth-links { display: flex; justify-content: center; gap: var(--s-4); margin-top: var(--s-5); font-size: var(--t-sm); font-weight: 700; }
.admin-auth .auth-links a { min-height: 44px; display: inline-flex; align-items: center; }

/* ===== 대시보드 ===== */
.dash-cols { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--s-5); margin-bottom: var(--s-6); }
.dash-list { list-style: none; margin: 0; padding: 0; }
.dash-list li + li { border-top: var(--border-soft); }
.dash-list a, .dash-list .row-item { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-5); min-height: 56px; }
.dash-list a:hover { background: var(--c-milk); }
.dash-list .grow { min-width: 0; }
.dash-list .t { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.tile-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-4); }
.tile { display: flex; flex-direction: column; gap: 8px; padding: var(--s-5); background: #fff; border: var(--border); border-radius: var(--r-md); color: inherit; transition: box-shadow var(--m-fast); }
.tile:hover { box-shadow: var(--shadow-1); }
.tile .tile-name { font-weight: 700; color: var(--c-plum); display: flex; align-items: center; gap: 8px; }
.tile .tile-desc { font-size: var(--t-sm); color: var(--c-muted); }
.tile .tile-count { font-size: var(--t-sm); font-weight: 700; margin-top: auto; }

@media (max-width: 1024px) {
  .admin-detail, .dash-cols { grid-template-columns: minmax(0, 1fr); }
  .tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .stat-grid, .stat-grid.cols-3 { grid-template-columns: 1fr; }
  .stat .value { font-size: 28px; }
  .tile-grid { grid-template-columns: 1fr; }
  .filter-bar .field, .filter-bar .field.wide, .filter-bar .field.narrow { flex: 1 1 100%; min-width: 0; }
  .filter-actions { margin-left: 0; width: 100%; }
  .filter-actions > * { flex: 1; }
  .timeline li { flex-direction: column; gap: 2px; }
  .timeline .when { width: auto; }
  .dl { grid-template-columns: 1fr; gap: 2px; }
  .dl dd { margin-bottom: var(--s-2); }
  /* 모바일: 표 → 카드 */
  .table-wrap.cards { border: 0; background: transparent; overflow: visible; }
  .table-wrap.cards .table, .table-wrap.cards tbody, .table-wrap.cards tr, .table-wrap.cards td { display: block; width: 100%; }
  .table-wrap.cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .table-wrap.cards tr { background: #fff; border: var(--border); border-radius: var(--r-md); padding: var(--s-3) var(--s-4); margin-bottom: var(--s-3); }
  .table-wrap.cards td { border: 0; padding: 4px 0; text-align: left; }
  .table-wrap.cards td[data-label]::before { content: attr(data-label); display: inline-block; min-width: 84px; font-size: var(--t-xs); color: var(--c-muted); font-weight: 700; margin-right: 8px; }
  .table-wrap.cards td.hide-m { display: none; }
  .table-wrap.cards .actions { justify-content: flex-start; flex-wrap: wrap; padding-top: var(--s-2); }
  .table-wrap.cards .title-cell, .table-wrap.cards .thumb-cell { min-width: 0; }
}

/* 접기 안내 */
.admin-help summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: 700; font-size: var(--t-sm); }
.stat .value small { font-family: var(--f-body); font-size: var(--t-sm); font-weight: 700; margin-left: 4px; }

/* ===== 로그·설정·통계 (본인) ===== */
.stat .value.value-sm { font-size: var(--t-xl); }
.d-block { display: block; }
.save-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; padding: var(--s-4) var(--s-5); background: #fff; border: var(--border); border-radius: var(--r-md); }
.stats-tabs { max-width: 100%; overflow-x: auto; }
.stats-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dist-row { display: flex; align-items: center; gap: var(--s-3); }
.dist-label { flex: none; width: 72px; font-size: var(--t-sm); }
.dist-num { flex: none; min-width: 96px; text-align: right; font-size: var(--t-sm); font-weight: 700; font-variant-numeric: tabular-nums; }
.pair-bars .pair { flex: 1; display: flex; align-items: flex-end; gap: 3px; height: 100%; }
.pair-bars .pair .bar { flex: 1; }
.pair-bars .bar.free, .legend .key.free { background: var(--c-milk-2); }
.legend { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; color: var(--c-muted); }
.legend .key { width: 14px; height: 14px; border: 1px solid var(--c-line); border-radius: 4px; background: var(--c-pink); display: inline-block; margin-left: 8px; }
.legend .key:first-child { margin-left: 0; }
@media (max-width: 1024px) { .stats-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .stats-cards { grid-template-columns: 1fr; } .dist-label { width: 56px; } .dist-num { min-width: 72px; } }

/* ===== A: 유료 자료·회원 ===== */
.buyer-head { display: flex; align-items: center; gap: var(--s-3); }
.buyer-head .avatar { flex: none; }
.member-bar { gap: var(--s-3); flex-wrap: wrap; padding: var(--s-3) var(--s-4); background: var(--c-milk); border-radius: var(--r-md); }
.refund-reasons { display: flex; flex-direction: column; gap: var(--s-2); }
.refund-reason { align-items: flex-start; padding: var(--s-3) var(--s-4); border: var(--border-soft); border-radius: var(--r-sm); background: #fff; }
.refund-reason:has(input:checked) { border: var(--border); background: var(--c-milk); }
.refund-reason > span { display: flex; flex-direction: column; gap: 2px; }
.refund-reason input { margin-top: 2px; }
.mini-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-2); }
.mini-stats li { display: flex; flex-direction: column; gap: 2px; padding: var(--s-3); background: var(--c-milk); border-radius: var(--r-sm); }
.mini-stats span { font-size: var(--t-xs); color: var(--c-muted); font-weight: 700; }
.mini-stats b { font-family: var(--f-display); font-weight: 700; font-size: var(--t-xl); color: var(--c-plum); }
.date-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.date-pair .field + .field { margin-top: 0; }
.plain-list { margin: 0; padding-left: 1.1em; display: flex; flex-direction: column; gap: 4px; }
.table-wrap.flat { border: 0; border-top: var(--border); border-radius: 0 0 var(--r-md) var(--r-md); }
.table td .ellipsis { display: block; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1024px) { .mini-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .mini-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .date-pair { grid-template-columns: 1fr; }
  .table td .ellipsis { max-width: none; white-space: normal; }
}

/* ===== B: 신고·콘텐츠 ===== */
.report-photos { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.report-photos img, .report-photos .skeleton-thumb { width: 120px; height: 120px; object-fit: cover; border: var(--border); border-radius: var(--r-sm); }
.report-modal-layer { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: var(--s-4); background: rgba(30, 15, 46, .45); overflow-y: auto; }
.report-modal { position: relative; display: block; margin: auto; width: min(600px, 100%); max-height: none; background: #fff; }
.report-modal .modal-head .icon-btn { flex: none; }
.report-modal .dl { grid-template-columns: 96px 1fr; }
.option-card input:disabled + span { opacity: .45; cursor: not-allowed; background: var(--c-milk); }
.comment-item { align-items: flex-start; }
.comment-item .actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.bw-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s-5); align-items: start; }
.bw-boards { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--s-3); padding-left: var(--s-2); }
.bw-boards[hidden] { display: none; }
.files-chips { display: flex; flex-wrap: wrap; gap: 0 var(--s-6); }
.to-paid-form { align-items: flex-end; flex-wrap: wrap; gap: var(--s-3); }
@media (max-width: 1024px) {
  .bw-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .comment-item { flex-direction: column; }
  .comment-item .actions { justify-content: flex-start; }
  .report-modal .dl { grid-template-columns: 1fr; }
}

/* ===== C: 큐레이션·공지 ===== */
.admin-content .pagination span.disabled { opacity: 1; color: var(--c-muted); border-color: var(--c-line); background: var(--c-milk); }
.btn.icon-only { padding: 0; width: 44px; min-width: 44px; justify-content: center; }
.admin-compose { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--s-6); align-items: start; }
.push-preview-wrap { position: sticky; top: 80px; }
.push-preview { display: flex; flex-direction: column; gap: 6px; padding: var(--s-4); background: var(--c-milk); border: var(--border); border-radius: var(--r-md); box-shadow: var(--shadow-1); margin-top: 6px; }
.push-preview .push-app { display: flex; align-items: center; gap: 6px; font-size: var(--t-xs); font-weight: 700; color: var(--c-muted); }
.push-preview strong { color: var(--c-plum); word-break: break-all; }
.push-preview span:last-child { font-size: var(--t-sm); white-space: pre-wrap; word-break: break-all; }
[data-admin-preview-target="out"].is-empty { color: var(--c-muted); font-weight: 400; }
.order-no { display: inline-grid; place-items: center; min-width: 24px; height: 24px; margin-right: 8px; border-radius: 6px; background: var(--c-milk-2); font-size: var(--t-xs); }
.board-table tr.is-editing { background: var(--c-milk); }
.board-edit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--s-3); min-width: 420px; }
.board-edit .field + .field { margin-top: 0; }
.board-toggles { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); align-items: flex-end; }
.board-toggles .toggle { min-height: 48px; gap: var(--s-3); }
.board-toggles .field { width: 120px; }
.rank-no { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--c-line); font-weight: 700; font-size: var(--t-sm); flex: none; }
.rank-no.is-top { background: var(--c-milk-2); color: var(--c-berry); }
.rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); }
.rule-grid .field + .field { margin-top: 0; }
.check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 var(--s-3); }
.check-grid .check { font-size: var(--t-sm); font-weight: 700; }
.poster-thumb { width: 56px; height: 70px; object-fit: cover; border: 1px solid var(--c-line); border-radius: 6px; display: inline-grid; place-items: center; background: var(--c-milk); }
.poster-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4); }
.poster-fields .field + .field { margin-top: 0; }
.poster-drop { min-height: 96px; padding: var(--s-4); }
.toggle-inline { min-height: 44px; justify-content: flex-start; }
.form-row-3 { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr) minmax(0, 1.3fr); gap: var(--s-3); }
.form-row-3 .field + .field { margin-top: 0; }
.toggle-list { display: flex; flex-direction: column; border-top: var(--border-soft); padding-top: var(--s-2); }
.toggle-list .toggle .hint { display: block; font-weight: 400; }
.toggle-list .toggle > span { font-weight: 700; }
.ann-preview { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2); padding: var(--s-5); border: var(--border); border-radius: var(--r-md); background: var(--c-milk); }
.ann-preview.is-banner { background: var(--c-pink); }
.ann-preview strong { font-size: var(--t-lg); color: var(--c-plum); word-break: break-all; }
.ann-preview p { font-size: var(--t-sm); word-break: break-all; }
.order-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); }
.order-item { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); background: #fff; border: var(--border); border-radius: var(--r-md); cursor: grab; }
.order-item:active { cursor: grabbing; box-shadow: var(--shadow-1); }
.drag-handle { color: var(--c-muted); display: inline-flex; }
.order-num { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-plum); color: #fff; font-weight: 700; flex: none; }
.order-main { min-width: 0; }
.order-main .bold { overflow-wrap: anywhere; }
.order-btns { display: inline-flex; gap: 4px; }
.save-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-top: var(--s-4); padding: var(--s-3) var(--s-4); background: #fff; border: var(--border); border-radius: var(--r-md); box-shadow: var(--shadow-1); }
@media (max-width: 1024px) {
  .admin-compose { grid-template-columns: minmax(0, 1fr); }
  .push-preview-wrap { position: static; }
  .order-period { display: none; }
}
@media (max-width: 720px) {
  .board-edit, .poster-fields, .form-row-3, .rule-grid { grid-template-columns: minmax(0, 1fr); min-width: 0; }
  .board-toggles .field { width: 100%; }
  .order-item { flex-wrap: wrap; }
  .order-main { flex: 1 1 calc(100% - 100px); }
  .table-wrap.cards tr.is-editing td[colspan] { display: block; }
}
.admin-chips .chip .chip-count { opacity: 1; } /* 선택 칩 안 숫자 대비 AA */
.curation-top { align-items: start; }
.admin-content fieldset.field { border: 0; padding: 0; margin-left: 0; margin-right: 0; min-width: 0; }
.admin-content fieldset.field > legend { padding: 0; margin-bottom: 6px; }
/* B: 대비 보정(페이지 이동 비활성·선택 칩 숫자) */
.pagination span.disabled { opacity: 1; color: var(--c-muted); border-color: var(--c-line); }
.chip[aria-current="page"] .chip-count { opacity: 1; }
.admin-content fieldset.field { border: 0; padding: 0; margin-left: 0; margin-right: 0; min-width: 0; }
.admin-content fieldset.field > legend { padding: 0; margin-bottom: 6px; }
.btn.btn-icon { min-width: 44px; min-height: 44px; padding: 0; justify-content: center; }
.files-chips { align-items: center; gap: 0 var(--s-3); }
.files-chips .chips-label { font-size: var(--t-sm); font-weight: 700; color: var(--c-muted); margin-bottom: var(--s-4); }
.files-chips .admin-chips + .chips-label { margin-left: var(--s-4); }
.admin-detail > .panel-stack:last-child .dl { grid-template-columns: 96px 1fr; }
.panel-body .toggle + .field { margin-top: var(--s-3); }
