/* Booking wizard (ldb-) */
.ldb{width:100%}
.ldb-main{max-width:1240px;margin:0 auto;padding:20px 24px 80px}
.ldb input,.ldb select,.ldb button{font:inherit}
.ldb-legend{padding:0;font-size:26px;font-weight:600;letter-spacing:-0.02em}
.ldb-opt{transition:border-color .2s, background .2s, transform .2s}
.ldb-opt:hover{transform:translateY(-1px)}
.ldb-btn:hover{background:#3a3a3c !important}

/* Visually hidden native inputs; the label is the button */
.ldb-sr{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;opacity:0}
.ldb-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.ldb label.ldb-opt{position:relative;cursor:pointer;color:#1d1d1f;background:#ffffff;border:2px solid #e5e5ea;text-align:left}
.ldb label.ldb-opt:has(.ldb-sr:focus-visible){outline:2px solid #0071e3;outline-offset:3px}
.ldb label.ldb-opt.is-focus{outline:2px solid #0071e3;outline-offset:3px}

/* Drip cards */
.ldb-drip:has(.ldb-sr:checked),.ldb-drip.is-on{border-color:#1d1d1f !important;background:var(--tint,#f5f5f7) !important}
/* Where cards and home windows */
.ldb-place:has(.ldb-sr:checked),.ldb-place.is-on,.ldb-win:has(.ldb-sr:checked),.ldb-win.is-on{border-color:#1d1d1f !important;background:#f5f5f7 !important}
.ldb-place:has(.ldb-sr:disabled),.ldb-place.is-disabled{opacity:.4;cursor:not-allowed !important;transform:none !important}
.ldb-place{display:block}

/* Extras pills */
.ldb label.ldb-pill{color:#1d1d1f}
.ldb-pill:has(.ldb-sr:checked),.ldb-pill.is-on{border-color:#1d1d1f !important;background:#1d1d1f !important;color:#ffffff !important}
.ldb-mark-on{display:none}
.ldb-pill:has(.ldb-sr:checked) .ldb-mark-on,.ldb-pill.is-on .ldb-mark-on{display:inline}
.ldb-pill:has(.ldb-sr:checked) .ldb-mark-off,.ldb-pill.is-on .ldb-mark-off{display:none}

/* 7-day strip */
.ldb-days{display:flex;gap:8px;overflow-x:auto;padding:4px 4px 6px;margin:-4px -4px 0;scrollbar-width:none}
.ldb-days::-webkit-scrollbar{display:none}
.ldb label.ldb-day{flex:none;width:78px;border-radius:18px;padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.ldb-day:has(.ldb-sr:checked),.ldb-day.is-on{background:#1d1d1f !important;color:#ffffff !important;border-color:#1d1d1f !important}

/* Clinic slots */
.ldb label.ldb-slot{display:block;text-align:center;font-size:15px;font-variant-numeric:tabular-nums;padding:12px 0;border-radius:12px;border:1.5px solid #d2d2d7}
.ldb-slot:has(.ldb-sr:checked),.ldb-slot.is-on{background:#1d1d1f !important;color:#ffffff !important;border-color:#1d1d1f !important}

/* Text fields */
.ldb-field{display:flex;flex-direction:column;gap:8px;font-size:15px;font-weight:500;min-width:0}
.ldb-field input,.ldb-field select{font-size:17px;padding:15px 16px;border:1.5px solid #c7c7cc;border-radius:14px;background:#ffffff;color:#1d1d1f;width:100%;min-width:0;box-sizing:border-box}
.ldb-field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#6e6e73 50%),linear-gradient(135deg,#6e6e73 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.ldb-field input[aria-invalid="true"]{border-color:#c62828}

/* Live clinic times: loading and empty states */
.ldb-slots-status{margin:16px 0 0;padding:16px 18px;border-radius:14px;background:#f5f5f7;font-size:15px;color:#424245}

/* Summary rows */
.ldb-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #d2d2d7;font-size:16px}
.ldb-line span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}

/* Messages */
.ldb-banner{margin-top:24px;padding:16px 20px;border-radius:16px;background:#fdecea;color:#1d1d1f;border:1.5px solid #c62828;font-size:16px;font-weight:500}
.ldb-err{margin:10px 2px 0;font-size:14px;font-weight:500;color:#c62828}
.ldb-field .ldb-err{margin:0}
.ldb [hidden]{display:none !important}

@media (min-width:960px){
 .ldb-aside{position:sticky;top:90px}
 .admin-bar .ldb-aside{top:122px}
}
@media (max-width:600px){
 .ldb-main{padding:12px 16px 60px}
 .ldb-layout{margin-top:32px !important;gap:32px !important}
 .ldb-form{gap:40px !important}
 .ldb-legend{font-size:23px}
 .ldb-grid-drips{grid-template-columns:1fr !important}
 .ldb-fields,#ldb-home-fields{grid-template-columns:1fr !important}
 .ldb label.ldb-day{width:68px}
 .ldb-slots{grid-template-columns:repeat(auto-fill,minmax(76px,1fr)) !important}
 .ldb-aside > div{padding:24px 20px !important}
 .ldb-wa{display:block !important;text-align:center}
}
@media (prefers-reduced-motion: reduce){.ldb *{animation:none !important;transition:none !important}}
