/* Cc_Appointments - public booking wizard. Builds on cc-appointments.css tokens; scoped to .cc-booking. */
.cc-appointments.cc-booking { max-width: 760px; margin: 0 auto; }

/* Business header */
.cc-appointments.cc-booking .cc-bk-header { margin-bottom: 1rem; }
.cc-appointments.cc-booking .cc-bk-name { margin: 0 0 .15rem; font-size: 1.5rem; font-weight: 650; letter-spacing: -.01em; }
.cc-appointments.cc-booking .cc-bk-meta { margin: 0; color: var(--cc-muted); font-size: .9rem; }

/* Progress */
.cc-appointments.cc-booking .cc-bk-steps {
    display: flex; gap: .25rem; list-style: none; margin: 0 0 1.25rem; padding: 0;
    counter-reset: step; overflow: hidden;
}
.cc-appointments.cc-booking .cc-bk-steps li {
    flex: 1 1 0; display: flex; align-items: center; gap: .4rem; min-width: 0;
    padding: .45rem .5rem; border-bottom: 2px solid var(--cc-border); color: var(--cc-muted); font-size: .8rem; font-weight: 500;
}
.cc-appointments.cc-booking .cc-bk-step-num {
    flex: 0 0 auto; width: 1.4rem; height: 1.4rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--cc-border); font-size: .75rem;
}
.cc-appointments.cc-booking .cc-bk-step-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-appointments.cc-booking .cc-bk-steps li.is-active { color: rgb(var(--cc-primary-rgb)); border-bottom-color: rgb(var(--cc-primary-rgb)); }
.cc-appointments.cc-booking .cc-bk-steps li.is-active .cc-bk-step-num { background: rgb(var(--cc-primary-rgb)); border-color: rgb(var(--cc-primary-rgb)); color: #fff; }
.cc-appointments.cc-booking .cc-bk-steps li.is-done { color: rgb(var(--cc-fg-rgb)); cursor: pointer; }
.cc-appointments.cc-booking .cc-bk-steps li.is-done .cc-bk-step-num { background: rgba(var(--cc-success-rgb), .15); border-color: rgba(var(--cc-success-rgb), .5); color: rgb(var(--cc-success-rgb)); }

/* Selection summary */
.cc-appointments.cc-booking .cc-bk-summary {
    display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center;
    padding: .55rem .9rem; margin-bottom: 1rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius);
    background: var(--cc-surface-muted); font-size: .875rem;
}
.cc-appointments.cc-booking .cc-bk-summary .cc-bk-sum-item { display: inline-flex; gap: .35rem; align-items: baseline; }
.cc-appointments.cc-booking .cc-bk-summary .cc-bk-sum-label { color: var(--cc-muted); }
.cc-appointments.cc-booking .cc-bk-summary a { font-size: .8rem; margin-left: .15rem; }

/* Panels */
.cc-appointments.cc-booking .cc-bk-title { font-size: 1.1rem; font-weight: 600; margin: 0 0 .75rem; }
.cc-appointments.cc-booking .cc-bk-title-sub { font-weight: 400; color: var(--cc-muted); font-size: .95rem; }
.cc-appointments.cc-booking .cc-bk-note { color: var(--cc-muted); font-size: .85rem; margin: 0 0 .75rem; }
.cc-appointments.cc-booking .cc-bk-empty { color: var(--cc-muted); padding: 1rem 0; }
.cc-appointments.cc-booking .cc-bk-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; }
.cc-appointments.cc-booking .cc-bk-actions .btn { min-width: 8rem; }

/* Services */
.cc-appointments.cc-booking .cc-bk-services { display: flex; flex-direction: column; gap: .5rem; }
.cc-appointments.cc-booking .cc-bk-service {
    display: flex; align-items: center; gap: 1rem; width: 100%; text-align: left;
    padding: .8rem 1rem; border: 1px solid var(--cc-border); border-radius: var(--cc-radius);
    background: var(--bs-body-bg, #fff); color: rgb(var(--cc-fg-rgb)); cursor: pointer;
}
.cc-appointments.cc-booking .cc-bk-service:hover,
.cc-appointments.cc-booking .cc-bk-service:focus-visible { border-color: rgb(var(--cc-primary-rgb)); outline: none; box-shadow: 0 0 0 .2rem rgba(var(--cc-primary-rgb), .15); }
.cc-appointments.cc-booking .cc-bk-service.is-selected { border-color: rgb(var(--cc-primary-rgb)); background: rgba(var(--cc-primary-rgb), .06); }
.cc-appointments.cc-booking .cc-bk-service-main { flex: 1 1 auto; min-width: 0; }
.cc-appointments.cc-booking .cc-bk-service-name { font-weight: 600; }
.cc-appointments.cc-booking .cc-bk-service-desc { color: var(--cc-muted); font-size: .85rem; margin-top: .1rem; }
.cc-appointments.cc-booking .cc-bk-service-side { flex: 0 0 auto; text-align: right; font-size: .875rem; }
.cc-appointments.cc-booking .cc-bk-service-price { font-weight: 600; }
.cc-appointments.cc-booking .cc-bk-service-duration { color: var(--cc-muted); }

/* Calendar */
.cc-appointments.cc-booking .cc-bk-calendar { max-width: 420px; }
.cc-appointments.cc-booking .cc-bk-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.cc-appointments.cc-booking .cc-bk-cal-month { font-weight: 600; }
.cc-appointments.cc-booking .cc-bk-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem; }
.cc-appointments.cc-booking .cc-bk-cal-dow { text-align: center; font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--cc-muted); padding: .25rem 0; }
.cc-appointments.cc-booking .cc-bk-cal-day {
    height: 44px; border-radius: var(--cc-radius); border: 1px solid transparent; background: transparent;
    color: rgb(var(--cc-fg-rgb)); font-size: .95rem; cursor: pointer;
}
.cc-appointments.cc-booking .cc-bk-cal-day:disabled { color: rgba(var(--cc-fg-rgb), .3); cursor: default; }
.cc-appointments.cc-booking .cc-bk-cal-day.is-available { border-color: var(--cc-border); background: var(--cc-surface-muted); font-weight: 600; }
.cc-appointments.cc-booking .cc-bk-cal-day.is-available:hover { border-color: rgb(var(--cc-primary-rgb)); }
.cc-appointments.cc-booking .cc-bk-cal-day.is-today { text-decoration: underline; text-underline-offset: 3px; }
.cc-appointments.cc-booking .cc-bk-cal-day.is-selected { background: rgb(var(--cc-primary-rgb)); border-color: rgb(var(--cc-primary-rgb)); color: #fff; }

/* Times */
.cc-appointments.cc-booking .cc-bk-time-group { margin-bottom: 1rem; }
.cc-appointments.cc-booking .cc-bk-time-group h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--cc-muted); margin: 0 0 .5rem; }
.cc-appointments.cc-booking .cc-bk-time-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: .5rem; }
.cc-appointments.cc-booking .cc-bk-time {
    padding: .6rem .5rem; border-radius: var(--cc-radius); border: 1px solid var(--cc-border);
    background: var(--bs-body-bg, #fff); color: rgb(var(--cc-fg-rgb)); font-weight: 500; cursor: pointer; text-align: center;
}
.cc-appointments.cc-booking .cc-bk-time:hover { border-color: rgb(var(--cc-primary-rgb)); }
.cc-appointments.cc-booking .cc-bk-time.is-selected { background: rgb(var(--cc-primary-rgb)); border-color: rgb(var(--cc-primary-rgb)); color: #fff; }

/* Review / done */
.cc-appointments.cc-booking .cc-bk-review { border: 1px solid var(--cc-border); border-radius: var(--cc-radius); padding: .25rem 1rem; }
.cc-appointments.cc-booking .cc-bk-review-row { display: flex; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--cc-border); font-size: .925rem; }
.cc-appointments.cc-booking .cc-bk-review-row:last-child { border-bottom: 0; }
.cc-appointments.cc-booking .cc-bk-review-label { flex: 0 0 7.5rem; color: var(--cc-muted); }
.cc-appointments.cc-booking .cc-bk-review-value { flex: 1 1 auto; min-width: 0; word-break: break-word; }
.cc-appointments.cc-booking .cc-bk-review-value a { font-size: .8rem; margin-left: .5rem; }
.cc-appointments.cc-booking .cc-bk-done { text-align: center; padding: 1rem 0; }
.cc-appointments.cc-booking .cc-bk-done-mark {
    width: 3rem; height: 3rem; margin: 0 auto .75rem; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: rgba(var(--cc-success-rgb), .15); color: rgb(var(--cc-success-rgb)); font-size: 1.5rem; font-weight: 700;
}
.cc-appointments.cc-booking .cc-bk-code { margin: 1rem 0; }
.cc-appointments.cc-booking .cc-bk-code span { display: block; color: var(--cc-muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; }
.cc-appointments.cc-booking .cc-bk-code strong { font-size: 1.75rem; letter-spacing: .12em; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.cc-appointments.cc-booking .cc-bk-done .cc-bk-review { text-align: left; margin: 1rem 0 1.25rem; }

/* Honeypot: off-screen, not display:none (some bots skip hidden fields) */
.cc-appointments.cc-booking .cc-bk-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 575.98px) {
    .cc-appointments.cc-booking { padding: .9rem 1rem 1.25rem; }
    .cc-appointments.cc-booking .cc-bk-step-label { display: none; }
    .cc-appointments.cc-booking .cc-bk-steps li.is-active .cc-bk-step-label { display: inline; }
    .cc-appointments.cc-booking .cc-bk-service { flex-wrap: wrap; }
    .cc-appointments.cc-booking .cc-bk-service-side { text-align: left; display: flex; gap: .75rem; }
    .cc-appointments.cc-booking .cc-bk-actions { flex-direction: column-reverse; }
    .cc-appointments.cc-booking .cc-bk-actions .btn { width: 100%; }
    .cc-appointments.cc-booking .cc-bk-review-row { flex-direction: column; gap: .15rem; }
    .cc-appointments.cc-booking .cc-bk-review-label { flex-basis: auto; font-size: .8rem; }
}

/* ---- Phase 8: durable confirmation view ---- */
.cc-booking .cc-bk-status { display: inline-block; margin: 0 0 .75rem; padding: .2rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; border: 1px solid var(--cc-border, #ccc); }
.cc-booking .cc-bk-status.is-ok { color: rgb(var(--cc-success-rgb, 25,135,84)); border-color: rgba(var(--cc-success-rgb, 25,135,84), .5); }
.cc-booking .cc-bk-status.is-cancelled { color: rgb(var(--cc-danger-rgb, 220,53,69)); border-color: rgba(var(--cc-danger-rgb, 220,53,69), .5); }
.cc-booking .cc-bk-contact { margin: .75rem 0; font-size: .95rem; }
.cc-booking .cc-bk-contact a { margin-left: .25rem; }
.cc-booking .cc-bk-keep { font-size: .85rem; opacity: .85; }
