.dsw-booking { max-width: 900px; margin: 20px auto; padding: 10px; }
.dsw-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (max-width: 700px){ .dsw-grid{ grid-template-columns: 1fr; } }
.dsw-field label{ display:block; font-weight:600; margin: 6px 0; }
.dsw-field input, .dsw-field select, .dsw-field textarea { width:100%; padding:8px; }
.dsw-slots{ margin-top: 14px; }
.dsw-slot-list{ display:flex; flex-wrap:wrap; gap:8px; }
.dsw-slot{ padding:10px 12px; border-radius: 8px; border:1px solid #ddd; cursor:pointer; user-select:none; }
.dsw-slot.free{ background:#eaffea; border-color:#9ad09a; }
.dsw-slot.busy{ background:#ffeaea; border-color:#d89a9a; opacity:0.7; cursor:not-allowed; }
.dsw-slot.reserved{ background:#fff0d6; border-color:#e0b36b; opacity:0.9; cursor:not-allowed; }
.dsw-slot.selected{ outline: 3px solid #333; }

.dsw-selected-range{
  margin-top: 10px;
  font-weight: 600;
}
.dsw-actions{ margin-top: 16px; display:flex; gap:10px; }
.dsw-addons{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 700px){ .dsw-addons{ grid-template-columns: 1fr; } }
.dsw-addon{ border:1px solid #ddd; border-radius:12px; padding:12px; display:flex; gap:10px; align-items:flex-start; }
.dsw-addon img{ width:64px; height:64px; object-fit:cover; border-radius:10px; border:1px solid #eee; }
.dsw-addon h4{ margin:0 0 6px 0; font-size:16px; }
.dsw-addon .price{ font-weight:700; margin-top:6px; }
.dsw-addon .qty{ width:90px; }
.dsw-checks{ margin: 12px 0; }
.dsw-summary{ margin-top: 10px; padding: 12px; border:1px solid #ddd; border-radius: 10px; background:#fafafa; }
.dsw-help{ font-size: 13px; opacity:0.85; margin-top:6px; }
.dsw-error{ margin-top: 10px; padding: 10px; border:1px solid #d33; background:#ffecec; border-radius:10px; }

/* Unified alert box used above steps (error/info/success) */
.dsw-alert{ margin:10px 0; padding:10px 12px; border-radius:8px; border:1px solid transparent; }
.dsw-alert-error{ background:#fff0f0; border-color:#d63638; color:#7a1c1c; }
.dsw-alert-info{ background:#e8f4ff; border-color:#2196f3; color:#0b3d91; }
.dsw-alert-success{ background:#e6f7ed; border-color:#28a745; color:#155724; }

/* v0.4.0 */
.dsw-btn.is-disabled{opacity:.6;}

/* Make disabled-looking WP buttons (but keep them clickable so we can show validation errors) */
.dsw-booking .button.is-disabled{
  opacity:.6;
  cursor:not-allowed;
}


/* Month calendar */
.dsw-monthcal{border:1px solid #ddd;border-radius:10px;padding:10px;background:#fff}
.dsw-monthcal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.dsw-monthcal-title{font-weight:700}
.dsw-monthcal-nav{border:1px solid #ddd;background:#f7f7f7;border-radius:8px;width:36px;height:32px;cursor:pointer}
.dsw-monthcal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:12px;color:#666;margin-bottom:6px}
.dsw-monthcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.dsw-day{border:1px solid #e2e2e2;border-radius:8px;padding:8px 0;text-align:center;cursor:pointer;user-select:none;background:#fff}
.dsw-day.is-empty{border:none;background:transparent;cursor:default}
.dsw-day.is-selected{outline:2px solid #111}
.dsw-day.is-disabled{opacity:0.45;cursor:not-allowed}

/* day status colors */
.dsw-day-free{background:#dff5e3}
.dsw-day-full{background:#f7dede}
.dsw-day-partial{background:linear-gradient(90deg,#dff5e3 50%, #f7dede 50%)}
.dsw-day-closed{background:#efefef}

/* legend */
.dsw-monthcal-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#444}
.dsw-leg{padding:2px 8px;border-radius:999px;border:1px solid #ddd}
.dsw-leg-free{background:#dff5e3}
.dsw-leg-full{background:#f7dede}
.dsw-leg-partial{background:linear-gradient(90deg,#dff5e3 50%, #f7dede 50%)}
.dsw-leg-closed{background:#efefef}


/* hide old date input UI, show selected date nicely */
.dsw-date-hidden label{margin-bottom:6px;display:block}
.dsw-date-display{padding:10px 12px;border:1px solid #ddd;border-radius:10px;background:#f6f9ff}

/* Hide legacy date display (month calendar is the selector) */
.dsw-date-hidden{display:none!important;}


/* Voucher UI */
.dsw-voucher-row{display:flex;gap:10px;align-items:center}
.dsw-voucher-row input{flex:1}
.dsw-voucher-result{margin-top:8px;padding:10px 12px;border:1px solid #46b450;border-radius:8px;background:#f0fff4}
