/* acms 담당 전용 CSS — 클래스는 .acms- 접두어만 씁니다. 색·간격은 base.css 토큰(var(--…))만. */
.acms { display: flex; flex-direction: column; gap: var(--sp-4); min-width: 0; }
.acms-narrow { max-width: 60rem; }
.acms-lead { color: var(--ink-3); font-size: var(--fs-sm); }
.acms-title { font-size: var(--fs-h4); line-height: 1.4; word-break: keep-all; overflow-wrap: anywhere; }
.acms-kpis { grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); }
.acms-kpis .v { font-size: var(--fs-h3); }
.acms-chips { gap: var(--sp-2); }
.acms-chips .chip { min-height: 2.75rem; }
.acms-chip-n { display: inline-block; min-width: 1.5rem; padding: 0 var(--sp-1); border-radius: var(--r-pill); background: var(--surface-2); color: var(--ink-2); font-size: var(--fs-xs); text-align: center; }
.acms-chips .chip[aria-current="page"] .acms-chip-n { background: var(--surface); color: var(--accent-ink); }
.acms-filter-form { display: flex; flex-direction: column; gap: var(--sp-3); }
.acms-fgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: var(--sp-3) var(--sp-4); }
.acms-fgrid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.acms-fgrid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.acms-span2 { grid-column: span 2; }
.acms-filter .field > label { font-size: var(--fs-sm); }
.acms-filter .input, .acms-filter .select { min-height: 2.75rem; padding-top: var(--sp-2); padding-bottom: var(--sp-2); }
.acms-filter-btns { justify-content: flex-end; }
.acms-result-head { margin-top: var(--sp-1); }
.acms-actions { display: flex; gap: var(--sp-1); align-items: center; flex-wrap: nowrap; }
.acms-inline { display: inline; margin: 0; }
.acms-del { color: var(--danger); }
.acms-del:hover { background: var(--danger-soft); color: var(--danger); }
.acms-td-title { min-width: 14rem; max-width: 28rem; }
.acms-td-title small { display: block; color: var(--ink-3); font-size: var(--fs-xs); margin-top: 2px; font-weight: 400; }
.acms-foot { align-items: center; }
.acms-kv { grid-template-columns: 8rem 1fr; }
.acms-kv dd { overflow-wrap: anywhere; }
.acms-body { line-height: 1.8; overflow-wrap: anywhere; }
.acms-textarea-lg { min-height: 16rem; }
.acms-num-input { max-width: 9rem; }
.acms-section-title { font-size: var(--fs-lg); display: flex; align-items: center; gap: var(--sp-2); }

/* 이미지 칸 */
.acms-img-row { display: flex; gap: var(--sp-4); align-items: flex-start; flex-wrap: wrap; }
.acms-img-preview { width: 12rem; aspect-ratio: 4 / 3; border: 2px dashed var(--line-strong); border-radius: var(--r-sm); background: var(--surface-3); display: grid; place-items: center; overflow: hidden; flex: 0 0 auto; }
.acms-img-preview img { width: 100%; height: 100%; object-fit: cover; }
.acms-img-empty { display: flex; flex-direction: column; align-items: center; gap: var(--sp-1); color: var(--ink-3); font-size: var(--fs-sm); text-align: center; padding: var(--sp-2); }
.acms-img-empty .ic { width: 1.75rem; height: 1.75rem; }
.acms-file { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.acms-file:focus-visible + .acms-file-btn { box-shadow: var(--focus); }
.acms-file-btn { cursor: pointer; align-self: flex-start; }

/* 썸네일·아바타 */
.acms-thumb { width: 4.5rem; aspect-ratio: 4 / 3; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--surface-2); display: grid; place-items: center; overflow: hidden; color: var(--ink-3); }
.acms-thumb img { width: 100%; height: 100%; object-fit: cover; }
.acms-avatar { width: 3rem; height: 3rem; border-radius: 50%; background: var(--accent-soft); color: var(--accent-ink); display: grid; place-items: center; font-weight: 800; overflow: hidden; flex: 0 0 auto; }
.acms-avatar img { width: 100%; height: 100%; object-fit: cover; }
.acms-who { display: flex; gap: var(--sp-3); align-items: center; }
.acms-who small { display: block; color: var(--ink-3); font-size: var(--fs-xs); }

/* 순서 바꾸기 */
.acms-order { display: inline-flex; align-items: center; gap: 2px; }
.acms-order .icon-btn { width: 2.25rem; height: 2.25rem; min-height: 0; }
.acms-order-n { min-width: 1.75rem; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }

/* 콘텐츠 관리 */
.acms-hub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
.acms-hub-card .panel-head h2 .ic { color: var(--accent); }
.acms-hub-nums { display: flex; gap: var(--sp-4); flex-wrap: wrap; padding: var(--sp-3) var(--sp-4) 0; }
.acms-hub-nums div { display: flex; flex-direction: column; }
.acms-hub-nums b { font-size: var(--fs-h4); font-variant-numeric: tabular-nums; }
.acms-hub-nums span { font-size: var(--fs-xs); color: var(--ink-3); }
.acms-hub-list > li { padding: var(--sp-3) var(--sp-4); min-height: 0; }
.acms-hub-list a { color: var(--ink); font-weight: 600; }
.acms-hub-list a:hover { color: var(--accent); }
.acms-hub-foot { display: flex; gap: var(--sp-2); flex-wrap: wrap; padding: var(--sp-3) var(--sp-4) var(--sp-4); }
.acms-hub-ops { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
.acms-hub-op { display: flex; gap: var(--sp-3); align-items: center; padding: var(--sp-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); }
.acms-hub-op:hover { border-color: var(--line-strong); box-shadow: var(--shadow-sm); }
.acms-hub-op .ico-box { flex: 0 0 auto; }
.acms-hub-op small { display: block; color: var(--ink-3); font-size: var(--fs-xs); }

/* 진료 시간 */
.acms-hours .table { min-width: 0; }
.acms-hours td { vertical-align: middle; }
.acms-time-pair { display: flex; align-items: center; gap: var(--sp-1); }
.acms-time-pair .input { width: 9.5rem; min-height: 2.75rem; padding: var(--sp-1) var(--sp-2); }
.acms-hours .input:disabled { opacity: .55; }
.acms-hours .is-closed-row td { background: var(--surface-3); }
.acms-day { font-weight: 800; white-space: nowrap; }
.acms-note-input { min-width: 8rem; min-height: 2.75rem !important; }
.acms-row-err td { padding-top: 0; }
.acms-sched { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--sp-2); }
.acms-sched-day { border: 1px solid var(--line); border-radius: var(--r-sm); padding: var(--sp-2); background: var(--surface); display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
.acms-sched-day.is-closed-row { background: var(--surface-3); }
.acms-sched-day .acms-day { font-size: var(--fs-sm); }
.acms-sched-day .input { min-height: 2.5rem; padding: var(--sp-1) var(--sp-2); font-size: var(--fs-sm); width: 100%; }
.acms-sched-day .check { min-height: 2.5rem; padding: 0; font-size: var(--fs-sm); }
.acms-sched-day .acms-mini { font-size: var(--fs-xs); color: var(--ink-3); }

@media (max-width: 1100px) {
  .acms-sched { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .acms-hub-ops { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .acms-hub { grid-template-columns: 1fr; }
  .acms-fgrid, .acms-fgrid-2, .acms-fgrid-3 { grid-template-columns: 1fr; }
  .acms-span2 { grid-column: auto; }
  .acms-kv { grid-template-columns: 1fr; gap: var(--sp-1); }
  .acms-kv dd { margin-bottom: var(--sp-2); }
  .acms-sched { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .acms-img-preview { width: 100%; max-width: 20rem; }
  /* 표 → 카드 */
  .acms-rt { border: 0; background: transparent; overflow: visible; }
  .acms-rt .table { min-width: 0; }
  .acms-rt thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .acms-rt tbody, .acms-rt tr, .acms-rt td { display: block; width: 100%; }
  .acms-rt tr { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: var(--sp-2) var(--sp-3); margin-bottom: var(--sp-3); }
  .acms-rt td { border: 0; padding: var(--sp-1) 0; display: flex; gap: var(--sp-3); align-items: flex-start; text-align: left; max-width: none; min-width: 0; }
  .acms-rt td.num { text-align: left; }
  .acms-rt td::before { content: attr(data-label); flex: 0 0 5.5rem; color: var(--ink-3); font-size: var(--fs-xs); font-weight: 600; padding-top: 2px; }
  .acms-rt td[data-label=""]::before { display: none; }
  .acms-rt .acms-hide-m { display: none; }
  .acms-rt td > * { min-width: 0; overflow-wrap: anywhere; }
  .acms-rt .acms-time-pair { flex-wrap: wrap; }
  .acms-rt .acms-time-pair .input { width: 6.5rem; }
}
