/* acfg 담당 CSS — 클래스 접두어 .acfg- 만. 토큰은 base.css :root(var(--…))만. 관리자 화면 틀이 자동으로 불러온다.
   화면: 견적 단가 관리 · 서비스 지역 관리 · 통계 · 매출 통계 · 서비스 기본 설정 · 관리자 비밀번호 재설정 */

/* ── 공통 ─────────────────────────── */
.acfg-meta { display: inline-flex; align-items: center; gap: .375rem; font-size: var(--fs-sm); color: var(--ink-3); flex-wrap: wrap; }
.acfg-w { width: 13.75rem; max-width: 100%; }
.acfg-sub { display: block; font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; margin-top: .125rem; }
.acfg-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; margin-top: 1rem; padding: .9rem 1.1rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); position: sticky; bottom: 0; z-index: 5; box-shadow: var(--shadow-sm); }
.acfg-actions p { display: inline-flex; align-items: center; gap: .375rem; }
.acfg-pair { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.acfg-pair .input { width: 10rem; min-height: 2.75rem; }
.acfg-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.acfg-kpis-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.acfg-kpis .stat .d { display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }
.acfg-money { font-size: 1.6rem; }
.acfg-two { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1rem; }
.acfg-h3 { font-size: var(--fs-md); display: flex; align-items: center; gap: .375rem; flex-wrap: wrap; margin-bottom: .6rem; }
.acfg-h3 .ic { color: var(--accent); }
.acfg-kv { gap: .4rem 1rem; }
.acfg-danger { color: var(--danger); }
.acfg-danger:hover { background: var(--danger-soft); color: var(--danger); }
.acfg-inline { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.acfg-sort { min-height: 2.6rem; width: auto; }
@media (max-width: 1280px) { .acfg-kpis-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .acfg-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .acfg-two { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 420px) { .acfg-kpis, .acfg-kpis-5 { grid-template-columns: minmax(0, 1fr); } .acfg-pair .input { width: 100%; flex: 1 1 8rem; } }

/* 조회 조건 */
.acfg-filter { padding: .25rem 1.1rem; }
.acfg-frow { display: flex; align-items: center; gap: .75rem 1rem; flex-wrap: wrap; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.acfg-filter form > .acfg-frow:last-child, .acfg-filter > .acfg-frow:last-child { border-bottom: 0; }
.acfg-filter .field-err { padding: 0 0 .5rem; }
.acfg-flabel { font-weight: 700; color: var(--ink-2); min-width: 5.5rem; }
.acfg-fform .select { width: auto; min-width: 10rem; min-height: 2.75rem; }
.acfg-fform .btn-row { margin-left: auto; }
.acfg-search { width: 16rem; max-width: 100%; min-height: 2.75rem; }
.acfg-period { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.acfg-chip-sm { min-height: 2.75rem; padding: 0 .9rem; font-size: var(--fs-sm); }
.acfg-cnt { font-weight: 600; opacity: .8; }
@media (max-width: 760px) {
  .acfg-fform .select, .acfg-search { flex: 1 1 100%; width: 100%; }
  .acfg-fform .btn-row { margin-left: 0; width: 100%; }
  .acfg-fform .btn-row .btn { flex: 1; }
}

/* ── 견적 단가 관리 ─────────────────── */
.acfg-pgrid { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 1rem; align-items: start; }
.acfg-pside { display: flex; flex-direction: column; min-width: 0; }
.acfg-sticky { position: sticky; top: 4.5rem; }
.acfg-band-table { min-width: 34rem; }
.acfg-band-table th label { font-weight: 650; }
.acfg-band-table .field-err { margin-top: .375rem; }
.acfg-prows > .acfg-prow { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: .5rem 1rem; align-items: center; padding: .8rem 1.1rem; border-bottom: 1px solid var(--line); }
.acfg-prows > .acfg-prow:last-child { border-bottom: 0; }
.acfg-plabel label { font-weight: 650; }
.acfg-plabel small { display: block; font-size: var(--fs-xs); color: var(--ink-3); margin-top: .125rem; }
.acfg-pfield { display: flex; align-items: center; gap: .5rem 1rem; flex-wrap: wrap; }
.acfg-pfield .field-err { flex-basis: 100%; }
.acfg-sw { min-height: 2.75rem; }
.acfg-pv-list { display: flex; flex-direction: column; gap: .75rem; }
.acfg-pv { border: 1px solid var(--line); border-radius: var(--r-sm); padding: .75rem .85rem; background: var(--surface-3); }
.acfg-pv-title { display: flex; align-items: center; gap: .375rem; font-weight: 750; margin-bottom: .4rem; }
.acfg-pv-title .ic { color: var(--accent); }
.acfg-pv-row { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .125rem .5rem; padding: .25rem 0; align-items: baseline; }
.acfg-pv-day { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 650; }
.acfg-pv-val b { font-weight: 800; color: var(--ink); }
.acfg-pv-val small { display: block; font-size: var(--fs-xs); color: var(--ink-3); }
.acfg-pv-diff { grid-column: 2; }
.acfg-pv-diff .badge { white-space: normal; }
.acfg-pv-more { margin-top: .25rem; font-size: var(--fs-sm); }
.acfg-pv-more summary { cursor: pointer; color: var(--accent-ink); font-weight: 650; min-height: 2.75rem; display: flex; align-items: center; }
.acfg-pv-more .qlines { width: 100%; }
.acfg-pv-more .qlines th, .acfg-pv-more .qlines td { padding: .25rem 0; font-size: var(--fs-xs); text-align: left; font-weight: 500; }
.acfg-pv-more .qlines td { text-align: right; }
.acfg-pv-more .qlines tfoot th, .acfg-pv-more .qlines tfoot td { font-weight: 750; border-top: 1px solid var(--line); }
[data-acfg-preview][aria-busy="true"] { opacity: .6; }
.acfg-logs li { padding: .7rem 1.1rem; border-bottom: 1px solid var(--line); }
.acfg-logs li:last-child { border-bottom: 0; }
.acfg-log-detail { color: var(--ink-2); margin-top: .125rem; word-break: keep-all; overflow-wrap: anywhere; }
@media (max-width: 1200px) { .acfg-pgrid { grid-template-columns: minmax(0, 1fr); } .acfg-sticky { position: static; } }
@media (max-width: 760px) { .acfg-prows > .acfg-prow { grid-template-columns: minmax(0, 1fr); } }

/* ── 서비스 지역 관리 ─────────────────── */
.acfg-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.acfg-form-grid .acfg-span { grid-column: 1 / -1; }
.acfg-form-grid .seg-radio { max-width: 22rem; }
.acfg-area-table { min-width: 0; }
.acfg-row-acts { display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }
.acfg-row-acts form { display: inline; }
@media (max-width: 1100px) { .acfg-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .acfg-form-grid { grid-template-columns: minmax(0, 1fr); }
  .acfg-hide-m { display: none; }
  .acfg-area-table th, .acfg-area-table td { padding: .6rem .5rem; }
}

/* ── 통계·매출 통계 ─────────────────── */
.acfg-chart { margin: 0; }
.acfg-chart-box { position: relative; }
.acfg-chart-svg { display: block; width: 100%; height: 13rem; }
.acfg-chart-grid { stroke: var(--line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.acfg-chart-axis { stroke: var(--line-strong); stroke-width: 1; vector-effect: non-scaling-stroke; }
.acfg-bar-a { fill: var(--accent); }
.acfg-bar-b { fill: var(--warm); }
.acfg-bar-a:hover, .acfg-bar-b:hover { opacity: .8; }
.acfg-chart-x { display: grid; margin-top: .25rem; font-size: var(--fs-xs); color: var(--ink-3); text-align: center; font-variant-numeric: tabular-nums; }
.acfg-chart-x span { overflow: visible; white-space: nowrap; }
.acfg-legend { display: flex; gap: .5rem 1rem; flex-wrap: wrap; font-size: var(--fs-sm); margin-bottom: .6rem; }
.acfg-legend li { display: inline-flex; align-items: center; gap: .375rem; }
.acfg-key { width: .75rem; height: .75rem; border-radius: .2rem; display: inline-block; }
.acfg-key-a { background: var(--accent); }
.acfg-key-b { background: var(--warm); }
.acfg-ratio { display: flex; flex-direction: column; gap: .75rem; }
.acfg-ratio-row { display: flex; justify-content: space-between; gap: .75rem; font-size: var(--fs-sm); }
.acfg-ratio-row b { font-weight: 700; white-space: nowrap; }
.acfg-ratio-bar { display: block; height: .5rem; border-radius: .25rem; background: var(--surface-2); overflow: hidden; margin-top: .3rem; }
.acfg-ratio-bar > span { display: block; height: 100%; background: var(--accent); border-radius: .25rem; }
.acfg-minmax { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: 1rem; }
.acfg-minmax > div { padding: .6rem .75rem; border-radius: var(--r-sm); background: var(--surface-3); border: 1px solid var(--line); font-size: var(--fs-sm); }
.acfg-minmax dt { color: var(--ink-3); font-size: var(--fs-xs); font-weight: 650; }
.acfg-quick { grid-template-columns: 1fr 1fr; }
.acfg-stat-table { min-width: 0; }
.acfg-total th, .acfg-total td { font-weight: 800; background: var(--surface-3); border-top: 1px solid var(--line-strong); }
.acfg-stat-table tfoot th, .acfg-stat-table tfoot td { border-bottom: 0; }
@media (max-width: 760px) {
  .acfg-minmax { grid-template-columns: minmax(0, 1fr); }
  .acfg-quick { grid-template-columns: minmax(0, 1fr); }
  .acfg-chart-svg { height: 10rem; }
  /* 표 → 세로 카드 */
  .acfg-stat-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .acfg-stat-table, .acfg-stat-table tbody, .acfg-stat-table tfoot, .acfg-stat-table tr, .acfg-stat-table th, .acfg-stat-table td { display: block; width: 100%; }
  .acfg-stat-table tr { border-bottom: 1px solid var(--line); padding: .5rem 0; }
  .acfg-stat-table th, .acfg-stat-table td { border-bottom: 0; padding: .25rem 1rem; }
  .acfg-stat-table td[data-label] { display: flex; justify-content: space-between; gap: 1rem; text-align: right; }
  .acfg-stat-table td[data-label]::before { content: attr(data-label); color: var(--ink-3); font-weight: 600; text-align: left; }
}

/* ── 서비스 기본 설정 ─────────────────── */
.acfg-sgrid { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1rem; align-items: start; }
.acfg-sside { display: flex; flex-direction: column; gap: 1rem; min-width: 0; position: sticky; top: 4.5rem; }
.acfg-srows > .acfg-srow { display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); gap: .5rem 1rem; align-items: start; padding: .8rem 1.1rem; border-bottom: 1px solid var(--line); }
.acfg-srows > .acfg-srow:last-child { border-bottom: 0; }
.acfg-slabel { padding-top: .6rem; }
.acfg-slabel label, .acfg-slabel .label { font-weight: 650; }
.acfg-slabel small { display: block; font-size: var(--fs-xs); color: var(--ink-3); margin-top: .125rem; }
.acfg-sfield { display: flex; flex-direction: column; gap: .375rem; min-width: 0; }
.acfg-sfield > .input { max-width: 26rem; }
.acfg-sfield .input-unit .input { padding-right: 5.5rem; }
.acfg-sfield .acfg-w { width: 15rem; }
.acfg-rchips { display: flex; flex-wrap: wrap; gap: .5rem; }
.acfg-rchip { display: inline-flex; align-items: center; gap: .125rem; min-height: 2.75rem; padding: 0 .25rem 0 .9rem; border-radius: var(--r-pill); background: var(--accent-soft); color: var(--accent-ink); font-weight: 650; }
.acfg-rchip-x { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; color: var(--accent-ink); }
.acfg-rchip-x:hover { background: var(--surface); }
.acfg-addrow { max-width: 32rem; }
.acfg-slots { display: flex; flex-direction: column; gap: .5rem; }
.acfg-sum > div { display: flex; justify-content: space-between; gap: .75rem; padding: .6rem 1.1rem; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.acfg-sum > div:last-child { border-bottom: 0; }
.acfg-sum dt { color: var(--ink-3); flex: 0 0 auto; }
.acfg-sum dd { font-weight: 700; text-align: right; }
.acfg-rel a { display: flex; align-items: center; gap: .75rem; min-height: 3.4rem; padding: .5rem 1.1rem; border-bottom: 1px solid var(--line); }
.acfg-rel li:last-child a { border-bottom: 0; }
.acfg-rel a:hover { background: var(--surface-3); }
.acfg-rel a > span:first-child { flex: 1; }
.acfg-rel b { display: block; }
.acfg-rel small { display: block; font-size: var(--fs-xs); color: var(--ink-3); }
@media (max-width: 1200px) { .acfg-sgrid { grid-template-columns: minmax(0, 1fr); } .acfg-sside { position: static; } }
@media (max-width: 760px) { .acfg-srows > .acfg-srow { grid-template-columns: minmax(0, 1fr); } .acfg-slabel { padding-top: 0; } }

/* ── 관리자 비밀번호 재설정 ───────────── */
.acfg-sent { margin-top: 1rem; }
.acfg-demo-link { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid var(--line); font-size: var(--fs-sm); }
.acfg-demo-link .badge { margin-right: .25rem; }
.acfg-token-bad { text-align: center; }
.acfg-token-bad .ico-box { width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem; background: var(--warn-soft); color: var(--warn); }
.acfg-token-bad h1 { font-size: 1.5rem; }
.acfg-sfield > .btn { align-self: flex-start; }
