@charset "UTF-8";
/* =============================================================================
   진료예약 · 접수 완료 (Booking::reserve · success)
   ========================================================================== */

.reserve-grid { display: grid; gap: var(--sp-40); align-items: start; }
@media (min-width: 1024px) { .reserve-grid { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: var(--sp-48); } }

/* ── 안내 띠 — 예약이 화면에서 확정되지 않는다는 사실을 먼저 알린다
   채색 없이 좌측 선으로만 (채색 블록 예산 ≤3/페이지, 기준 §2) ── */
.notice-strip {
    display: flex; align-items: flex-start; gap: var(--sp-12);
    padding: var(--sp-12) var(--sp-20);
    border-left: 2px solid var(--violet);
    margin-bottom: var(--sp-32);
    font-size: 14px; line-height: var(--lh-body); color: var(--carbon);
}
.notice-strip svg { width: 20px; height: 20px; flex: none; margin-top: 2px; stroke: var(--violet); stroke-width: 1.5; fill: none; }
.notice-strip strong { color: var(--ink); font-weight: var(--fw-medium); }

/* ── 달력 ─────────────────────────────────────────────────────────────── */
.calendar-card { padding: var(--sp-20); }

.calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-16); }
.cal-month { font-size: 17px; font-weight: var(--fw-medium); font-variant-numeric: tabular-nums; }
.cal-nav {
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: var(--r-full);
    color: var(--carbon);
}
.cal-nav:hover { background: var(--mist); color: var(--ink); }
.cal-nav svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.5; fill: none; }
.cal-nav[disabled] { opacity: .3; cursor: not-allowed; }

.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: var(--sp-8); }
.cal-weekdays li { text-align: center; font-size: 12px; color: var(--ash); padding: var(--sp-8) 0; }
.cal-weekdays .is-sun { color: var(--crimson); }
.cal-weekdays .is-sat { color: var(--info-blue); }

.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }

.cal-day {
    display: flex; align-items: center; justify-content: center;
    aspect-ratio: 1 / 1; min-height: 40px;
    border-radius: var(--r-sm);
    font-size: 14px; font-variant-numeric: tabular-nums;
    color: var(--ink);
    transition: background-color .14s var(--ease);
}
.cal-day:hover:not([disabled]) { background: var(--mist); }
.cal-day[disabled] { color: var(--hairline); cursor: not-allowed; }
.cal-day.is-empty { visibility: hidden; }
.cal-day.is-today { box-shadow: var(--violet) 0 0 0 1px inset; }
.cal-day.is-on { background: var(--ink); color: var(--white); font-weight: var(--fw-medium); }
.cal-day.is-sun:not(.is-on):not([disabled]) { color: var(--crimson); }
.cal-day.is-sat:not(.is-on):not([disabled]) { color: var(--info-blue); }

.cal-selected { margin-top: var(--sp-16); padding-top: var(--sp-16); border-top: 1px solid var(--hairline); font-size: 14px; color: var(--carbon); }
.cal-selected strong { color: var(--ink); font-weight: var(--fw-medium); }

/* ── 시간 선택 ────────────────────────────────────────────────────────── */
.time-dropdown { position: relative; }
.time-toggle { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-12); text-align: left; cursor: pointer; }
.time-toggle svg { width: 18px; height: 18px; flex: none; stroke: var(--carbon); stroke-width: 1.5; fill: none; transition: transform .18s var(--ease); }
.time-dropdown.is-open .time-toggle svg { transform: rotate(180deg); }

.time-options {
    position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20;
    max-height: 240px; overflow-y: auto;
    padding: var(--sp-8);
    background: var(--white); border-radius: var(--r-inner);
    box-shadow: var(--sh-card), rgba(40, 30, 93, 0.10) 0 12px 24px -12px;
    display: none;
}
.time-dropdown.is-open .time-options { display: block; }

.time-options li button {
    display: block; width: 100%; text-align: left;
    min-height: 44px; padding: 10px 12px;
    border-radius: var(--r-sm);
    font-size: 15px; font-variant-numeric: tabular-nums;
}
.time-options li button:hover { background: var(--mist); }
.time-options li button.is-on { background: var(--ink); color: var(--white); font-weight: var(--fw-medium); }

/* ── 신청 요약 — card-inner(채색) 대신 헤어라인으로 (기준 §2 채색 블록 예산) ── */
.summary { margin: var(--sp-24) 0; padding-top: var(--sp-20); border-top: 1px solid var(--hairline); }
.summary-label { font-size: 12px; font-weight: var(--fw-medium); letter-spacing: var(--tk-eyebrow-ko); color: var(--ash); margin-bottom: var(--sp-12); }

/* ── 접수 완료 ────────────────────────────────────────────────────────── */
.success-section { padding-top: var(--sp-56); }
.success-box { max-width: 640px; margin: 0 auto; text-align: center; }

/* 채색 대신 선으로만 — 채색 블록 예산(≤3/페이지)에서 "홈으로" 버튼에 자리를 내준다 */
.success-mark {
    display: inline-flex; align-items: center; justify-content: center;
    width: 64px; height: 64px; border-radius: var(--r-full);
    box-shadow: var(--ink) 0 0 0 2px inset; margin-bottom: var(--sp-32);
}
.success-mark svg { width: 30px; height: 30px; stroke: var(--ink); stroke-width: 1.5; fill: none; }

.success-title { font-size: 28px; margin-bottom: var(--sp-16); }
@media (min-width: 768px) { .success-title { font-size: 40px; } }

.success-detail { text-align: left; }
.success-actions { justify-content: center; margin-top: var(--sp-40); }
