:root {
  --rytkyn-green: #2f7d3c;
  --rytkyn-green-dark: #22612d;
  --rytkyn-border: #d9ded6;
  --rytkyn-bg: #faf9f4;
  --rytkyn-card: #ffffff;
  --rytkyn-text: #1f2933;
  --rytkyn-muted: #667085;
}

.rytkyn-reservations-list,
.rytkyn-pick-time-selector,
.rytkyn-reservation-form {
  max-width: 900px;
  margin: 24px auto;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--rytkyn-text);
}

.rytkyn-reservation-card,
.rytkyn-pick-time-selector,
.rytkyn-reservation-form {
  background: var(--rytkyn-card);
  border: 1px solid var(--rytkyn-border);
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.04);
}

.rytkyn-reservation-card h3,
.rytkyn-pick-time-selector h2 {
  margin: 0 0 20px;
  font-size: 30px;
  line-height: 1.2;
  color: #0f172a;
}

.rytkyn-reservation-card > div,
.rytkyn-pick-time-selector > div {
  margin-bottom: 8px;
}

.rytkyn-reservation-card strong,
.rytkyn-pick-time-selector strong {
  color: #263b2b;
}

.rytkyn-reservation-actions {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--rytkyn-border);
}

.rytkyn-reservation-actions label,
.rytkyn-pick-time-selector label,
.rytkyn-reservation-form label {
  display: inline-block;
  margin-bottom: 6px;
  font-weight: 650;
  color: #1f2933;
}

.rytkyn-reservation-actions input,
.rytkyn-pick-time-selector input,
.rytkyn-pick-time-selector select,
.rytkyn-pick-time-selector textarea,
.rytkyn-reservation-form input,
.rytkyn-reservation-form select,
.rytkyn-reservation-form textarea {
  width: 100%;
  max-width: 420px;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #cfd8cf;
  border-radius: 10px;
  font-size: 17px;
  background: #fff;
}

.rytkyn-reservation-form textarea,
.rytkyn-pick-time-selector textarea {
  max-width: 100%;
}

.rytkyn-reservation-actions input:focus,
.rytkyn-pick-time-selector input:focus,
.rytkyn-pick-time-selector select:focus,
.rytkyn-pick-time-selector textarea:focus,
.rytkyn-reservation-form input:focus,
.rytkyn-reservation-form select:focus,
.rytkyn-reservation-form textarea:focus {
  outline: none;
  border-color: var(--rytkyn-green);
  box-shadow: 0 0 0 3px rgba(47,125,60,0.14);
}

.rytkyn-reservation-actions button,
.rytkyn-pick-time-selector button,
.rytkyn-reservation-form button,
.rytkyn-sumup-pay-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 18px;
  border-radius: 10px;
  border: 1px solid var(--rytkyn-green);
  background: var(--rytkyn-green);
  color: white;
  font-weight: 700;
  font-size: 16px;
  cursor: pointer;
}

.rytkyn-reservation-actions button:hover,
.rytkyn-pick-time-selector button:hover,
.rytkyn-reservation-form button:hover,
.rytkyn-sumup-pay-btn:hover {
  background: var(--rytkyn-green-dark);
}

.rytkyn-reservation-actions button:disabled,
.rytkyn-pick-time-selector button:disabled,
.rytkyn-reservation-form button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.rytkyn-cancel-reservation-btn,
.rytkyn-reset-to-pending-btn,
.rytkyn-later-btn {
  background: #fff !important;
  color: var(--rytkyn-green) !important;
}

.rytkyn-calculated-price,
.rytkyn-action-status,
.rytkyn-sumup-status {
  margin-top: 12px;
  font-weight: 650;
  color: var(--rytkyn-green-dark);
}

.rytkyn-inline-pay-container {
  margin-top: 14px;
}

.rytkyn-reservation-card em {
  color: var(--rytkyn-muted);
}

@media (max-width: 700px) {
  .rytkyn-reservation-card,
  .rytkyn-pick-time-selector,
  .rytkyn-reservation-form {
    padding: 18px;
    border-radius: 12px;
  }

  .rytkyn-reservation-card h3,
  .rytkyn-pick-time-selector h2 {
    font-size: 25px;
  }

  .rytkyn-reservation-actions button,
  .rytkyn-pick-time-selector button,
  .rytkyn-reservation-form button,
  .rytkyn-sumup-pay-btn {
    width: 100%;
  }

  .rytkyn-reservation-actions input,
  .rytkyn-pick-time-selector input,
  .rytkyn-pick-time-selector select,
  .rytkyn-reservation-form input,
  .rytkyn-reservation-form select {
    max-width: 100%;
  }

}

/* Varauskortin tieto-osuus */
.rytkyn-reservation-card > div:not(.rytkyn-reservation-actions),
.rytkyn-pick-time-selector > div:not(.rytkyn-action-status) {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 6px 16px;
  align-items: baseline;
  max-width: 720px;
}

.rytkyn-reservation-card > div strong,
.rytkyn-pick-time-selector > div strong {
  display: inline-block;
  min-width: 0;
}

/* Poiminta- ja maksutoiminnot pysyvät normaalina */
.rytkyn-reservation-actions,
.rytkyn-reservation-actions div,
.rytkyn-inline-pay-container,
.rytkyn-sumup-box,
.rytkyn-action-status,
.rytkyn-calculated-price {
  display: block;
}

/* Lomakekentät selkeämmiksi */
.rytkyn-reservation-actions input,
.rytkyn-pick-time-selector input,
.rytkyn-pick-time-selector select,
.rytkyn-reservation-form input,
.rytkyn-reservation-form select,
.rytkyn-reservation-form textarea {
  min-height: 48px;
  font-size: 18px;
}

/* Mobiilissa takaisin allekkain */
@media (max-width: 600px) {
  .rytkyn-reservation-card > div:not(.rytkyn-reservation-actions),
  .rytkyn-pick-time-selector > div:not(.rytkyn-action-status) {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

.rytkyn-info-row {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 12px;
}
