.efbw-wrapper{border:1px solid #e5e7eb;padding:16px;border-radius:12px;max-width:720px;font-family:inherit;background:#fff}
.efbw-head h3{margin:0 0 6px 0;font-weight:600}
.efbw-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:8px 0}
.efbw-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:8px;min-height:64px}
.efbw-slot{border:1px solid #d1d5db;padding:10px;border-radius:10px;text-align:center;cursor:pointer;background:#fff;transition:transform .05s}
.efbw-slot:active{transform:scale(.98)}
.efbw-slot.selected{outline:2px solid #111; outline-offset:2px}
.efbw-pay{margin-top:12px;display:block}
button.efbw-to-cart,.efbw-open-btn,.efbw-modal-close{padding:10px 14px;border:1px solid #111;background:#111;color:#fff;border-radius:10px;cursor:pointer}
.efbw-error{color:#b00020}

/* Datepicker button */
.efbw-date-toggle{padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;background:#fff;min-width:220px;text-align:left}
.efbw-date-toggle:after{content:"📅";float:right;opacity:.7}
.efbw-datepicker{position:relative}

/* Calendar popover */
.efbw-cal{position:absolute;z-index:10000;top:110%;left:0;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.2);padding:10px;width:min(360px,96vw)}
.efbw-cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.efbw-cal-header button{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:6px 8px}
.efbw-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.efbw-cal-day,.efbw-cal-wd{font-size:12px;text-align:center;border-radius:8px}
.efbw-cal-wd{opacity:.6}
.efbw-cal-day{padding:8px 0;border:1px solid transparent;cursor:pointer}
.efbw-cal-day:hover{background:#f3f4f6}
.efbw-cal-day.disabled{opacity:.35;pointer-events:none}
.efbw-cal-day.selected{border-color:#111}
.efbw-cal-day.today{outline:1px dashed #aaa}

/* Loading */
.efbw-loading{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px}
.efbw-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#111;border-radius:50%;animation:efbw-spin .8s linear infinite}
@keyframes efbw-spin{to{transform:rotate(360deg)}}
.efbw-loading-text{font-size:14px;opacity:.8}

/* Modal */
.efbw-modal{position:fixed;inset:0;z-index:9999}
.efbw-modal .efbw-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.efbw-modal .efbw-modal-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.2);padding:16px;max-width:820px;width:92%;max-height:90vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.efbw-modal .efbw-modal-close{position:absolute;right:10px;top:10px;border-radius:999px;border-color:#666}

/* Lock background when modal open */
body.efbw-locked{position:fixed;width:100%;overflow:hidden}
