/* GP Pilates Booking — member app v1.3. Όλα κάτω από .gppb για να μην επηρεάζεται το θέμα. */

.gppb {
  --gppb-paper: #F3F5F4;
  --gppb-surface: #FFFFFF;
  --gppb-ink: #1D2B2F;
  --gppb-teal: #1F5E5B;
  --gppb-teal-soft: #DCE8E6;
  --gppb-spring: #E4B03A;
  --gppb-spring-soft: #FBF0D4;
  --gppb-blush: #F7E4DC;
  --gppb-coral: #C8573F;
  --gppb-muted: #5F6F73;
  --gppb-line: #D8E0DE;
  --gppb-danger: #A63D36;

  font-family: "Commissioner", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.45;
  color: var(--gppb-ink);
  background: var(--gppb-paper);
  max-width: 540px;
  margin: 0 auto;
  padding: 18px 16px 28px;
  border-radius: 20px;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
}
.gppb *, .gppb *::before, .gppb *::after { box-sizing: border-box; }
/* :where() = μηδενική ισχύς, ώστε κάθε class παρακάτω να κερδίζει τον μηδενισμό */
.gppb :where(p, h2, h3, ul) { margin: 0; padding: 0; }
.gppb :where(ul) { list-style: none; }
.gppb button { font: inherit; color: inherit; cursor: pointer; }
.gppb img { max-width: 100%; }
.gppb :focus-visible { outline: 3px solid var(--gppb-spring); outline-offset: 2px; }

.gppb-loading { color: var(--gppb-muted); padding: 28px 4px; }

/* ---------- Doodles ---------- */
.gppb-doodle { display: block; color: var(--gppb-teal); }
.gppb-doodle__accent { stroke: var(--gppb-spring); }

/* ---------- Κεφαλίδα ---------- */
.gppb-head { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 0 8px; margin-bottom: 14px; min-height: 92px; }
.gppb-head__text { position: relative; z-index: 1; padding-bottom: 4px; }
.gppb-head__studio { font-size: .82rem; color: var(--gppb-muted); margin-bottom: 2px; }
.gppb-head__hello { position: relative; display: inline-block; font-size: 1.45rem; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
.gppb-doodle--underline { position: absolute; left: -2px; right: -6px; bottom: -9px; width: calc(100% + 8px); height: 12px; color: var(--gppb-spring); }
.gppb-doodle--reformer { width: 150px; height: auto; margin-right: -8px; }
.gppb-head__out { position: absolute; top: 0; right: 0; color: var(--gppb-muted); font-size: .82rem; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Υπόλοιπο ---------- */
.gppb-balance { position: relative; background: var(--gppb-teal); color: #fff; border-radius: 18px; padding: 18px 20px 16px; margin-bottom: 16px; overflow: hidden; }
.gppb-balance .gppb-doodle--spring { position: absolute; right: -14px; top: 14px; width: 150px; color: rgba(255,255,255,.18); transform: rotate(-8deg); }
.gppb-balance__main { position: relative; display: flex; align-items: center; gap: 16px; }
.gppb-balance__num { font-size: 3.6rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.gppb-balance__label { font-size: 1rem; font-weight: 600; }
.gppb-balance__label span { opacity: .85; font-weight: 400; font-size: .9rem; }
.gppb-meter { position: relative; height: 6px; border-radius: 6px; background: rgba(255,255,255,.2); margin-top: 14px; overflow: hidden; }
.gppb-meter i { display: block; height: 100%; border-radius: 6px; background: var(--gppb-spring); }
.gppb-balance__nudge { position: relative; margin-top: 14px; font-size: .88rem; background: rgba(255,255,255,.12); border-radius: 10px; padding: 8px 12px; }
.gppb-balance__nudge .gppb-link { color: #fff; }
.gppb-balance.is-soon .gppb-meter i { background: #F2A48E; }
.gppb-balance__list { position: relative; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.22); font-size: .86rem; }
.gppb-balance__list li { display: flex; justify-content: space-between; gap: 10px; padding: 2px 0; opacity: .92; }
.gppb-balance.is-empty { background: var(--gppb-surface); color: var(--gppb-ink); border: 1.5px dashed var(--gppb-line); }
.gppb-balance.is-empty .gppb-balance__num { color: var(--gppb-muted); }
.gppb-balance.is-empty .gppb-balance__label span { color: var(--gppb-muted); }
.gppb-balance.is-empty .gppb-link { margin-top: 10px; }

.gppb-link { border: 0; background: none; padding: 0; color: var(--gppb-teal); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

.gppb-balance.is-frozen { background: #3F6F86; }
.gppb-balance.is-frozen .gppb-balance__num { font-size: 2.8rem; }

/* ---------- Κριτική Google ---------- */
.gppb-review { position: relative; text-align: center; background: var(--gppb-spring-soft); border: 1.5px dashed var(--gppb-spring); border-radius: 18px; padding: 14px 16px 16px; margin-bottom: 16px; }
.gppb-review .gppb-doodle--stars { width: 96px; margin: 0 auto 4px; color: #B9861A; }
.gppb-review .gppb-doodle__fill { fill: var(--gppb-spring); stroke: #B9861A; }
.gppb-review__title { font-weight: 700; font-size: 1.05rem; }
.gppb-review__text { font-size: .9rem; color: #4A5A5E; margin-top: 2px; }
.gppb-review__act { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 12px; }
.gppb-review .gppb-link { color: var(--gppb-muted); font-weight: 500; white-space: nowrap; }

.gppb-milestone { text-align: center; background: var(--gppb-surface); border: 2px solid var(--gppb-spring); border-radius: 18px; padding: 14px 16px 16px; margin-bottom: 16px; }
.gppb-milestone .gppb-doodle--trophy { width: 92px; margin: 0 auto 2px; color: #B9861A; }
.gppb-milestone .gppb-doodle__fill { fill: var(--gppb-spring-soft); }
.gppb-milestone__num { font-size: 1.5rem; font-weight: 700; color: var(--gppb-teal); letter-spacing: -.01em; }
.gppb-milestone__text { font-size: .95rem; margin: 2px 0 12px; }

/* ---------- Tabs ---------- */
.gppb-tabs { margin-top: 4px; gap: 3px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--gppb-teal-soft); border-radius: 14px; padding: 4px; margin-bottom: 14px; }
.gppb-tab { position: relative; min-width: 0; border: 0; background: transparent; padding: 10px 2px; border-radius: 10px; font-weight: 500; color: var(--gppb-teal); font-size: .82rem; line-height: 1.2; letter-spacing: -.01em; }
.gppb-tab.is-active { background: var(--gppb-surface); color: var(--gppb-ink); font-weight: 400; box-shadow: 0 1px 2px rgba(29,43,47,.12); }
.gppb-tab b { position: absolute; top: -5px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--gppb-spring); color: var(--gppb-ink); font-size: .68rem; font-weight: 700; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px var(--gppb-paper); }

/* ---------- Προβεβλημένη προσφορά ---------- */
.gppb-featured { position: relative; display: flex; align-items: center; gap: 12px; background: var(--gppb-blush); border-radius: 14px; padding: 12px 40px 12px 12px; margin-bottom: 14px; }
.gppb-featured .gppb-doodle--sparkle { flex: 0 0 34px; width: 34px; color: var(--gppb-coral); }
.gppb-featured__title { font-weight: 600; line-height: 1.3; }
.gppb-featured__title span { color: var(--gppb-coral); white-space: nowrap; }
.gppb-featured .gppb-link { font-size: .88rem; color: var(--gppb-coral); }
.gppb-featured__x { position: absolute; top: 6px; right: 8px; border: 0; background: none; font-size: 1.3rem; line-height: 1; color: var(--gppb-muted); padding: 4px 6px; }

/* ---------- Ημέρες ---------- */
.gppb-days { display: flex; gap: 6px; overflow-x: auto; padding: 2px 2px 8px; margin: 0 -2px 4px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.gppb-days::-webkit-scrollbar { display: none; }
.gppb-day { flex: 0 0 auto; width: 52px; padding: 8px 0 12px; display: flex; flex-direction: column; align-items: center; gap: 1px; border: 1px solid var(--gppb-line); border-radius: 14px; background: var(--gppb-surface); position: relative; }
.gppb-day__name { font-size: .74rem; color: var(--gppb-muted); }
.gppb-day__num { font-size: 1.15rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.gppb-day__dot { position: absolute; bottom: 5px; width: 6px; height: 6px; border-radius: 50%; background: transparent; }
.gppb-day.is-open .gppb-day__dot { background: #3E9B7A; }
.gppb-day.is-few .gppb-day__dot { background: var(--gppb-spring); }
.gppb-day.is-full .gppb-day__dot { background: #B9C3C1; }
.gppb-day.has-mine .gppb-day__dot { width: 16px; border-radius: 4px; background: var(--gppb-spring); }
.gppb-day.is-empty { opacity: .45; }
.gppb-day.is-active { background: var(--gppb-ink); border-color: var(--gppb-ink); color: #fff; opacity: 1; }
.gppb-day.is-active .gppb-day__name { color: rgba(255,255,255,.75); }

.gppb-dayhead { font-size: 1.1rem; font-weight: 700; margin: 10px 0 10px; }

/* ---------- Μαθήματα ---------- */
.gppb-sessions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }
.gppb-session { background: var(--gppb-surface); border: 1px solid var(--gppb-line); border-radius: 16px; padding: 14px; }
.gppb-session__top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.gppb-session.is-mine { border-color: var(--gppb-spring); box-shadow: inset 5px 0 0 var(--gppb-spring); }
.gppb-session.is-waiting { border-style: dashed; border-color: var(--gppb-coral); }
.gppb-session.is-closed, .gppb-session.is-full { background: rgba(255,255,255,.55); }
.gppb-session__time strong { display: block; font-size: 1.22rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1; }
.gppb-session__time span { white-space: nowrap; font-size: .74rem; color: var(--gppb-muted); font-variant-numeric: tabular-nums; }
.gppb-session__day { font-size: .84rem; color: var(--gppb-teal); font-weight: 600; margin-bottom: 1px; }
.gppb-session__title { font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; hyphens: auto; }
.gppb-session__who { font-size: .86rem; color: var(--gppb-muted); }
.gppb-session__act { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--gppb-line); }
.gppb-tag { display: inline-block; margin-top: 4px; font-size: .76rem; font-weight: 600; color: var(--gppb-coral); background: var(--gppb-blush); padding: 1px 8px; border-radius: 99px; }

/* Τα κρεβάτια: μικρά reformer */
.gppb-bedrow { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 8px 10px; background: var(--gppb-paper); border-radius: 10px; }
.gppb-beds { display: flex; flex-wrap: nowrap; gap: 5px; }
.gppb-bedrow__txt { margin-left: auto; font-size: .82rem; color: var(--gppb-muted); white-space: nowrap; }
.gppb-bedrow__txt b { color: var(--gppb-ink); font-size: .95rem; }
.gppb-bed { flex: 0 0 auto; width: 28px; height: 15px; }
.gppb-bed__frame { fill: none; stroke: var(--gppb-teal); stroke-width: 1.6; }
.gppb-bed__carriage { fill: none; stroke: var(--gppb-teal); stroke-width: 1.2; }
.gppb-bed__legs { stroke: var(--gppb-teal); stroke-width: 1.6; stroke-linecap: round; }
.gppb-bed.is-taken .gppb-bed__frame { fill: var(--gppb-teal-soft); }
.gppb-bed.is-taken .gppb-bed__carriage { fill: var(--gppb-teal); }
.gppb-bed.is-free .gppb-bed__frame { fill: #fff; stroke-dasharray: 3 2; }
.gppb-bed.is-free .gppb-bed__carriage { stroke-opacity: .4; }
.gppb-bed.is-mine .gppb-bed__frame { fill: var(--gppb-spring-soft); stroke: #B9861A; }
.gppb-bed.is-mine .gppb-bed__carriage { fill: var(--gppb-spring); stroke: #B9861A; }
.gppb-bed.is-mine .gppb-bed__legs { stroke: #B9861A; }
.gppb-session.is-full .gppb-bed__frame, .gppb-session.is-closed .gppb-bed__frame,
.gppb-session.is-full .gppb-bed__carriage, .gppb-session.is-closed .gppb-bed__carriage,
.gppb-session.is-full .gppb-bed__legs, .gppb-session.is-closed .gppb-bed__legs { stroke: #9AA7A5; }
.gppb-session.is-full .gppb-bed.is-taken .gppb-bed__carriage, .gppb-session.is-closed .gppb-bed.is-taken .gppb-bed__carriage { fill: #9AA7A5; }

/* Πόσα κρεβάτια έμειναν: το πιο ορατό στοιχείο της κάρτας */
.gppb-avail { min-width: 68px; max-width: 84px; text-align: center; border-radius: 14px; padding: 8px 8px 7px; background: #E3F1EB; color: #1E6B51; }
.gppb-avail strong { display: block; font-size: 1.7rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.gppb-avail span { display: block; font-size: .72rem; font-weight: 600; line-height: 1.2; margin-top: 3px; }
.gppb-avail.is-few { background: var(--gppb-spring-soft); color: #8A5F08; }
.gppb-avail.is-last { background: var(--gppb-blush); color: var(--gppb-coral); }
.gppb-avail.is-full, .gppb-avail.is-closed { background: #ECEFEE; color: var(--gppb-muted); }
.gppb-avail.is-mine { background: var(--gppb-spring); color: var(--gppb-ink); }
.gppb-avail.is-wait { background: var(--gppb-blush); color: var(--gppb-coral); }

/* ---------- Κουμπιά ---------- */
.gppb-btn { white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 12px; padding: 11px 18px; min-height: 44px; background: var(--gppb-teal); color: #fff !important; font-weight: 600; text-decoration: none !important; transition: background-color .15s ease; }
.gppb-btn:hover { background: #184B49; }
.gppb-btn:disabled { background: var(--gppb-line); color: var(--gppb-muted) !important; cursor: not-allowed; }
.gppb-btn.is-armed { background: var(--gppb-spring); color: var(--gppb-ink) !important; }
.gppb-btn--ghost { background: transparent; color: var(--gppb-danger) !important; border: 1.5px solid currentColor; }
.gppb-btn--ghost:hover { background: rgba(166,61,54,.06); }
.gppb-btn--ghost.is-armed { background: var(--gppb-danger); color: #fff !important; border-color: var(--gppb-danger); }
.gppb-btn--soft { background: var(--gppb-teal-soft); color: var(--gppb-teal) !important; }
.gppb-btn--soft:hover { background: #CBDFDB; }
.gppb-btn--spring { background: var(--gppb-spring); color: var(--gppb-ink) !important; }
.gppb-btn--spring:hover { background: #D6A02C; }
.gppb-note { font-size: .84rem; color: var(--gppb-muted); }

/* ---------- Άδειες καταστάσεις ---------- */
.gppb-empty { text-align: center; padding: 18px 12px 24px; color: var(--gppb-muted); }
.gppb-empty .gppb-doodle { width: 150px; margin: 0 auto 10px; }
.gppb-empty p { margin-bottom: 4px; color: var(--gppb-ink); font-weight: 500; }
.gppb-empty .gppb-empty__sub { color: var(--gppb-muted); font-weight: 400; font-size: .9rem; }
.gppb-empty .gppb-btn { margin-top: 10px; }

/* ---------- Για εσάς ---------- */
.gppb-foryou-head { display: flex; align-items: center; gap: 14px; background: var(--gppb-surface); border-radius: 16px; padding: 12px 16px; margin-bottom: 12px; }
.gppb-foryou-head .gppb-doodle--gift { flex: 0 0 64px; width: 64px; }
.gppb-foryou-head p { font-size: .92rem; color: var(--gppb-muted); }
.gppb-offers { display: flex; flex-direction: column; gap: 12px; margin-bottom: 8px; }
.gppb-offer { background: var(--gppb-surface); border: 1px solid var(--gppb-line); border-radius: 18px; overflow: hidden; }
.gppb-offer.is-featured { border: 2px solid var(--gppb-spring); }
.gppb-offer__img { display: block; width: 100%; max-height: 220px; object-fit: cover; }
.gppb-offer__body { padding: 14px 16px 16px; }
.gppb-offer__kind { font-size: .78rem; font-weight: 600; color: var(--gppb-coral); margin-bottom: 3px; }
.gppb-offer__title { font-size: 1.12rem; font-weight: 700; line-height: 1.25; }
.gppb-offer__price { display: inline-block; margin-top: 6px; font-weight: 700; color: var(--gppb-teal); background: var(--gppb-teal-soft); padding: 2px 10px; border-radius: 99px; font-size: .92rem; }
.gppb-offer__text { margin-top: 8px; font-size: .92rem; color: #33464B; }
.gppb-offer .gppb-btn { margin-top: 12px; }
.gppb-packs { display: grid; gap: 10px; }
.gppb-pack { background: var(--gppb-surface); border: 1px solid var(--gppb-line); border-radius: 16px; padding: 14px 16px; }
.gppb-pack__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.gppb-pack__name { font-weight: 700; }
.gppb-pack__price { font-weight: 700; color: var(--gppb-teal); white-space: nowrap; }
.gppb-pack__meta { font-size: .86rem; color: var(--gppb-muted); margin-top: 2px; }
.gppb-pack__desc { font-size: .9rem; margin-top: 8px; color: #33464B; }
.gppb-pack .gppb-btn { margin-top: 10px; min-height: 40px; padding: 8px 14px; }

.gppb-rules { margin-top: 18px; font-size: .8rem; color: var(--gppb-muted); }

/* ---------- Λαμπυρίσματα (μία στιγμή, μόνο όταν κλείνει θέση) ---------- */
.gppb-burst { position: fixed; z-index: 100000; width: 0; height: 0; pointer-events: none; }
.gppb-burst span { position: absolute; left: -10px; top: -10px; width: 20px; height: 20px; color: #E4B03A; animation: gppb-burst .8s ease-out forwards; }
.gppb-burst span:nth-child(even) { color: #1F5E5B; }
.gppb-burst .gppb-doodle { width: 20px; height: 20px; color: inherit; }
@keyframes gppb-burst {
  0% { transform: rotate(var(--a)) translateY(0) scale(.4); opacity: 1; }
  100% { transform: rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(1); opacity: 0; }
}

/* ---------- Δωρεάν δοκιμαστικό ---------- */
.gppb-trial { padding: 20px 18px 24px; }
.gppb-trial__head { position: relative; margin-bottom: 10px; }
.gppb-trial__head .gppb-doodle--reformer { width: 170px; margin: 0 0 4px auto; }
.gppb-trial__title { font-size: 1.6rem; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
.gppb-trial__intro { color: #33464B; margin-bottom: 16px; }
.gppb-trial__error { background: var(--gppb-blush); color: var(--gppb-danger); border-radius: 12px; padding: 10px 14px; margin-bottom: 14px; font-weight: 500; }
.gppb-trial fieldset { border: 0; padding: 0; margin: 0 0 18px; }
.gppb-trial legend { font-weight: 700; font-size: 1.05rem; margin-bottom: 8px; padding: 0; }
.gppb-trial__day { font-weight: 600; color: var(--gppb-teal); margin: 10px 0 6px; font-size: .92rem; }
.gppb-trial__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.gppb-slot { position: relative; display: block; cursor: pointer; }
.gppb-slot input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gppb-slot__box { display: flex; flex-direction: column; gap: 1px; height: 100%; background: var(--gppb-surface); border: 1.5px solid var(--gppb-line); border-radius: 14px; padding: 10px 12px; transition: border-color .12s ease, background-color .12s ease; }
.gppb-slot__box strong { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.gppb-slot__box > span { font-size: .86rem; line-height: 1.3; }
.gppb-slot__who { color: var(--gppb-muted); }
.gppb-slot__free { margin-top: 4px; font-weight: 600; color: #1E6B51; font-size: .78rem !important; }
.gppb-slot__free.is-last { color: var(--gppb-coral); }
.gppb-slot input:checked + .gppb-slot__box { border-color: var(--gppb-teal); background: var(--gppb-teal-soft); box-shadow: inset 0 0 0 1px var(--gppb-teal); }
.gppb-slot input:focus-visible + .gppb-slot__box { outline: 3px solid var(--gppb-spring); outline-offset: 2px; }
.gppb-trial__fields label { display: block; font-weight: 500; margin-bottom: 12px; }
.gppb-trial__fields label span { font-weight: 400; color: var(--gppb-muted); font-size: .85rem; }
.gppb-trial__fields input[type="text"], .gppb-trial__fields input[type="tel"], .gppb-trial__fields input[type="email"] { display: block; width: 100%; margin-top: 4px; font: inherit; padding: 12px 14px; border: 1.5px solid var(--gppb-line); border-radius: 10px; background: #fff; color: var(--gppb-ink); }
.gppb-trial__fields input:focus { border-color: var(--gppb-teal); outline: none; }
.gppb-trial__consent { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: .9rem; }
.gppb-trial__consent input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 18px; }
.gppb-trial__submit { width: 100%; min-height: 52px; font-size: 1.05rem; }
.gppb-trial__small { font-size: .84rem; color: var(--gppb-muted); margin-top: 10px; }
.gppb-trial__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.gppb-trial__done { text-align: center; background: var(--gppb-surface); border: 2px solid var(--gppb-spring); border-radius: 18px; padding: 18px 16px; }
.gppb-trial__done .gppb-doodle--sparkle { width: 54px; margin: 0 auto 6px; color: var(--gppb-coral); }
.gppb-trial__done-title { font-size: 1.3rem; font-weight: 700; }
.gppb-trial__done-when { margin-top: 6px; font-size: 1.02rem; }
.gppb-trial__note { margin-top: 12px; background: var(--gppb-paper); border-radius: 12px; padding: 10px 12px; font-size: .92rem; text-align: left; }
.gppb-login__trial { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--gppb-line); font-size: .92rem; }
.gppb-login__trial a { color: var(--gppb-teal); font-weight: 600; }

/* ---------- Login ---------- */
.gppb-login { padding: 28px 22px; background: var(--gppb-surface); border: 1px solid var(--gppb-line); }
.gppb-login__title { font-size: 1.5rem; font-weight: 700; margin-bottom: 6px; }
.gppb-login__text { color: var(--gppb-muted); margin-bottom: 18px; }
.gppb-login__hint { font-size: .85rem; color: var(--gppb-muted); margin-top: 14px; }
.gppb-login form p { margin: 0 0 14px; }
.gppb-login label { display: block; font-weight: 500; margin-bottom: 4px; }
.gppb-login input[type="text"], .gppb-login input[type="password"] { width: 100%; font: inherit; padding: 12px 14px; border: 1.5px solid var(--gppb-line); border-radius: 10px; background: #fff; color: var(--gppb-ink); }
.gppb-login input[type="text"]:focus, .gppb-login input[type="password"]:focus { border-color: var(--gppb-teal); outline: none; }
.gppb-login .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.gppb-login input[type="submit"] { width: 100%; font: inherit; font-weight: 600; min-height: 48px; border: 0; border-radius: 10px; background: var(--gppb-teal); color: #fff; cursor: pointer; }

/* ---------- Toast ---------- */
.gppb-toast { position: fixed; left: 50%; bottom: 20px; transform: translate(-50%, 20px); max-width: calc(100% - 32px); width: 480px; background: #1D2B2F; color: #fff; padding: 13px 16px; border-radius: 12px; font-family: "Commissioner", system-ui, sans-serif; font-size: .95rem; line-height: 1.4; opacity: 0; pointer-events: none; z-index: 99999; transition: opacity .2s ease, transform .2s ease; }
.gppb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.gppb-toast.is-error { background: #A63D36; }

@media (max-width: 380px) {
  .gppb { padding-left: 12px; padding-right: 12px; }
  .gppb-doodle--reformer { width: 112px; }
  .gppb-bed { width: 24px; height: 13px; }
  .gppb-beds { gap: 3px; }
  .gppb-head__hello { font-size: 1.25rem; }
  .gppb-session__top { gap: 8px; }
  .gppb-tab { font-size: .76rem; }
  .gppb-session__time strong { font-size: 1.12rem; }
  .gppb-avail { min-width: 60px; }
}

@media (prefers-reduced-motion: reduce) {
  .gppb-toast, .gppb-btn { transition: none; }
  .gppb-burst { display: none; }
}

.gppb-tip { margin-bottom: 14px; padding: 14px 16px; background: var(--gppb-teal-soft); border-radius: 14px; font-size: .9rem; }
.gppb-tip p { margin-top: 4px; color: var(--gppb-muted); }

.gppb-trial__none { margin: 4px 0 14px; padding: 12px 14px; border-radius: 12px; background: var(--gppb-surface); border: 1.5px dashed var(--gppb-line); color: var(--gppb-muted); font-size: .92rem; }
