/* 학생·스쿨 새 예약 팝업 — 독립된 읽기 영역과 고정 제목/닫기. SSOT 4·11절. */
.book-dialog:has([data-book-popup]) { inline-size: min(52rem,calc(100vw - 2rem)); max-block-size: calc(100dvh - 2rem); padding: 0; overflow: hidden; border-radius: var(--sonub-radius-panel); background: var(--sonub-surface); color: var(--sonub-ink); }
.book-dialog [data-book-popup] { display: grid; grid-template-rows: auto minmax(0,1fr) auto; max-block-size: calc(100dvh - 2rem); min-inline-size: 0; }
.book-dialog [data-book-popup] .booking-popup-heading { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: var(--wa-space-s); padding: var(--wa-space-m) var(--wa-space-l); border-block-start: 3px solid var(--sonub-accent); border-block-end: 1px solid var(--sonub-border); }
.book-dialog [data-book-popup] .booking-popup-heading h2 { margin: 0; font-size: calc(1.25rem * var(--wa-font-size-scale,1)); overflow-wrap: anywhere; }
.book-dialog [data-book-popup] .booking-popup-heading button { inline-size: 2.75rem; block-size: 2.75rem; padding: 0; border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); background: var(--sonub-surface); color: var(--sonub-accent); }
.book-dialog [data-book-popup] .booking-popup-heading .notice { grid-column: 1 / -1; }
.book-dialog [data-book-popup] .booking-popup-content { min-block-size: 0; min-inline-size: 0; overflow: auto; overscroll-behavior: contain; padding: var(--wa-space-l); font-size: calc(1rem * var(--wa-font-size-scale,1)); }
.book-dialog [data-book-popup] .booking-popup-content > * + * { margin-block-start: var(--wa-space-m); }
.book-dialog [data-book-popup] .teacher-facts { padding: var(--wa-space-m); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-l); background: var(--sonub-canvas); }
.book-dialog [data-book-popup] .teacher-facts :is(dt,dd) { min-inline-size: 0; margin: 0; padding-block: var(--wa-space-s); overflow-wrap: anywhere; }
.book-dialog [data-book-popup] .teacher-facts dt { color: var(--sonub-muted); }
.book-dialog [data-book-popup] .form { max-inline-size: none; margin: 0; gap: var(--wa-space-m); }
.book-dialog [data-book-popup] fieldset { padding: var(--wa-space-m); border-radius: var(--wa-border-radius-l); }
.book-dialog [data-book-popup] .form-check { min-block-size: 2.75rem; padding: var(--wa-space-s); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); background: var(--wa-color-brand-fill-quiet); line-height: 1.75; overflow-wrap: anywhere; }
.book-dialog [data-book-popup] .form-check input { flex-shrink: 0; }
.book-dialog [data-book-popup] :is(button[data-book-pay],button[data-book-trial]) { min-block-size: 2.75rem; padding: var(--wa-space-s) var(--wa-space-l); background: var(--wa-color-brand-fill-loud); color: var(--wa-color-brand-on-loud); border-radius: var(--wa-border-radius-m); font-size: inherit; }
.book-dialog [data-book-popup] .booking-popup-footer { margin: 0; padding: var(--wa-space-m) var(--wa-space-l); border-block-start: 1px solid var(--sonub-border); }
.book-dialog [data-book-popup] .booking-popup-footer button { min-block-size: 2.75rem; padding-inline: var(--wa-space-m); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); font-size: calc(1rem * var(--wa-font-size-scale,1)); }
.book-dialog [data-book-popup] :is(a,button,summary):focus-visible, .book-dialog [data-book-popup] .booking-popup-content:focus-visible { outline: 2px solid var(--sonub-accent); outline-offset: 2px; }
@media (max-width: 599px) { .book-dialog [data-book-popup] .teacher-facts { grid-template-columns: minmax(0,1fr); gap: 0; } .book-dialog [data-book-popup] .teacher-facts dt { padding-block-end: 0; } .book-dialog [data-book-popup] .teacher-facts dd { padding-block-start: 0; } .book-dialog [data-book-popup] :is(.booking-popup-heading,.booking-popup-content,.booking-popup-footer) { padding-inline: var(--wa-space-m); } }
/* 첫 검수 보완 — 긴 이름을 보존하면서 수업 요약의 세로 여백을 줄인다. */
.book-dialog [data-book-popup] .teacher-facts { row-gap: 0; }
.book-dialog [data-book-popup] .teacher-facts :is(dt,dd) { line-height: 1.6; }
.book-dialog [data-book-popup] .teacher-facts dd { unicode-bidi: plaintext; }
.book-dialog [data-book-popup] [data-book-price] { font-weight: var(--wa-font-weight-semibold); font-size: calc(1.125rem * var(--wa-font-size-scale,1)); color: var(--sonub-accent-ink); }
.book-dialog [data-book-popup] .teacher-facts dd:last-child:not([data-book-price]) { direction: ltr; unicode-bidi: isolate; }
.book-dialog [data-book-popup] .cancel-terms >summary { display: flex; align-items: center; min-block-size: 2.75rem; }
.book-dialog [data-book-popup] .booking-popup-content >p >a { display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: var(--wa-space-s); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); text-decoration: none; overflow-wrap: anywhere; }
@media (max-width: 599px) { .book-dialog [data-book-popup] :is(button[data-book-pay],button[data-book-trial]) { inline-size: 100%; } }

/* 스쿨 명단 — 기존 독립 예약 화면의 검색/선택 동작을 공유한다. */
.book-dialog [data-book-popup='school'] .booking-learner-filter { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: var(--wa-space-s); min-inline-size: 0; margin-block-end: var(--wa-space-m); }
.book-dialog [data-book-popup='school'] .booking-learner-filter label { min-inline-size: 0; font-size: inherit; }
.book-dialog [data-book-popup='school'] .booking-learner-filter input { min-inline-size: 0; inline-size: 100%; min-block-size: 3rem; font-size: inherit; }
.book-dialog [data-book-popup='school'] .booking-learner-reset { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: 0; border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); }
.book-dialog [data-book-popup='school'] .booking-learner-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: max-content; align-content: start; gap: var(--wa-space-s); min-inline-size: 0; max-block-size: min(45dvh,24rem); overflow: auto; overscroll-behavior: contain; padding: var(--wa-space-2xs); }
.book-dialog [data-book-popup='school'] .booking-learner-option { display: grid; grid-auto-rows: max-content; gap: var(--wa-space-s); min-inline-size: 0; }
.book-dialog [data-book-popup='school'] .booking-learner-option .notice { margin: 0; }
.book-dialog [data-book-popup='school'] .form-check { align-items: flex-start; block-size: 100%; background: var(--sonub-surface); }
.book-dialog [data-book-popup='school'] .form-check:has(input:checked) { background: var(--wa-color-brand-fill-quiet); border-color: var(--sonub-accent); }
.book-dialog [data-book-popup='school'] .form-check:has(input:disabled) { color: var(--sonub-muted); border-style: dashed; opacity: 1; }
.book-dialog [data-book-popup='school'] .form-check input { margin-block-start: .35rem; }
.book-dialog [data-book-popup='school'] .booking-learner-copy { min-inline-size: 0; flex: 1; }
.book-dialog [data-book-popup='school'] .booking-learner-copy strong { display: block; margin-block-start: var(--wa-space-xs); color: var(--sonub-accent-ink); }
.book-dialog [data-book-popup='school'] .booking-learner-id { display: flex; flex-wrap: wrap; align-items: center; gap: var(--wa-space-xs); margin-block-start: var(--wa-space-xs); color: var(--sonub-muted); font-size: var(--wa-font-size-s); }
.book-dialog [data-book-popup='school'] .booking-selected-learner { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: var(--wa-space-m); margin: 0; padding: var(--wa-space-m); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); background: var(--wa-color-brand-fill-quiet); }
.book-dialog [data-book-popup='school'] .booking-selected-learner >span:last-child { display: grid; min-inline-size: 0; overflow-wrap: anywhere; }
.book-dialog [data-book-popup='school'] .booking-choice-hint { margin: 0; padding: var(--wa-space-m); border: 1px dashed var(--sonub-border); border-radius: var(--wa-border-radius-m); color: var(--sonub-muted); line-height: 1.75; }
.book-dialog [data-book-popup='school'] .form >p >a { display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: var(--wa-space-s); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); text-decoration: none; }
.book-dialog [data-book-popup='school'] .booking-learner-options:focus-visible { outline: 2px solid var(--sonub-accent); outline-offset: 2px; }
@media (max-width: 599px) { .book-dialog [data-book-popup='school'] .booking-learner-options { grid-template-columns: minmax(0,1fr); } }

/* 스쿨 첫 검수 보완 — 고정 제목에서 학습자 선택으로 바로 이동한다. */
.book-dialog [data-book-popup='school'] .booking-popup-heading:has(.booking-popup-choice-link) { grid-template-columns: minmax(0,1fr) auto auto; }
.book-dialog [data-book-popup='school'] .booking-popup-choice-link { display: inline-flex; align-items: center; justify-content: center; gap: var(--wa-space-s); min-block-size: 2.75rem; padding-inline: var(--wa-space-s); border: 1px solid var(--sonub-border); border-radius: var(--wa-border-radius-m); background: var(--wa-color-brand-fill-quiet); color: var(--sonub-accent); text-decoration: none; font-size: calc(1rem * var(--wa-font-size-scale,1)); }
.book-dialog [data-book-popup='school'] #booking-choice { scroll-margin-block-start: var(--wa-space-m); }
.book-dialog [data-book-popup='school'] .form-check { inline-size: 100%; box-sizing: border-box; }
.book-dialog [data-book-popup='school'] .booking-learner-reset { background: var(--sonub-surface); color: var(--sonub-accent); }
