.osl-bk-wrapper{max-width:680px;margin:0 auto;font-family:'League Spartan',Arial,sans-serif}
.osl-bk-container{background:#fff;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.08);overflow:hidden}
.osl-bk-header{background:#1B2E4A;padding:28px 30px;display:flex;align-items:center;gap:16px}
.osl-bk-header-icon{font-size:32px}
.osl-bk-header-text h3{color:#C5A267;margin:0;font-size:22px;font-weight:700}
.osl-bk-header-text span{color:rgba(255,255,255,.7);font-size:14px}
.osl-bk-body{padding:30px}
.osl-bk-step{display:none}
.osl-bk-step-active{display:block!important}
.osl-bk-step-label{font-size:18px;font-weight:700;color:#1B2E4A;margin-bottom:20px}

/* Service cards */
.osl-bk-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.osl-bk-service-card{border:2px solid #e8e8e8;border-radius:10px;padding:14px 16px;cursor:pointer;transition:all .25s;position:relative}
.osl-bk-service-card input{position:absolute;opacity:0;pointer-events:none}
.osl-bk-service-card:hover{border-color:#C5A267;background:#faf8f4}
.osl-bk-service-selected,.osl-bk-service-card:has(input:checked){border-color:#C5A267;background:#faf8f4;box-shadow:0 0 0 3px rgba(197,162,103,.2)}
.osl-bk-service-inner{display:flex;flex-direction:column;gap:2px}
.osl-bk-service-inner strong{font-size:14px;color:#1B2E4A}

/* Duration cards */
.osl-bk-duration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.osl-bk-duration-card{border:2px solid #e8e8e8;border-radius:10px;padding:18px 14px;cursor:pointer;transition:all .25s;position:relative;text-align:center}
.osl-bk-duration-card input{position:absolute;opacity:0;pointer-events:none}
.osl-bk-duration-card:hover{border-color:#C5A267;background:#faf8f4}
.osl-bk-duration-selected,.osl-bk-duration-card:has(input:checked){border-color:#C5A267;background:#faf8f4;box-shadow:0 0 0 3px rgba(197,162,103,.2)}
.osl-bk-duration-inner{display:flex;flex-direction:column;gap:6px}
.osl-bk-duration-inner strong{font-size:15px;color:#1B2E4A}
.osl-bk-duration-inner small{font-size:12px;color:#888}
.osl-bk-duration-price{font-size:18px;font-weight:700;color:#1B2E4A}
.osl-bk-duration-price small{font-size:11px;font-weight:400;color:#888}
.osl-bk-free{color:#2e7d32!important;font-size:20px}

/* Payment notice */
.osl-bk-payment-notice,.osl-bk-paid-reminder{display:flex;gap:14px;align-items:flex-start;background:#fff8f0;border:2px solid #f5a623;border-radius:10px;padding:18px;margin-top:20px}
.osl-bk-notice-icon{font-size:24px;flex-shrink:0;margin-top:2px}
.osl-bk-notice-text strong{color:#e65100;font-size:15px;display:block;margin-bottom:4px}
.osl-bk-notice-text p{margin:0;font-size:13px;color:#555;line-height:1.5}

/* Calendar */
.osl-bk-calendar-wrap{max-width:400px;margin:0 auto}
.osl-bk-cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.osl-bk-cal-nav button{background:none;border:1px solid #ddd;border-radius:6px;width:36px;height:36px;cursor:pointer;font-size:16px;transition:all .2s;color:#1B2E4A}
.osl-bk-cal-nav button:hover{background:#1B2E4A;color:#fff;border-color:#1B2E4A}
.osl-bk-cal-month{font-size:18px;font-weight:700;color:#1B2E4A}
.osl-bk-cal-head{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:6px}
.osl-bk-cal-head span{font-size:12px;font-weight:700;color:#888;padding:8px 0;text-transform:uppercase}
.osl-bk-cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.osl-bk-cal-day{text-align:center;padding:10px 0;border-radius:8px;font-size:14px;font-weight:600;cursor:default;color:#ccc;transition:all .2s}
.osl-bk-cal-day.available{color:#1B2E4A;cursor:pointer;background:#f8f8f8}
.osl-bk-cal-day.available:hover{background:#C5A267;color:#fff}
.osl-bk-cal-day.selected{background:#1B2E4A!important;color:#fff!important}
.osl-bk-cal-day.today{border:2px solid #C5A267}

/* Time slots */
.osl-bk-times{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-height:320px;overflow-y:auto;padding-right:5px}
.osl-bk-time-slot{border:2px solid #e8e8e8;border-radius:8px;padding:12px;text-align:center;cursor:pointer;font-size:15px;font-weight:600;color:#1B2E4A;transition:all .25s}
.osl-bk-time-slot:hover{border-color:#C5A267;background:#faf8f4}
.osl-bk-time-slot.selected{border-color:#C5A267;background:#C5A267;color:#fff}
.osl-bk-times-loading{text-align:center;padding:40px;color:#888}

/* Form */
.osl-bk-form-fields{display:flex;flex-direction:column;gap:16px}
.osl-bk-field label{display:block;font-size:13px;font-weight:700;color:#1B2E4A;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.osl-bk-field input,.osl-bk-field textarea{width:100%;padding:12px 14px;border:2px solid #e8e8e8;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s;box-sizing:border-box}
.osl-bk-field input:focus,.osl-bk-field textarea:focus{outline:none;border-color:#C5A267}
.osl-bk-field input.osl-bk-error{border-color:#d32f2f;background:#fff5f5}
.osl-bk-summary-bar{background:#f5f3ee;border-radius:8px;padding:14px 18px;margin-bottom:20px;display:flex;gap:20px;flex-wrap:wrap;font-size:14px}
.osl-bk-summary-bar span{color:#1B2E4A;font-weight:600}

/* Progress */
.osl-bk-progress{height:4px;background:#eee;border-radius:4px;margin:24px 0 0;overflow:hidden}
.osl-bk-progress-bar{height:100%;background:linear-gradient(90deg,#C5A267,#a6842e);border-radius:4px;transition:width .4s ease}

/* Nav */
.osl-bk-nav{display:flex;justify-content:space-between;margin-top:20px;gap:12px}
.osl-bk-btn-back{background:none;border:2px solid #ddd;color:#666;padding:14px 28px;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}
.osl-bk-btn-back:hover{border-color:#1B2E4A;color:#1B2E4A}
.osl-bk-btn-next,.osl-bk-btn-confirm{background:#C5A267;color:#fff;border:none;padding:14px 32px;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;margin-left:auto}
.osl-bk-btn-next:hover,.osl-bk-btn-confirm:hover{background:#a6842e}
.osl-bk-btn-confirm{background:#1B2E4A}
.osl-bk-btn-confirm:hover{background:#2a4060}

/* Confirmation */
.osl-bk-confirmation{text-align:center;padding:50px 30px;background:#fff;border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.08)}
.osl-bk-conf-icon{width:70px;height:70px;background:#e8f5e9;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:32px;color:#2e7d32}
.osl-bk-confirmation h2{color:#1B2E4A;margin:0 0 10px;font-size:26px}
.osl-bk-confirmation p{color:#555;margin:5px 0}
.osl-bk-conf-details{background:#f5f3ee;border-radius:8px;padding:20px;margin:24px auto;max-width:420px;text-align:left}
.osl-bk-conf-details p{margin:8px 0;font-size:15px}
.osl-bk-conf-details strong{color:#1B2E4A}
.osl-bk-conf-trust{background:#fff8f0;border:2px solid #f5a623;border-radius:8px;padding:20px;margin:20px auto;max-width:420px;text-align:left}
.osl-bk-conf-trust h4{color:#e65100;margin:0 0 8px}
.osl-bk-conf-trust .trust-details{background:#fff;border:1px solid #ddd;border-radius:6px;padding:14px;font-family:monospace;font-size:13px;white-space:pre-line;margin-top:10px}
.osl-bk-conf-btns{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.osl-bk-conf-btns a{padding:14px 28px;border-radius:8px;text-decoration:none;font-weight:700;font-size:15px}
.osl-bk-conf-btns .btn-primary{background:#1B2E4A;color:#fff}
.osl-bk-conf-btns .btn-secondary{background:#C5A267;color:#fff}

/* Loading */
.osl-bk-spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:osl-bk-spin .6s linear infinite}
@keyframes osl-bk-spin{to{transform:rotate(360deg)}}
@keyframes osl-bk-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.osl-bk-shake{animation:osl-bk-shake .4s}

/* Mobile */
@media(max-width:600px){
.osl-bk-service-grid{grid-template-columns:1fr}
.osl-bk-duration-grid{grid-template-columns:1fr}
.osl-bk-times{grid-template-columns:repeat(2,1fr)}
.osl-bk-header{padding:20px}
.osl-bk-body{padding:20px}
.osl-bk-summary-bar{flex-direction:column;gap:8px}
.osl-bk-conf-btns{flex-direction:column;align-items:center}
}
