.bslg-line-reservation-form-wrap { width:100%; margin:28px auto; padding:0; box-sizing:border-box; }
.bslg-line-reservation-form-card { border:var(--bslg-rf-card-border-width,1px) solid var(--bslg-rf-card-border,#ddd); border-radius:var(--bslg-rf-card-radius,60px); background:var(--bslg-rf-card-bg,#fff); box-shadow:var(--bslg-rf-card-shadow,0 8px 24px rgba(0,0,0,.08)); overflow:visible; }
.bslg-line-reservation-form-head { padding:var(--bslg-rf-header-pad-y,22px) var(--bslg-rf-header-pad-x,26px); color:var(--bslg-rf-title-color,#fff); background:var(--bslg-rf-header-bg,#06C755); border-radius:var(--bslg-rf-header-radius,60px) var(--bslg-rf-header-radius,60px) 0 0; }
.bslg-line-reservation-form-head h2 { margin:0; font-size:var(--bslg-rf-title-size,28px); font-weight:var(--bslg-rf-title-weight,700); line-height:1.35; color:var(--bslg-rf-title-color,#fff); }
.bslg-line-reservation-form-target { display:inline-block; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.55); border-radius:999px; padding:6px 12px; margin-top:10px; font-weight:var(--bslg-rf-label-weight,700); color:var(--bslg-rf-title-color,#fff); }
.bslg-line-reservation-form-body { padding:var(--bslg-rf-body-pad-y,24px) var(--bslg-rf-body-pad-x,26px); }
.bslg-line-reservation-form-lead { margin:0 0 18px; padding:14px 16px; border-left:var(--bslg-rf-lead-border-width,5px) solid var(--bslg-rf-lead-border-color,#06C755); background:var(--bslg-rf-lead-bg,#f5f5f5); color:var(--bslg-rf-lead-color,#111); font-size:var(--bslg-rf-lead-size,16px); font-weight:var(--bslg-rf-lead-weight,400); line-height:1.7; }
.bslg-line-reservation-form-grid { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.bslg-line-reservation-form-field { margin-bottom:16px; }
.bslg-line-reservation-form-field label { display:block; color:var(--bslg-rf-label-color,#111); font-size:var(--bslg-rf-label-size,16px); font-weight:var(--bslg-rf-label-weight,700); margin-bottom:6px; }
.bslg-line-reservation-form-required { color:var(--bslg-rf-required-color,#d00); }
.bslg-line-reservation-form-field input,
.bslg-line-reservation-form-field select,
.bslg-line-reservation-form-field textarea,
.bslg-line-reservation-menu-select { width:100%; border:var(--bslg-rf-input-border-width,1px) solid var(--bslg-rf-input-border,#bbb); border-radius:var(--bslg-rf-input-radius,6px); padding:var(--bslg-rf-input-pad-y,11px) var(--bslg-rf-input-pad-x,12px); font-size:var(--bslg-rf-input-size,16px); font-weight:var(--bslg-rf-input-weight,400); color:var(--bslg-rf-input-color,#111); background:var(--bslg-rf-input-bg,#fff); box-sizing:border-box; }
.bslg-line-reservation-menu-select { max-width:var(--bslg-rf-menu-max-width,520px); }
.bslg-line-reservation-form-field textarea { min-height:var(--bslg-rf-textarea-min-height,120px); }
.bslg-line-reservation-form-submit { display:inline-flex; align-items:center; justify-content:center; border:0; color:var(--bslg-rf-submit-color,#fff); background:var(--bslg-rf-submit-bg,#06C755); border-radius:var(--bslg-rf-submit-radius,999px); font-size:var(--bslg-rf-submit-size,16px); font-weight:var(--bslg-rf-submit-weight,700); padding:var(--bslg-rf-submit-pad-y,14px) var(--bslg-rf-submit-pad-x,28px); cursor:pointer; }
.bslg-line-reservation-form-alert,
.bslg-line-reservation-form-empty,
.bslg-line-reservation-form-line-status,
.bslg-line-reservation-form-line-gate { font-size:var(--bslg-rf-status-size,16px); font-weight:var(--bslg-rf-status-weight,700); }
.bslg-line-reservation-form-alert { padding:14px 16px; border-radius:var(--bslg-rf-status-radius,8px); margin-bottom:18px; }
.bslg-line-reservation-form-alert.ok { background:var(--bslg-rf-success-bg,#e9f8ee); color:var(--bslg-rf-success-color,#0f5132); border:1px solid var(--bslg-rf-success-border,#198754); }
.bslg-line-reservation-form-alert.ng { background:var(--bslg-rf-error-bg,#fff1f1); color:var(--bslg-rf-error-color,#842029); border:1px solid var(--bslg-rf-error-border,#dc3545); }
.bslg-line-reservation-form-empty { background:var(--bslg-rf-warning-bg,#fff8e1); border:1px solid var(--bslg-rf-warning-border,#ffc107); border-left:5px solid var(--bslg-rf-warning-border,#ffc107); color:var(--bslg-rf-warning-color,#5f4700); padding:16px; border-radius:var(--bslg-rf-status-radius,8px); line-height:1.7; }
@media (max-width:700px) { .bslg-line-reservation-form-grid { grid-template-columns:1fr; } }

.bslg-line-reservation-form-line-status { margin:0 0 16px; padding:12px 14px; border-radius:var(--bslg-rf-status-radius,8px); line-height:1.6; }
.bslg-line-reservation-form-line-status.waiting { background:var(--bslg-rf-warning-bg,#fff8e1); color:var(--bslg-rf-warning-color,#5f4700); border:1px solid var(--bslg-rf-warning-border,#ffc107); }
.bslg-line-reservation-form-line-status.ok { background:var(--bslg-rf-success-bg,#e9f8ee); color:var(--bslg-rf-success-color,#0f5132); border:1px solid var(--bslg-rf-success-border,#198754); }
.bslg-line-reservation-form-line-status.ng { background:var(--bslg-rf-error-bg,#fff1f1); color:var(--bslg-rf-error-color,#842029); border:1px solid var(--bslg-rf-error-border,#dc3545); }
.bslg-line-reservation-form-line-status.optional { background:var(--bslg-rf-info-bg,#eef7ff); color:var(--bslg-rf-info-color,#084298); border:1px solid var(--bslg-rf-info-border,#6ea8fe); }
.bslg-line-reservation-form-submit:disabled { opacity:.45; cursor:not-allowed; }

.bslg-line-reservation-form-line-gate { margin:0 0 18px; padding:18px 20px; border:1px solid var(--bslg-rf-line-accent,#06C755); border-left:6px solid var(--bslg-rf-line-accent,#06C755); background:var(--bslg-rf-line-guide-bg,#f0fff6); color:var(--bslg-rf-line-guide-color,#0f5132); border-radius:var(--bslg-rf-status-radius,8px); line-height:1.7; }
.bslg-line-reservation-form-line-gate-title { font-weight:var(--bslg-rf-step-title-weight,700); font-size:var(--bslg-rf-step-title-size,17px); margin-bottom:6px; }
.bslg-line-reservation-form-line-gate-text { margin-bottom:12px; }
.bslg-line-reservation-form-login-button { display:inline-flex; align-items:center; justify-content:center; border:0; background:var(--bslg-rf-line-login-bg,#06C755); color:var(--bslg-rf-submit-color,#fff); font-size:var(--bslg-rf-submit-size,16px); font-weight:var(--bslg-rf-submit-weight,700); border-radius:var(--bslg-rf-submit-radius,999px); padding:12px 20px; cursor:pointer; }
.bslg-line-reservation-form-line-profile { align-items:center; gap:12px; margin:0 0 16px; padding:12px 14px; border:1px solid var(--bslg-rf-line-accent,#06C755); background:var(--bslg-rf-line-profile-bg,#f3fff7); color:var(--bslg-rf-line-profile-color,#0f5132); border-radius:var(--bslg-rf-status-radius,8px); font-size:var(--bslg-rf-status-size,16px); font-weight:var(--bslg-rf-status-weight,700); }
.bslg-line-reservation-form-line-profile-img { width:44px; height:44px; object-fit:cover; border-radius:50%; background:#fff; border:1px solid var(--bslg-rf-line-accent,#06C755); }
.bslg-line-reservation-form-line-profile-label { font-size:.75em; font-weight:inherit; opacity:.75; }
.bslg-line-reservation-form-line-profile-name { font-size:1em; font-weight:inherit; }

.bslg-line-reservation-step { margin:0 0 20px; padding:var(--bslg-rf-step-padding,16px); border:var(--bslg-rf-step-border-width,1px) solid var(--bslg-rf-step-border,#d7e5ff); border-radius:var(--bslg-rf-step-radius,12px); background:var(--bslg-rf-step-bg,#f7fbff); }
.bslg-line-reservation-step h3 { margin:0 0 12px; font-size:var(--bslg-rf-step-title-size,17px); font-weight:var(--bslg-rf-step-title-weight,700); color:var(--bslg-rf-step-title-color,#111); }
.bslg-line-reservation-step-note { margin-top:8px; color:var(--bslg-rf-calendar-color,#111); font-size:var(--bslg-rf-calendar-size,13px); font-weight:var(--bslg-rf-calendar-weight,700); }
.bslg-line-reservation-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; color:var(--bslg-rf-calendar-color,#111); font-size:var(--bslg-rf-calendar-size,13px); font-weight:var(--bslg-rf-calendar-weight,700); }
.bslg-line-reservation-calendar-head a { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--bslg-rf-cal-selected,#1d63ff); border-radius:var(--bslg-rf-input-radius,6px); padding:8px 12px; color:var(--bslg-rf-cal-selected,#1d63ff); background:var(--bslg-rf-input-bg,#fff); text-decoration:none; font:inherit; }
.bslg-line-reservation-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.bslg-line-reservation-calendar-wd { font-size:var(--bslg-rf-calendar-size,13px); font-weight:var(--bslg-rf-calendar-weight,700); text-align:center; color:var(--bslg-rf-calendar-color,#111); padding:4px 0; }
.bslg-line-reservation-calendar-day { min-height:var(--bslg-rf-cal-day-min-height,64px); border:var(--bslg-rf-input-border-width,1px) solid var(--bslg-rf-input-border,#ddd); border-radius:var(--bslg-rf-input-radius,6px); background:var(--bslg-rf-input-bg,#fff); color:var(--bslg-rf-calendar-color,#111); font-size:var(--bslg-rf-calendar-size,13px); font-weight:var(--bslg-rf-calendar-weight,700); padding:8px; text-decoration:none; display:flex; flex-direction:column; gap:4px; box-sizing:border-box; position:relative; align-items:center; justify-content:center; text-align:center; }
.bslg-line-reservation-calendar-day.outside { opacity:.25; background:var(--bslg-rf-cal-closed-bg,#f4f4f4); }
.bslg-line-reservation-calendar-day.closed { background:var(--bslg-rf-cal-closed-bg,#f7f7f7); color:var(--bslg-rf-cal-closed-color,#777); }
.bslg-line-reservation-calendar-day.full { background:var(--bslg-rf-cal-full-bg,#fff7e6); border-color:var(--bslg-rf-cal-full-border,#ffc107); color:var(--bslg-rf-calendar-color,#111); }
.bslg-line-reservation-calendar-day.available { background:var(--bslg-rf-cal-available-bg,#effaf2); border-color:var(--bslg-rf-cal-available-border,#06a344); cursor:pointer; }
.bslg-line-reservation-calendar-day.selected { outline:var(--bslg-rf-cal-selected-width,3px) solid var(--bslg-rf-cal-selected,#1d63ff); }
.bslg-line-reservation-calendar-day .dayno { font-weight:var(--bslg-rf-calendar-weight,700); position:absolute; top:6px; left:8px; line-height:1; }
.bslg-line-reservation-calendar-day .daylabel { display:inline-flex; align-self:center; align-items:center; justify-content:center; min-width:32px; min-height:22px; border-radius:999px; padding:0 8px; background:var(--bslg-rf-input-bg,#fff); border:1px solid currentColor; font-weight:var(--bslg-rf-calendar-weight,700); font-size:.92em; line-height:1; text-align:center; box-sizing:border-box; }
.bslg-line-reservation-calendar-day .count { font-size:.92em; color:var(--bslg-rf-cal-available-border,#06a344); font-weight:var(--bslg-rf-calendar-weight,700); text-align:center; line-height:1; }
.bslg-line-reservation-selected-date { margin:0 0 10px; font-size:var(--bslg-rf-time-size,16px); font-weight:var(--bslg-rf-time-weight,800); color:var(--bslg-rf-time-color,#111); }
.bslg-line-reservation-time-buttons { display:flex; flex-wrap:wrap; gap:10px; }
.bslg-line-reservation-time-button { min-width:var(--bslg-rf-time-min-width,96px); border:var(--bslg-rf-time-border-width,2px) solid var(--bslg-rf-time-border,#1d63ff); border-radius:var(--bslg-rf-time-radius,10px); background:var(--bslg-rf-time-bg,#fff); color:var(--bslg-rf-time-color,#111); font-size:var(--bslg-rf-time-size,16px); font-weight:var(--bslg-rf-time-weight,800); padding:10px 16px; cursor:pointer; }
.bslg-line-reservation-time-button.selected { background:var(--bslg-rf-time-selected-bg,#1d63ff); color:var(--bslg-rf-time-selected-color,#fff); }
.bslg-line-reservation-selected-time { margin-top:10px; font-size:var(--bslg-rf-time-size,16px); font-weight:var(--bslg-rf-time-weight,800); color:var(--bslg-rf-cal-selected,#1d63ff); }
.bslg-line-reservation-confirm { background:var(--bslg-rf-input-bg,#fff); border-color:var(--bslg-rf-input-border,#ddd); }
.bslg-line-reservation-confirm-line { display:flex; gap:12px; align-items:center; border-bottom:1px solid var(--bslg-rf-input-border,#eee); padding:8px 0; }
.bslg-line-reservation-confirm-line span { min-width:92px; color:var(--bslg-rf-label-color,#111); font-size:var(--bslg-rf-label-size,16px); font-weight:var(--bslg-rf-label-weight,700); }
.bslg-line-reservation-options { display:flex; flex-wrap:wrap; gap:10px; }
.bslg-line-reservation-options label { display:inline-flex; gap:6px; align-items:center; border:1px solid var(--bslg-rf-input-border,#ccc); border-radius:999px; padding:8px 12px; background:var(--bslg-rf-input-bg,#fff); color:var(--bslg-rf-label-color,#111); font-size:var(--bslg-rf-label-size,16px); font-weight:var(--bslg-rf-label-weight,700); }
@media (max-width:700px) {
  .bslg-line-reservation-calendar-day .dayno { top:5px; left:6px; }
  .bslg-line-reservation-calendar-day .daylabel { min-width:30px; min-height:20px; padding:0 7px; }
  .bslg-line-reservation-calendar-day .count { display:none; }
}
