.cjajj-portal,
.cjajj-auth-grid,
.cjajj-schedule,
.cjajj-booking,
.cjajj-attendance,
.cjajj-waiver,
.cjajj-email-optin,
.cjajj-fundraising-progress,
.cjajj-events-calendar,
.cjajj-upcoming-events {
  --cjajj-dark: #111827;
  --cjajj-red: #a51d2d;
  --cjajj-border: #d8dce2;
  --cjajj-soft: #f5f6f8;
  --cjajj-muted: #687080;
  color: var(--cjajj-dark);
  box-sizing: border-box;
}

/* Reusable public fundraising progress bar. */
.cjajj-fundraising-progress {
  --cjajj-fund-color: var(--cjajj-red);
  width: 100%;
  max-width: 900px;
  margin: 0 auto 28px;
  padding: 22px;
  border: 1px solid var(--cjajj-border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.08);
}
.cjajj-fundraising-progress *,
.cjajj-fundraising-progress *::before,
.cjajj-fundraising-progress *::after {
  box-sizing: border-box;
}
.cjajj-fundraising-heading,
.cjajj-fundraising-amounts {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.cjajj-fundraising-heading {
  margin-bottom: 12px;
}
.cjajj-fundraising-heading h3 {
  margin: 0;
  color: inherit;
  font-size: 1.25rem;
}
.cjajj-fundraising-heading > strong {
  margin-left: auto;
  color: var(--cjajj-fund-color);
  font-size: 1.2rem;
}
.cjajj-fundraising-track {
  width: 100%;
  height: 24px;
  overflow: hidden;
  border: 1px solid #cbd0d8;
  border-radius: 999px;
  background: #e5e7eb;
  box-shadow: inset 0 1px 3px rgba(17, 24, 39, 0.12);
}
.cjajj-fundraising-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--cjajj-fund-color);
  transition: width 0.35s ease;
}
.cjajj-fundraising-fill.has-progress {
  min-width: 4px;
}
.cjajj-fundraising-amounts {
  margin-top: 9px;
  color: var(--cjajj-muted);
  font-size: 0.9rem;
}
.cjajj-fundraising-amounts strong {
  color: var(--cjajj-dark);
}
@media (max-width: 520px) {
  .cjajj-fundraising-progress {
    padding: 18px;
  }
  .cjajj-fundraising-heading {
    align-items: flex-start;
  }
  .cjajj-fundraising-heading h3 {
    font-size: 1.1rem;
  }
  .cjajj-fundraising-amounts {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}

/* Public events calendar and flyer listings. */
.cjajj-events-calendar,
.cjajj-upcoming-events {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto 28px;
  container-type: inline-size;
}
.cjajj-events-calendar {
  container-type: inline-size;
}
.cjajj-events-calendar *,
.cjajj-upcoming-events * {
  box-sizing: border-box;
}
.cjajj-events-heading {
  margin: 0 0 18px;
}
.cjajj-events-calendar-shell {
  overflow: hidden;
  border: 1px solid var(--cjajj-border);
  border-radius: 10px;
  background: #fff;
}
.cjajj-events-calendar-header {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: #121820;
  color: #fff;
}
.cjajj-events-calendar-header h3 {
  margin: 0;
  color: inherit;
  text-align: center;
  font-size: 1.15rem;
}
.cjajj-events-calendar-header button {
  width: 40px;
  min-height: 38px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.cjajj-events-calendar-header button:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.cjajj-events-weekdays,
.cjajj-events-month {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.cjajj-events-weekdays {
  border-bottom: 1px solid var(--cjajj-border);
  background: var(--cjajj-soft);
}
.cjajj-events-weekdays span {
  padding: 8px 4px;
  color: var(--cjajj-muted);
  text-align: center;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
}
.cjajj-events-day,
.cjajj-events-day-spacer {
  min-height: 88px;
  border: 0;
  border-right: 1px solid var(--cjajj-border);
  border-bottom: 1px solid var(--cjajj-border);
  border-radius: 0;
  background: #fff;
}
.cjajj-events-day {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 9px;
  color: #18212b;
  text-align: center;
}
.cjajj-events-day strong {
  font-size: 1rem;
}
.cjajj-events-day.has-events {
  background: #fff7f7;
  cursor: pointer;
}
.cjajj-events-day.has-events:hover,
.cjajj-events-day.selected {
  background: #fce8eb;
  box-shadow: inset 0 0 0 2px var(--cjajj-red);
}
.cjajj-events-day.has-no-events,
.cjajj-events-day.is-past {
  background: #eef0f3;
  color: #9299a3;
  cursor: not-allowed;
}
.cjajj-events-day.is-past {
  opacity: 0.7;
}
.cjajj-events-day-marker {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--cjajj-red);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 800;
  line-height: 18px;
}
.cjajj-events-day-marker:not(:empty) {
  width: 20px;
  height: 20px;
}
.cjajj-events-mobile-picker {
  display: none;
  padding: 14px;
  background: var(--cjajj-soft);
}
.cjajj-events-mobile-picker label {
  display: block;
  margin: 0;
  font-weight: 700;
}
.cjajj-events-mobile-picker select {
  display: block;
  width: 100%;
  min-height: 46px;
  margin-top: 7px;
  padding: 9px 11px;
  border: 1px solid #9aa2ad;
  border-radius: 5px;
  background: #fff;
  color: #111;
  font: inherit;
}
.cjajj-events-calendar-shell--compact .cjajj-events-calendar-header,
.cjajj-events-calendar-shell--compact .cjajj-events-weekdays,
.cjajj-events-calendar-shell--compact .cjajj-events-month {
  display: none;
}
.cjajj-events-calendar-shell--compact .cjajj-events-mobile-picker {
  display: block;
}
.cjajj-events-results {
  margin-top: 20px;
}
.cjajj-events-prompt {
  padding: 16px;
  border: 1px solid var(--cjajj-border);
  border-radius: 8px;
  background: var(--cjajj-soft);
}
.cjajj-events-day-panel > h3 {
  margin: 0 0 14px;
}
.cjajj-events-day-grid {
  display: grid;
  gap: 18px;
}
.cjajj-event-card {
  overflow: hidden;
  border: 1px solid var(--cjajj-border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(17, 24, 39, 0.07);
}
.cjajj-event-card--calendar {
  display: grid;
  grid-template-columns: minmax(190px, 300px) minmax(0, 1fr);
}
.cjajj-event-flyer {
  display: flex;
  min-height: 220px;
  align-items: center;
  justify-content: center;
  background: #eceff3;
}
.cjajj-event-flyer a {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}
.cjajj-event-flyer img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
}
.cjajj-event-card--upcoming .cjajj-event-flyer {
  aspect-ratio: 4 / 5;
}
.cjajj-event-card-body {
  padding: 20px;
}
.cjajj-event-card-body h4 {
  margin: 0 0 9px;
  color: var(--cjajj-dark);
  font-size: 1.25rem;
}
.cjajj-event-date,
.cjajj-event-location {
  margin: 0 0 8px;
}
.cjajj-event-location {
  color: var(--cjajj-muted);
}
.cjajj-event-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 11px 0;
}
.cjajj-event-categories span {
  padding: 4px 9px;
  border-radius: 999px;
  background: #f2d8dc;
  color: #7d1422;
  font-size: 0.76rem;
  font-weight: 800;
}
.cjajj-event-description {
  margin: 13px 0;
}
.cjajj-event-description > :first-child {
  margin-top: 0;
}
.cjajj-event-description > :last-child {
  margin-bottom: 0;
}
.cjajj-event-link {
  margin-top: 13px;
}
.cjajj-upcoming-events-grid {
  display: grid;
  grid-template-columns: repeat(var(--cjajj-event-columns), minmax(0, 1fr));
  gap: 20px;
}
.cjajj-event-card--upcoming {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.cjajj-event-card--upcoming .cjajj-event-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.cjajj-event-card--upcoming .cjajj-event-link {
  align-self: flex-start;
  margin-top: auto;
}
@container (max-width: 700px) {
  .cjajj-upcoming-events--columns-3 .cjajj-upcoming-events-grid,
  .cjajj-upcoming-events--columns-4 .cjajj-upcoming-events-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@container (max-width: 480px) {
  .cjajj-upcoming-events--columns-2 .cjajj-upcoming-events-grid,
  .cjajj-upcoming-events--columns-3 .cjajj-upcoming-events-grid,
  .cjajj-upcoming-events--columns-4 .cjajj-upcoming-events-grid {
    grid-template-columns: 1fr;
  }
  .cjajj-event-card--calendar {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .cjajj-event-card--calendar {
    grid-template-columns: 1fr;
  }
  .cjajj-upcoming-events-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .cjajj-upcoming-events-grid {
    grid-template-columns: 1fr;
  }
  .cjajj-event-card-body {
    padding: 16px;
  }
}
.cjajj-private-signup {
  --cjajj-dark: #111827;
  --cjajj-red: #a51d2d;
  --cjajj-border: #d8dce2;
  --cjajj-soft: #f5f6f8;
  --cjajj-muted: #687080;
  color: var(--cjajj-dark);
  max-width: 920px;
  margin: 0 auto;
}
.cjajj-private-signup * {
  box-sizing: border-box;
}
.cjajj-signup-header {
  text-align: center;
  margin-bottom: 22px;
}
.cjajj-stepper {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
  margin: 0 0 20px;
  list-style: none;
}
.cjajj-stepper li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px;
  color: #687080;
  background: #eef0f3;
  border-radius: 7px;
  font-weight: 700;
}
.cjajj-stepper li span {
  display: inline-flex;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #cfd4dc;
  color: #fff;
}
.cjajj-stepper li.active,
.cjajj-stepper li.complete {
  color: #fff;
  background: #a51d2d;
}
.cjajj-stepper li.active span,
.cjajj-stepper li.complete span {
  background: #fff;
  color: #a51d2d;
}
.cjajj-private-signup-form {
  min-height: 440px;
}
.cjajj-service-question {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--cjajj-border);
  border-radius: 8px;
  background: var(--cjajj-soft);
}
.cjajj-service-proof-field {
  margin-top: 14px;
}
.cjajj-service-proof-field[hidden] {
  display: none !important;
}
.cjajj-service-thanks {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 12px 16px;
  border: 1px solid #d8dce2;
  border-radius: 8px;
  background: #fff;
  color: #1f2937;
  font-weight: 800;
}
.cjajj-service-thanks img {
  width: 46px;
  height: auto;
  border: 1px solid rgba(17, 24, 39, 0.2);
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.18);
}
.cjajj-service-designation {
  display: block;
  margin-top: 3px;
  color: var(--cjajj-muted);
  font-size: 0.78rem;
  font-weight: 700;
}
.cjajj-service-coupon {
  width: 100%;
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 4px solid var(--cjajj-red);
  border-radius: 6px;
  background: var(--cjajj-soft);
}
.cjajj-service-coupon p {
  margin: 6px 0 0;
}
.cjajj-service-coupon code {
  display: inline-block;
  padding: 2px 7px;
  border: 1px dashed #9ca3af;
  border-radius: 4px;
  background: #fff;
  color: #111827;
  font-weight: 800;
  user-select: all;
}
.cjajj-signup-step[hidden],
.cjajj-additional-student[hidden] {
  display: none !important;
}
.cjajj-three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 16px;
}
.cjajj-step-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
}
.cjajj-step-actions .cjajj-next-step:only-child {
  margin-left: auto;
}
.cjajj-step-actions button.cjajj-secondary {
  background: #4b5563;
}
.cjajj-signup-note {
  padding: 11px 13px;
  background: #f4f6f8;
  border-left: 3px solid #687080;
}
.cjajj-copy-account-holder {
  margin: 16px 0 20px !important;
  padding: 12px 14px;
  background: #f7f8fa;
  border: 1px solid #d8dce2;
  border-radius: 7px;
}
.cjajj-readonly {
  background: #eef1f4 !important;
  color: #4b5563;
}
.cjajj-additional-student {
  margin: 0 0 18px;
  padding: 16px 16px 0;
  border: 1px solid #d8dce2;
  border-radius: 7px;
}
.cjajj-additional-student legend {
  padding: 0 7px;
  font-weight: 800;
}
.cjajj-private-waiver {
  max-height: 560px;
}
.cjajj-waiver-agreement {
  display: flex !important;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  margin: 0 0 12px !important;
  background: #fff;
  border: 1px solid #d8dce2;
  border-radius: 6px;
  font-weight: 400 !important;
  line-height: 1.55;
}
.cjajj-waiver-agreement input {
  flex: 0 0 auto;
  margin-top: 5px;
}
.cjajj-guardian-fields {
  padding: 16px;
  margin: 20px 0;
  border: 1px solid #d8dce2;
  border-radius: 7px;
  background: #f7f8fa;
}
.cjajj-guardian-fields.cjajj-required {
  border-color: #a51d2d;
  background: #fff6f7;
}
.cjajj-guardian-fields.cjajj-required h4::after {
  content: " — Required for a minor participant";
  color: #a51d2d;
  font-size: 0.85em;
}
.cjajj-signature-confirm {
  margin-top: 20px !important;
}
.cjajj-trial-booking form {
  margin-top: 20px;
}
.cjajj-trial-booking button {
  margin-top: 8px;
}
.cjajj-private-billing {
  width: 100%;
}
.cjajj-portal *,
.cjajj-auth-grid *,
.cjajj-schedule *,
.cjajj-booking *,
.cjajj-attendance *,
.cjajj-waiver *,
.cjajj-email-optin * {
  box-sizing: border-box;
}
.cjajj-auth-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.cjajj-card {
  background: #fff;
  border: 1px solid #d8dce2;
  border-radius: 10px;
  padding: 22px;
  margin: 0 0 20px;
  box-shadow: 0 2px 10px rgba(17, 24, 39, 0.04);
}
.cjajj-card h2,
.cjajj-card h3 {
  margin-top: 0;
}
.cjajj-card label,
.cjajj-panel label {
  display: block;
  font-weight: 600;
  margin: 0 0 14px;
}
.cjajj-card input:not([type="checkbox"]),
.cjajj-card select,
.cjajj-card textarea,
.cjajj-panel input:not([type="checkbox"]),
.cjajj-panel select,
.cjajj-panel textarea {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #b9c0ca;
  border-radius: 5px;
  background: #fff;
  color: #111;
  font: inherit;
}
.cjajj-card button:not(.cjajj-link-button),
.cjajj-panel button:not(.cjajj-link-button),
.cjajj-button {
  display: inline-block;
  border: 0;
  border-radius: 5px;
  padding: 11px 18px;
  background: #a51d2d;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  cursor: pointer;
  line-height: 1.2;
}
.cjajj-button.cjajj-secondary,
.cjajj-clear-signature {
  background: #4b5563 !important;
}
.cjajj-check {
  display: flex !important;
  align-items: flex-start;
  gap: 9px;
  font-weight: 400 !important;
}
.cjajj-check input {
  margin-top: 4px;
}
.cjajj-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
}
.cjajj-notice {
  padding: 13px 16px;
  margin: 0 0 18px;
  border-left: 4px solid #16803c;
  background: #eefbf2;
}
.cjajj-notice.cjajj-error {
  border-color: #b42318;
  background: #fff2f0;
}
.cjajj-tabs {
  display: flex;
  gap: 3px;
  overflow: auto;
  border-bottom: 1px solid var(--cjajj-border);
  margin-bottom: 25px;
}
.cjajj-tabs a {
  white-space: nowrap;
  padding: 11px 14px;
  text-decoration: none;
  color: #303847;
  border-bottom: 3px solid transparent;
}
.cjajj-tabs a.active {
  border-color: var(--cjajj-red);
  color: var(--cjajj-red);
  font-weight: 700;
}
.cjajj-panel > h2:first-child {
  margin-top: 0;
}
.cjajj-profile-list details summary,
.cjajj-card > summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.cjajj-card details form,
details.cjajj-card form {
  margin-top: 20px;
}
.cjajj-badge {
  display: inline-block;
  border-radius: 999px;
  background: #e8ebef;
  padding: 3px 9px;
  font-size: 0.78em;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.cjajj-badge.cjajj-status-active {
  background: #4fa968;
  color: #fff;
}
.cjajj-badge.cjajj-status-inactive {
  background: #d97706;
  color: #fff;
}
.cjajj-badge.cjajj-status-frozen {
  background: #c0392b;
  color: #fff;
}
.cjajj-badge.cjajj-status-visitor {
  background: #3b82b7;
  color: #fff;
}
.cjajj-badge.cjajj-status-prospect {
  background: #7c5bb5;
  color: #fff;
}
.cjajj-badge.cjajj-status-cancelled {
  background: #4b5563;
  color: #fff;
}
.cjajj-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.cjajj-day {
  margin: 0 0 26px;
}
.cjajj-day h3 {
  padding-bottom: 8px;
  border-bottom: 2px solid var(--cjajj-red);
}
.cjajj-class {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 13px 5px;
  border-bottom: 1px solid var(--cjajj-border);
}
.cjajj-class strong,
.cjajj-class span {
  display: block;
}
.cjajj-class-meta {
  text-align: right;
  color: var(--cjajj-muted);
}
.cjajj-waiver-text {
  max-height: 420px;
  overflow: auto;
  border: 1px solid var(--cjajj-border);
  background: var(--cjajj-soft);
  padding: 18px;
  margin: 15px 0 20px;
}
.cjajj-muted {
  color: var(--cjajj-muted);
}
.cjajj-signature {
  display: block;
  width: 100%;
  max-width: 600px;
  height: 160px;
  border: 1px solid #9aa2ad;
  background: #fff;
  touch-action: none;
  margin-top: 6px;
}
.cjajj-signature:focus {
  outline: 3px solid rgba(185, 28, 28, 0.25);
  border-color: var(--cjajj-red);
}
.cjajj-lesson-calendar {
  margin: 18px 0;
  border: 1px solid var(--cjajj-border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.cjajj-trial-booking .cjajj-lesson-calendar button {
  margin-top: 0;
}
.cjajj-lesson-calendar-header {
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: #121820;
  color: #fff;
}
.cjajj-lesson-calendar[data-trial="1"] .cjajj-lesson-calendar-header {
  grid-template-columns: 1fr;
}
.cjajj-lesson-calendar-header h4 {
  margin: 0;
  color: inherit;
  text-align: center;
  font-size: 1.15rem;
}
.cjajj-lesson-mobile-date {
  display: none;
  padding: 14px;
  background: var(--cjajj-soft);
  border-bottom: 1px solid var(--cjajj-border);
}
.cjajj-lesson-mobile-date label {
  display: block;
  margin: 0;
  font-weight: 700;
}
.cjajj-lesson-mobile-date input,
.cjajj-lesson-mobile-date select {
  display: block;
  width: 100%;
  min-height: 46px;
  margin-top: 7px;
  padding: 9px 11px;
  border: 1px solid #9aa2ad;
  border-radius: 5px;
  background: #fff;
  color: #111;
  font: inherit;
}
.cjajj-lesson-calendar--compact .cjajj-lesson-calendar-header,
.cjajj-lesson-calendar--compact .cjajj-lesson-weekdays,
.cjajj-lesson-calendar--compact .cjajj-lesson-month {
  display: none;
}
.cjajj-lesson-calendar--compact .cjajj-lesson-mobile-date {
  display: block;
}
.cjajj-calendar-nav {
  width: 40px;
  min-height: 38px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 1.6rem;
  line-height: 1;
}
.cjajj-calendar-nav:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.cjajj-lesson-weekdays,
.cjajj-lesson-month {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.cjajj-lesson-weekdays {
  border-bottom: 1px solid var(--cjajj-border);
  background: var(--cjajj-soft);
}
.cjajj-lesson-weekdays span {
  padding: 8px 4px;
  text-align: center;
  color: var(--cjajj-muted);
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
}
.cjajj-lesson-day,
.cjajj-lesson-day-spacer {
  min-height: 88px;
  border: 0;
  border-right: 1px solid var(--cjajj-border);
  border-bottom: 1px solid var(--cjajj-border);
  border-radius: 0;
  background: #fff;
}
.cjajj-lesson-day {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 9px;
  color: #18212b;
  text-align: center;
}
.cjajj-lesson-day:hover:not(:disabled),
.cjajj-lesson-day.selected {
  background: #fff4f4;
  box-shadow: inset 0 0 0 2px var(--cjajj-red);
}
.cjajj-lesson-day strong {
  font-size: 1rem;
}
.cjajj-lesson-day.is-past {
  opacity: 0.42;
  cursor: not-allowed;
}
.cjajj-lesson-day.is-closed,
.cjajj-lesson-day.is-closed:disabled {
  border-color: #d3d7dc;
  background: #e5e7ea;
  color: #8a919a;
  opacity: 1;
  cursor: not-allowed;
  box-shadow: none;
}
.cjajj-day-times {
  padding: 16px;
  background: var(--cjajj-soft);
}
.cjajj-day-times h4 {
  margin: 0 0 10px;
}
.cjajj-day-time-list {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.cjajj-lesson-time {
  width: auto;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid #14783b;
  background: #eefbf2;
  color: #105d2e;
}
.cjajj-lesson-time.selected {
  background: #14783b;
  color: #fff;
  box-shadow: 0 0 0 3px rgba(20, 120, 59, 0.18);
}
.cjajj-lesson-time--unavailable,
.cjajj-lesson-time--unavailable:disabled {
  border-color: #d9a38e;
  background: #fff0e9;
  color: #8f3415;
  opacity: 1;
  cursor: not-allowed;
}
.cjajj-table-wrap {
  overflow: auto;
}
.cjajj-table {
  width: 100%;
  border-collapse: collapse;
}
.cjajj-table th,
.cjajj-table td {
  text-align: left;
  border-bottom: 1px solid var(--cjajj-border);
  padding: 10px 9px;
  vertical-align: top;
}
.cjajj-inline-form {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  align-items: end;
  gap: 14px;
}
.cjajj-inline-form label {
  margin: 0;
}
.cjajj-booking-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 14px 18px;
}
.cjajj-link-button {
  border: 0;
  background: transparent;
  color: #a51d2d;
  text-decoration: underline;
  cursor: pointer;
  padding: 6px;
}
.cjajj-empty {
  padding: 20px;
  background: var(--cjajj-soft);
  border-radius: 6px;
}
.cjajj-email-optin {
  max-width: 680px;
}
.cjajj-optin-row {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.cjajj-optin-row label {
  flex: 1 1 auto;
  margin: 0;
}
.cjajj-optin-row input[type="email"] {
  margin: 0;
  height: 100%;
}
.cjajj-email-optin--stacked .cjajj-optin-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.cjajj-email-optin--stacked .cjajj-optin-row button {
  justify-self: start;
}
.cjajj-email-optin > small {
  display: block;
  margin-top: 10px;
  color: var(--cjajj-muted);
}
.cjajj-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.cjajj-turnstile {
    margin: 1rem 0;
}
.cjajj-cancellation-pending {
  padding: 12px 14px;
  margin: 0 0 14px;
  border-left: 4px solid #d97706;
  background: #fff7e8;
}
@media (max-width: 760px) {
  .cjajj-stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cjajj-auth-grid,
  .cjajj-two,
  .cjajj-three {
    grid-template-columns: 1fr;
  }
  .cjajj-stepper li {
    flex-direction: column;
    font-size: 0.78rem;
  }
  .cjajj-step-actions {
    flex-direction: column-reverse;
  }
  .cjajj-step-actions button {
    width: 100%;
  }
  .cjajj-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 0;
  }
  .cjajj-tabs a {
    border: 1px solid var(--cjajj-border);
    text-align: center;
  }
  .cjajj-tabs a.active {
    border-color: var(--cjajj-red);
  }
  .cjajj-class,
  .cjajj-booking-row {
    display: block;
  }
  .cjajj-class-meta {
    text-align: left;
    margin-top: 6px;
  }
  .cjajj-inline-form {
    grid-template-columns: 1fr;
  }
  .cjajj-optin-row {
    display: grid;
    grid-template-columns: 1fr;
  }
  .cjajj-lesson-day,
  .cjajj-lesson-day-spacer {
    min-height: 0;
    aspect-ratio: 1;
  }
  .cjajj-lesson-day {
    padding: 2px;
  }
  .cjajj-lesson-day strong {
    font-size: 0.9rem;
  }
  .cjajj-lesson-weekdays span {
    font-size: 0.64rem;
    padding: 7px 1px;
  }
  .cjajj-lesson-calendar-header {
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    gap: 5px;
    padding: 9px 7px;
  }
  .cjajj-lesson-calendar[data-trial="1"] .cjajj-lesson-calendar-header {
    grid-template-columns: minmax(0, 1fr);
  }
  .cjajj-calendar-nav {
    width: 34px;
    min-height: 34px;
  }
  .cjajj-day-times {
    padding: 12px;
  }
  .cjajj-day-time-list {
    display: grid;
    grid-template-columns: 1fr;
  }
  .cjajj-lesson-time {
    width: 100%;
  }
}

.cjajj-remove-family-form {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--cjajj-border);
}
.cjajj-portal .cjajj-danger-button {
  background: #7f1d1d !important;
}

/* Member-selected dark appearance. This is intentionally scoped to the portal. */
.cjajj-portal.cjajj-dark-mode {
  --cjajj-dark: #f4f7fb;
  --cjajj-border: #3c4654;
  --cjajj-soft: #1b2430;
  --cjajj-muted: #b8c2cf;
  padding: 18px;
  border-radius: 12px;
  background: #0f151d;
  color: #f4f7fb;
  color-scheme: dark;
}
.cjajj-dark-mode .cjajj-panel,
.cjajj-dark-mode .cjajj-panel h1,
.cjajj-dark-mode .cjajj-panel h2,
.cjajj-dark-mode .cjajj-panel h3,
.cjajj-dark-mode .cjajj-panel h4,
.cjajj-dark-mode .cjajj-panel h5,
.cjajj-dark-mode .cjajj-panel h6,
.cjajj-dark-mode .cjajj-panel p,
.cjajj-dark-mode .cjajj-panel label,
.cjajj-dark-mode .cjajj-panel strong,
.cjajj-dark-mode .cjajj-panel summary,
.cjajj-dark-mode .cjajj-panel th,
.cjajj-dark-mode .cjajj-panel td {
  color: #f4f7fb;
}
.cjajj-dark-mode .cjajj-card,
.cjajj-dark-mode .cjajj-video-card,
.cjajj-dark-mode .cjajj-flow-chart-card,
.cjajj-dark-mode .cjajj-course-card,
.cjajj-dark-mode .cjajj-lesson-main,
.cjajj-dark-mode .cjajj-lesson-qa,
.cjajj-dark-mode .cjajj-course-sidebar,
.cjajj-dark-mode .cjajj-lesson-calendar,
.cjajj-dark-mode .cjajj-service-thanks {
  border-color: var(--cjajj-border);
  background: #161e29;
  color: #f4f7fb;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.28);
}
.cjajj-dark-mode .cjajj-tabs {
  border-color: var(--cjajj-border);
}
.cjajj-dark-mode .cjajj-tabs a {
  color: #d8e0ea;
}
.cjajj-dark-mode .cjajj-tabs a:hover,
.cjajj-dark-mode .cjajj-tabs a:focus-visible,
.cjajj-dark-mode .cjajj-tabs a.active,
.cjajj-dark-mode a:not(.cjajj-button) {
  color: #ff8c99;
}
.cjajj-dark-mode .cjajj-panel input:not([type="checkbox"]):not([type="radio"]),
.cjajj-dark-mode .cjajj-panel select,
.cjajj-dark-mode .cjajj-panel textarea,
.cjajj-dark-mode .cjajj-lesson-mobile-date input,
.cjajj-dark-mode .cjajj-lesson-mobile-date select {
  border-color: #566273;
  background: #0d141d;
  color: #f7f9fc;
}
.cjajj-dark-mode .cjajj-panel input::placeholder,
.cjajj-dark-mode .cjajj-panel textarea::placeholder {
  color: #98a4b3;
  opacity: 1;
}
.cjajj-dark-mode .cjajj-readonly {
  background: #273140 !important;
  color: #cbd4df;
}
.cjajj-dark-mode .cjajj-waiver-text,
.cjajj-dark-mode .cjajj-day-times,
.cjajj-dark-mode .cjajj-lesson-mobile-date,
.cjajj-dark-mode .cjajj-empty,
.cjajj-dark-mode .cjajj-stat-pairs div,
.cjajj-dark-mode .cjajj-service-coupon,
.cjajj-dark-mode .cjajj-signup-note,
.cjajj-dark-mode .cjajj-guardian-fields,
.cjajj-dark-mode .cjajj-copy-account-holder {
  border-color: var(--cjajj-border);
  background: var(--cjajj-soft);
  color: #f4f7fb;
}
.cjajj-dark-mode .cjajj-waiver-agreement,
.cjajj-dark-mode .cjajj-lesson-day,
.cjajj-dark-mode .cjajj-lesson-day-spacer {
  border-color: var(--cjajj-border);
  background: #161e29;
  color: #f4f7fb;
}
.cjajj-dark-mode .cjajj-lesson-weekdays {
  border-color: var(--cjajj-border);
  background: #202a37;
}
.cjajj-dark-mode .cjajj-lesson-day:hover:not(:disabled),
.cjajj-dark-mode .cjajj-lesson-day.selected {
  background: #352027;
}
.cjajj-dark-mode .cjajj-lesson-day.is-closed,
.cjajj-dark-mode .cjajj-lesson-day.is-closed:disabled {
  border-color: #394452;
  background: #252e3a;
  color: #7f8a98;
  opacity: 1;
  box-shadow: none;
}
.cjajj-dark-mode .cjajj-lesson-time--available {
  border-color: #48a96c;
  background: #153525;
  color: #baf3cd;
}
.cjajj-dark-mode .cjajj-lesson-time--unavailable,
.cjajj-dark-mode .cjajj-lesson-time--unavailable:disabled {
  border-color: #8c5544;
  background: #3a231d;
  color: #ffc0aa;
}
.cjajj-dark-mode .cjajj-table th,
.cjajj-dark-mode .cjajj-table td,
.cjajj-dark-mode .cjajj-class,
.cjajj-dark-mode .cjajj-mastery-key,
.cjajj-dark-mode .cjajj-remove-family-form {
  border-color: var(--cjajj-border);
}
.cjajj-dark-mode .cjajj-mastery-track {
  border-color: #566273;
  background: #303a48;
}
.cjajj-dark-mode .cjajj-key-remaining {
  border-color: #667386;
  background: #303a48;
}
.cjajj-dark-mode .cjajj-notice {
  background: #153525;
  color: #c9f7d8;
}
.cjajj-dark-mode .cjajj-notice.cjajj-error {
  background: #3b2020;
  color: #ffd0cc;
}
.cjajj-dark-mode .cjajj-cancellation-pending {
  background: #3c2d13;
  color: #ffe1a3;
}
.cjajj-dark-mode .cjajj-video-filters button {
  background: #283241 !important;
  color: #e5eaf1 !important;
}
.cjajj-dark-mode .cjajj-video-filters button.active,
.cjajj-dark-mode .cjajj-library-nav a.active,
.cjajj-dark-mode .cjajj-library-nav a:hover,
.cjajj-dark-mode .cjajj-library-nav a:focus-visible {
  border-color: #ff7f8e;
  background: #a51d2d !important;
  color: #fff !important;
}
.cjajj-dark-mode .cjajj-library-nav {
  border-color: var(--cjajj-border);
}
.cjajj-dark-mode .cjajj-library-nav a,
.cjajj-dark-mode .cjajj-flow-chart-preview {
  border-color: var(--cjajj-border);
  background: #202a37;
  color: #e5eaf1;
}
.cjajj-dark-mode .cjajj-flow-chart-file-icon {
  border-color: #ff7f8e;
  background: #111923;
  color: #ff9aa5;
}
.cjajj-dark-mode .cjajj-flow-chart-actions .cjajj-button-secondary {
  border-color: #ff7f8e;
  color: #ff9aa5 !important;
}
.cjajj-dark-mode .cjajj-course-copy h4 a,
.cjajj-dark-mode .cjajj-video-copy h3 a,
.cjajj-dark-mode .cjajj-course-lesson-list a {
  color: #f4f7fb;
}
.cjajj-dark-mode .cjajj-course-progress > div,
.cjajj-dark-mode .cjajj-course-lesson-list a span {
  background: #303a48;
}
.cjajj-dark-mode .cjajj-course-lesson-list li,
.cjajj-dark-mode .cjajj-lesson-completion,
.cjajj-dark-mode .cjajj-lesson-pager {
  border-color: var(--cjajj-border);
}
.cjajj-dark-mode .cjajj-course-lesson-list li.current a,
.cjajj-dark-mode .cjajj-lesson-kicker {
  color: #ff9aa5;
}
.cjajj-dark-mode .cjajj-completed-message {
  color: #9ee8b8;
}
.cjajj-dark-mode .cjajj-service-coupon code {
  border-color: #738095;
  background: #0d141d;
  color: #fff;
}
.cjajj-dark-mode .cjajj-signature {
  border-color: #778397;
  background: #fff;
}
@media (max-width: 760px) {
  .cjajj-portal.cjajj-dark-mode {
    padding: 12px;
  }
  .cjajj-dark-mode .cjajj-tabs a {
    border-color: var(--cjajj-border);
  }
}

.cjajj-calendar-wrap {
  overflow-x: auto;
  padding-bottom: 10px;
}
.cjajj-calendar {
  display: grid;
  grid-template-columns: 76px repeat(var(--cjajj-days), minmax(145px, 1fr));
  grid-template-rows: 44px repeat(var(--cjajj-slots), 34px);
  min-width: calc(76px + var(--cjajj-days) * 145px);
  position: relative;
  background: #071922;
  border: 1px solid #31434b;
  border-radius: 8px;
  overflow: hidden;
  color: #edf4f7;
}
.cjajj-calendar-day {
  padding: 13px 12px;
  font-weight: 800;
  border-left: 1px solid #42545c;
  z-index: 2;
}
.cjajj-calendar-line {
  border-top: 1px solid #42545c;
  z-index: 0;
}
.cjajj-calendar-time {
  font-size: 0.78rem;
  font-weight: 700;
  padding: 4px 10px;
  color: #d7e1e5;
  transform: translateY(-50%);
  z-index: 2;
}
.cjajj-calendar-event {
  margin: 2px 5px;
  border-radius: 7px;
  padding: 8px 9px;
  overflow: hidden;
  z-index: 3;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
  line-height: 1.18;
}
.cjajj-calendar-event strong,
.cjajj-calendar-event span,
.cjajj-calendar-event small {
  display: block;
}
.cjajj-calendar-event strong {
  font-size: 0.9rem;
}
.cjajj-calendar-event span {
  font-size: 0.78rem;
  margin-top: 3px;
}
.cjajj-calendar-event small {
  font-size: 0.72rem;
  margin-top: 5px;
  opacity: 0.9;
}
.cjajj-schedule-mobile {
  display: none;
}
.cjajj-mastery {
  margin-bottom: 20px;
}
.cjajj-mastery h3 {
  margin-bottom: 4px;
}
.cjajj-mastery-intro {
  margin: 0 0 20px;
  color: var(--cjajj-muted);
}
.cjajj-mastery-list {
  display: grid;
  gap: 18px;
}
.cjajj-mastery-label,
.cjajj-mastery-values,
.cjajj-mastery-key {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.cjajj-mastery-label span,
.cjajj-mastery-values,
.cjajj-mastery-key {
  color: var(--cjajj-muted);
  font-size: 0.82rem;
}
.cjajj-mastery-track {
  width: 100%;
  height: 22px;
  margin: 7px 0 5px;
  overflow: hidden;
  border: 1px solid #cbd0d8;
  border-radius: 999px;
  background: #e5e7eb;
  box-shadow: inset 0 1px 2px rgba(17, 24, 39, 0.08);
}
.cjajj-mastery-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--cjajj-red);
  transition: width 0.35s ease;
}
.cjajj-mastery-fill.has-progress {
  min-width: 3px;
}
.cjajj-mastery-key {
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--cjajj-border);
}
.cjajj-mastery-key span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cjajj-mastery-key i {
  width: 13px;
  height: 13px;
  border: 1px solid #cbd0d8;
  border-radius: 3px;
}
.cjajj-key-completed {
  background: var(--cjajj-red);
  border-color: var(--cjajj-red) !important;
}
.cjajj-key-remaining {
  background: #e5e7eb;
}
.cjajj-training-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.cjajj-training-stat {
  margin: 0;
}
.cjajj-stat-pairs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.cjajj-stat-pairs div {
  padding: 12px;
  background: var(--cjajj-soft);
  border-radius: 6px;
}
.cjajj-stat-pairs strong,
.cjajj-stat-pairs span {
  display: block;
}
.cjajj-stat-pairs strong {
  font-size: 1.4rem;
}
.cjajj-stat-pairs span {
  font-size: 0.76rem;
  color: var(--cjajj-muted);
}
.cjajj-attendance-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 20px;
}
.cjajj-attendance-actions .cjajj-card {
  margin: 0;
}
.cjajj-table small {
  display: block;
  color: var(--cjajj-muted);
  margin-top: 4px;
}
@media (max-width: 760px) {
  .cjajj-training-stats,
  .cjajj-attendance-actions {
    grid-template-columns: 1fr;
  }
  .cjajj-calendar-wrap {
    display: none;
  }
  .cjajj-schedule-mobile {
    display: block;
  }
  .cjajj-class {
    border-left: 5px solid var(--cjajj-red);
    padding-left: 12px;
  }
  .cjajj-stat-pairs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cjajj-mastery-label,
  .cjajj-mastery-values {
    align-items: flex-start;
  }
  .cjajj-mastery-values {
    font-size: 0.76rem;
  }
}
