/* Calendar and booking cards (client page and professional studio). Scoped to .pcal and #cl-app. */
.pcal { margin-top: 1rem; }
.pcal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.pcal-nav { font: inherit; font-size: 1.4rem; line-height: 1; padding: .3rem .8rem; background: transparent; color: inherit; cursor: pointer;
  border: 1px solid color-mix(in srgb, currentColor 25%, transparent); border-radius: 10px; }
.pcal-week, .pcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; }
.pcal-week { font-size: .8rem; opacity: .65; text-align: center; margin-bottom: .3rem; }
.pcal-day { position: relative; min-height: 2.9rem; font: inherit; color: inherit; background: transparent; cursor: pointer;
  border: 1px solid color-mix(in srgb, currentColor 14%, transparent); border-radius: 10px; padding: .2rem; }
.pcal-day.is-today { border-color: currentColor; }
.pcal-day.has-bookings { background: color-mix(in srgb, #b9955a 18%, transparent); }
.pcal-day.is-selected { background: #4b362e; color: #fff; border-color: #4b362e; }
.pcal-num { font-size: .95rem; }
.pcal-count { position: absolute; right: .25rem; bottom: .2rem; font-size: .7rem; min-width: 1.1rem; height: 1.1rem; line-height: 1.1rem;
  border-radius: 999px; background: #4b362e; color: #fff; }
.pcal-day.is-selected .pcal-count { background: #fff; color: #4b362e; }
.pcal-section { margin-top: 1.6rem; }
.pcal-section h4 { margin: 0 0 .6rem; font-size: 1.05rem; }
.pcal-section summary { cursor: pointer; font-weight: 600; margin-bottom: .6rem; }
.pcal-list { display: grid; gap: .6rem; }
.pcal-empty { opacity: .7; margin: 0; }
.pcal-card { display: grid; gap: .25rem; padding: .9rem 1rem; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 12px; }
.pcal-card strong { font-size: 1rem; }
.pcal-card .pcal-line { font-size: .92rem; opacity: .85; overflow-wrap: anywhere; }
.pcal-chip { justify-self: start; font-size: .78rem; padding: .15rem .6rem; border-radius: 999px; border: 1px solid currentColor; }
.pcal-chip.is-confirmed, .pcal-chip.is-completed { color: #2f6b4f; }
.pcal-chip.is-requested { color: #8a5d0e; }
.pcal-chip.is-declined, .pcal-chip.is-cancelled { color: #7a7a7a; }
.pcal-actions { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .3rem; }
.pcal-actions button { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
#cl-app [hidden], .pcal [hidden] { display: none !important; }
#cl-app .cl-row { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }
button.text-link { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }

/* Tap-to-expand sections (collapsible.js) */
.cx-head { cursor: pointer; align-items: center; }
.cx-toggle { flex: none; width: 2.3rem; height: 2.3rem; font: inherit; font-size: 1rem; line-height: 1; color: inherit; background: transparent; cursor: pointer;
  border: 1px solid color-mix(in srgb, currentColor 25%, transparent); border-radius: 999px; transition: transform .15s ease; }
.is-collapsed .cx-toggle { transform: rotate(-90deg); }
.is-collapsed > :not(.cx-head) { display: none !important; }
.is-collapsed { padding-top: 1rem; padding-bottom: 1rem; }
.is-collapsed .cx-head { margin-bottom: 0; }
@media (prefers-reduced-motion: reduce) { .cx-toggle { transition: none; } }

/* Inspiration photo on a booking card */
.pcal-insp { display: grid; gap: .6rem; margin-top: .4rem; }
.pcal-insp-view { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-start; }
.pcal-insp-img { width: 7.5rem; height: 7.5rem; object-fit: cover; border-radius: 10px; background: color-mix(in srgb, currentColor 8%, transparent); }
.pcal-insp-info { display: grid; gap: .3rem; min-width: 0; flex: 1 1 12rem; }
.pcal-insp-open { justify-self: start; background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
.pcal-insp-form { display: grid; gap: .7rem; padding: .9rem; border: 1px dashed color-mix(in srgb, currentColor 35%, transparent); border-radius: 12px; }
.pcal-insp-form label { display: grid; gap: .3rem; font-size: .92rem; }
.pcal-insp-form input[type="text"], .pcal-insp-form select, .pcal-insp-form input[type="file"] {
  font: inherit; color: inherit; background: transparent; padding: .55rem .7rem; width: 100%; box-sizing: border-box;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent); border-radius: 10px; }
.pcal-insp-form label.pcal-insp-check, .pcal-insp-info label.pcal-insp-check { display: flex; align-items: flex-start; gap: .5rem; }
.pcal-insp [hidden] { display: none !important; }
.pcal-insp-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pcal-insp-row input[type="text"] { flex: 1 1 12rem; font: inherit; color: inherit; background: transparent; padding: .5rem .7rem; box-sizing: border-box;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent); border-radius: 10px; }
