/* 담당 arsv — 관리자 화면 CSS. 클래스 접두어 .arsv- 만, 색·크기는 var(--토큰)·rem 만(base.css). kit/병렬작업계약.md */

/* 요약 지표 */
.arsv-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); margin: .25rem 0 1rem; }
.arsv-stats .stat .k .ic { color: var(--accent); }
@media (max-width: 1400px) { .arsv-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .arsv-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .arsv-stats .stat .v { font-size: 1.5rem; } }

/* 조회 조건 */
.arsv-filter { padding: 1rem 1.1rem; margin-bottom: 1rem; }
.arsv-filter-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem 1rem; align-items: start; }
.arsv-filter-grid .field > label { font-size: var(--fs-sm); }
.arsv-filter-q { grid-column: span 1; }
.arsv-filter-foot { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .9rem; flex-wrap: wrap; }
@media (max-width: 1280px) { .arsv-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .arsv-filter-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .arsv-filter-q { grid-column: 1 / -1; }
  .arsv-filter-foot .btn { flex: 1 1 0; }
}
.arsv-chips { margin-bottom: 1rem; }
.arsv-chips .chip .num { font-weight: 800; }

/* 표 */
.arsv-table td, .arsv-table th { vertical-align: top; }
.arsv-sub { display: block; font-size: var(--fs-xs); color: var(--ink-3); font-weight: 500; }
.arsv-table .badge + .badge { margin-top: .25rem; }
@media (max-width: 640px) {
  .arsv-hide-m { display: none !important; }
  .arsv-table .td-act .row { flex-wrap: wrap; }
}

/* 상세 2단 */
.arsv-grid { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 1rem; align-items: start; margin-top: 1rem; }
@media (max-width: 1100px) { .arsv-grid { grid-template-columns: minmax(0, 1fr); } }
.arsv-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.5rem; }
.arsv-kv > div { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.arsv-kv dt { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 650; }
.arsv-kv dd { font-weight: 600; color: var(--ink); }
.arsv-kv .arsv-kv-full { grid-column: 1 / -1; }
@media (max-width: 640px) { .arsv-kv { grid-template-columns: minmax(0, 1fr); } }

/* 예약 요약 머리 */
.arsv-res-head { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; padding: .9rem 1.1rem; margin: .25rem 0 1rem; background: var(--surface); border: .0625rem solid var(--line); border-radius: var(--r); }
.arsv-res-head > div:nth-child(2) { flex: 1 1 12rem; min-width: 0; }
.arsv-res-no { font-size: var(--fs-xs); color: var(--ink-3); font-weight: 650; }
.arsv-res-title { font-weight: 750; font-size: var(--fs-lg); }

/* 접종 항목 */
.arsv-vacc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.arsv-vacc li { display: flex; align-items: center; gap: .5rem; padding: .55rem .75rem; border-radius: var(--r-sm); background: var(--surface-3); border: .0625rem solid var(--line); font-size: var(--fs-sm); }
.arsv-vacc li small { margin-left: auto; color: var(--ink-3); font-size: var(--fs-xs); }
.arsv-vacc-ok .ic { color: var(--ok); }
.arsv-vacc-expired .ic { color: var(--danger); }
.arsv-vacc-missing .ic { color: var(--ink-3); }
@media (max-width: 640px) { .arsv-vacc { grid-template-columns: minmax(0, 1fr); } }

/* 처리 이력(점 + 구분선, 세로 막대 없음) */
.arsv-timeline { display: flex; flex-direction: column; }
.arsv-timeline li { display: grid; grid-template-columns: .75rem minmax(0, 1fr); gap: .65rem; padding: .65rem 0; border-bottom: .0625rem solid var(--line); }
.arsv-timeline li:last-child { border-bottom: 0; }
.arsv-tl-dot { width: .625rem; height: .625rem; margin-top: .45rem; border-radius: 50%; background: var(--accent-soft); border: .125rem solid var(--accent); }
.arsv-tl-title { font-weight: 700; font-size: var(--fs-sm); }
.arsv-tl-meta { font-size: var(--fs-xs); color: var(--ink-3); }
.arsv-tl-desc { font-size: var(--fs-sm); color: var(--ink-2); margin-top: .125rem; }
.arsv-memo { padding: .75rem .9rem; border-radius: var(--r-sm); background: var(--surface-3); border: .0625rem solid var(--line); font-size: var(--fs-sm); }
.arsv-memo p + p { margin-top: .25rem; }

/* 시트(확정 처리) */
.arsv-box { padding: .9rem 1rem; border: .0625rem solid var(--line); border-radius: var(--r); background: var(--surface-3); }
.arsv-h3 { font-size: var(--fs-md); margin-bottom: .35rem; }
.arsv-box .sum-list dd .arsv-sub { text-align: right; }
.arsv-fixed { display: flex; align-items: center; gap: .5rem; min-height: var(--tap); padding: 0 .9rem; border-radius: var(--r-sm); background: var(--surface-2); font-weight: 700; }
.arsv-fixed .ic { color: var(--accent); }
.arsv-pick { display: grid; gap: .5rem; }
.arsv-pick-opt { position: relative; display: block; cursor: pointer; }
.arsv-pick-opt input { position: absolute; top: 1rem; left: 1rem; width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--accent); }
.arsv-pick-body { display: flex; flex-direction: column; gap: .3rem; padding: .85rem 1rem .85rem 2.75rem; border: .0938rem solid var(--line-input); border-radius: var(--r-sm); background: var(--surface); transition: border-color var(--t-short) var(--ease), background var(--t-short) var(--ease); }
.arsv-pick-opt:hover .arsv-pick-body { border-color: var(--ink); }
.arsv-pick-opt input:checked + .arsv-pick-body { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 .0625rem var(--accent); }
.arsv-pick-opt input:focus-visible + .arsv-pick-body { box-shadow: var(--focus); }
.arsv-pick-opt input:disabled { cursor: not-allowed; }
.arsv-pick-opt input:disabled + .arsv-pick-body { background: var(--surface-2); color: var(--ink-3); cursor: not-allowed; }
.arsv-pick-note { font-size: var(--fs-xs); color: var(--ink-2); font-weight: 650; }
.arsv-pick-opt.is-full .arsv-pick-note { color: var(--danger); }

/* 출결 입력 */
.arsv-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }
@media (max-width: 560px) { .arsv-two { grid-template-columns: minmax(0, 1fr); } }
.arsv-off { opacity: .55; }
.arsv-check { display: flex; align-items: center; gap: .5rem; font-weight: 650; font-size: var(--fs-sm); color: var(--ok); }
#arsv-att .panel-foot, #arsv-att-edit .panel-foot { flex-wrap: wrap; }

/* 반별 정원 카드 */
.arsv-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .75rem; margin-top: .75rem; }
.arsv-cards:first-child { margin-top: 0; }
.arsv-card { display: flex; flex-direction: column; gap: .5rem; height: 100%; padding: .95rem 1.05rem; border: .0625rem solid var(--line); border-radius: var(--r); background: var(--surface); transition: border-color var(--t-short) var(--ease), box-shadow var(--t-short) var(--ease); }
.arsv-card:hover { border-color: var(--ink-3); box-shadow: var(--shadow); }
.arsv-card.is-on { border-color: var(--accent); background: var(--accent-soft); }
.arsv-card strong { font-size: var(--fs-lg); }
.arsv-card-foot { display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; font-size: var(--fs-sm); color: var(--ink-2); font-weight: 650; }

/* 반 바꾸기 */
.arsv-move { position: relative; }
.arsv-move summary { list-style: none; }
.arsv-move summary::-webkit-details-marker { display: none; }
.arsv-move-form { display: flex; gap: .4rem; align-items: center; margin-top: .4rem; }
.arsv-move-form .select { min-height: 2.35rem; width: auto; min-width: 8rem; }
@media (min-width: 641px) {
  .arsv-move[open] .arsv-move-form { position: absolute; right: 0; top: 100%; z-index: 5; padding: .6rem; background: var(--surface); border: .0625rem solid var(--line); border-radius: var(--r-sm); box-shadow: var(--shadow); }
}
.arsv-tnum { font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.arsv-nw { white-space: nowrap; }
