/* 위아북힐링 예약 달력 — contact 섹션(어두운 sage 배경·흰 글씨) 기준 */
.wc-wrap{max-width:520px;margin:0 auto}
.wc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.wc-title{font-weight:800;font-size:1.15rem}
.wc-nav{background:rgba(255,255,255,.14);border:none;color:#fff;width:36px;height:36px;border-radius:9px;
  font-size:1.3rem;line-height:1;cursor:pointer;transition:.2s}
.wc-nav:hover{background:rgba(255,255,255,.3)}
.wc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.wc-dow{text-align:center;font-size:.78rem;opacity:.7;padding:4px 0;font-weight:600}
.wc-sun{color:#ff9b9b}.wc-sat{color:#9bc0ff}
.wc-empty{aspect-ratio:1/1}
.wc-day{position:relative;aspect-ratio:1/1;display:flex;align-items:flex-start;justify-content:flex-end;
  padding:6px;border-radius:9px;font-size:.85rem;background:rgba(255,255,255,.06);
  border:1px solid transparent}
.wc-num{font-weight:600}
.wc-pending{background:rgba(240,180,40,.28);border-color:rgba(240,180,40,.6)}
.wc-booked{background:rgba(220,72,72,.32);border-color:rgba(220,72,72,.66)}
.wc-today{outline:2px solid rgba(255,255,255,.55);outline-offset:1px}
.wc-past{opacity:.34}
.wc-dot{position:absolute;left:6px;bottom:6px;width:7px;height:7px;border-radius:50%}
.wc-pending .wc-dot{background:#f0b428}
.wc-booked  .wc-dot{background:#dc4848}
.wc-edit{transition:transform .1s}
.wc-click{cursor:pointer;transition:transform .1s,background .15s}
.wc-click:hover{transform:scale(1.07);background:rgba(255,255,255,.14)}
/* 휴무 요일 칸 */
.wc-closed{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);border-style:dashed;opacity:.7}
.wc-leg.wc-closed i{background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.4)}
.wc-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:.85rem;justify-content:center}
.wc-leg{display:flex;align-items:center;gap:7px}
.wc-leg i{width:15px;height:15px;border-radius:4px;display:inline-block}
.wc-leg.wc-avail  i{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.45)}
.wc-leg.wc-pending i{background:#f0b428}
.wc-leg.wc-booked  i{background:#dc4848}
.wc-note{margin-top:16px;font-size:.9rem;opacity:.88;line-height:1.65;text-align:center}
.wc-note b{color:#fff}

/* ── 메모 표시 마커(관리자) ───────────────────────────── */
.wc-memo{position:absolute;left:6px;top:6px;font-size:.72rem;line-height:1;color:#ffe6a6;opacity:.95}

/* ── 관리자 입력·수정·삭제 모달 ───────────────────────── */
.wc-modal-ov{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:rgba(20,30,18,.6);backdrop-filter:blur(2px);padding:18px}
.wc-modal{width:100%;max-width:380px;background:#2f4a2c;border:1px solid rgba(255,255,255,.2);
  border-radius:16px;padding:20px 20px 18px;color:#fff;box-shadow:0 18px 50px rgba(0,0,0,.4)}
.wc-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.wc-modal-date{font-size:1.08rem;font-weight:700}
.wc-modal-date b{color:#ffe6a6;font-weight:700}
.wc-x{background:rgba(255,255,255,.12);border:none;color:#fff;width:30px;height:30px;border-radius:8px;
  font-size:.95rem;cursor:pointer;line-height:1}
.wc-x:hover{background:rgba(255,255,255,.25)}
.wc-modal-label{display:block;font-size:.85rem;opacity:.9;margin:14px 0 8px}
.wc-modal-label small{opacity:.7;font-weight:400}
.wc-st-row{display:flex;gap:8px}
.wc-st-btn{flex:1;padding:11px 6px;border-radius:10px;border:1.5px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);color:#fff;font-size:.86rem;font-weight:600;cursor:pointer;transition:.15s}
.wc-st-btn:hover{background:rgba(255,255,255,.16)}
.wc-st-btn.on{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25) inset}
.wc-st-btn.wc-avail.on{background:rgba(255,255,255,.22)}
.wc-st-btn.wc-pending.on{background:rgba(240,180,40,.42);border-color:#f0b428}
.wc-st-btn.wc-booked.on{background:rgba(220,72,72,.45);border-color:#dc4848}
.wc-note-in{width:100%;border-radius:10px;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.1);color:#fff;font-size:.95rem;padding:10px 12px;resize:vertical;
  font-family:inherit;line-height:1.5}
.wc-note-in::placeholder{color:rgba(255,255,255,.45)}
.wc-modal-btns{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:10px}
.wc-modal-btns-r{display:flex;gap:10px;margin-left:auto}
.wc-del{padding:11px 16px;border-radius:10px;border:1px solid rgba(255,150,150,.5);
  background:rgba(220,72,72,.18);color:#ffc7c7;font-weight:700;font-size:.9rem;cursor:pointer}
.wc-del:hover{background:rgba(220,72,72,.34)}
.wc-cancel{padding:11px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.3);
  background:transparent;color:#fff;font-size:.9rem;cursor:pointer}
.wc-cancel:hover{background:rgba(255,255,255,.12)}
.wc-save{padding:11px 20px;border-radius:10px;border:none;background:#d8b26a;color:#3a2e12;
  font-weight:800;font-size:.92rem;cursor:pointer}
.wc-save:hover{filter:brightness(1.06)}
.wc-save:disabled,.wc-del:disabled{opacity:.5;cursor:default}
.wc-st-row-sm{gap:6px}
.wc-st-row-sm .wc-st-btn{padding:8px 4px;font-size:.8rem}

/* ── 방문자: 날짜 클릭 → 예약가능 시간대 보기 ───────────── */
.wc-vstate{margin-top:6px;padding:14px;border-radius:12px;text-align:center;font-weight:700;font-size:1.02rem;
  border:1px solid rgba(255,255,255,.2)}
.wc-vstate.wc-avail{background:rgba(255,255,255,.1)}
.wc-vstate.wc-pending{background:rgba(240,180,40,.3);border-color:rgba(240,180,40,.6)}
.wc-vstate.wc-booked{background:rgba(220,72,72,.32);border-color:rgba(220,72,72,.66)}
.wc-vempty{margin:8px 0 2px;text-align:center;font-size:1rem;line-height:1.7;opacity:.92}
.wc-vempty b{color:#ffe6a6}
.wc-vslots{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.wc-vslot{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-left:4px solid rgba(255,255,255,.25)}
.wc-vslot.wc-avail{border-left-color:#8fd07a;background:rgba(143,208,122,.12)}
.wc-vslot.wc-pending{border-left-color:#f0b428;background:rgba(240,180,40,.14)}
.wc-vslot.wc-booked{border-left-color:#dc4848;background:rgba(220,72,72,.14);opacity:.85}
.wc-vslot-ico{flex:0 0 auto;font-size:1.35rem;width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:rgba(255,255,255,.08)}
.wc-vslot-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wc-vslot-label{font-size:.8rem;color:#ffe6a6;font-weight:700}
.wc-vslot-time{font-size:1rem;font-weight:600}
.wc-vslot-badge{flex:0 0 auto;font-size:.8rem;font-weight:800;padding:5px 11px;border-radius:999px;white-space:nowrap}
.wc-vslot.wc-avail .wc-vslot-badge{background:rgba(143,208,122,.28);color:#eafbe2}
.wc-vslot.wc-pending .wc-vslot-badge{background:rgba(240,180,40,.4);color:#fff6e2}
.wc-vslot.wc-booked .wc-vslot-badge{background:rgba(220,72,72,.4);color:#ffe3e3}
.wc-vhint{margin:16px 0 2px;font-size:.9rem;line-height:1.6;opacity:.92;text-align:center}
.wc-vhint b{color:#ffe6a6}

/* ── 관리자: 시간대별 상태 편집 줄 ────────────────────── */
.wc-slot-edit{margin-top:9px;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.wc-slot-meta{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.wc-slot-ico2{font-size:1.15rem}
.wc-slot-name{display:flex;flex-direction:column;line-height:1.2}
.wc-slot-name b{font-size:.92rem}
.wc-slot-name small{opacity:.75;font-size:.8rem}

/* ══ 예약가능 요일/시간대 위젯 (schedule.js) ══════════════ */
.ws-wrap{max-width:520px;margin:0 auto}
.ws-days{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}
/* 공통(편집 토글 등) 기본 요일 칩 */
.ws-day{flex:1;min-width:38px;text-align:center;padding:9px 0;border-radius:9px;font-weight:700;
  font-size:.92rem;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.4);user-select:none}
.ws-day.on{background:rgba(216,178,106,.26);border-color:#d8b26a;color:#fff}
.ws-day.ws-sun.on{color:#ffd0d0}.ws-day.ws-sat.on{color:#cfe0ff}
.ws-toggle{cursor:pointer;transition:.15s}
.ws-toggle:hover{filter:brightness(1.12)}

.ws-slots{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ws-slot-label{font-weight:700;color:#ffe6a6;font-size:.9rem}
.ws-slot-time{font-size:.95rem;letter-spacing:.02em}
.ws-note{margin:16px 0 0;font-size:.9rem;opacity:.88;line-height:1.65;text-align:center}

/* ── 방문자 안내(따뜻한 보기 모드) ───────────────────── */
.ws-cap{display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:.92rem;font-weight:700;color:#ffe6a6;letter-spacing:.02em;margin:0 0 14px}
.ws-cap-ico{font-size:1.05rem;filter:saturate(1.1)}

.ws-view .ws-days{gap:8px}
.ws-view .ws-day{display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:11px 0 9px;border-radius:14px;transition:transform .15s}
.ws-view .ws-day b{font-size:1.02rem;font-weight:800;line-height:1}
.ws-day-tick{font-size:.6rem;font-weight:700;font-style:normal;letter-spacing:.02em;
  padding:2px 5px;border-radius:6px;line-height:1;white-space:nowrap}
/* 예약가능한 요일 — 따뜻한 골드 글로우 */
.ws-view .ws-day.on{background:linear-gradient(160deg,rgba(240,205,140,.34),rgba(216,178,106,.22));
  border-color:rgba(240,205,140,.85);color:#fff8ec;
  box-shadow:0 4px 14px rgba(216,178,106,.22),inset 0 1px 0 rgba(255,255,255,.18)}
.ws-view .ws-day.on .ws-day-tick{background:rgba(216,178,106,.95);color:#3a2e12}
.ws-view .ws-day.on:hover{transform:translateY(-2px)}
/* 휴무 요일 — 차갑지 않게, 은은히 쉬는 느낌 */
.ws-view .ws-day.off{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.1);
  border-style:dashed;color:rgba(255,255,255,.42)}
.ws-view .ws-day.off .ws-day-tick.ws-rest{background:rgba(255,255,255,.08);color:rgba(255,255,255,.5)}
.ws-view .ws-day.ws-sun.on{color:#ffe1e1}.ws-view .ws-day.ws-sat.on{color:#e2efff}

/* 시간대 카드 — 시간대별 아이콘 + 골드 라인 */
.ws-view .ws-slots{gap:10px}
.ws-view .ws-slots li{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:14px;
  background:linear-gradient(120deg,rgba(255,255,255,.09),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.13);border-left:4px solid rgba(216,178,106,.85);
  box-shadow:0 3px 12px rgba(0,0,0,.12);transition:transform .15s,box-shadow .15s}
.ws-view .ws-slots li:hover{transform:translateX(3px);box-shadow:0 5px 16px rgba(0,0,0,.18)}
.ws-slot-ico{flex:0 0 auto;font-size:1.5rem;width:40px;height:40px;display:flex;
  align-items:center;justify-content:center;border-radius:11px;
  background:rgba(216,178,106,.16);box-shadow:inset 0 0 0 1px rgba(216,178,106,.3)}
.ws-slot-text{display:flex;flex-direction:column;gap:3px}
.ws-view .ws-slot-label{font-size:.82rem;opacity:.95}
.ws-view .ws-slot-time{font-size:1.04rem;font-weight:600;color:#fff}

.ws-view .ws-note{display:flex;align-items:flex-start;gap:9px;justify-content:center;
  margin-top:20px;padding:13px 16px;border-radius:13px;text-align:left;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  font-size:.9rem;opacity:.95;line-height:1.6}
.ws-note-ico{flex:0 0 auto;font-size:1rem;margin-top:1px}

/* ── 관리자 편집 모드 ─────────────────────────────────── */
.ws-edit .ws-lbl{display:block;font-size:.88rem;opacity:.92;margin-bottom:9px;font-weight:600}
.ws-edit .ws-lbl small{opacity:.7;font-weight:400}
.ws-slot-edit{display:flex;flex-direction:column;gap:8px}
.ws-slot-row{display:flex;gap:8px;align-items:center}
.ws-in{border-radius:9px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);
  color:#fff;font-size:.92rem;padding:9px 11px;font-family:inherit}
.ws-in::placeholder{color:rgba(255,255,255,.45)}
.ws-in-label{flex:0 0 110px;min-width:0}
.ws-in-time{flex:1;min-width:0}
.ws-rm{flex:0 0 auto;width:34px;height:34px;border-radius:8px;cursor:pointer;
  border:1px solid rgba(255,150,150,.45);background:rgba(220,72,72,.16);color:#ffc7c7;font-size:.9rem}
.ws-rm:hover{background:rgba(220,72,72,.32)}
.ws-empty{font-size:.88rem;opacity:.7;margin:0;padding:6px 2px}
.ws-add{margin-top:10px;width:100%;padding:10px;border-radius:9px;cursor:pointer;
  border:1px dashed rgba(255,255,255,.35);background:rgba(255,255,255,.05);color:#fff;
  font-size:.9rem;font-weight:600}
.ws-add:hover{background:rgba(255,255,255,.12)}
.ws-note-in{width:100%;border-radius:10px;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.1);color:#fff;font-size:.93rem;padding:10px 12px;resize:vertical;
  font-family:inherit;line-height:1.5}
.ws-note-in::placeholder{color:rgba(255,255,255,.45)}
.ws-save-row{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}
.ws-save{padding:11px 22px;border-radius:10px;border:none;background:#d8b26a;color:#3a2e12;
  font-weight:800;font-size:.93rem;cursor:pointer}
.ws-save:hover{filter:brightness(1.06)}
.ws-save:disabled{opacity:.5;cursor:default}
.ws-status{font-size:.86rem;opacity:.9}
.ws-status.ok{color:#bfe6b0}.ws-status.err{color:#ffc7c7}
