/* Restaurant Reservation Pro */
.rrp-wrap {
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 34px !important;
  background: #ffffff !important;
  border-radius: 22px !important;
  box-shadow: 0 14px 45px rgba(0,0,0,.08) !important;
  font-family: inherit !important;
}

.rrp-wrap * {
  box-sizing: border-box !important;
}

.rrp-title {
  text-align: center !important;
  margin: 0 0 24px !important;
  font-size: 28px !important;
  line-height: 1.2 !important;
  letter-spacing: .5px !important;
}

.rrp-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 15px !important;
}

.rrp-field {
  margin-bottom: 15px !important;
}

.rrp-field label {
  display: block !important;
  font-weight: 700 !important;
  margin-bottom: 7px !important;
  font-size: 14px !important;
}

.rrp-field input,
.rrp-field select,
.rrp-field textarea {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  border: 1px solid #ddd !important;
  border-radius: 12px !important;
  padding: 14px 15px !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  background: #fff !important;
  color: #111 !important;
  height: auto !important;
  min-height: 50px !important;
  box-shadow: none !important;
}

.rrp-field textarea {
  min-height: 105px !important;
  resize: vertical !important;
}

.rrp-actions {
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

.rrp-btn {
  display: inline-block !important;
  border: 0 !important;
  border-radius: 12px !important;
  padding: 14px 20px !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  background: #111 !important;
  color: #fff !important;
  text-decoration: none !important;
  height: auto !important;
  min-height: 50px !important;
}

.rrp-btn.secondary {
  background: #f1f1f1 !important;
  color: #111 !important;
}

.rrp-btn:disabled {
  opacity: .55 !important;
  cursor: not-allowed !important;
}

.rrp-message {
  display: none;
  margin: 16px 0 !important;
  padding: 13px 15px !important;
  border-radius: 12px !important;
  font-weight: 600 !important;
}

.rrp-message.success {
  background: #eaf7ee !important;
  color: #126b2f !important;
}

.rrp-message.error {
  background: #fff0f0 !important;
  color: #9f1d1d !important;
}

.rrp-small {
  font-size: 13px !important;
  color: #777 !important;
  margin-top: 6px !important;
}

.rrp-otp-area {
  display: none;
  border: 1px dashed #ccc !important;
  padding: 16px !important;
  border-radius: 16px !important;
  margin: 8px 0 18px !important;
}

@media (max-width:680px) {
  .rrp-wrap {
    padding: 22px !important;
  }

  .rrp-grid {
    grid-template-columns: 1fr !important;
  }

  .rrp-actions {
    display: block !important;
  }

  .rrp-btn {
    width: 100% !important;
    margin-bottom: 10px !important;
  }
}


/* Reservation manager front panel */
.rrp-manager {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 28px !important;
  background: #fff !important;
  border-radius: 22px !important;
  box-shadow: 0 14px 45px rgba(0,0,0,.08) !important;
}

.rrp-manager-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 15px !important;
  flex-wrap: wrap !important;
  margin-bottom: 20px !important;
}

.rrp-manager h2 {
  margin: 0 !important;
  font-size: 28px !important;
}

.rrp-manager-filter {
  display: flex !important;
  gap: 10px !important;
  align-items: end !important;
  flex-wrap: wrap !important;
  margin: 0 0 18px !important;
  padding: 15px !important;
  background: #f7f7f7 !important;
  border-radius: 16px !important;
}

.rrp-manager-filter label {
  display: block !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  margin-bottom: 5px !important;
}

.rrp-manager-filter input,
.rrp-manager-filter select {
  min-height: 42px !important;
  padding: 9px 12px !important;
  border: 1px solid #ddd !important;
  border-radius: 10px !important;
}

.rrp-table-wrap {
  overflow-x: auto !important;
}

.rrp-manager-table {
  width: 100% !important;
  border-collapse: collapse !important;
  min-width: 900px !important;
}

.rrp-manager-table th,
.rrp-manager-table td {
  padding: 12px 10px !important;
  border-bottom: 1px solid #eee !important;
  text-align: left !important;
  vertical-align: top !important;
  font-size: 14px !important;
}

.rrp-manager-table th {
  background: #fafafa !important;
  font-weight: 800 !important;
}

.rrp-status-pill {
  display: inline-block !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  background: #eee !important;
}

.rrp-status-pending { background: #fff4d8 !important; color: #805600 !important; }
.rrp-status-confirmed { background: #e7f7ec !important; color: #126b2f !important; }
.rrp-status-cancelled { background: #ffe8e8 !important; color: #9f1d1d !important; }
.rrp-status-completed { background: #e8f0ff !important; color: #174ea6 !important; }

.rrp-action-row {
  display: flex !important;
  gap: 7px !important;
  flex-wrap: wrap !important;
}

.rrp-action-btn {
  border: 0 !important;
  border-radius: 9px !important;
  padding: 8px 10px !important;
  cursor: pointer !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

.rrp-action-confirm { background: #111 !important; color: #fff !important; }
.rrp-action-cancel { background: #fff0f0 !important; color: #9f1d1d !important; }
.rrp-action-complete { background: #eef3ff !important; color: #174ea6 !important; }

.rrp-login-box {
  max-width: 420px !important;
  margin: 0 auto !important;
  padding: 28px !important;
  border-radius: 22px !important;
  background: #fff !important;
  box-shadow: 0 14px 45px rgba(0,0,0,.08) !important;
}

.rrp-login-box input[type="text"],
.rrp-login-box input[type="password"] {
  width: 100% !important;
  padding: 13px !important;
  border: 1px solid #ddd !important;
  border-radius: 10px !important;
}

.rrp-login-box input[type="submit"] {
  width: 100% !important;
  border: 0 !important;
  background: #111 !important;
  color: #fff !important;
  padding: 13px !important;
  border-radius: 10px !important;
  font-weight: 800 !important;
}

@media(max-width:760px) {
  .rrp-manager {
    padding: 18px !important;
  }

  .rrp-manager-filter {
    display: block !important;
  }

  .rrp-manager-filter > div,
  .rrp-manager-filter button,
  .rrp-manager-filter a {
    width: 100% !important;
    margin-bottom: 10px !important;
  }
}


/* Wide restaurant reservation form */
.rrp-wide-wrap {
  max-width: 1320px !important;
  margin: 0 auto !important;
  padding: 90px 30px 70px !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: inherit !important;
}

.rrp-wide-intro {
  text-align: center !important;
  max-width: 1080px !important;
  margin: 0 auto 70px !important;
}

.rrp-wide-intro h2 {
  margin: 0 0 35px !important;
  font-size: 18px !important;
  line-height: 1.4 !important;
  letter-spacing: 7px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.rrp-wide-intro p {
  margin: 0 auto !important;
  max-width: 1050px !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #777 !important;
}

.rrp-wide-form {
  max-width: 1200px !important;
  margin: 0 auto !important;
}

.rrp-wide-grid {
  display: grid !important;
  gap: 24px !important;
}

.rrp-wide-grid-4 {
  grid-template-columns: repeat(4, 1fr) !important;
  margin-bottom: 28px !important;
}

.rrp-wide-grid-bottom {
  grid-template-columns: 3fr 1fr !important;
  align-items: start !important;
}

.rrp-wide-grid-3 {
  grid-template-columns: repeat(3, 1fr) !important;
}

.rrp-wide-field label,
.rrp-wide-otp label {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 1px !important;
  color: #222 !important;
}

.rrp-wide-field input,
.rrp-wide-field select,
.rrp-wide-field textarea,
.rrp-wide-otp input {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #f3f3f3 !important;
  color: #111 !important;
  min-height: 56px !important;
  padding: 14px 18px !important;
  font-size: 17px !important;
  box-shadow: none !important;
  outline: none !important;
}

.rrp-wide-field textarea {
  min-height: 128px !important;
  resize: vertical !important;
}

.rrp-wide-code-row {
  margin-top: 25px !important;
  display: flex !important;
  gap: 18px !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
}

.rrp-wide-code-row .rrp-btn.secondary {
  background: #f3f3f3 !important;
  color: #222 !important;
  border-radius: 0 !important;
  min-height: 56px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  padding: 14px 24px !important;
}

.rrp-wide-otp {
  display: none;
  min-width: 260px !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.rrp-wide-submit {
  margin-top: 28px !important;
  text-align: center !important;
}

.rrp-wide-submit .rrp-btn {
  background: #4c4a2c !important;
  color: #fff !important;
  border-radius: 0 !important;
  min-width: 250px !important;
  padding: 18px 35px !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  font-size: 14px !important;
}

.rrp-wide-submit .rrp-btn:disabled {
  background: #888 !important;
  opacity: .6 !important;
}

@media(max-width: 980px) {
  .rrp-wide-grid-4,
  .rrp-wide-grid-3,
  .rrp-wide-grid-bottom {
    grid-template-columns: 1fr 1fr !important;
  }

  .rrp-wide-grid-bottom > .rrp-wide-field {
    grid-column: span 2 !important;
  }
}

@media(max-width: 620px) {
  .rrp-wide-wrap {
    padding: 55px 18px 45px !important;
  }

  .rrp-wide-grid-4,
  .rrp-wide-grid-3,
  .rrp-wide-grid-bottom {
    grid-template-columns: 1fr !important;
  }

  .rrp-wide-grid-bottom > .rrp-wide-field {
    grid-column: auto !important;
  }

  .rrp-wide-code-row {
    display: block !important;
  }

  .rrp-wide-code-row .rrp-btn.secondary,
  .rrp-wide-submit .rrp-btn {
    width: 100% !important;
  }

  .rrp-wide-otp {
    margin-top: 16px !important;
    min-width: 0 !important;
  }
}


/* Horizontal version of the original reservation form */
.rrp-horizontal-wrap {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 38px !important;
  background: #ffffff !important;
  border-radius: 22px !important;
  box-shadow: 0 14px 45px rgba(0,0,0,.08) !important;
  font-family: inherit !important;
}

.rrp-horizontal-wrap * {
  box-sizing: border-box !important;
}

.rrp-horizontal-title {
  text-align: center !important;
  margin: 0 0 28px !important;
  font-size: 34px !important;
  line-height: 1.2 !important;
  letter-spacing: .5px !important;
}

.rrp-horizontal-grid {
  display: grid !important;
  gap: 24px !important;
}

.rrp-horizontal-grid-top {
  grid-template-columns: repeat(4, 1fr) !important;
  margin-bottom: 24px !important;
}

.rrp-horizontal-grid-bottom {
  grid-template-columns: 1fr 1fr 2fr !important;
  align-items: start !important;
  margin-bottom: 24px !important;
}

.rrp-horizontal-field label,
.rrp-horizontal-otp label {
  display: block !important;
  font-weight: 700 !important;
  margin-bottom: 8px !important;
  font-size: 14px !important;
}

.rrp-horizontal-field input,
.rrp-horizontal-field select,
.rrp-horizontal-field textarea,
.rrp-horizontal-otp input {
  width: 100% !important;
  max-width: 100% !important;
  border: 1px solid #ddd !important;
  border-radius: 12px !important;
  padding: 14px 15px !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  background: #fff !important;
  color: #111 !important;
  min-height: 52px !important;
  box-shadow: none !important;
}

.rrp-horizontal-field textarea {
  min-height: 110px !important;
  resize: vertical !important;
}

.rrp-horizontal-actions {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-end !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}

.rrp-horizontal-actions .rrp-btn {
  min-width: 220px !important;
}

.rrp-horizontal-otp {
  display: none;
  width: 260px !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media(max-width: 1050px) {
  .rrp-horizontal-grid-top {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .rrp-horizontal-grid-bottom {
    grid-template-columns: 1fr 1fr !important;
  }

  .rrp-horizontal-note {
    grid-column: span 2 !important;
  }
}

@media(max-width: 680px) {
  .rrp-horizontal-wrap {
    padding: 22px !important;
  }

  .rrp-horizontal-grid-top,
  .rrp-horizontal-grid-bottom {
    grid-template-columns: 1fr !important;
  }

  .rrp-horizontal-note {
    grid-column: auto !important;
  }

  .rrp-horizontal-actions {
    display: block !important;
  }

  .rrp-horizontal-actions .rrp-btn,
  .rrp-horizontal-otp {
    width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 12px !important;
  }
}


/* v1.7 field validation */
.rrp-field-error,
.rrp-inline-error {
  display: block !important;
  margin-top: 6px !important;
  color: #b42318 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.rrp-invalid {
  border-color: #b42318 !important;
  background: #fff8f8 !important;
}

/* v1.7 German manager card layout */
.rrp-manager-cards {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 22px !important;
  font-family: inherit !important;
}

.rrp-manager-note {
  background: #fff8dc !important;
  border: 1px dashed #f0dc8a !important;
  color: #333 !important;
  border-radius: 8px !important;
  padding: 18px !important;
  margin: 0 0 16px !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.rrp-manager-success {
  background: #e7f7ec !important;
  border: 1px solid #bfe8cd !important;
  color: #126b2f !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  margin: 0 0 16px !important;
  font-weight: 700 !important;
}

.rrp-manager-tabs {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin: 0 0 18px !important;
}

.rrp-manager-tabs a {
  display: inline-block !important;
  padding: 12px 16px !important;
  background: #fff !important;
  color: #222 !important;
  text-decoration: none !important;
  border: 1px solid #ddd !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
}

.rrp-manager-tabs a.active {
  background: #f3f3f3 !important;
  font-weight: 800 !important;
}

.rrp-reservation-card-list {
  display: grid !important;
  gap: 14px !important;
}

.rrp-reservation-card {
  position: relative !important;
  background: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.05) !important;
  padding: 18px 18px 16px !important;
}

.rrp-reservation-card h3 {
  margin: 0 110px 6px 0 !important;
  font-size: 19px !important;
  line-height: 1.3 !important;
  color: #222 !important;
  font-weight: 800 !important;
}

.rrp-card-source {
  color: #777 !important;
  font-size: 13px !important;
  margin-bottom: 14px !important;
}

.rrp-card-status {
  position: absolute !important;
  right: 16px !important;
  top: 16px !important;
  padding: 7px 13px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.rrp-card-status-pending {
  background: #fff4d8 !important;
  color: #795700 !important;
}

.rrp-card-status-confirmed {
  background: #dff3e9 !important;
  color: #2c5d48 !important;
}

.rrp-card-status-cancelled {
  background: #ffe1e6 !important;
  color: #b42318 !important;
}

.rrp-card-status-completed {
  background: #e8f0ff !important;
  color: #174ea6 !important;
}

.rrp-card-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  gap: 16px 45px !important;
  margin-bottom: 16px !important;
}

.rrp-card-grid strong {
  display: block !important;
  color: #555 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  margin-bottom: 4px !important;
}

.rrp-card-grid span,
.rrp-card-grid a {
  display: block !important;
  color: #222 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  word-break: break-word !important;
}

.rrp-card-actions {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.rrp-card-actions form {
  display: inline-block !important;
  margin: 0 !important;
}

.rrp-card-btn {
  display: inline-block !important;
  border: 0 !important;
  border-radius: 6px !important;
  padding: 11px 15px !important;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  font-weight: 700 !important;
}

.rrp-card-confirm {
  background: #15945c !important;
}

.rrp-card-decline {
  background: #e52f4f !important;
}

.rrp-card-whatsapp {
  background: #25D366 !important;
  color: #fff !important;
}

@media(max-width: 800px) {
  .rrp-manager-cards {
    padding: 14px !important;
  }

  .rrp-reservation-card h3 {
    margin-right: 0 !important;
    padding-right: 0 !important;
  }

  .rrp-card-status {
    position: static !important;
    display: inline-block !important;
    margin-bottom: 10px !important;
  }

  .rrp-card-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .rrp-card-btn {
    width: 100% !important;
    text-align: center !important;
  }

  .rrp-card-actions form {
    width: 100% !important;
  }
}


/* v1.8 deposit email buttons */
.rrp-card-deposit {
  background: #7a5c18 !important;
  color: #fff !important;
}

.rrp-card-deposit-en {
  background: #4c4a2c !important;
  color: #fff !important;
}


/* v1.9 submit confirmation under form buttons */
.rrp-submit-success {
  display: none;
  margin: 18px auto 0 !important;
  padding: 14px 18px !important;
  max-width: 760px !important;
  border-radius: 12px !important;
  background: #e7f7ec !important;
  border: 1px solid #bfe8cd !important;
  color: #126b2f !important;
  text-align: center !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.rrp-horizontal-wrap .rrp-submit-success,
.rrp-wide-wrap .rrp-submit-success {
  margin-top: 20px !important;
}


/* v2.0.2 stronger required-field warnings */
.rrp-inline-error {
  display: block !important;
  width: 100% !important;
  margin-top: 7px !important;
  color: #b42318 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
}

.rrp-invalid {
  border-color: #b42318 !important;
  background: #fff8f8 !important;
  box-shadow: 0 0 0 2px rgba(180,35,24,.08) !important;
}
