.pbbs-booking-app{max-width:900px;margin:30px auto;font-family:inherit;color:#222}
.pbbs-progress{display:flex;gap:8px;overflow:auto;margin-bottom:30px}
.pbbs-step{padding:10px 14px;border-radius:999px;background:#f1f1f1;color:#777;white-space:nowrap;font-size:14px}
.pbbs-step.is-active{background:#000;color:#fff}
.pbbs-panel{background:#fff;padding:28px;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.pbbs-panel h2{margin:0 0 8px;font-size:28px}
.pbbs-panel h3{margin-top:25px}
.pbbs-muted{color:#777}
.pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid,.pbbs-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.pbbs-category,.pbbs-service,.pbbs-option,.pbbs-slot{border:1px solid #ddd;background:#fff;border-radius:12px;padding:16px;text-align:left;cursor:pointer;transition:.2s}
.pbbs-category:hover,.pbbs-service:hover,.pbbs-option:hover,.pbbs-slot:hover,.pbbs-option.is-selected,.pbbs-slot.is-selected{border-color:#000;box-shadow:0 4px 15px rgba(0,0,0,.08)}
.pbbs-category strong,.pbbs-service strong,.pbbs-option strong{display:block;font-size:16px}
.pbbs-category span,.pbbs-service span,.pbbs-service small,.pbbs-option span{display:block;margin-top:6px;color:#777}
.pbbs-field{display:block;margin:18px 0}
.pbbs-field span{display:block;font-weight:600;margin-bottom:7px}
.pbbs-field input,.pbbs-field textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #ccc;border-radius:8px}
.pbbs-primary{margin-top:24px;padding:13px 22px;background:#000;color:#fff;border:0;border-radius:8px;cursor:pointer;font-weight:600}
.pbbs-primary:disabled{opacity:.5;cursor:not-allowed}
.pbbs-back{border:0;background:none;padding:0;margin-bottom:20px;cursor:pointer}
.pbbs-selected-card{padding:16px;border-radius:10px;background:#f8f8f8;margin:20px 0}
.pbbs-selected-card span{display:block;margin-top:6px;color:#666}
.pbbs-addon{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #ddd;border-radius:10px;margin:8px 0;cursor:pointer}
.pbbs-addon span span,.pbbs-addon small{display:block;color:#777;margin-top:3px}
.pbbs-summary>div:first-child{border:1px solid #ddd;border-radius:12px;padding:16px}
.pbbs-summary>div:first-child>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #eee}
.pbbs-summary .pbbs-total{font-size:20px;border-bottom:0}
.pbbs-customer{margin-top:15px;display:flex;flex-direction:column;gap:4px;color:#666}
.pbbs-customer strong{color:#222}
.pbbs-notice{margin-top:20px;padding:14px;background:#fff7df;border-radius:8px;color:#735b00}
.pbbs-message{margin-top:18px;padding:12px;background:#ffe8e8;color:#8a0000;border-radius:8px}
@media(max-width:600px){
 .pbbs-panel{padding:20px;border-radius:12px}
 .pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid,.pbbs-slot-grid{grid-template-columns:1fr}
 .pbbs-progress{margin-bottom:18px}
 .pbbs-step{font-size:12px;padding:8px 10px}
 .pbbs-panel h2{font-size:24px}
}


.pbbs-payment-result {
    max-width: 720px;
    margin: 30px auto;
    padding: 32px;
    border: 1px solid #e6e0d7;
    border-radius: 14px;
    background: #fff;
}
.pbbs-payment-result h2 { margin-top: 0; }
.pbbs-payment-success { text-align: center; }
.pbbs-payment-cancelled { text-align: center; }

.pbbs-gallery-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
.pbbs-gallery-card {
    overflow:hidden;
    border:1px solid #e5e5e5;
    border-radius:14px;
    background:#fff;
}
.pbbs-gallery-card > img,
.pbbs-gallery-placeholder {
    display:block;
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
}
.pbbs-gallery-placeholder {
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f5f1e8;
}
.pbbs-gallery-card-content {
    padding:18px;
}
.pbbs-gallery-card-content h3 {
    margin:0 0 8px;
}
.pbbs-gallery-card-content p {
    margin:0 0 16px;
}
@media (max-width: 800px) {
    .pbbs-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 520px) {
    .pbbs-gallery-grid { grid-template-columns:1fr; }
}


/* v1.3.0 — My Appointment */
.pbbs-manage-card{border:1px solid #e4e4e4;border-radius:14px;padding:20px;background:#fff;margin-top:20px}
.pbbs-manage-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #eee;padding-bottom:16px;margin-bottom:6px}
.pbbs-manage-header strong,.pbbs-manage-header span{display:block}
.pbbs-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.pbbs-manage-grid>div{padding:13px 0;border-bottom:1px solid #f0f0f0}
.pbbs-manage-grid span{display:block;color:#777;font-size:13px;margin-bottom:4px}
.pbbs-manage-total{grid-column:1/-1;font-size:19px}
.pbbs-manage-total span{font-size:14px}
.pbbs-status{padding:7px 11px;border-radius:999px!important;font-size:12px!important;font-weight:700;white-space:nowrap}
.pbbs-status-success{background:#e7f7ed;color:#146c36}
.pbbs-status-warning{background:#fff4d6;color:#765700}
.pbbs-status-danger{background:#fde8e8;color:#8b2020}
.pbbs-status-neutral{background:#eee;color:#555}
.pbbs-manage-addons{display:flex;flex-direction:column;gap:7px;padding-top:15px}
.pbbs-manage-addons span{display:flex;justify-content:space-between;background:#f8f8f8;padding:9px 11px;border-radius:7px}
.pbbs-manage-addons small{color:#777}
.pbbs-manage-section{margin-top:20px;padding:20px;border:1px solid #e5e5e5;border-radius:14px;background:#fafafa}
.pbbs-manage-section h3{margin-top:0}
.pbbs-manage-actions{margin-top:16px}
.pbbs-secondary-danger{padding:12px 18px;border:1px solid #c93a3a;background:#fff;color:#a52222;border-radius:8px;cursor:pointer;font-weight:600}
.pbbs-secondary-danger:disabled{opacity:.55;cursor:not-allowed}
.pbbs-manage-success{margin-top:15px;padding:13px;border-radius:8px;background:#e7f7ed;color:#146c36}
@media(max-width:600px){
 .pbbs-manage-grid{grid-template-columns:1fr}
 .pbbs-manage-total{grid-column:auto}
 .pbbs-manage-header{align-items:flex-start}
 .pbbs-manage-section{padding:16px}
}

/* v2.0.0 — mobile, accessibility and resilient interaction polish */
.pbbs-booking-app button:focus-visible,
.pbbs-booking-app input:focus-visible,
.pbbs-booking-app textarea:focus-visible,
.pbbs-booking-app select:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.pbbs-category,.pbbs-service,.pbbs-option,.pbbs-slot{min-height:48px}
.pbbs-primary[aria-busy="true"]{cursor:wait}
.pbbs-panel[hidden]{display:none!important}
@media(max-width:600px){
 .pbbs-booking-app{margin:16px auto}
 .pbbs-panel{padding:16px}
 .pbbs-primary,.pbbs-secondary-danger{width:100%;min-height:48px}
}
@media(prefers-reduced-motion:reduce){
 .pbbs-booking-app *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
