/* 예약 대장 */
[data-app="reservation-book"]{ display:flex; flex-direction:column; gap:10px; }
[data-app="reservation-book"] p{ margin:0; }
[data-app="reservation-book"] .rb-top{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
[data-app="reservation-book"] .rb-find{ min-height:40px; }
/* 찾기 결과 */
[data-app="reservation-book"] .rb-found{ padding:8px 10px; border:1.5px solid #C9D6F2; border-radius:12px; background:#F7FAFF; }
[data-app="reservation-book"] .rb-fh{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:13px; color:#3B4049; }
[data-app="reservation-book"] .rb-fh .ndt-btn{ margin-left:auto; }
[data-app="reservation-book"] .rb-flist{ list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:4px; max-height:260px; overflow:auto; }
[data-app="reservation-book"] .rb-fgo{ display:block; width:100%; min-height:40px; padding:6px 8px; border:1px solid #E3E5E9; border-radius:9px; background:#fff; color:#1A1A1A; font-size:13.5px; text-align:left; cursor:pointer; overflow-wrap:anywhere; }
[data-app="reservation-book"] .rb-fgo:hover{ border-color:#9DB4E8; }
[data-app="reservation-book"] .rb-fdate{ display:inline-block; min-width:96px; margin-right:6px; font-weight:700; color:#314B86; font-variant-numeric:tabular-nums; }
[data-app="reservation-book"] .rb-fst{ display:inline-block; padding:0 6px; border-radius:6px; font-size:11.5px; font-weight:800; background:#EEF2FA; color:#314B86; }
[data-app="reservation-book"] .rb-fst.st-came{ background:#E5F4EC; color:#0D7A43; }
[data-app="reservation-book"] .rb-fst.st-noshow{ background:#FDECEC; color:#B42318; }
[data-app="reservation-book"] .rb-fst.st-cancel{ background:#EEF0F3; color:#6B717B; }
[data-app="reservation-book"] .rb-fnone{ margin-top:6px; font-size:13px; color:#6B717B; }
/* 설정 */
[data-app="reservation-book"] .rb-set{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px 10px; padding:10px; border:1px solid #E3E5E9; border-radius:12px; background:#FAFAFB; }
[data-app="reservation-book"] .rb-l-shop, [data-app="reservation-book"] .rb-l-msg{ grid-column:1 / -1; }
[data-app="reservation-book"] .rb-l{ display:flex; flex-direction:column; gap:3px; min-width:0; font-size:12.5px; font-weight:700; color:#4B5059; }
[data-app="reservation-book"] .rb-l .ndt-in{ font-weight:400; }
[data-app="reservation-book"] .rb-msgt{ min-height:72px; }
[data-app="reservation-book"] .rb-seg{ display:flex; border:1px solid #D9DCE1; border-radius:9px; overflow:hidden; }
[data-app="reservation-book"] .rb-seg button{ flex:1 1 0; min-height:40px; border:0; background:#fff; color:#3B4049; font-size:13.5px; font-weight:700; cursor:pointer; }
[data-app="reservation-book"] .rb-seg button + button{ border-left:1px solid #D9DCE1; }
[data-app="reservation-book"] .rb-seg button[aria-pressed="true"]{ background:#1A1A1A; color:#fff; }
[data-app="reservation-book"] .rb-warn{ padding:6px 10px; border-radius:8px; background:#FDECEC; color:#9F1C1C; font-size:12.5px; font-weight:700; line-height:1.5; }
/* 두 칸: 넓으면 왼쪽 목록 · 오른쪽 넣기 칸 / 좁으면 목록 → 넣기 칸 */
[data-app="reservation-book"] .rb-main{ display:grid; grid-template-columns:minmax(0,1fr); gap:12px; align-items:start; }
@media (min-width:860px){ [data-app="reservation-book"] .rb-main{ grid-template-columns:minmax(0,1fr) 300px; } [data-app="reservation-book"] .rb-form{ position:sticky; top:10px; } }
[data-app="reservation-book"] .rb-day{ display:flex; flex-direction:column; gap:8px; min-width:0; }
[data-app="reservation-book"] .rb-nav{ display:grid; grid-template-columns:40px minmax(0,1fr) 40px auto; gap:6px; align-items:center; }
[data-app="reservation-book"] .rb-prev, [data-app="reservation-book"] .rb-next{ padding:0; }
[data-app="reservation-book"] .rb-dwrap{ position:relative; display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:0 6px; min-width:0; min-height:40px; padding:4px 6px; border:1px solid #D9DCE1; border-radius:10px; background:#fff; text-align:center; }
[data-app="reservation-book"] .rb-dlabel{ font-size:15px; font-weight:800; white-space:nowrap; }
[data-app="reservation-book"] .rb-drel{ font-size:12.5px; font-weight:700; color:#6B717B; }
[data-app="reservation-book"] .rb-drel.is-today{ color:#1D4ED8; }
/* 달력은 날짜 칸 전체를 덮는 투명 입력 — 눌러서 날짜 고르기 */
[data-app="reservation-book"] .rb-dpick{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; font-size:16px; border:0; }
[data-app="reservation-book"] .rb-dpick::-webkit-calendar-picker-indicator{ position:absolute; inset:0; width:100%; height:100%; cursor:pointer; }
[data-app="reservation-book"] .rb-dwrap:focus-within{ outline:3px solid #93B4F5; outline-offset:2px; }
[data-app="reservation-book"] .rb-sum{ display:flex; flex-wrap:wrap; gap:6px; }
[data-app="reservation-book"] .rb-s{ display:inline-flex; align-items:baseline; gap:5px; padding:5px 10px; border-radius:9px; background:#F4F6F9; font-size:12.5px; color:#4B5059; }
[data-app="reservation-book"] .rb-s i{ font-style:normal; }
[data-app="reservation-book"] .rb-s b{ font-size:15px; color:#1A1A1A; font-variant-numeric:tabular-nums; }
[data-app="reservation-book"] .rb-s.is-wait{ background:#EEF3FE; }
[data-app="reservation-book"] .rb-s.is-wait b{ color:#1D4ED8; }
[data-app="reservation-book"] .rb-s-next{ flex:1 1 100%; background:#FFF8E1; color:#7A5B00; }
[data-app="reservation-book"] .rb-s-next b{ font-size:13.5px; color:#5C4300; }
[data-app="reservation-book"] .rb-exnote{ padding:6px 10px; border-radius:8px; background:#FFF8E1; color:#7A5B00; font-size:12.5px; line-height:1.6; }
[data-app="reservation-book"] .rb-exdel{ min-height:32px; margin-left:2px; padding:0 10px; border:1px solid #E2C766; border-radius:8px; background:#fff; color:#5C4300; font-size:12.5px; font-weight:700; cursor:pointer; }
[data-app="reservation-book"] .rb-jump{ border-color:#1A1A1A; }
@media (min-width:860px){ [data-app="reservation-book"] .rb-jump{ display:none; } }
/* 예약 줄 */
[data-app="reservation-book"] .rb-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
[data-app="reservation-book"] .rb-it{ display:grid; grid-template-columns:58px minmax(0,1fr); grid-template-areas:"time who" "st st" "acts acts"; gap:6px 10px; align-items:start; padding:8px 10px; border:1px solid #E3E5E9; border-left:4px solid #2563EB; border-radius:12px; background:#fff; }
@media (min-width:860px){ [data-app="reservation-book"] .rb-it{ grid-template-columns:58px minmax(0,1fr) auto auto; grid-template-areas:"time who st acts"; align-items:center; } }
[data-app="reservation-book"] .rb-it.st-came{ border-left-color:#0D7A43; background:#FAFDFB; }
[data-app="reservation-book"] .rb-it.st-noshow{ border-left-color:#B42318; background:#FFFBFB; }
[data-app="reservation-book"] .rb-it.st-cancel{ border-left-color:#B9BEC7; background:#F7F8FA; }
[data-app="reservation-book"] .rb-it.st-cancel .rb-name b, [data-app="reservation-book"] .rb-it.st-cancel .rb-time{ text-decoration:line-through; color:#8A8F98; }
[data-app="reservation-book"] .rb-it.is-over{ border-color:#F1B4AE; border-left-color:#B42318; }
[data-app="reservation-book"] .rb-it.is-edit{ outline:2px solid #2563EB; outline-offset:1px; }
[data-app="reservation-book"] .rb-it.rb-flash{ animation:rbFlash 1.3s ease-out; }
@keyframes rbFlash{ 0%{ background:#FFF3C4; } 100%{ background:#fff; } }
[data-app="reservation-book"] .rb-time{ grid-area:time; font-size:17px; font-weight:800; line-height:1.2; font-variant-numeric:tabular-nums; }
[data-app="reservation-book"] .rb-time small{ display:block; margin-top:2px; font-size:11.5px; font-weight:600; color:#8A8F98; }
[data-app="reservation-book"] .rb-who{ grid-area:who; min-width:0; }
[data-app="reservation-book"] .rb-name{ font-size:14.5px; line-height:1.4; overflow-wrap:anywhere; }
[data-app="reservation-book"] .rb-p{ font-weight:700; color:#1D4ED8; white-space:nowrap; }
[data-app="reservation-book"] .rb-ex{ display:inline-block; padding:0 6px; border-radius:6px; background:#FFF1C2; color:#7A5B00; font-size:11px; font-weight:800; vertical-align:1px; }
[data-app="reservation-book"] .rb-ovb{ display:inline-block; padding:0 6px; border-radius:6px; background:#FDECEC; color:#B42318; font-size:11px; font-weight:800; vertical-align:1px; white-space:nowrap; }
[data-app="reservation-book"] .rb-tel{ font-size:13px; color:#4B5059; font-variant-numeric:tabular-nums; }
[data-app="reservation-book"] .rb-tel{ white-space:nowrap; }
[data-app="reservation-book"] .rb-tel a{ color:inherit; text-decoration:none; border-bottom:1px dotted #9AA0A9; }
[data-app="reservation-book"] .rb-memo{ margin-top:2px; font-size:12.5px; color:#7A5B00; overflow-wrap:anywhere; }
[data-app="reservation-book"] .rb-memo::before{ content:"📝 "; }
[data-app="reservation-book"] .rb-stseg{ grid-area:st; display:flex; border:1px solid #D9DCE1; border-radius:9px; overflow:hidden; min-width:0; }
[data-app="reservation-book"] .rb-st{ flex:1 1 0; min-width:0; min-height:34px; padding:0 8px; border:0; background:#fff; color:#4B5059; font-size:12.5px; font-weight:700; cursor:pointer; white-space:nowrap; }
[data-app="reservation-book"] .rb-st + .rb-st{ border-left:1px solid #D9DCE1; }
[data-app="reservation-book"] .rb-st[aria-pressed="true"][data-st="book"]{ background:#2563EB; color:#fff; }
[data-app="reservation-book"] .rb-st[aria-pressed="true"][data-st="came"]{ background:#0D7A43; color:#fff; }
[data-app="reservation-book"] .rb-st[aria-pressed="true"][data-st="noshow"]{ background:#B42318; color:#fff; }
[data-app="reservation-book"] .rb-st[aria-pressed="true"][data-st="cancel"]{ background:#6B717B; color:#fff; }
[data-app="reservation-book"] .rb-acts{ grid-area:acts; display:flex; gap:6px; }
[data-app="reservation-book"] .rb-acts .ndt-btn{ flex:1 1 0; }
@media (min-width:860px){ [data-app="reservation-book"] .rb-acts .ndt-btn{ flex:0 0 auto; } }
[data-app="reservation-book"] .rb-sms{ border-color:#BFD0F5; background:#F3F7FF; color:#1D4ED8; }
[data-app="reservation-book"] .rb-sms.ndt-ok{ border-color:#0D7A43; background:#0D7A43; color:#fff; }
[data-app="reservation-book"] .rb-it textarea.ndt-fb{ grid-column:1 / -1; width:100%; min-height:70px; font-size:13px; }
[data-app="reservation-book"] .rb-none{ padding:14px; border:1.5px dashed #D3D6DC; border-radius:12px; text-align:center; font-size:13px; color:#555B64; }
/* 넣기 칸 */
[data-app="reservation-book"] .rb-form{ display:flex; flex-direction:column; gap:8px; min-width:0; padding:10px; border:1.5px solid #E3E5E9; border-radius:12px; background:#FAFBFC; }
[data-app="reservation-book"] .rb-form.is-edit{ border-color:#2563EB; background:#F7FAFF; }
[data-app="reservation-book"] .rb-fk{ font-size:14px; font-weight:800; overflow-wrap:anywhere; }
[data-app="reservation-book"] .rb-g2{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
[data-app="reservation-book"] .rb-hint{ padding:6px 9px; border-radius:8px; background:#F1F3F6; font-size:12.5px; line-height:1.5; color:#555B64; overflow-wrap:anywhere; }
[data-app="reservation-book"] .rb-hint.is-ok{ background:#E9F6EF; color:#0D6638; }
[data-app="reservation-book"] .rb-hint.is-over{ background:#FDECEC; color:#9F1C1C; font-weight:700; }
[data-app="reservation-book"] .rb-ferr{ font-size:12.5px; font-weight:700; color:#B42318; }
[data-app="reservation-book"] .rb-ferr:empty{ display:none; }
[data-app="reservation-book"] .rb-facts .rb-save{ flex:1 1 140px; }
[data-app="reservation-book"] .rb-tail{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding-top:8px; border-top:1px solid #EEF0F3; }
[data-app="reservation-book"] .rb-msg{ font-size:12.5px; font-weight:700; color:#0D7A43; overflow-wrap:anywhere; }
[data-app="reservation-book"] .rb-msg:empty{ display:none; }
[data-app="reservation-book"] .rb-priv{ flex:1 1 100%; line-height:1.5; }
@media print{
  [data-app="reservation-book"] .rb-top, [data-app="reservation-book"] .rb-found, [data-app="reservation-book"] .rb-set, [data-app="reservation-book"] .rb-form, [data-app="reservation-book"] .rb-exnote,
  [data-app="reservation-book"] .rb-stseg, [data-app="reservation-book"] .rb-acts, [data-app="reservation-book"] .rb-tail, [data-app="reservation-book"] .rb-prev, [data-app="reservation-book"] .rb-next, [data-app="reservation-book"] .rb-today{ display:none !important; }
  [data-app="reservation-book"] .rb-main{ grid-template-columns:1fr !important; }
}
/* 폰 폭: 날짜·시간 칸을 나란히 두면 「2026. 10. (」처럼 잘려 한 줄씩(10/2 점검) */
@media (max-width:420px){ [data-app="reservation-book"] .rb-g2dt{ grid-template-columns:minmax(0,1fr); } }
