/* ── BMABA Trials — Public Booking Page ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
  --tr-p:    var(--bmaba-primary,     #1E73BE);
  --tr-pr:   var(--bmaba-primary-rgb, 30,115,190);
  --tr-pl:   var(--bmaba-primary-light, rgba(30,115,190,0.08));
  --tr-pd:   var(--bmaba-primary,     #1256a0);
  --tr-red:  #dc2626; --tr-redl: #fee2e2; --tr-redd: #991b1b;
  --tr-amb:  #d97706; --tr-ambl: #fef3c7; --tr-ambd: #78350f;
  --tr-grn:  #16a34a; --tr-grnl: #dcfce7; --tr-grnd: #14532d;
  --tr-slt:  #334155;
  --tr-mut:  #64748b;
  --tr-txt:  #0f172a;
  --tr-bdr:  #e2e8f0;
  --tr-bg:   #f8fafc;
  --tr-wht:  #ffffff;
  --tr-sh0:  0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --tr-sh1:  0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

body.bmaba-tr-public-body{
  background:var(--tr-bg);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased;
  color:var(--tr-txt);line-height:1.6;min-height:100vh;
}
.bmaba-tr-public{max-width:680px;margin:0 auto;padding:0 16px 60px;}

/* Header */
.tr-header{padding:40px 0 28px;text-align:center;}
.tr-logo{max-height:64px;max-width:180px;object-fit:contain;margin:0 auto 16px;display:block;}
.tr-title{font-size:24px;font-weight:800;color:var(--tr-txt);letter-spacing:-.02em;margin-bottom:6px;}
.tr-intro{font-size:14px;color:var(--tr-mut);line-height:1.6;}

/* Loading */
.tr-loading{text-align:center;padding:48px 24px;color:var(--tr-mut);font-size:14px;}
.tr-spinner{width:32px;height:32px;border:3px solid var(--tr-bdr);border-top-color:var(--tr-p);border-radius:50%;animation:tr-spin .7s linear infinite;margin:0 auto 12px;}
@keyframes tr-spin{to{transform:rotate(360deg);}}

/* Class cards */
.tr-classes{display:grid;gap:12px;}
.tr-class-card{background:var(--tr-wht);border:1px solid var(--tr-bdr);border-top:3px solid var(--tr-p);border-radius:4px;padding:20px 22px;box-shadow:var(--tr-sh0);transition:box-shadow .12s ease;}
.tr-class-card:hover{box-shadow:var(--tr-sh1);}
.tr-class-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.tr-class-title{font-size:16px;font-weight:700;color:var(--tr-txt);letter-spacing:-.01em;}
.tr-class-discipline{font-size:10px;font-weight:800;background:var(--tr-pl);color:var(--tr-pd);padding:2px 8px;border-radius:2px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;}
.tr-class-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--tr-mut);margin-bottom:12px;}
.tr-meta-days::before{content:'📅 ';}
.tr-meta-time::before{content:'🕐 ';}
.tr-meta-loc::before{content:'📍 ';}
.tr-spaces-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;padding:2px 8px;border-radius:2px;margin-bottom:14px;text-transform:uppercase;letter-spacing:.04em;}
.tr-spaces-badge--ok{background:var(--tr-grnl);color:var(--tr-grnd);}
.tr-spaces-badge--low{background:var(--tr-ambl);color:var(--tr-ambd);}
.tr-spaces-badge--full{background:var(--tr-redl);color:var(--tr-redd);}
.tr-spaces-badge--unlimited{background:var(--tr-pl);color:var(--tr-pd);}
.tr-welcome-msg{font-size:13px;color:var(--tr-mut);margin-bottom:12px;line-height:1.5;}
.tr-date-picker{margin-top:10px;padding-top:14px;border-top:1px solid var(--tr-bdr);}
.tr-date-picker label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--tr-mut);display:block;margin-bottom:8px;}
.tr-date-grid{display:flex;flex-wrap:wrap;gap:6px;}
.tr-date-chip{padding:5px 12px;border:1.5px solid var(--tr-bdr);border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;background:var(--tr-wht);color:var(--tr-slt);transition:all .12s ease;font-family:inherit;}
.tr-date-chip:hover{border-color:var(--tr-p);color:var(--tr-p);background:var(--tr-pl);}
.tr-date-chip--selected{border-color:var(--tr-p);background:var(--tr-p);color:#fff;}
.tr-cta-btn{display:block;width:100%;padding:12px 20px;background:var(--tr-p);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:filter .12s ease;font-family:inherit;letter-spacing:.01em;margin-top:14px;}
.tr-cta-btn:hover{filter:brightness(1.1);}
.tr-cta-btn:disabled{background:#94a3b8;cursor:not-allowed;filter:none;}
.tr-cta-btn--waitlist{background:#92400e;}
.tr-cal-book-btn.tr-cta-btn--waitlist{background:#92400e;}

/* Form */
.tr-form-panel{animation:tr-slide-up .2s ease;}
@keyframes tr-slide-up{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.tr-form-inner{background:var(--tr-wht);border:1px solid var(--tr-bdr);border-top:3px solid var(--tr-p);border-radius:4px;padding:26px;box-shadow:var(--tr-sh1);}
.tr-back-btn{background:none;border:none;font-size:12px;font-weight:700;color:var(--tr-mut);cursor:pointer;padding:0;margin-bottom:18px;font-family:inherit;display:inline-flex;align-items:center;gap:4px;letter-spacing:.01em;transition:color .12s;}
.tr-back-btn:hover{color:var(--tr-p);}
.tr-form-header{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--tr-bdr);}
.tr-form-header h2{font-size:18px;font-weight:800;color:var(--tr-txt);letter-spacing:-.02em;margin-bottom:3px;}
.tr-form-header p{font-size:13px;color:var(--tr-mut);}
.tr-form-waitlist-note{margin-top:12px;font-size:13px;line-height:1.5;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:10px 12px;}
.tr-consent-box{margin-top:4px;margin-bottom:18px;background:#f8fafc;border:1px solid var(--tr-bdr);border-radius:6px;padding:14px 16px;}
.tr-consent-text{font-size:13px;line-height:1.55;color:#334155;margin-bottom:12px;}
.tr-consent-check{display:flex;align-items:flex-start;gap:9px;font-size:13px;font-weight:600;color:#0f172a;cursor:pointer;}
.tr-consent-check input{width:17px;height:17px;margin-top:1px;flex-shrink:0;cursor:pointer;}
.tr-form-next{margin-top:8px;font-size:13px;color:var(--tr-txt);}
.tr-form-next strong{color:var(--tr-p);}
.tr-section{margin-bottom:16px;padding:18px;background:var(--tr-bg);border:1px solid var(--tr-bdr);border-left:3px solid var(--tr-p);border-radius:4px;}
.tr-section-title{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--tr-mut);margin-bottom:14px;}
.tr-nok-banner{padding:10px 14px;background:var(--tr-ambl);border-left:3px solid var(--tr-amb);border-radius:4px;font-size:13px;font-weight:500;color:var(--tr-ambd);margin-bottom:14px;}
.tr-form-group{margin-bottom:14px;}
.tr-form-group:last-child{margin-bottom:0;}
.tr-form-label{display:block;font-size:13px;font-weight:700;color:var(--tr-slt);margin-bottom:5px;letter-spacing:.01em;}
.tr-hint{display:block;font-size:11px;color:var(--tr-mut);margin-top:3px;}
.tr-req{color:var(--tr-red);}
.tr-input{width:100%;padding:9px 12px;border:1.5px solid var(--tr-bdr);border-radius:4px;font-size:14px;font-family:inherit;color:var(--tr-txt);background:var(--tr-wht);transition:border-color .12s,box-shadow .12s;box-shadow:inset 0 1px 2px rgba(0,0,0,.04);-webkit-appearance:none;}
.tr-input:focus{outline:none;border-color:var(--tr-p);box-shadow:0 0 0 3px rgba(30,115,190,.1),inset 0 1px 2px rgba(0,0,0,.02);}
.tr-input.tr-input--error{border-color:var(--tr-red);}
.tr-textarea{resize:vertical;min-height:80px;}
.tr-row{display:flex;gap:12px;}
.tr-half{flex:1;min-width:0;}
.tr-age-badge{display:inline-block;font-size:10px;font-weight:800;padding:2px 8px;border-radius:2px;margin-top:5px;text-transform:uppercase;letter-spacing:.04em;}
.tr-age-badge--adult{background:var(--tr-grnl);color:var(--tr-grnd);}
.tr-age-badge--child{background:var(--tr-ambl);color:var(--tr-ambd);}
.tr-radio-group{display:flex;gap:8px;flex-wrap:wrap;}
.tr-radio-option{flex:1;min-width:130px;display:flex;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid var(--tr-bdr);border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;color:var(--tr-slt);transition:all .12s ease;background:var(--tr-wht);}
.tr-radio-option:has(input:checked){border-color:var(--tr-p);background:var(--tr-pl);color:var(--tr-pd);}
.tr-radio-option input{accent-color:var(--tr-p);}
.tr-form-error{padding:11px 14px;background:var(--tr-redl);border-left:3px solid var(--tr-red);border-radius:4px;font-size:13px;color:var(--tr-redd);margin-bottom:14px;}
.tr-submit-btn{display:block;width:100%;padding:13px 24px;background:var(--tr-p);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:filter .12s ease;margin-bottom:12px;letter-spacing:.01em;}
.tr-submit-btn:hover{filter:brightness(1.1);}
.tr-submit-btn:disabled{background:#94a3b8;cursor:not-allowed;filter:none;}
.tr-privacy-note{font-size:11px;color:var(--tr-mut);text-align:center;line-height:1.5;}

/* Success */
.tr-success{animation:tr-slide-up .25s ease;}
.tr-success-inner{background:var(--tr-wht);border:1px solid var(--tr-bdr);border-top:3px solid var(--tr-grn);border-radius:4px;padding:40px 26px;text-align:center;box-shadow:var(--tr-sh1);}
.tr-success-icon{width:60px;height:60px;background:var(--tr-grnl);border:2px solid var(--tr-grn);color:var(--tr-grn);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 16px;}
.tr-success-inner h2{font-size:20px;font-weight:800;color:var(--tr-txt);letter-spacing:-.02em;margin-bottom:16px;}
.tr-success-details{background:var(--tr-bg);border:1px solid var(--tr-bdr);border-left:3px solid var(--tr-p);border-radius:4px;padding:14px 16px;text-align:left;font-size:14px;margin-bottom:16px;line-height:1.8;}
.tr-success-note{font-size:13px;color:var(--tr-mut);margin-bottom:20px;line-height:1.6;}
.tr-back-link{background:none;border:1.5px solid var(--tr-p);color:var(--tr-p);padding:9px 22px;border-radius:4px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .12s;}
.tr-back-link:hover{background:var(--tr-p);color:#fff;}
.tr-empty{text-align:center;padding:48px 24px;color:var(--tr-mut);font-size:14px;}

@media(max-width:540px){
  .tr-form-inner{padding:18px 14px;}
  .tr-row{flex-direction:column;gap:0;}
  .tr-title{font-size:20px;}
}

/* ── View toggle ─────────────────────────────────────────────────────────── */
.tr-view-toggle {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--tr-bdr, #e2e8f0);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 16px;
  width: fit-content;
}
.tr-view-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 16px;
  background: #ffffff;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  color: #64748b;
  transition: all .12s;
  line-height: 1;
}
.tr-view-btn + .tr-view-btn {
  border-left: 1.5px solid var(--tr-bdr, #e2e8f0);
}
.tr-view-btn.active {
  background: var(--tr-primary, #1e3a5f);
  color: #ffffff;
}
.tr-view-btn:not(.active):hover {
  background: #f8fafc;
  color: #334155;
}

/* ── Public calendar ─────────────────────────────────────────────────────── */
.tr-cal-view { animation: tr-fade-in .15s ease; }
.tr-cal-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.tr-cal-prev, .tr-cal-next {
  background: #ffffff;
  border: 1.5px solid var(--tr-bdr, #e2e8f0);
  border-radius: 4px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  color: #64748b;
  transition: all .12s;
  line-height: 1;
}
.tr-cal-prev:hover, .tr-cal-next:hover {
  border-color: var(--tr-primary, #1e3a5f);
  color: var(--tr-primary, #1e3a5f);
}
.tr-cal-month-label {
  flex: 1;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -.01em;
}
.tr-cal-head {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 4px;
}
.tr-cal-head span {
  text-align: center;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #94a3b8;
  padding: 4px 0;
}
.tr-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
  margin-bottom: 14px;
}
.tr-cal-cell {
  min-height: 52px;
  border: 1px solid var(--tr-bdr, #e2e8f0);
  border-radius: 4px;
  padding: 5px 6px;
  background: #ffffff;
  position: relative;
  transition: background .1s, border-color .1s;
}
.tr-cal-cell.empty {
  background: #f8fafc;
  border-color: transparent;
}
.tr-cal-cell.today {
  background: rgba(30, 115, 190, 0.05);
  border-color: var(--tr-primary, #1e3a5f);
}
.tr-cal-cell.has-sessions {
  cursor: pointer;
}
.tr-cal-cell.has-sessions:hover {
  background: rgba(30, 115, 190, 0.06);
  border-color: var(--tr-primary, #1e3a5f);
}
.tr-cal-cell.selected {
  background: var(--tr-primary, #1e3a5f);
  border-color: var(--tr-primary, #1e3a5f);
}
.tr-cal-cell.selected .tr-cal-day-num { color: #ffffff; }
.tr-cal-cell.selected .tr-cal-session-dots { opacity: 1; }
.tr-cal-cell.selected .tr-cal-session-dot { background: rgba(255,255,255,.7); }
.tr-cal-day-num {
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  line-height: 1;
}
.tr-cal-cell.today .tr-cal-day-num {
  color: var(--tr-primary, #1e3a5f);
  font-weight: 800;
}
.tr-cal-session-dots {
  display: flex;
  gap: 2px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.tr-cal-session-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--tr-primary, #1e3a5f);
  opacity: .65;
}
.tr-cal-day-panel {
  background: #ffffff;
  border: 1px solid var(--tr-bdr, #e2e8f0);
  border-top: 3px solid var(--tr-primary, #1e3a5f);
  border-radius: 4px;
  padding: 16px;
  animation: tr-fade-in .15s ease;
}
.tr-cal-day-panel h4 {
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 12px;
  letter-spacing: -.01em;
}
.tr-cal-session-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--tr-bdr, #e2e8f0);
}
.tr-cal-session-item:last-child { border-bottom: none; }
.tr-cal-session-info { flex: 1; }
.tr-cal-session-title { font-size: 14px; font-weight: 700; color: #0f172a; margin-bottom: 2px; }
.tr-cal-session-meta { font-size: 12px; color: #64748b; }
.tr-cal-session-spaces {
  font-size: 11px;
  font-weight: 800;
  padding: 3px 9px;
  border-radius: 2px;
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}
.tr-cal-session-spaces.full { background: #fee2e2; color: #991b1b; }
.tr-cal-session-spaces.low  { background: #fef3c7; color: #92400e; }
.tr-cal-session-spaces.ok   { background: #dcfce7; color: #15803d; }
.tr-cal-session-spaces.unlimited { background: #dbeafe; color: #1e40af; }
.tr-cal-book-btn {
  padding: 8px 18px;
  background: var(--tr-primary, #1e3a5f);
  color: #ffffff;
  border: none;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: filter .12s;
  white-space: nowrap;
}
.tr-cal-book-btn:hover { filter: brightness(1.12); }
.tr-cal-book-btn:disabled { background: #94a3b8; cursor: not-allowed; filter: none; }
