/* Cosecha Oaxaca — Reservas (Versión A) */
.wprrp-widget { max-width: 620px; margin: 0 auto; padding: 10px; font-family: 'Montserrat', 'Helvetica Neue', sans-serif; }
.wprrp-card { background: #1a1612; color: #f5f0e8; border-radius: 12px; padding: 26px; border: 1px solid #332c26; }
.wprrp-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 30px; margin: 4px 0 20px; font-weight: 500; color: #f5f0e8; }

/* Stepper */
.wprrp-stepper { display: flex; align-items: center; margin-bottom: 24px; }
.wprrp-stepper .wprrp-step-group { display: flex; align-items: center; gap: 8px; }
.wprrp-step-ind { width: 28px; height: 28px; border-radius: 50%; display:flex; align-items:center; justify-content:center; background: #332c26; color:#a89e90; font-weight:500; font-size: 13px; flex-shrink: 0; transition: background .15s ease, color .15s ease; }
.wprrp-step-ind.active { background: #c9a96e; color: #1a1612; }
.wprrp-step-label { font-size: 12px; color: #a89e90; white-space: nowrap; transition: color .15s ease; }
.wprrp-step-label.active { color: #dfc28a; }
.wprrp-step-line { height: 1px; flex: 1; background: #332c26; margin: 0 10px; transition: background .15s ease; }
.wprrp-step-line.active { background: #c9a96e; }

/* People */
.wprrp-step { margin-bottom: 20px; }
.wprrp-step-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 19px; font-weight: 500; margin-bottom: 10px; color: #f5f0e8; }
.wprrp-people { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.wprrp-pill { border: 1px solid #4a4038; background: transparent; color: #f5f0e8; padding: 9px 16px; border-radius: 20px; cursor: pointer; font-size: 14px; transition: border-color .12s ease, background .12s ease; }
.wprrp-pill:hover { border-color: #c9a96e; }
.wprrp-pill.active { background: #c9a96e; border-color: #c9a96e; color: #1a1612; font-weight: 500; }
.wprrp-group { display: inline-flex; align-items: center; gap: 8px; margin-left: 4px; }
.wprrp-group label { font-size: 13px; color: #a89e90; }
.wprrp-group-input { width: 70px; padding: 8px 10px; border-radius: 8px; border: 1px solid #4a4038; background: #221d19; color: #f5f0e8; font-size: 13px; }

/* Calendar */
.wprrp-calendar { margin-bottom: 20px; }
.wprrp-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.wprrp-cal-title { font-size: 14px; color: #dfc28a; text-transform: capitalize; }
.wprrp-cal-prev, .wprrp-cal-next { background: transparent; color: #a89e90; border: 1px solid #4a4038; width: 30px; height: 30px; border-radius: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.wprrp-cal-prev:hover:not([disabled]), .wprrp-cal-next:hover:not([disabled]) { border-color: #c9a96e; color: #dfc28a; }
.wprrp-cal-prev[disabled], .wprrp-cal-next[disabled] { opacity: .35; cursor: not-allowed; }

.wprrp-cal-grid { display: grid; grid-template-rows: repeat(7, auto); gap: 5px; }
.wprrp-cal-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.wprrp-cal-row.head .wprrp-cal-cell { font-size: 11px; color: #a89e90; border:none; background: transparent; padding: 0 0 4px; }
.wprrp-cal-cell { background: #221d19; color: #f5f0e8; border: none; border-radius: 8px; display:flex; align-items:center; justify-content:center; position: relative; font-size: 13px; padding: 9px 0; }
.wprrp-cal-cell.muted { opacity:.35; }
.wprrp-cal-cell.past { opacity:.3; }
.wprrp-cal-cell.day { cursor:pointer; }
.wprrp-cal-cell.day:hover:not([disabled]) { outline: 1px solid #4a4038; }
.wprrp-cal-cell.day.selected { background: #c9a96e; color: #1a1612; font-weight: 500; }
.wprrp-dot { width:7px; height:7px; border-radius:2px; display:inline-block; vertical-align:middle; margin-right:5px; }
.wprrp-dot.ok { background:#7a8c6e; } .wprrp-dot.full { background:#b8593b; } .wprrp-dot.blocked { background:#b8593b; } .wprrp-dot.closed { background:#5a5148; }

/* Day states */
.wprrp-cal-cell.day.ok { color: #a9bc9c; }
.wprrp-cal-cell.day.full { color: #c98467; opacity: .55; cursor: not-allowed; }
.wprrp-cal-cell.day.blocked { color: #c98467; opacity: .55; cursor: not-allowed; }
.wprrp-cal-cell.day.closed { color: #5a5148; opacity: .4; }
.wprrp-cal-cell.day.selected.ok { color: #1a1612; }

.wprrp-cal-legend { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 12px; font-size: 11px; color: #a89e90; }

/* Hours grouped */
.wprrp-hours-group { margin-bottom: 12px; }
.wprrp-hours-group-title { font-size: 12px; color: #a89e90; margin: 0 0 6px; letter-spacing: .03em; text-transform: uppercase; }
.wprrp-hours { display: flex; flex-wrap: wrap; gap: 8px; }
.wprrp-hour { padding: 8px 14px; border-radius: 8px; border: 1px solid #4a4038; background: transparent; color: #f5f0e8; cursor: pointer; font-size: 13px; transition: border-color .12s ease, background .12s ease; }
.wprrp-hour:hover:not(.disabled) { border-color: #c9a96e; }
.wprrp-hour.active { background: #c9a96e; border-color: #c9a96e; color: #1a1612; font-weight: 500; }
.wprrp-hour.disabled { opacity: .4; cursor: not-allowed; text-decoration: line-through; }

/* Summary bar */
.wprrp-summary { display: none; align-items: center; justify-content: space-between; background: #221d19; border-radius: 10px; padding: 14px 16px; margin: 4px 0 20px; font-size: 13px; color: #dfc28a; flex-wrap: wrap; gap: 10px; }
.wprrp-summary.show { display: flex; }
.wprrp-summary-text i { margin-right: 6px; vertical-align: -2px; }
.wprrp-summary-text span.sep { color: #5a5148; margin: 0 6px; }

/* Form */
.wprrp-form input[type="text"], .wprrp-form input[type="email"], .wprrp-form input[type="number"]{
  width: 100%; padding: 11px 14px; border-radius: 8px; border: 1px solid #4a4038;
  background: #221d19; color: #f5f0e8; font-size: 14px; box-sizing: border-box;
}
.wprrp-form label { font-size: 13px; color: #a89e90; display: block; margin-bottom: 4px; }
.wprrp-form p { margin: 0 0 14px; }
.wprrp-form .button.button-primary { background: #c9a96e; color:#1a1612; border:none; padding: 11px 22px; border-radius: 8px; font-weight: 500; font-size: 14px; cursor: pointer; }
.wprrp-form .button.button-primary:hover { background: #dfc28a; }

.wprrp-success { color: #a9bc9c; font-weight: 500; margin-top: 10px; font-size: 14px; }
.wprrp-error { color: #c98467; font-weight: 500; margin-top: 10px; font-size: 14px; }

/* Preferencia de mesa */
.wprrp-pref { margin: 0 0 14px; }
.wprrp-pref-title { font-size: 13px; color: #a89e90; display: block; margin-bottom: 8px; }
.wprrp-pref-options { display: flex; flex-wrap: wrap; gap: 8px; }
.wprrp-pref-opt { border: 1px solid #4a4038; border-radius: 20px; padding: 8px 16px; font-size: 13px; color: #f5f0e8; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: border-color .12s ease, background .12s ease; }
.wprrp-pref-opt:hover { border-color: #c9a96e; }
.wprrp-pref-opt input { accent-color: #c9a96e; margin: 0; }
.wprrp-pref-opt:has(input:checked) { background: #c9a96e; border-color: #c9a96e; color: #1a1612; font-weight: 500; }

/* Gestionar reserva (cancelar / cambiar) */
.wprrp-manage-card {}
.wprrp-manage-summary { background: #221d19; border-radius: 10px; padding: 16px 18px; margin-bottom: 18px; }
.wprrp-manage-summary p { margin: 4px 0; font-size: 14px; color: #f5f0e8; }
.wprrp-manage-status { display: inline-block; margin-top: 8px !important; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 500; }
.wprrp-manage-status-confirmed { background: rgba(122,140,110,.2); color: #a9bc9c; }
.wprrp-manage-status-cancelled { background: rgba(184,89,59,.2); color: #c98467; }
.wprrp-manage-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.wprrp-manage-actions .button { border-radius: 8px; padding: 10px 18px; font-size: 13px; cursor: pointer; border: 1px solid #4a4038; background: transparent; color: #f5f0e8; }
.wprrp-manage-actions .wprrp-btn-change { border-color: #c9a96e; color: #dfc28a; }
.wprrp-manage-actions .wprrp-btn-change:hover { background: #c9a96e; color: #1a1612; }
.wprrp-manage-actions .wprrp-btn-cancel:hover { border-color: #b8593b; color: #c98467; }
.wprrp-manage-change { margin-top: 6px; }
.wprrp-manage-msg { margin-top: 10px; }

/* Popup de confirmación */
.wprrp-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(10,8,6,.72); z-index: 9999; align-items: center; justify-content: center; padding: 20px; }
.wprrp-modal { background: #1a1612; border: 1px solid #332c26; border-radius: 14px; max-width: 380px; width: 100%; padding: 32px 28px 28px; text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,.5); }
.wprrp-modal-icon { width: 48px; height: 48px; line-height: 48px; border-radius: 50%; background: rgba(122,140,110,.18); color: #a9bc9c; font-size: 22px; margin: 0 auto 14px; }
.wprrp-modal-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 24px; font-weight: 500; color: #f5f0e8; margin: 0 0 14px; }
.wprrp-modal-summary { background: #221d19; border-radius: 10px; padding: 12px 16px; margin-bottom: 14px; }
.wprrp-modal-summary p { margin: 3px 0; font-size: 14px; color: #dfc28a; }
.wprrp-modal-note { font-size: 13px; color: #a89e90; line-height: 1.5; margin: 0 0 20px; }
.wprrp-modal-close { width: 100%; }

@media (max-width: 640px) {
  .wprrp-card { padding: 18px; border-radius: 0; }
  .wprrp-title { font-size: 24px; }
}
