.e15ab-booking{--e15ab-accent:#2563eb;--e15ab-border:#dbe2ea;--e15ab-text:#172033;--e15ab-muted:#64748b;width:100%;max-width:var(--e15ab-max-width,860px);margin:0 auto;padding:clamp(20px,4vw,40px);border:1px solid var(--e15ab-border);border-radius:18px;background:#fff;color:var(--e15ab-text);box-shadow:0 18px 50px rgba(15,23,42,.08);font-family:inherit}.e15ab-booking *,.e15ab-booking *:before,.e15ab-booking *:after,.e15ab-portal *,.e15ab-portal *:before,.e15ab-portal *:after{box-sizing:border-box}.e15ab-title{margin:0 0 24px;font-size:clamp(26px,4vw,40px);line-height:1.15}.e15ab-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 30px}.e15ab-progress span{padding-top:12px;border-top:4px solid #e2e8f0;color:var(--e15ab-muted);font-size:13px;font-weight:700}.e15ab-progress span.is-active{border-color:var(--e15ab-accent);color:var(--e15ab-text)}.e15ab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.e15ab-layout-compact .e15ab-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.e15ab-field{margin-bottom:20px}.e15ab-field label,.e15ab-label,.e15ab-payment-methods legend{display:block;margin:0 0 8px;color:var(--e15ab-text);font-size:14px;font-weight:700}.e15ab-field input,.e15ab-field select,.e15ab-field textarea,.e15ab-portal-form input,.e15ab-portal-form select,.e15ab-staff-appointment select{width:100%;min-height:48px;padding:10px 13px;border:1px solid var(--e15ab-border);border-radius:10px;background:#fff;color:var(--e15ab-text);font:inherit;line-height:1.4}.e15ab-readonly{min-height:48px;padding:12px 13px;border:1px solid var(--e15ab-border);border-radius:10px;background:#f8fafc}.e15ab-field textarea{min-height:110px;resize:vertical}.e15ab-field input:focus,.e15ab-field select:focus,.e15ab-field textarea:focus,.e15ab-portal input:focus,.e15ab-portal select:focus{outline:3px solid rgba(37,99,235,.18);border-color:var(--e15ab-accent)}.e15ab-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:10px;min-height:56px}.e15ab-slot{padding:11px 12px;border:1px solid var(--e15ab-border);border-radius:10px;background:#fff;color:var(--e15ab-text);cursor:pointer;text-align:center;font:inherit}.e15ab-slot strong,.e15ab-slot small{display:block}.e15ab-slot small{margin-top:2px;color:var(--e15ab-muted);font-size:11px}.e15ab-slot:hover,.e15ab-slot:focus,.e15ab-slot.is-selected{border-color:var(--e15ab-accent);outline:none;box-shadow:0 0 0 2px rgba(37,99,235,.16)}.e15ab-slot.is-selected{background:var(--e15ab-accent);color:#fff}.e15ab-slot.is-selected small{color:rgba(255,255,255,.82)}.e15ab-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:10px 22px;border:1px solid var(--e15ab-accent);border-radius:10px;background:var(--e15ab-accent);color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}.e15ab-button:hover,.e15ab-button:focus{filter:brightness(.94);color:#fff;outline:3px solid rgba(37,99,235,.18)}.e15ab-button:disabled{opacity:.65;cursor:wait}.e15ab-button-secondary{background:#fff;color:var(--e15ab-accent)}.e15ab-danger{background:#b91c1c;border-color:#b91c1c}.e15ab-actions,.e15ab-card-actions{display:flex;justify-content:space-between;gap:12px}.e15ab-consent{display:flex;align-items:flex-start;gap:10px;margin:0 0 24px;font-size:14px}.e15ab-consent input{margin-top:3px}.e15ab-payment-methods{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 20px;padding:15px;border:1px solid var(--e15ab-border);border-radius:10px}.e15ab-payment-methods legend{padding:0 5px}.e15ab-payment-methods label{display:flex;gap:7px;align-items:center}.e15ab-alert{margin:0 0 20px;padding:13px 15px;border-radius:10px;background:#fff1f2;color:#9f1239;border:1px solid #fecdd3}.e15ab-alert.is-success,.e15ab-portal-notice{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.e15ab-muted{grid-column:1/-1;margin:0;color:var(--e15ab-muted)}.e15ab-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.e15ab-success{text-align:center;padding:24px 0 4px}.e15ab-success-icon{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 18px;border-radius:50%;background:#dcfce7;color:#15803d;font-size:38px;font-weight:800}.e15ab-success h3{margin:0 0 10px;font-size:28px}.e15ab-portal{max-width:960px;margin:0 auto;color:#172033}.e15ab-portal-notice{padding:12px 15px;margin:0 0 18px;border-radius:10px}.e15ab-portal-form{display:grid;gap:14px;max-width:620px}.e15ab-portal-form label{display:grid;gap:6px;font-weight:600}.e15ab-appointment-card,.e15ab-staff-appointment{display:grid;grid-template-columns:1fr auto;gap:18px;margin:0 0 14px;padding:18px;border:1px solid #dbe2ea;border-radius:12px;background:#fff}.e15ab-appointment-card>div,.e15ab-staff-appointment{display:grid;gap:5px}.e15ab-card-actions{grid-column:1/-1;justify-content:flex-start}.e15ab-status{display:inline-block;padding:4px 8px;border-radius:99px;background:#f0f0f1;font-size:12px;font-weight:700}.e15ab-status-confirmed,.e15ab-status-completed{background:#dcfce7;color:#166534}.e15ab-status-pending,.e15ab-status-pending_payment{background:#fef3c7;color:#92400e}.e15ab-status-cancelled,.e15ab-status-rejected,.e15ab-status-no_show,.e15ab-status-payment_failed{background:#fee2e2;color:#991b1b}.e15ab-staff-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.e15ab-staff-appointment{grid-template-columns:1fr}.e15ab-staff-appointment form{display:flex;gap:8px}.e15ab-staff-appointment form select{min-height:42px}.e15ab-staff-appointment form .e15ab-button{min-height:42px}.e15ab-manage-link{font-weight:700}@media(max-width:900px){.e15ab-layout-compact .e15ab-grid{grid-template-columns:repeat(2,1fr)}.e15ab-staff-grid{grid-template-columns:1fr}}@media(max-width:700px){.e15ab-booking{border-radius:12px;padding:20px}.e15ab-grid,.e15ab-layout-compact .e15ab-grid{grid-template-columns:1fr;gap:0}.e15ab-progress span{font-size:11px}.e15ab-actions{flex-direction:column-reverse}.e15ab-button{width:100%}.e15ab-appointment-card{grid-template-columns:1fr}.e15ab-staff-appointment form{flex-direction:column}.e15ab-card-actions{flex-direction:column}}

/* Version 1.2 advanced booking components */
.e15ab-field-help{display:block;margin-top:6px;color:var(--e15ab-muted,#64748b);font-size:12px}.e15ab-extras{display:grid;gap:10px}.e15ab-extra{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:10px;background:#f8fafc}.e15ab-extra label{display:flex;gap:9px;align-items:flex-start;margin:0;font-weight:600}.e15ab-extra input[type=number]{width:76px;min-height:40px}.e15ab-recurring{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:12px;background:#f8fafc}.e15ab-cart,.e15ab-waiting-panel{margin:18px 0;padding:16px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:12px;background:#f8fafc}.e15ab-cart h3,.e15ab-waiting-panel h3{margin:0 0 12px}.e15ab-cart-items{display:grid;gap:9px}.e15ab-cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#fff}.e15ab-cart-item small{display:block;color:var(--e15ab-muted,#64748b)}.e15ab-cart-remove{border:0;background:transparent;color:#b91c1c;cursor:pointer;font-weight:700}.e15ab-directory{display:grid;gap:24px}.e15ab-columns-1{grid-template-columns:1fr}.e15ab-columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.e15ab-columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.e15ab-columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}.e15ab-directory-card{display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid #dbe2ea;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.06)}.e15ab-directory-card h3,.e15ab-directory-card p{margin:0}.e15ab-directory-card .e15ab-button{margin-top:auto}.e15ab-directory-icon,.e15ab-avatar{display:grid;place-items:center;width:54px;height:54px;border-radius:14px;background:#eff6ff;color:var(--e15ab-accent,#2563eb);font-size:24px;font-weight:800}.e15ab-avatar{border-radius:50%}.e15ab-card-meta{display:flex;justify-content:space-between;gap:12px}.e15ab-rating{color:#f59e0b;font-weight:700;letter-spacing:1px}.e15ab-rating span{color:#475569;letter-spacing:0;font-weight:500}.e15ab-package-price{font-size:28px;font-weight:800}.e15ab-tool{max-width:680px;padding:22px;border:1px solid #dbe2ea;border-radius:14px;background:#fff}.e15ab-inline-form{display:flex;gap:10px}.e15ab-inline-form input{flex:1;min-height:48px;padding:10px 13px;border:1px solid #dbe2ea;border-radius:10px}.e15ab-tool-result{margin:12px 0 0}.e15ab-reviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.e15ab-review{margin:0;padding:22px;border:1px solid #dbe2ea;border-radius:14px;background:#fff}.e15ab-review p{font-size:16px}.e15ab-review footer{color:#64748b}.e15ab-review-form{display:grid;gap:12px;margin-top:18px;padding:18px;border:1px solid #dbe2ea;border-radius:12px;background:#fff}.e15ab-review-form label{display:grid;gap:6px;font-weight:700}.e15ab-review-form select,.e15ab-review-form textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #dbe2ea;border-radius:9px}.e15ab-review-form textarea{min-height:100px}.e15ab-inline-review{grid-column:1/-1}.e15ab-slot-list{display:grid;gap:16px}.e15ab-slot-list section{padding:18px;border:1px solid #dbe2ea;border-radius:12px;background:#fff}.e15ab-slot-list h4{margin:0 0 10px}.e15ab-slot-list section>div{display:flex;flex-wrap:wrap;gap:8px}.e15ab-slot-list a{display:inline-flex;padding:8px 12px;border:1px solid var(--e15ab-accent,#2563eb);border-radius:8px;text-decoration:none}.e15ab-appointment-card{align-items:start}.e15ab-appointment-card .e15ab-card-actions{flex-wrap:wrap}.e15ab-appointment-card .e15ab-card-actions form{margin:0}.e15ab-staff-appointment a{font-weight:700}.e15ab-field[hidden],.e15ab-waiting-panel[hidden],.e15ab-cart[hidden]{display:none!important}
@media(max-width:900px){.e15ab-columns-4,.e15ab-columns-3{grid-template-columns:repeat(2,minmax(0,1fr))}.e15ab-recurring{grid-template-columns:1fr 1fr}.e15ab-reviews{grid-template-columns:1fr}}
@media(max-width:700px){.e15ab-columns-4,.e15ab-columns-3,.e15ab-columns-2,.e15ab-recurring{grid-template-columns:1fr}.e15ab-inline-form{flex-direction:column}.e15ab-extra{grid-template-columns:1fr}.e15ab-cart-item{grid-template-columns:1fr}.e15ab-directory-card{padding:18px}}

/* Version 1.3 commerce, account and customisation components */
.e15ab-commerce-store,.e15ab-account-panel{margin:18px 0;padding:22px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:14px;background:#fff}.e15ab-commerce-store form{display:grid;gap:14px}.e15ab-commerce-store label,.e15ab-custom-fields label{display:grid;gap:7px;font-weight:650}.e15ab-commerce-store input,.e15ab-commerce-store select,.e15ab-commerce-store textarea,.e15ab-custom-fields input,.e15ab-custom-fields select,.e15ab-custom-fields textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:9px;font:inherit}.e15ab-custom-fields{margin:18px 0}.e15ab-choice-list{display:flex;flex-wrap:wrap;gap:10px}.e15ab-choice-list label{display:flex;grid-template-columns:none;align-items:center;gap:6px;font-weight:500}.e15ab-choice-list input{width:auto;min-height:auto}.e15ab-weekdays{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0;padding:12px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:10px}.e15ab-weekdays label{display:flex;gap:5px;align-items:center}.e15ab-series-actions,.e15ab-account-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.e15ab-account-actions form{margin:0}.e15ab-account-panel h3{margin-top:0}.e15ab-commerce-store .e15ab-directory{margin-bottom:18px}.e15ab-commerce-store .e15ab-directory-card.is-selected{border-color:var(--e15ab-accent,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.e15ab-status-report{max-height:520px;overflow:auto;padding:16px;background:#111827;color:#e5e7eb;border-radius:10px}.cf-turnstile{margin:14px 0}@media(max-width:700px){.e15ab-series-actions,.e15ab-account-actions{flex-direction:column}.e15ab-account-actions form,.e15ab-account-actions .e15ab-button{width:100%}}
.e15ab-balance-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.e15ab-balance-form select{min-height:40px;padding:8px 10px;border:1px solid var(--e15ab-border,#dbe2ea);border-radius:8px;background:#fff}.e15ab-balance-form .e15ab-button{min-height:40px;padding:8px 14px}.e15ab-table-wrap{overflow-x:auto}.e15ab-portal-table{width:100%;border-collapse:collapse}.e15ab-portal-table th,.e15ab-portal-table td{padding:10px 12px;border-bottom:1px solid var(--e15ab-border,#dbe2ea);text-align:left;white-space:nowrap}.e15ab-portal-table th{font-size:13px;color:var(--e15ab-muted,#64748b)}
@media(max-width:700px){.e15ab-balance-form{align-items:stretch;flex-direction:column}.e15ab-balance-form .e15ab-button{width:100%}}
