/* =========================================================================
   booking.css — TheRoommatesBooking widget (scoped κάτω από .trb-booking)
   Brand: teal #00796b / dark #333 / Montserrat (headings) / Open Sans (body)
   ========================================================================= */

.trb-booking {
  --trb-teal: #00796b;
  --trb-teal-dark: #00695c;
  --trb-teal-soft: #e0f2f1;
  --trb-dark: #333;
  --trb-muted: #9e9e9e;
  --trb-red: #d32f2f;
  font-family: "Open Sans", system-ui, sans-serif;
  color: var(--trb-dark);
  width: 100%;
  padding: 20px 24px 24px;
  box-sizing: border-box;
}

.trb-booking *,
.trb-booking *::before,
.trb-booking *::after { box-sizing: border-box; }

.trb-booking .trb-stage { animation: trbFade .2s ease-out; }
@keyframes trbFade {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

/* ---------- κεφαλίδα μήνα ---------- */
.trb-booking .trb-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.trb-booking .trb-cal-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 17px;
  color: var(--trb-dark);
}
.trb-booking .trb-nav {
  width: 36px;
  height: 36px;
  border: 1px solid #e0e0e0;
  border-radius: 50%;
  background: #fff;
  color: var(--trb-teal);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.trb-booking .trb-nav:hover:not(:disabled) {
  background: var(--trb-teal);
  border-color: var(--trb-teal);
  color: #fff;
}
.trb-booking .trb-nav:disabled { opacity: .35; cursor: default; }

/* ---------- πλέγμα ημερολογίου ---------- */
.trb-booking .trb-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
.trb-booking .trb-wd {
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--trb-muted);
  text-transform: uppercase;
  padding: 4px 0;
}
.trb-booking .trb-day {
  height: 40px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: #bdbdbd;
  font-family: inherit;
  font-size: 14.5px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: default;
  padding: 0;
  transition: background .15s, color .15s, transform .15s;
}
.trb-booking .trb-blank { visibility: hidden; }
.trb-booking .trb-day.trb-today { box-shadow: inset 0 0 0 1.5px var(--trb-teal); }
.trb-booking .trb-day.trb-avail {
  background: var(--trb-teal-soft);
  color: var(--trb-teal);
  font-weight: 600;
  cursor: pointer;
}
.trb-booking .trb-day.trb-avail:hover {
  background: var(--trb-teal);
  color: #fff;
  transform: translateY(-1px);
}
.trb-booking .trb-day.trb-sel,
.trb-booking .trb-day.trb-sel:hover {
  background: var(--trb-teal);
  color: #fff;
}

/* skeleton φόρτωσης */
.trb-booking .trb-day.trb-skel {
  background: linear-gradient(90deg, #f1f1f1 25%, #e6e6e6 37%, #f1f1f1 63%);
  background-size: 400% 100%;
  animation: trbShimmer 1.2s ease infinite;
}
@keyframes trbShimmer {
  0%   { background-position: 100% 0; }
  100% { background-position: 0 0; }
}

/* ---------- πάνελ ωρών ---------- */
.trb-booking .trb-slots {
  margin-top: 16px;
  border-top: 1px solid #eee;
  padding-top: 14px;
}
.trb-booking .trb-slots-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 15px;
  color: var(--trb-dark);
  margin-bottom: 10px;
}
.trb-booking .trb-slot-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
  gap: 8px;
}
.trb-booking .trb-slot {
  padding: 9px 0;
  border: 1px solid var(--trb-teal);
  border-radius: 8px;
  background: #fff;
  color: var(--trb-teal);
  font-family: inherit;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.trb-booking .trb-slot:hover {
  background: var(--trb-teal);
  color: #fff;
}
.trb-booking .trb-hint,
.trb-booking .trb-empty {
  font-size: 14px;
  color: #757575;
}
.trb-booking .trb-notice {
  background: #fff8e1;
  border: 1px solid #ffe082;
  color: #795548;
  font-size: 13.5px;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 12px;
}

/* ---------- φόρμα στοιχείων ---------- */
.trb-booking .trb-recap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  background: var(--trb-teal-soft);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 16px;
}
.trb-booking .trb-recap-when {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 14.5px;
  color: var(--trb-teal);
}
.trb-booking .trb-back {
  border: none;
  background: none;
  color: var(--trb-teal);
  font-family: inherit;
  font-size: 13.5px;
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
}
.trb-booking .trb-back:hover { color: var(--trb-teal-dark); }

.trb-booking .trb-field { margin-bottom: 12px; }
.trb-booking .trb-label {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--trb-dark);
  margin-bottom: 4px;
}
.trb-booking .trb-input {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background: #fff;
  font-family: inherit;
  font-size: 14.5px;
  color: var(--trb-dark);
  transition: border-color .15s, box-shadow .15s;
}
.trb-booking .trb-input:focus {
  outline: none;
  border-color: var(--trb-teal);
  box-shadow: 0 0 0 3px rgba(0, 121, 107, .15);
}
.trb-booking .trb-input-err { border-color: var(--trb-red); }
.trb-booking textarea.trb-input { resize: vertical; min-height: 70px; }
.trb-booking .trb-err {
  color: var(--trb-red);
  font-size: 12.5px;
  margin-top: 3px;
}
.trb-booking .trb-form-err {
  background: #fdecea;
  border: 1px solid #f5c6cb;
  color: var(--trb-red);
  font-size: 13.5px;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 12px;
}
.trb-booking .trb-submit {
  width: 100%;
  padding: 12px;
  border: none;
  border-radius: 8px;
  background: var(--trb-teal);
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  transition: background .15s;
}
.trb-booking .trb-submit:hover:not(:disabled) { background: var(--trb-teal-dark); }
.trb-booking .trb-submit:disabled { opacity: .65; cursor: default; }

/* honeypot — εκτός οθόνης, όχι display:none (να το βλέπουν τα bots) */
.trb-booking .trb-hp {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px;
  height: 1px;
  opacity: 0;
}

/* ---------- οθόνη επιτυχίας ---------- */
.trb-booking .trb-done {
  text-align: center;
  padding: 36px 12px;
}
.trb-booking .trb-done-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--trb-teal-soft);
  color: var(--trb-teal);
  font-size: 34px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: trbPop .3s ease-out;
}
@keyframes trbPop {
  from { transform: scale(.6); opacity: 0; }
  to   { transform: none; opacity: 1; }
}
.trb-booking .trb-done-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--trb-dark);
  margin: 0 0 8px;
}
.trb-booking .trb-done-when {
  font-weight: 600;
  color: var(--trb-teal);
  font-size: 15.5px;
  margin-bottom: 8px;
}
.trb-booking .trb-done-note {
  font-size: 14px;
  color: #6c757d;
  margin: 0;
}

/* ---------- fallback (Google iframe + τηλέφωνο) ---------- */
.trb-booking .trb-fallback-msg {
  font-size: 14px;
  color: #555;
  margin: 0 0 12px;
}
.trb-booking .trb-fallback-msg a {
  color: var(--trb-teal);
  font-weight: 600;
}
.trb-booking .trb-fallback iframe {
  width: 100%;
  height: 560px;
  border: 0;
  border-radius: 8px;
}

/* ---------- responsive ---------- */
@media (max-width: 640px) {
  .trb-booking { padding: 14px 14px 18px; }
  .trb-booking .trb-day { height: 38px; border-radius: 8px; }
  .trb-booking .trb-slot-list { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); }
  .trb-booking .trb-fallback iframe { height: 480px; }
}

/* κουμπί επαναπροσπάθειας στο fallback */
.trb-booking .trb-retry {
  border: 1px solid var(--trb-teal);
  border-radius: 8px;
  background: #fff;
  color: var(--trb-teal);
  font-family: inherit;
  font-weight: 600;
  font-size: 13.5px;
  padding: 6px 12px;
  margin: 0 4px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.trb-booking .trb-retry:hover { background: var(--trb-teal); color: #fff; }

/* επιλεγμένη ώρα (picker mode) */
.trb-booking .trb-slot-sel,
.trb-booking .trb-slot-sel:hover { background: var(--trb-teal); color: #fff; }

/* compact εκδοχή μέσα σε μικρά modals (π.χ. modal Ανακαίνισης) */
.trb-booking.trb-compact { padding: 10px 0 0; }
.trb-booking.trb-compact .trb-day { height: 34px; font-size: 13.5px; border-radius: 8px; }
.trb-booking.trb-compact .trb-slots { margin-top: 12px; padding-top: 10px; }
.trb-booking.trb-compact .trb-cal-title { font-size: 15.5px; }
