.booking-island,.booking-panel{--bk-accent:var(--blue,#330b7e);--bk-accent-hover:var(--blue-mid,#25085c);--bk-success:var(--green,#166534);--bk-text:var(--text,#12042c);--bk-muted:var(--gray-text,#75604e);--bk-border:var(--border,#12042c1f);--bk-surface:var(--white,#fff);--bk-surface-soft:var(--off-white,#f7f1ec);--bk-line-soft:var(--gray-light,#e4d9d1);--bk-font-body:var(--font-body,var(--font-sans,system-ui, sans-serif));--bk-font-display:var(--font-display,Georgia, serif);--bk-danger:#b3261e;--bk-danger-surface:#fff5f4;--bk-danger-border:#e5b3ae;--bk-focus:var(--bk-accent)}.booking-panel{background:var(--bk-surface);border:1px solid var(--bk-border);border-radius:12px;overflow:hidden;box-shadow:0 8px 40px #12042c14}.booking-steps{background:var(--bk-surface-soft);border-bottom:1px solid var(--bk-border);display:flex}.booking-step{opacity:.45;border-bottom:2px solid #0000;flex:1;align-items:center;gap:.7rem;padding:1.1rem .8rem;transition:all .3s;display:flex}.booking-step.active{border-bottom-color:var(--bk-accent);background:var(--bk-surface);opacity:1}.booking-step.done{border-bottom-color:var(--bk-success);opacity:.7}.step-num{background:var(--bk-line-soft);width:26px;height:26px;color:var(--bk-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;transition:all .3s;display:flex}.booking-step.active .step-num{background:var(--bk-accent);color:#fff}.booking-step.done .step-num{background:var(--bk-success);color:#fff}.step-label{letter-spacing:.06em;text-transform:uppercase;color:var(--bk-text);font-size:.72rem;font-weight:600}.booking-body{padding:2rem}.service-selector{margin-bottom:1.5rem}.selector-label,.form-label{letter-spacing:.1em;text-transform:uppercase;color:var(--bk-muted);margin-bottom:.7rem;font-size:.7rem;font-weight:600;display:block}.service-select,.form-input,.form-select-sm,.form-textarea-sm{border:1px solid var(--bk-line-soft);width:100%;font-family:var(--bk-font-body);color:var(--bk-text);background:var(--bk-surface);appearance:none;border-radius:3px;outline:none;padding:.8rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.service-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23616161' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .9rem center;background-repeat:no-repeat;background-size:16px;padding-right:2.5rem}.service-select:focus,.form-input:focus,.form-select-sm:focus,.form-textarea-sm:focus{border-color:var(--bk-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--bk-accent) 18%, transparent)}.dentist-summary{border:1px solid var(--bk-line-soft);background:var(--bk-surface-soft);border-radius:6px;margin-bottom:1.25rem;padding:1rem 1.1rem}.dentist-summary-label{letter-spacing:.08em;text-transform:uppercase;color:var(--bk-muted);margin-bottom:.35rem;font-size:.72rem}.dentist-summary-name{color:var(--bk-text);font-size:1rem;font-weight:600}.dentist-summary-specialty{color:var(--bk-muted);margin-top:.2rem;font-size:.85rem}.cal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.cal-month-label{font-family:var(--bk-font-display);color:var(--bk-text);letter-spacing:.03em;font-size:1.2rem;font-weight:500}.cal-nav-btn{border:1px solid var(--bk-border);background:var(--bk-surface);width:44px;height:44px;color:var(--bk-accent);border-radius:3px;justify-content:center;align-items:center;font-size:1.1rem;transition:background .2s,color .2s;display:inline-flex}.cal-nav-btn:hover:not(:disabled){background:var(--bk-surface-soft)}.cal-nav-btn:disabled{opacity:.45;cursor:not-allowed}.cal-days-header,.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-days-header{margin-bottom:.4rem}.cal-day-name{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:var(--bk-muted);padding:.35rem 0;font-size:.64rem;font-weight:700}.cal-grid{margin-bottom:1rem}.cal-day{aspect-ratio:1;cursor:pointer;min-height:44px;max-height:52px;color:var(--bk-text);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;transition:background .15s,border-color .15s,color .15s;display:flex;position:relative}button.cal-day{appearance:none;background:0 0;margin:0;padding:0;font-family:inherit}button.cal-day:focus-visible,.cal-nav-btn:focus-visible,.slot-btn:focus-visible,.btn:focus-visible,.service-select:focus-visible{outline:2px solid var(--bk-focus);outline-offset:2px}.cal-day:hover:not(.disabled):not(.empty):not(:disabled){background:var(--bk-surface-soft);border-color:var(--bk-border)}.cal-day.today{color:var(--bk-accent);font-weight:700}.cal-day.available:after{content:"";background:var(--bk-success);border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.cal-day.selected{background:var(--bk-accent);color:#fff;border-color:var(--bk-accent);font-weight:600}.cal-day.selected:after{background:#ffffffb3}.cal-day.disabled,.cal-day:disabled{color:var(--bk-line-soft);cursor:default}.cal-day.empty{cursor:default;pointer-events:none;min-height:0}.cal-day.weekend:not(.selected):not(.disabled){color:var(--bk-muted)}.cal-legend{flex-wrap:wrap;gap:.85rem 1.2rem;margin-bottom:1.25rem;display:flex}.legend-item{color:var(--bk-muted);align-items:center;gap:.4rem;font-size:.7rem;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.legend-dot-available{background:var(--bk-success)}.legend-dot-selected{background:var(--bk-accent)}.legend-dot-unavailable{background:var(--bk-line-soft)}.slots-title{letter-spacing:.12em;text-transform:uppercase;color:var(--bk-muted);margin-bottom:.7rem;font-size:.7rem;font-weight:700}.slots-empty,.booking-hint,.booking-status{color:var(--bk-muted);background:var(--bk-surface-soft);border-radius:6px;margin-bottom:1rem;padding:.85rem 1rem;font-size:.9rem}.booking-hint{margin-top:.75rem}.slots-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:1.25rem;display:grid}.slot-btn{border:1px solid var(--bk-border);background:var(--bk-surface);min-height:44px;font-family:var(--bk-font-body);color:var(--bk-text);cursor:pointer;text-align:center;border-radius:3px;padding:.55rem .35rem;font-size:.9rem;transition:all .15s}.slot-btn:hover:not(.unavailable):not(:disabled){border-color:var(--bk-accent);color:var(--bk-accent)}.slot-btn.selected{background:var(--bk-accent);border-color:var(--bk-accent);color:#fff;font-weight:600}.slot-btn.unavailable,.slot-btn:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}.form-group{margin-bottom:1.2rem}.form-row-2{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}.form-label{margin-bottom:.42rem}.form-select-sm{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23616161' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .8rem center;background-repeat:no-repeat;background-size:14px;padding-right:2rem}.form-textarea-sm{resize:vertical;min-height:80px;line-height:1.6}.form-input.error{border-color:var(--bk-danger)!important;box-shadow:0 0 0 3px #b3261e1f!important}.form-error-msg{color:var(--bk-danger);letter-spacing:.02em;margin-top:.4rem;font-size:.78rem;font-weight:600;display:block}.step-actions{border-top:1px solid var(--bk-border);gap:.8rem;margin-top:1.25rem;padding-top:1.2rem;display:flex}.btn{min-height:44px;font-family:var(--bk-font-body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-sizing:border-box;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:.45rem;padding:.75rem 1.25rem;font-size:.82rem;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s,transform .15s,box-shadow .2s;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;box-shadow:none;transform:none}.step-actions .btn{flex:1}.btn-step-primary{background:var(--bk-accent);color:#fff;flex:2!important}.btn-step-primary:hover:not(:disabled){background:var(--bk-accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px #12042c1f}.btn-step-primary:disabled{background:var(--bk-line-soft);color:var(--bk-muted);opacity:1}.btn-step-primary.is-loading{opacity:.85}.btn-step-back{color:var(--bk-muted);border:1px solid var(--bk-border);background:0 0;flex:1!important}.btn-step-back:hover:not(:disabled){background:var(--bk-surface-soft);color:var(--bk-text)}.whatsapp-cta{color:#fff;background:#128c7e;border-color:#128c7e}.whatsapp-cta:hover{color:#fff;background:#0f7469}.confirm-header{font-family:var(--bk-font-display);color:var(--bk-text);margin:0 0 .3rem;font-size:1.4rem;font-weight:400}.confirm-sub{color:var(--bk-muted);margin-bottom:1.25rem;font-size:.9rem}.confirm-card,.success-detail{background:var(--bk-surface-soft);border:1px solid var(--bk-border);border-radius:8px;margin-bottom:1.25rem;padding:1.35rem}.confirm-row{border-bottom:1px solid var(--bk-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.5rem 0;display:flex}.confirm-row:last-child{border-bottom:none}.confirm-key{letter-spacing:.07em;text-transform:uppercase;color:var(--bk-muted);font-size:.75rem;font-weight:600}.confirm-val{color:var(--bk-text);text-align:right;max-width:65%;font-size:.92rem;font-weight:500}.confirm-note{color:var(--bk-muted);font-size:.85rem;line-height:1.65}.success-state{text-align:center;padding:1.5rem .5rem .5rem}.success-icon{width:72px;height:72px;color:var(--bk-success);background:#f0fdf4;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.25rem;font-size:2rem;font-weight:700;display:flex}.success-title{font-family:var(--bk-font-display);color:var(--bk-text);margin:0 0 .5rem;font-size:2rem;font-weight:400}.success-sub{color:var(--bk-muted);max-width:420px;margin:0 auto 1.5rem;font-size:.95rem;line-height:1.75}.success-detail{text-align:left}.success-detail-row{color:var(--bk-muted);align-items:center;gap:.6rem;padding:.4rem 0;font-size:.9rem;display:flex}.success-detail-row strong{color:var(--bk-text)}.success-actions{flex-wrap:wrap;justify-content:center;gap:.8rem;display:flex}.booking-alert{background:var(--bk-danger-surface);color:var(--bk-danger);border:1px solid var(--bk-danger-border);border-radius:6px;margin-bottom:1.25rem;padding:1rem;font-size:.9rem}.booking-fallback-contact{margin-top:.5rem}.booking-inline-link{color:inherit;font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=767px){.slots-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=479px){.booking-body{padding:1.25rem}.booking-steps{flex-wrap:wrap;row-gap:.35rem}.booking-step{min-width:42%;padding:.85rem .65rem}.step-label{font-size:.64rem}.cal-day{min-height:44px;max-height:48px;font-size:.85rem}.slots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row-2{grid-template-columns:1fr}.step-actions{flex-direction:column}.btn-step-primary,.btn-step-back{width:100%;flex:auto!important}.confirm-row{flex-direction:column;gap:.25rem}.confirm-val{text-align:left;max-width:100%}}@media (prefers-reduced-motion:reduce){.booking-step,.step-num,.cal-day,.slot-btn,.btn,.service-select,.form-input,.form-select-sm,.form-textarea-sm{transition:none}.btn-step-primary:hover:not(:disabled){transform:none}}.booking-island{--blue:var(--color-accent,#330b7e);--blue-mid:color-mix(in srgb, var(--color-accent,#330b7e) 85%, #000);--green:var(--color-success-text,#166534);--text:var(--color-ink,#12042c);--gray-text:var(--color-tan-text,#75604e);--gray-light:var(--color-tan-soft,#e4d9d1);--border:var(--color-line,#12042c1f);--off-white:var(--color-paper-soft,#f7f1ec);--white:var(--color-bg,#fff);--font-body:var(--font-sans,system-ui, sans-serif);--font-display:var(--font-display,Georgia, serif)}.booking-grid.astro-zgsgrn3d{max-width:720px;margin-inline:auto}.booking-fallback.astro-zgsgrn3d{background:var(--color-paper-soft);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:clamp(1.5rem,4vw,2.5rem)}.booking-fallback-title.astro-zgsgrn3d{font-family:var(--font-display);color:var(--color-ink);margin:0 0 .75rem;font-size:clamp(1.6rem,3vw,2rem);font-weight:500}.booking-fallback-body.astro-zgsgrn3d{color:var(--color-ink);opacity:.85;max-width:48ch;margin:0 0 1.5rem;line-height:1.6}.booking-fallback-actions.astro-zgsgrn3d{flex-wrap:wrap;gap:.75rem;display:flex}
