.bslg-line-reservation-form-wrap { margin: 28px auto; padding: 0 16px; box-sizing: border-box; }
.bslg-line-reservation-form-card { border: 1px solid #ddd; box-shadow: 0 8px 24px rgba(0,0,0,.08); overflow: hidden; }
.bslg-line-reservation-form-head { padding: 22px 26px; color: #fff; }
.bslg-line-reservation-form-var-row { text-align:right; margin:0 0 8px; }
.bslg-line-reservation-form-var { display:inline-block; font-size:12px; line-height:1; color:#fff; background:#111; border-radius:999px; padding:7px 10px; white-space:nowrap; font-weight:700; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.bslg-line-reservation-form-head h2 { margin:0; font-size:28px; line-height:1.35; 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:700; color:#fff; }
.bslg-line-reservation-form-body { padding: 24px 26px; }
.bslg-line-reservation-form-lead { margin:0 0 18px; padding:14px 16px; border-left:5px solid currentColor; background:rgba(0,0,0,.04); 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; font-weight:700; margin-bottom:6px; }
.bslg-line-reservation-form-required { color:#d00; }
.bslg-line-reservation-form-field input,
.bslg-line-reservation-form-field select,
.bslg-line-reservation-form-field textarea { width:100%; border:1px solid #bbb; border-radius:6px; padding:11px 12px; font-size:16px; color:#111; background:#fff; box-sizing:border-box; }
.bslg-line-reservation-form-field textarea { min-height:120px; }
.bslg-line-reservation-form-submit { display:inline-flex; align-items:center; justify-content:center; border:0; color:#fff; font-weight:700; padding:14px 28px; font-size:16px; cursor:pointer; }
.bslg-line-reservation-form-alert { padding:14px 16px; border-radius:8px; margin-bottom:18px; font-weight:700; }
.bslg-line-reservation-form-alert.ok { background:#e9f8ee; color:#0f5132; border:1px solid #198754; }
.bslg-line-reservation-form-alert.ng { background:#fff1f1; color:#842029; border:1px solid #dc3545; }
.bslg-line-reservation-form-empty { background:#fff8e1; border:1px solid #ffc107; border-left:5px solid #ffc107; color:#5f4700; padding:16px; border-radius:8px; font-weight:700; line-height:1.7; }
@media (max-width:700px) { .bslg-line-reservation-form-grid { grid-template-columns:1fr; } .bslg-line-reservation-form-head h2 { font-size:24px; } .bslg-line-reservation-form-body { padding:20px; } }

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

/* v1.6.4 LINEユーザー必須時は、LINEログイン確認が終わるまで予約フォーム本体を表示しない */
.bslg-line-reservation-form-main.is-line-required { display:none !important; }
.bslg-line-reservation-form-line-gate { margin:0 0 18px; padding:18px 20px; border:1px solid #06C755; border-left:6px solid #06C755; background:#f0fff6; color:#0f5132; border-radius:10px; line-height:1.7; }
.bslg-line-reservation-form-line-gate-title { font-weight:800; font-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:#06C755; color:#fff; font-weight:800; border-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 #06C755; background:#f3fff7; color:#0f5132; border-radius:10px; }
.bslg-line-reservation-form-line-profile-img { width:44px; height:44px; object-fit:cover; border-radius:50%; background:#fff; border:1px solid #06C755; }
.bslg-line-reservation-form-line-profile-label { font-size:12px; font-weight:700; opacity:.75; }
.bslg-line-reservation-form-line-profile-name { font-size:17px; font-weight:800; }

/* v2.3.0 リソース制約型予約フォーム */
.bslg-line-reservation-step { margin: 0 0 20px; padding: 16px; border: 1px solid #d7e5ff; border-radius: 12px; background: #f7fbff; }
.bslg-line-reservation-step h3 { margin: 0 0 12px; font-size: 17px; color: #111; }
.bslg-line-reservation-menu-select { width: 100%; max-width: 520px; border: 1px solid #1d63ff; border-radius: 8px; padding: 12px 14px; font-size: 16px; color: #111; background: #fff; }
.bslg-line-reservation-step-note { margin-top: 8px; color: #345; font-size: 13px; }
.bslg-line-reservation-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.bslg-line-reservation-calendar-head a { display:inline-flex; align-items:center; justify-content:center; border:1px solid #1d63ff; border-radius:8px; padding:8px 12px; color:#0645c8; background:#fff; text-decoration:none; font-weight:700; }
.bslg-line-reservation-calendar { display:grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap:6px; }
.bslg-line-reservation-calendar-wd { font-weight:800; text-align:center; color:#333; padding:4px 0; font-size:13px; }
.bslg-line-reservation-calendar-day { min-height:64px; border:1px solid #ddd; border-radius:10px; background:#fff; color:#111; 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:#f4f4f4; }
.bslg-line-reservation-calendar-day.closed { background:#f7f7f7; color:#777; }
.bslg-line-reservation-calendar-day.full { background:#fff7e6; border-color:#ffc107; color:#5f4700; }
.bslg-line-reservation-calendar-day.available { background:#effaf2; border-color:#06a344; cursor:pointer; }
.bslg-line-reservation-calendar-day.selected { outline:3px solid #1d63ff; }
.bslg-line-reservation-calendar-day .dayno { font-weight:800; 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:#fff; border:1px solid currentColor; font-weight:800; font-size:12px; line-height:1; text-align:center; box-sizing:border-box; }
.bslg-line-reservation-calendar-day .count { font-size:12px; color:#0b5; font-weight:700; text-align:center; line-height:1; }
.bslg-line-reservation-selected-date { margin: 0 0 10px; font-weight:700; color:#111; }
.bslg-line-reservation-time-buttons { display:flex; flex-wrap:wrap; gap:10px; }
.bslg-line-reservation-time-button { min-width:96px; border:2px solid #1d63ff; border-radius:10px; background:#fff; color:#111; font-weight:800; padding:10px 16px; cursor:pointer; }
.bslg-line-reservation-time-button.selected { background:#1d63ff; color:#fff; }
.bslg-line-reservation-selected-time { margin-top:10px; font-weight:800; color:#0645c8; }
.bslg-line-reservation-confirm { background:#fff; border-color:#ddd; }
.bslg-line-reservation-confirm-line { display:flex; gap:12px; align-items:center; border-bottom:1px solid #eee; padding:8px 0; }
.bslg-line-reservation-confirm-line span { min-width:92px; color:#555; font-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 #ccc; border-radius:999px; padding:8px 12px; background:#fff; font-weight:700; }
@media (max-width:700px) {
  .bslg-line-reservation-calendar-day { min-height:54px; padding:6px; font-size:12px; }
  .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; }
  .bslg-line-reservation-time-button { min-width:80px; padding:9px 10px; }
}

/* v2.3.7 calendar_label_center_fix: 空/満/休ラベルをセル中央に固定 */
