/* ── 요금 · 정책(admin/js/rates) — 메뉴마다 CSS 를 나눈다(I-017). 색은 base.css · admin.css 토큰만 쓴다. ── */
.rates-body { display: grid; gap: 14px; }
.plan-tbl th, .plan-tbl td { vertical-align: middle; }
.plan-tbl td { min-width: 96px; }
.plan-tbl th[scope="row"] { min-width: 150px; white-space: nowrap; }
.plan-tbl tr.off th, .plan-tbl tr.off td { color: var(--dim); }
.plan-act { min-width: 120px; white-space: nowrap; }
.plan-status { display: block; margin-top: 4px; color: var(--sub); font-size: 12px; white-space: normal; }
.plan-status[data-kind="err"] { color: var(--err); font-weight: 700; }
.season-tbl tr.off td { color: var(--dim); }
.season-dialog { width: min(880px, calc(100vw - 24px)); }

/* 기간 종류 색 — 달력 칸과 같은 색 */
.kind-chip { display: inline-block; padding: 0 9px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1.9; background: var(--bg); color: var(--sub); }
.kind-chip.kind-peak, .cal-cell.kind-peak { background: color-mix(in srgb, var(--accent) 12%, var(--panel)); color: var(--accent-d); }
.kind-chip.kind-on, .cal-cell.kind-on { background: color-mix(in srgb, var(--st-doing) 14%, var(--panel)); color: #7A5400; }
.kind-chip.kind-holiday, .cal-cell.kind-holiday { background: color-mix(in srgb, var(--st-closed) 13%, var(--panel)); color: var(--st-closed); }
.kind-chip.kind-custom, .cal-cell.kind-custom { background: color-mix(in srgb, var(--st-tentative) 11%, var(--panel)); color: var(--st-tentative); }

/* 규정 */
.policy-form { gap: 16px; }
.policy-form .panel h2 { display: flex; align-items: center; gap: 8px; }
.policy-form .panel h2 .grow { flex: 1 1 auto; }
.ladder { display: grid; gap: 6px; margin-bottom: 8px; }
.ladder-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; }
.ladder-row .num-in { width: 76px; }
.ladder-text { margin: 8px 0 0; font-size: 13px; }
.peak-box { display: grid; gap: 6px; padding: 12px; border: 1px dashed var(--line); border-radius: var(--r); }
.peak-box[hidden] { display: none; }

/* 달력 미리보기 */
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-head { padding: 6px 0; text-align: center; font-size: 12.5px; font-weight: 700; color: var(--sub); }
.cal-cell { min-height: 78px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); display: grid; align-content: start; gap: 2px; color: var(--ink); }
.cal-cell.empty-cell { border-color: transparent; background: transparent; }
.cal-day { font-size: 12.5px; font-weight: 700; }
.cal-day small { font-weight: 600; font-size: 11px; }
.red .cal-day, .cal-head.red { color: var(--err); }
.blue .cal-day, .cal-head.blue { color: var(--st-tentative); }
.cal-price { font-size: 14px; font-variant-numeric: tabular-nums; color: var(--ink); }
.cal-why { font-size: 11px; color: var(--sub); line-height: 1.35; }
.holiday-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 4px 16px; font-size: 13px; }
.holiday-list li { display: flex; align-items: center; gap: 4px; }
.holiday-list .icon-btn { margin-left: auto; }
@media (max-width: 720px) {
  .cal-cell { min-height: 64px; padding: 4px; }
  .cal-why { display: none; }
  .cal-price { font-size: 12px; }
}
/* 못 고치는 칸(보기 전용 · manager 의 입금 계좌)은 흐리게 — 고칠 수 있는 칸처럼 보이지 않게 */
.rates-body input[disabled] { background: var(--bg); color: var(--sub); cursor: not-allowed; }
/* 추가 옵션(rates/options-tab · 028) */
.opt-tbl td small { display: block; color: var(--sub); font-size: 12px; font-weight: 400; }
.opt-tbl tr.off td { color: var(--dim); }
.opt-rooms { display: flex; flex-wrap: wrap; gap: 6px 16px; }
