/* Bookings plugin — structural styles. Colours come from the active theme's tokens. */
.bk-box {
    --bk-primary: var(--color-theme-primary, var(--theme-primary, #4f46e5));
    --bk-on-primary: var(--color-theme-on-primary, var(--theme-on-primary, #fff));
    --bk-text: var(--color-theme-text, var(--theme-text, #18181b));
    --bk-muted: var(--color-theme-muted, var(--theme-text-muted, #71717a));
    --bk-border: var(--color-theme-border, var(--theme-border, #e4e4e7));
    --bk-surface: var(--color-theme-surface, var(--theme-surface, #fff));
    margin-top: 1.5rem; padding: 1.5rem; border: 1px solid var(--bk-border); border-radius: 1rem; background: var(--bk-surface); color: var(--bk-text); font-size: .9375rem;
}
.bk-box * { box-sizing: border-box; }
.bk-account { margin-top: 0; }
.bk-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.bk-head h3 { margin: 0; font-family: var(--font-title, inherit); font-size: 1.25rem; font-weight: 600; }
.bk-muted { margin: .25rem 0 0; color: var(--bk-muted); font-size: .875rem; }
.bk-muted a { color: var(--bk-primary); }
.bk-button { display: inline-flex; align-items: center; padding: .65rem 1.25rem; border: 0; border-radius: 999px; background: var(--bk-primary); color: var(--bk-on-primary); font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.bk-button:disabled { opacity: .6; }
.bk-link { border: 0; background: none; color: var(--bk-muted); font: inherit; cursor: pointer; }
.bk-item { margin-top: 1rem; padding: 1rem; border: 1px solid var(--bk-border); border-radius: .75rem; }
.bk-item ul { margin: .5rem 0 0; padding-left: 1.1rem; font-size: .875rem; }
.bk-page { max-width: 64rem; margin: 2rem auto; padding: 0 1rem; }
.bk-page.bk-box, .bk-page .bk-box { margin-top: 0; }
.bk-services { display: grid; gap: 1rem; margin-top: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.bk-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bk-border); border-radius: 1rem; background: var(--bk-surface); color: inherit; text-decoration: none; }
.bk-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.bk-card-body { display: flex; flex: 1; flex-direction: column; gap: .4rem; padding: 1rem; }
.bk-card-body h3 { margin: 0; font-size: 1.1rem; font-weight: 600; }
.bk-meta { display: flex; flex-wrap: wrap; gap: .4rem .9rem; color: var(--bk-muted); font-size: .85rem; }
.bk-card .bk-button { align-self: flex-start; margin-top: auto; }
.bk-step { margin-top: 1.5rem; }
.bk-step h4 { margin: 0 0 .6rem; font-size: .95rem; font-weight: 600; }
.bk-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.bk-chip { padding: .55rem .9rem; border: 1px solid var(--bk-border); border-radius: .7rem; background: transparent; color: inherit; font: inherit; font-size: .875rem; cursor: pointer; }
.bk-chip small { display: block; color: var(--bk-muted); font-size: .75rem; }
.bk-chip.is-active { border-color: var(--bk-primary); background: var(--bk-primary); color: var(--bk-on-primary); }
.bk-chip.is-active small { color: inherit; opacity: .85; }
.bk-form { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.bk-form label { display: flex; flex-direction: column; gap: .3rem; font-size: .8125rem; font-weight: 600; }
.bk-form .bk-wide { grid-column: 1 / -1; }
.bk-form input, .bk-form textarea, .bk-form select { padding: .6rem .75rem; border: 1px solid var(--bk-border); border-radius: .6rem; background: transparent; color: inherit; font: inherit; font-weight: 400; }
.bk-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; padding: 1rem; border-radius: .8rem; background: rgba(0, 0, 0, .04); font-size: .9rem; }
.bk-error { color: #b91c1c; font-size: .8125rem; font-weight: 400; }
.bk-ok { color: #047857; font-weight: 600; }
.bk-status { padding: .15rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 600; background: rgba(113, 113, 122, .14); }
.bk-status-confirmed { background: rgba(16, 185, 129, .14); color: #047857; }
.bk-status-pending { background: rgba(245, 158, 11, .16); color: #b45309; }
.bk-status-cancelled, .bk-status-no_show { background: rgba(239, 68, 68, .12); color: #b91c1c; }
.bk-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.bk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.bk-page { max-width: 80rem; margin: 2.5rem auto; padding: 0 1rem; }
.bk-plain { border: 0; padding: 0; background: transparent; }
.bk-layout { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 20rem; align-items: start; }
@media (max-width: 900px) { .bk-layout { grid-template-columns: minmax(0, 1fr); } .bk-aside { order: -1; } }
.bk-layout > .bk-box { margin: 0; }
.bk-layout > .bk-box > .bk-step:first-child, .bk-layout > .bk-box > .bk-note:first-child { margin-top: 0; }
.bk-aside { position: sticky; top: 1.5rem; }
.bk-aside-image { display: block; width: calc(100% + 3rem); max-width: none; margin: -1.5rem -1.5rem 1rem; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 1rem 1rem 0 0; }
.bk-aside-title { margin: 0; font-family: var(--font-title, inherit); font-size: 1.25rem; font-weight: 600; }
.bk-facts { display: grid; gap: .5rem; margin: 1rem 0 0; font-size: .875rem; }
.bk-facts div { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .5rem; border-bottom: 1px dashed var(--bk-border); }
.bk-facts dt { color: var(--bk-muted); }
.bk-facts dd { margin: 0; font-weight: 600; text-align: end; }
