.mojebjj-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 24px;
  margin: 0 0 24px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.mojebjj-form-wrap h2,
.mojebjj-card h2,
.mojebjj-card h3,
.mojebjj-card h4 {
  margin-top: 0;
}

.mojebjj-login-card h2 {
  text-align: center;
}

.mojebjj-form label {
  display: block;
  font-weight: 600;
  margin: 0 0 8px;
}

.mojebjj-form input[type="text"],
.mojebjj-form input[type="email"],
.mojebjj-form input[type="password"],
.mojebjj-form textarea,
.mojebjj-form select {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 12px 14px;
  margin: 0 0 16px;
  background: #fff;
  box-sizing: border-box;
}

.mojebjj-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.mojebjj-button {
  display: inline-block;
  background: #111827;
  color: #fff;
  border: 0;
  border-radius: 10px;
  padding: 12px 18px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}

.mojebjj-button:hover {
  opacity: 0.92;
}

.mojebjj-button-secondary {
  background: #475569;
}

.mojebjj-button-danger {
  background: #991b1b;
}

.mojebjj-alert {
  border-radius: 12px;
  padding: 14px 16px;
  margin: 0 0 16px;
  font-weight: 600;
}

.mojebjj-alert-success {
  background: #ecfdf5;
  border: 1px solid #86efac;
  color: #166534;
}

.mojebjj-alert-error {
  background: #fef2f2;
  border: 1px solid #fca5a5;
  color: #991b1b;
}

.mojebjj-muted {
  color: #64748b;
}

.mojebjj-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin: 8px 0 18px;
}

.mojebjj-checkboxes label {
  font-weight: 500;
}

.mojebjj-checkboxes.compact {
  gap: 8px 12px;
  margin-bottom: 12px;
}

.mojebjj-row-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.mojebjj-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.mojebjj-badge.is-success {
  background: #dcfce7;
  color: #166534;
}

.mojebjj-badge.is-warning {
  background: #fef3c7;
  color: #92400e;
}

.mojebjj-badge.is-danger {
  background: #fee2e2;
  color: #991b1b;
}

.mojebjj-panel-block {
  border-top: 1px solid #e5e7eb;
  padding-top: 20px;
  margin-top: 20px;
}

.mojebjj-request-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  margin: 0 0 16px;
}

.mojebjj-actions-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 220px;
}

.mojebjj-inline-form {
  margin: 0;
}

.mojebjj-table-wrap {
  overflow-x: auto;
}

.mojebjj-table {
  border-collapse: collapse;
}

.mojebjj-admin-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (max-width: 782px) {
  .mojebjj-grid-2 {
    grid-template-columns: 1fr;
  }

  .mojebjj-request-card,
  .mojebjj-row-between {
    flex-direction: column;
    align-items: stretch;
  }

  .mojebjj-actions-stack {
    min-width: 0;
  }
}


.mojebjj-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
  gap: 24px;
  align-items: stretch;
  margin: 0 0 24px;
}

.mojebjj-hero__content,
.mojebjj-hero__box {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  padding: 28px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.mojebjj-hero__content h1 {
  margin: 8px 0 16px;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.05;
}

.mojebjj-hero__content p {
  font-size: 18px;
  color: #334155;
  max-width: 720px;
}

.mojebjj-eyebrow {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #f1f5f9;
  color: #0f172a;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 10px;
}

.mojebjj-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.mojebjj-feature-list {
  margin: 16px 0 0;
  padding-left: 18px;
}

.mojebjj-feature-list li {
  margin: 0 0 10px;
  color: #334155;
}

@media (max-width: 782px) {
  .mojebjj-hero {
    grid-template-columns: 1fr;
  }

  .mojebjj-hero__content p {
    font-size: 16px;
  }
}


.mojebjj-member-profile {
  padding: 0;
  overflow: hidden;
}

.mojebjj-member-cover {
  position: relative;
  min-height: 220px;
  overflow: hidden;
  background: linear-gradient(135deg, #0f172a, #334155);
  background-size: cover;
  background-position: center top;
}

.mojebjj-member-cover.has-image {
  background-image: none !important;
}

.mojebjj-member-cover__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 28%;
  z-index: 0;
}

.mojebjj-member-cover__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(15,23,42,0.04), rgba(15,23,42,0.30));
}

.mojebjj-member-head {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 16px;
  padding: 0 20px 20px;
  margin-top: -46px;
}

.mojebjj-member-avatar-wrap {
  flex: 0 0 auto;
}

.mojebjj-member-avatar {
  width: 104px;
  height: 104px;
  border-radius: 999px;
  object-fit: cover;
  border: 4px solid #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
  background: #fff;
}

.mojebjj-member-title h2 {
  margin: 0 0 6px;
  font-size: 28px;
  line-height: 1.08;
}

.mojebjj-member-title p,
.mojebjj-member-club {
  margin: 0;
}

.mojebjj-member-club {
  display: inline-flex;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #475569;
}

.mojebjj-profile-theme {
  --mojebjj-profile-accent: #d9dee5;
  --mojebjj-profile-accent-soft: rgba(217, 222, 229, 0.22);
  --mojebjj-profile-accent-line: rgba(217, 222, 229, 0.62);
  --mojebjj-profile-accent-ink: #334155;
  --mojebjj-profile-accent-contrast: #111827;
  --mojebjj-profile-role-accent: #64748b;
  --mojebjj-profile-role-soft: rgba(100, 116, 139, 0.1);
  --mojebjj-profile-role-ink: #475569;
}

.mojebjj-profile-theme .mojebjj-member-cover {
  border-bottom: 4px solid var(--mojebjj-profile-accent);
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.92), var(--mojebjj-profile-accent));
}

.mojebjj-profile-theme .mojebjj-member-cover__shade {
  background:
    linear-gradient(180deg, rgba(15,23,42,0.05), rgba(15,23,42,0.34)),
    linear-gradient(90deg, var(--mojebjj-profile-accent-soft), transparent 58%);
}

.mojebjj-profile-theme .mojebjj-member-avatar-wrap--accent {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--mojebjj-profile-accent), #ffffff);
  box-shadow: 0 10px 24px var(--mojebjj-profile-accent-soft);
}

.mojebjj-profile-theme .mojebjj-member-avatar {
  border-color: #ffffff;
  box-shadow: none;
}

.mojebjj-profile-theme .mojebjj-member-club {
  color: var(--mojebjj-profile-accent-ink);
}

.mojebjj-profile-theme .mojebjj-edit-profile-toggle {
  box-shadow: inset 0 0 0 1px var(--mojebjj-profile-accent-line);
  color: var(--mojebjj-profile-accent-ink);
}

.mojebjj-profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 0;
}

.mojebjj-profile-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.03em;
}

.mojebjj-profile-tag--belt {
  background: var(--mojebjj-profile-accent-soft);
  color: var(--mojebjj-profile-accent-ink);
  box-shadow: inset 0 0 0 1px var(--mojebjj-profile-accent-line);
}

.mojebjj-profile-tag--role {
  background: var(--mojebjj-profile-role-soft);
  color: var(--mojebjj-profile-role-ink);
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.mojebjj-profile-theme .mojebjj-member-actions .mojebjj-member-action-button:not(.mojebjj-attendance-circle):not(.mojebjj-attendance-tile),
.mojebjj-profile-theme .mojebjj-member-secondary-actions .mojebjj-member-action-button {
  background: #ffffff;
  color: #111827;
  border: 1px solid var(--mojebjj-profile-accent-line);
  box-shadow: inset 4px 0 0 var(--mojebjj-profile-accent), 0 8px 20px rgba(15, 23, 42, 0.06);
}

.mojebjj-profile-theme .mojebjj-member-actions .mojebjj-member-action-button:not(.mojebjj-attendance-circle):not(.mojebjj-attendance-tile):hover,
.mojebjj-profile-theme .mojebjj-member-secondary-actions .mojebjj-member-action-button:hover {
  opacity: 1;
  transform: translateY(-1px);
}

.mojebjj-profile-theme .mojebjj-club-member-summary__avatar {
  border-color: var(--mojebjj-profile-accent);
  box-shadow: 0 0 0 4px var(--mojebjj-profile-accent-soft), 0 12px 24px rgba(15, 23, 42, 0.12);
}

.mojebjj-profile-theme.mojebjj-club-member-detail {
  background: linear-gradient(180deg, var(--mojebjj-profile-accent-soft) 0, #ffffff 118px);
  border-top: 4px solid var(--mojebjj-profile-accent);
}

.mojebjj-profile-theme.mojebjj-club-member-detail .mojebjj-club-members-head {
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--mojebjj-profile-accent-line);
}

@media (max-width: 782px) {
  .mojebjj-profile-tags {
    gap: 7px;
  }

  .mojebjj-profile-tag {
    min-height: 26px;
    padding: 5px 10px;
    font-size: 11px;
  }
}

.mojebjj-member-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 20px 20px;
  align-items: stretch;
}

.mojebjj-member-actions .mojebjj-inline-form,
.mojebjj-member-actions .mojebjj-button {
  margin: 0;
}

.mojebjj-member-actions .mojebjj-button {
  width: 100%;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.mojebjj-grow {
  width: 100%;
}


.mojebjj-club-status-button {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 16px 18px;
  min-height: 64px;
  border-radius: 18px;
  font-size: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.mojebjj-club-status-screen-title {
  width: 100%;
  text-align: center;
}


.mojebjj-club-child-list-button {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 18px 16px;
  min-height: 58px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: normal;
  word-break: break-word;
}

.mojebjj-club-status-launch {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 24px 20px;
  border-radius: 24px;
  background: #dff3e5;
  text-decoration: none;
}

.mojebjj-club-status-launch .mojebjj-ranking-panel__head {
  margin: 0;
  justify-content: center;
}

.mojebjj-club-status-launch .mojebjj-ranking-panel__head > div {
  width: 100%;
}

.mojebjj-club-status-launch .mojebjj-ranking-panel__title {
  width: 100%;
  margin: 0;
  text-align: center;
  text-decoration: none;
  color: #1f3d2b;
}

.mojebjj-club-status-launch .mojebjj-ranking-panel__subtitle {
  display: none;
}

@media (max-width: 782px) {
  .mojebjj-club-status-button {
    min-height: 58px;
    font-size: 16px;
  }

  .mojebjj-club-status-launch {
    padding: 20px 16px;
  }
}


.mojebjj-member-action-button,
.mojebjj-member-actions .mojebjj-member-action-button,
.mojebjj-member-actions .mojebjj-member-action-button:visited,
.mojebjj-member-actions .mojebjj-member-action-button:hover,
.mojebjj-member-actions .mojebjj-member-action-button:focus {
  background: #111827;
  color: #fff;
}

.mojebjj-member-actions .mojebjj-member-action-button {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
}

.mojebjj-member-actions .mojebjj-member-action-button[disabled] {
  opacity: 1;
  background: #111827;
  color: #fff;
}

.mojebjj-button[disabled] {
  opacity: 0.7;
  cursor: not-allowed;
}

.mojebjj-button-present {
  background: #166534;
}

.mojebjj-attendance-list {
  display: grid;
  gap: 12px;
}

.mojebjj-attendance-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f8fafc;
}

.mojebjj-row-start-mobile {
  align-items: flex-start;
}

@media (max-width: 782px) {
  .mojebjj-card {
    padding: 18px;
    border-radius: 16px;
  }

  .mojebjj-member-cover {
    min-height: 180px;
  }

  .mojebjj-member-cover__image {
    object-position: center 24%;
  }

  .mojebjj-member-head {
    align-items: flex-start;
    flex-direction: column;
    margin-top: -40px;
    padding: 0 16px 16px;
  }

  .mojebjj-member-avatar {
    width: 92px;
    height: 92px;
  }

  .mojebjj-member-title h2 {
    font-size: 24px;
  }

  .mojebjj-member-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 0 16px 16px;
  }

  .mojebjj-attendance-item {
    flex-direction: column;
    align-items: flex-start;
  }
}


.mojebjj-media-trigger {
  cursor: pointer;
}

.mojebjj-hidden-upload-form {
  display: none;
}

.mojebjj-hidden-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.mojebjj-member-cover {
  overflow: hidden;
}

.mojebjj-member-cover__hint {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 12px;
}

.mojebjj-member-avatar-wrap {
  position: relative;
  display: inline-flex;
  cursor: pointer;
}

.mojebjj-member-avatar__hint {
  position: absolute;
  right: -2px;
  bottom: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  height: 28px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.18);
}

.mojebjj-media-trigger:focus-visible {
  outline: 3px solid #94a3b8;
  outline-offset: 3px;
}

@media (max-width: 782px) {
  .mojebjj-member-cover__hint {
    right: 10px;
    bottom: 10px;
    font-size: 11px;
    padding: 7px 10px;
  }

  .mojebjj-member-avatar__hint {
    min-width: 50px;
    height: 26px;
    font-size: 11px;
  }
}

@media (max-width: 420px) {
  .mojebjj-member-actions .mojebjj-button {
    min-height: 46px;
    padding: 10px 12px;
    font-size: 14px;
  }
}


body.mojebjj-dashboard-page {
  --mojebjj-seasonal-surface: #f8fafc;
  --mojebjj-seasonal-pattern-image: url('../images/mojebjj-seasonal-easter-pattern.svg');
  --mojebjj-seasonal-pattern-size: 320px 320px;
  background-color: var(--mojebjj-seasonal-surface);
  background-image:
    linear-gradient(180deg, rgba(248, 250, 252, 0.88), rgba(248, 250, 252, 0.94)),
    var(--mojebjj-seasonal-pattern-image);
  background-repeat: repeat;
  background-size: auto, var(--mojebjj-seasonal-pattern-size);
  background-position: top left, top left;
}

body.mojebjj-dashboard-page .mojebjj-member-profile {
  margin-top: 0;
}

body.mojebjj-dashboard-page .site-main,
body.mojebjj-dashboard-page .content-area,
body.mojebjj-dashboard-page .entry-content {
  background: transparent;
}

/* Seasonal background lives on the dashboard page only, so future seasonal swaps only need a new asset in --mojebjj-seasonal-pattern-image. */


.mojebjj-app-logo-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 20px;
  padding: 4px 0 0;
}

.mojebjj-app-logo {
  display: block;
  width: min(72vw, 260px);
  max-width: 260px;
  height: auto;
}

body.mojebjj-dashboard-page .mojebjj-card:first-of-type {
  margin-top: 0;
}

@media (max-width: 782px) {
  .mojebjj-app-logo-wrap {
    margin: 0 0 16px;
    padding-top: 0;
  }

  .mojebjj-app-logo {
    width: min(68vw, 220px);
    max-width: 220px;
  }
}


/* v0.1.11 equal attendance buttons */
.mojebjj-member-actions .mojebjj-member-action-button {
  white-space: nowrap;
  font-size: 16px;
  font-weight: 700;
}


/* v0.1.12 club logo badge */
.mojebjj-club-badge {
  margin-left: auto;
  flex: 0 0 auto;
  width: 92px;
  height: 92px;
  border-radius: 999px;
  overflow: hidden;
  border: 4px solid #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
  background: #fff;
}

.mojebjj-club-badge__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

@media (max-width: 782px) {
  .mojebjj-club-badge {
    align-self: flex-end;
    width: 76px;
    height: 76px;
    border-width: 3px;
    margin-top: -76px;
  }

  .mojebjj-member-title {
    width: 100%;
  }
}


/* v0.1.13 club profile link row + logout */
.mojebjj-member-head {
  align-items: stretch;
  flex-direction: column;
}

.mojebjj-member-avatars-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.mojebjj-club-badge,
.mojebjj-club-badge-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.mojebjj-club-badge {
  margin-left: 0;
  width: 104px;
  height: 104px;
}

.mojebjj-club-badge-link:focus-visible {
  outline: 3px solid #94a3b8;
  outline-offset: 4px;
}

.mojebjj-club-profile-head {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 0 20px 20px;
  margin-top: -46px;
  text-align: center;
}

.mojebjj-club-profile-avatar-wrap {
  display: inline-flex;
}

.mojebjj-club-profile-avatar {
  width: 110px;
  height: 110px;
}

.mojebjj-single-action {
  grid-template-columns: 1fr;
}

.mojebjj-logout-wrap {
  padding: 4px 0 24px;
}

.mojebjj-logout-button {
  width: 100%;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

@media (max-width: 782px) {
  .mojebjj-member-head {
    padding: 0 16px 16px;
    margin-top: -40px;
  }

  .mojebjj-member-avatars-row {
    gap: 14px;
  }

  .mojebjj-club-badge {
    width: 92px;
    height: 92px;
    border-width: 4px;
    margin-top: 0;
    align-self: auto;
  }

  .mojebjj-club-profile-head {
    padding: 0 16px 16px;
    margin-top: -40px;
  }

  .mojebjj-club-profile-avatar {
    width: 96px;
    height: 96px;
  }
}


/* v0.1.14 edit icons instead of text labels */
.mojebjj-edit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  line-height: 1;
  font-size: 16px;
  font-weight: 700;
}

.mojebjj-member-cover__hint {
  min-width: 40px;
  width: 40px;
  height: 40px;
  padding: 0;
  justify-content: center;
}

.mojebjj-member-avatar__hint {
  min-width: 38px;
  width: 38px;
  height: 38px;
  right: -4px;
  bottom: 4px;
  padding: 0;
}

.mojebjj-member-cover__hint .mojebjj-edit-icon,
.mojebjj-member-avatar__hint .mojebjj-edit-icon {
  color: #fff;
}

@media (max-width: 782px) {
  .mojebjj-member-cover__hint {
    width: 36px;
    min-width: 36px;
    height: 36px;
    padding: 0;
  }

  .mojebjj-member-avatar__hint {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
  }

  .mojebjj-edit-icon {
    width: 16px;
    height: 16px;
    font-size: 14px;
  }
}


/* v0.1.15 move cover edit icon to top right */
.mojebjj-member-cover__hint {
  top: 14px;
  right: 14px;
  bottom: auto;
}
@media (max-width: 782px) {
  .mojebjj-member-cover__hint {
    top: 10px;
    right: 10px;
    bottom: auto;
  }
}


.mojebjj-logout-wrap {
  display: flex;
  justify-content: center;
  margin: 24px 0 10px;
}

.mojebjj-logout-button {
  width: auto;
  min-width: 180px;
  text-align: center;
  padding: 12px 22px;
  border-radius: 14px;
}

.mojebjj-attendance-screen__top {
  align-items: flex-start;
}

.mojebjj-attendance-screen__title {
  margin: 6px 0 0;
}

.mojebjj-attendance-back {
  white-space: nowrap;
}

.mojebjj-attendance-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.mojebjj-attendance-summary-card {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 16px;
  background: #fff;
}

.mojebjj-attendance-summary-card strong {
  display: block;
  font-size: 28px;
  line-height: 1.1;
  margin-top: 8px;
}

.mojebjj-attendance-summary-card--wide {
  grid-column: 1 / -1;
}

.mojebjj-attendance-summary-label {
  display: block;
  color: #64748b;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.mojebjj-attendance-list-title {
  margin-bottom: 14px;
}

.mojebjj-attendance-days-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.mojebjj-attendance-day-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: #eff6ff;
  color: #0f172a;
  font-weight: 700;
  border: 1px solid #bfdbfe;
}

@media (max-width: 782px) {
  .mojebjj-attendance-summary-grid {
    grid-template-columns: 1fr;
  }

  .mojebjj-logout-button {
    min-width: 160px;
  }
}

body.mojebjj-dashboard-page footer.site-footer, body.mojebjj-dashboard-page #colophon { display:none !important; }


/* v0.1.17 attendance accordion */
.mojebjj-attendance-screen {
  font-size: 15px;
}

.mojebjj-attendance-screen__title {
  font-size: 30px;
  line-height: 1.08;
}

.mojebjj-attendance-accordion-wrap {
  margin-top: 18px;
}

.mojebjj-attendance-year,
.mojebjj-attendance-month {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
}

.mojebjj-attendance-year {
  overflow: hidden;
}

.mojebjj-attendance-year__summary,
.mojebjj-attendance-month__summary {
  list-style: none;
  cursor: pointer;
  font-weight: 700;
  position: relative;
  padding-right: 34px;
}

.mojebjj-attendance-year__summary::-webkit-details-marker,
.mojebjj-attendance-month__summary::-webkit-details-marker {
  display: none;
}

.mojebjj-attendance-year__summary {
  padding: 16px 18px;
  font-size: 20px;
}

.mojebjj-attendance-year__summary::after,
.mojebjj-attendance-month__summary::after {
  content: '+';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  font-size: 18px;
  line-height: 1;
}

.mojebjj-attendance-year[open] > .mojebjj-attendance-year__summary::after,
.mojebjj-attendance-month[open] > .mojebjj-attendance-month__summary::after {
  content: '−';
}

.mojebjj-attendance-months {
  display: grid;
  gap: 10px;
  padding: 0 12px 12px;
}

.mojebjj-attendance-month {
  overflow: hidden;
}

.mojebjj-attendance-month__summary {
  padding: 13px 16px;
  font-size: 15px;
}

.mojebjj-attendance-month__count {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px 14px;
  color: #334155;
}

.mojebjj-attendance-count-label {
  font-size: 13px;
  color: #64748b;
}

.mojebjj-attendance-month__count strong {
  font-size: 26px;
  line-height: 1;
  color: #0f172a;
}

@media (max-width: 782px) {
  .mojebjj-attendance-screen {
    font-size: 14px;
  }

  .mojebjj-attendance-screen__title {
    font-size: 26px;
  }

  .mojebjj-attendance-year__summary {
    font-size: 18px;
    padding: 14px 16px;
  }

  .mojebjj-attendance-months {
    gap: 8px;
    padding: 0 10px 10px;
  }

  .mojebjj-attendance-month__summary {
    padding: 12px 14px;
    font-size: 14px;
  }

  .mojebjj-attendance-month__count {
    padding: 0 14px 12px;
  }

  .mojebjj-attendance-month__count strong {
    font-size: 22px;
  }

  .mojebjj-attendance-count-label {
    font-size: 12px;
  }
}


/* v0.1.18 attendance totals and selective months */
.mojebjj-attendance-screen__heading {
  flex: 1 1 auto;
}

.mojebjj-attendance-screen__title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin-top: 4px;
}

.mojebjj-attendance-total-box {
  min-width: 128px;
  padding: 10px 14px;
  border: 1px solid #dbe2ea;
  border-radius: 14px;
  background: #f8fafc;
  text-align: right;
}

.mojebjj-attendance-total-box__label {
  display: block;
  font-size: 11px;
  color: #64748b;
  line-height: 1.25;
}

.mojebjj-attendance-total-box__count {
  display: block;
  margin-top: 4px;
  font-size: 34px;
  line-height: 1;
  color: #0f172a;
}

.mojebjj-attendance-year__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-right: 48px;
}

.mojebjj-attendance-year__total {
  font-size: 22px;
  line-height: 1;
  color: #0f172a;
}

@media (max-width: 782px) {
  .mojebjj-attendance-screen__title-row {
    align-items: stretch;
    gap: 12px;
  }

  .mojebjj-attendance-total-box {
    min-width: 110px;
    padding: 8px 12px;
  }

  .mojebjj-attendance-total-box__label {
    font-size: 10px;
  }

  .mojebjj-attendance-total-box__count {
    font-size: 30px;
  }

  .mojebjj-attendance-year__total {
    font-size: 20px;
  }
}


/* v0.1.19 belts */
.mojebjj-belt-fields {
  margin-top: 8px;
}

.mojebjj-register-note {
  margin: -4px 0 0;
}

.mojebjj-member-avatars-row {
  align-items: center;
}

.mojebjj-belt-slot {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 0 6px;
}

.mojebjj-belt-slot__image {
  display: block;
  width: min(100%, 240px);
  max-width: 240px;
  height: auto;
  filter: drop-shadow(0 6px 16px rgba(15, 23, 42, 0.18));
}

.mojebjj-club-badge--empty {
  visibility: hidden;
}

@media (max-width: 782px) {
  .mojebjj-belt-slot {
    padding: 0 2px;
  }

  .mojebjj-belt-slot__image {
    max-width: 150px;
  }
}



/* v0.1.20 rank badge instead of belt graphic */
.mojebjj-member-avatars-row {
  align-items: flex-start;
}

.mojebjj-member-spacer {
  flex: 1 1 auto;
  min-width: 0;
}

.mojebjj-club-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.mojebjj-rank-badge {
  --mojebjj-rank-color: #ffffff;
  --mojebjj-rank-grade-bg: #111827;
  --mojebjj-rank-bg: linear-gradient(135deg, var(--mojebjj-rank-color) 0 49.4%, var(--mojebjj-rank-grade-bg) 50.6% 100%);
  --mojebjj-rank-overlay: none;
  position: relative;
  width: 58px;
  height: 58px;
  border-radius: 999px;
  border: 4px solid #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
  background: var(--mojebjj-rank-bg);
  overflow: hidden;
}

.mojebjj-rank-badge::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
  background: var(--mojebjj-rank-overlay);
}

.mojebjj-rank-badge__grade {
  position: absolute;
  right: 11px;
  bottom: 8px;
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
}

.mojebjj-belt-slot,
.mojebjj-belt-slot__image {
  display: none !important;
}

@media (max-width: 782px) {
  .mojebjj-club-stack {
    gap: 8px;
  }

  .mojebjj-rank-badge {
    width: 50px;
    height: 50px;
    border-width: 3px;
  }

  .mojebjj-rank-badge__grade {
    right: 9px;
    bottom: 6px;
    font-size: 18px;
  }
}


/* v0.1.21 club profile refresh */
.mojebjj-club-member-head {
  align-items: stretch;
  flex-direction: column;
}

.mojebjj-club-profile-avatars-row {
  justify-content: flex-start;
}

.mojebjj-club-profile-spacer {
  display: none;
}

.mojebjj-club-profile-card .mojebjj-member-title {
  padding-top: 2px;
}

.mojebjj-club-profile-info {
  margin-top: 16px;
  display: grid;
  gap: 12px;
}

.mojebjj-club-profile-description-text {
  margin: 0;
  color: #334155;
  font-size: 16px;
  line-height: 1.55;
}

.mojebjj-club-profile-meta {
  display: grid;
  gap: 10px;
}

.mojebjj-club-profile-meta-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
}

.mojebjj-club-profile-meta-label {
  min-width: 68px;
  color: #475569;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.mojebjj-club-profile-meta-value {
  color: #334155;
  line-height: 1.45;
  word-break: break-word;
}

.mojebjj-club-profile-description {
  padding-top: 4px;
}

.mojebjj-link-inline,
.mojebjj-link-inline:visited {
  color: #0f172a;
  font-weight: 700;
  text-decoration: none;
}

.mojebjj-link-inline:hover,
.mojebjj-link-inline:focus {
  text-decoration: underline;
}

@media (max-width: 782px) {
  .mojebjj-club-profile-avatars-row {
    justify-content: flex-start;
  }
}

/* v0.1.23 club workflow */
.mojebjj-switcher-list {
  display: grid;
  gap: 12px;
}

.mojebjj-switcher-item {
  display: block;
  padding: 14px 16px;
  border: 1px solid #dbe2ea;
  border-radius: 14px;
  text-decoration: none;
  color: #0f172a;
  background: #fff;
}

.mojebjj-switcher-item small,
.mojebjj-switcher-item span {
  display: block;
}

.mojebjj-switcher-item small {
  color: #64748b;
  margin-top: 4px;
}

.mojebjj-switcher-item.is-active {
  border-color: #0f172a;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.mojebjj-club-members-head {
  align-items: center;
  gap: 16px;
}

.mojebjj-member-list {
  display: grid;
  gap: 12px;
}

.mojebjj-member-list-item {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: #0f172a;
  padding: 12px 14px;
  border: 1px solid #dbe2ea;
  border-radius: 14px;
  background: #fff;
}

.mojebjj-member-list-avatar {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.mojebjj-member-list-meta {
  min-width: 0;
  flex: 1;
}

.mojebjj-member-list-meta strong,
.mojebjj-member-list-meta span {
  display: block;
}

.mojebjj-member-list-meta span {
  color: #64748b;
  font-size: 14px;
  margin-top: 4px;
}

.mojebjj-member-list-arrow {
  font-size: 26px;
  line-height: 1;
  color: #64748b;
}

.mojebjj-member-list-item--locked {
  opacity: .9;
}

.mojebjj-member-list-item--locked .mojebjj-member-list-arrow--locked {
  font-size: 18px;
}

.mojebjj-club-member-summary {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mojebjj-club-member-summary__avatar {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 50%;
  border: 4px solid #fff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
}

.mojebjj-club-member-summary__meta {
  min-width: 0;
  flex: 1;
}

.mojebjj-club-member-summary__meta strong,
.mojebjj-club-member-summary__meta span {
  display: block;
}

.mojebjj-club-member-summary__meta span {
  color: #64748b;
  margin-top: 4px;
}

.mojebjj-rank-badge--large {
  width: 64px;
  height: 64px;
}

.mojebjj-club-approval-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.mojebjj-form-stack {
  display: grid;
  gap: 12px;
}

.mojebjj-form-stack label {
  display: block;
  font-weight: 600;
}

.mojebjj-form-stack select {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 12px 14px;
  background: #fff;
  box-sizing: border-box;
}

.mojebjj-achievement-list {
  display: grid;
  gap: 12px;
}

.mojebjj-achievement-item {
  padding: 14px;
  border: 1px solid #dbe2ea;
  border-radius: 14px;
}

.mojebjj-big-number {
  font-size: 32px;
  line-height: 1;
  color: #0f172a;
}

.mojebjj-year-summary-list {
  display: grid;
  gap: 10px;
}

.mojebjj-year-summary-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #dbe2ea;
  border-radius: 12px;
}

@media (max-width: 782px) {
  .mojebjj-club-member-summary {
    align-items: flex-start;
  }

  .mojebjj-big-number {
    font-size: 28px;
  }

  .mojebjj-club-members-head {
    align-items: flex-start;
  }
}


.mojebjj-centered-title {
  text-align: center;
}

.mojebjj-register-status {
  text-align: center;
  font-weight: 600;
  margin: 0 0 18px;
}

.mojebjj-achievement-list--editable {
  margin-top: 16px;
}

.mojebjj-achievement-item--editable {
  background: #fff;
}

.mojebjj-achievement-item--editable summary {
  list-style: none;
}

.mojebjj-achievement-item--editable summary::-webkit-details-marker {
  display: none;
}

.mojebjj-achievement-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}

.mojebjj-achievement-summary__title {
  font-weight: 700;
}

.mojebjj-achievement-form-inline {
  margin-top: 14px;
}

.mojebjj-achievement-delete-form {
  margin-top: 12px;
}

.mojebjj-achievement-delete-form .mojebjj-button,
.mojebjj-achievement-form-inline .mojebjj-button,
.mojebjj-achievement-form .mojebjj-button {
  width: 100%;
  text-align: center;
}

.mojebjj-member-toolbar {
  display: flex;
  justify-content: flex-end;
  margin: 14px 0 10px;
}

.mojebjj-edit-profile-toggle {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  background: #ffffff;
  color: #111827;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
  cursor: pointer;
}

.mojebjj-edit-profile-toggle .mojebjj-edit-icon {
  font-size: 18px;
  line-height: 1;
}

.mojebjj-edit-profile-toggle.is-active {
  background: #111827;
  color: #ffffff;
  border: 2px solid rgba(255,255,255,0.78);
  border-color: #111827;
}

.mojebjj-edit-panel[hidden] {
  display: none !important;
}

.mojebjj-edit-panel {
  margin-top: 12px;
}

.mojebjj-edit-card {
  margin-bottom: 18px;
}

@media (max-width: 782px) {
  .mojebjj-member-toolbar {
    margin: 12px 0 8px;
  }

  .mojebjj-edit-profile-toggle {
    width: 40px;
    height: 40px;
  }
}


.mojebjj-edit-profile-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.mojebjj-edit-screen-header {
  padding: 16px 20px;
}

.mojebjj-edit-screen-header__row {
  align-items: center;
}

.mojebjj-edit-screen-header__title {
  margin: 0;
  text-align: center;
  flex: 1;
}

.mojebjj-edit-screen-header__spacer {
  display: inline-block;
  min-width: 72px;
}

.mojebjj-back-button {
  min-width: 72px;
  text-align: center;
}


/* v0.1.37 medals and achievements screen */
.mojebjj-member-person-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.mojebjj-medal-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 58px;
}

.mojebjj-medal-badge {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.16);
  border: 2px solid rgba(255,255,255,0.9);
}

.mojebjj-medal-badge--gold {
  background: linear-gradient(135deg, #fef08a 0%, #f59e0b 100%);
}

.mojebjj-medal-badge--silver {
  background: linear-gradient(135deg, #f8fafc 0%, #94a3b8 100%);
}

.mojebjj-medal-badge--bronze {
  background: linear-gradient(135deg, #f59e0b 0%, #b45309 100%);
}

.mojebjj-medal-badge__count {
  color: #111827;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
}

.mojebjj-medal-badge--large {
  width: 64px;
  height: 64px;
  border-width: 3px;
}

.mojebjj-medal-badge--large .mojebjj-medal-badge__count {
  font-size: 22px;
}

.mojebjj-member-actions--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mojebjj-achievements-screen__title-row {
  align-items: center;
}

.mojebjj-achievements-medals-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0 18px;
}

.mojebjj-achievements-medal-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.mojebjj-achievements-medal-card__label {
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  text-align: center;
}

.mojebjj-achievement-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  color: #64748b;
  font-size: 13px;
  margin: 8px 0 0;
}

@media (max-width: 782px) {
  .mojebjj-member-actions--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .mojebjj-member-actions--three .mojebjj-member-action-button,
  .mojebjj-member-actions--three .mojebjj-button {
    min-height: 46px;
    padding: 10px 8px;
    font-size: 13px;
  }

  .mojebjj-medal-row {
    min-height: 50px;
    gap: 6px;
  }

  .mojebjj-medal-badge {
    width: 28px;
    height: 28px;
  }

  .mojebjj-medal-badge__count {
    font-size: 12px;
  }

  .mojebjj-medal-badge--large {
    width: 56px;
    height: 56px;
  }

  .mojebjj-medal-badge--large .mojebjj-medal-badge__count {
    font-size: 20px;
  }

  .mojebjj-achievements-medals-grid {
    gap: 10px;
  }

  .mojebjj-achievements-medal-card {
    padding: 12px 8px;
  }

  .mojebjj-achievements-medal-card__label {
    font-size: 12px;
  }
}

/* v0.1.38 payments + trainer member access */
.mojebjj-member-actions--four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mojebjj-payments-current-card {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 16px;
  background: #f8fafc;
  margin: 0 0 18px;
}

.mojebjj-payment-report-form {
  margin-top: 14px;
}

.mojebjj-payments-year-list .mojebjj-year-summary-item strong {
  font-size: 13px;
}

@media (max-width: 782px) {
  .mojebjj-member-actions--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .mojebjj-member-actions--four .mojebjj-member-action-button,
  .mojebjj-member-actions--four .mojebjj-button {
    min-height: 46px;
    padding: 10px 8px;
    font-size: 13px;
  }
}


/* v0.1.39 payments alerts */
.mojebjj-payment-alert {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 14px;
  font-size: 14px;
  line-height: 1.45;
  border: 1px solid #fecaca;
}

.mojebjj-payment-alert.is-overdue {
  background: #fef2f2;
  color: #991b1b;
  border-color: #fca5a5;
}

.mojebjj-payment-alert.is-due-soon {
  background: #fff7ed;
  color: #9a3412;
  border-color: #fdba74;
}

.mojebjj-member-list-item.is-overdue {
  background: #fef2f2;
  border-color: #fca5a5;
  box-shadow: inset 0 0 0 1px rgba(239, 68, 68, 0.08);
}

.mojebjj-member-list-item.is-overdue .mojebjj-member-list-meta strong,
.mojebjj-member-list-item.is-overdue .mojebjj-member-list-arrow {
  color: #991b1b;
}

.mojebjj-member-list-item.is-overdue .mojebjj-member-list-meta span {
  color: #b91c1c;
}


/* v0.1.40 club achievements */
.mojebjj-member-actions--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mojebjj-club-medals-stack {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-height: 108px;
}

.mojebjj-medal-row--club {
  justify-content: flex-end;
}

.mojebjj-medalist-list {
  margin-top: 6px;
}

.mojebjj-medalist-item {
  align-items: center;
}

.mojebjj-medalist-mini-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.mojebjj-medalist-mini-row .mojebjj-medal-badge {
  width: 28px;
  height: 28px;
}

.mojebjj-medalist-mini-row .mojebjj-medal-badge__count {
  font-size: 11px;
}

@media (max-width: 782px) {
  .mojebjj-member-actions--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .mojebjj-member-actions--two .mojebjj-member-action-button,
  .mojebjj-member-actions--two .mojebjj-button {
    min-height: 46px;
    padding: 10px 8px;
    font-size: 13px;
  }

  .mojebjj-club-medals-stack {
    min-height: 92px;
  }

  .mojebjj-medalist-item {
    gap: 10px;
  }

  .mojebjj-medalist-mini-row {
    gap: 4px;
  }

  .mojebjj-medalist-mini-row .mojebjj-medal-badge {
    width: 24px;
    height: 24px;
  }

  .mojebjj-medalist-mini-row .mojebjj-medal-badge__count {
    font-size: 10px;
  }
}


.mojebjj-club-toolbar {
  justify-content: flex-end;
}

.mojebjj-club-profile-description p {
  margin: 0 0 10px;
}

.mojebjj-club-profile-description p:last-child {
  margin-bottom: 0;
}


/* v0.1.43 club athletes */
.mojebjj-club-athletes-list {
  margin-top: 8px;
}

.mojebjj-club-athlete-item {
  align-items: center;
}

.mojebjj-club-athlete-badges {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}

.mojebjj-club-athlete-total {
  min-width: 42px;
  height: 42px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}

@media (max-width: 782px) {
  .mojebjj-club-athlete-item {
    gap: 10px;
  }

  .mojebjj-club-athlete-badges {
    gap: 8px;
  }

  .mojebjj-club-athlete-badges .mojebjj-rank-badge {
    width: 38px;
    height: 38px;
  }

  .mojebjj-club-athlete-badges .mojebjj-rank-badge__grade {
    font-size: 14px;
  }

  .mojebjj-club-athlete-total {
    min-width: 38px;
    height: 38px;
    font-size: 13px;
  }
}


/* v0.1.44 athlete visitors */
.mojebjj-club-athletes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 12px;
  margin-top: 12px;
}

.mojebjj-club-athlete-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: inherit;
  gap: 8px;
}

.mojebjj-club-athlete-card__avatar-wrap {
  position: relative;
}

.mojebjj-club-athlete-card__avatar {
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 999px;
  border: 4px solid #fff;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.14);
}

.mojebjj-club-athlete-card__count {
  position: absolute;
  right: -2px;
  bottom: -2px;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 13px;
  line-height: 1;
}

.mojebjj-club-athlete-card__name {
  font-size: 13px;
  line-height: 1.3;
  text-align: center;
  font-weight: 700;
}

.mojebjj-athlete-public-profile .mojebjj-member-cover,
.mojebjj-athlete-public-profile .mojebjj-member-avatar-wrap {
  cursor: default;
}

@media (max-width: 782px) {
  .mojebjj-club-athletes-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 10px;
  }

  .mojebjj-club-athlete-card__avatar {
    width: 78px;
    height: 78px;
  }

  .mojebjj-club-athlete-card__count {
    min-width: 28px;
    height: 28px;
    font-size: 12px;
  }

  .mojebjj-club-athlete-card__name {
    font-size: 12px;
  }
}


/* v0.1.45 athletes grid refinement */
.mojebjj-club-athletes-grid {
  justify-items: center;
}

.mojebjj-club-athlete-card {
  width: 100%;
  max-width: 96px;
  gap: 0;
}

.mojebjj-club-athlete-card__avatar-wrap {
  position: relative;
  width: 96px;
  height: 96px;
}

.mojebjj-club-athlete-card__avatar {
  width: 96px;
  height: 96px;
  border-radius: 999px;
  border: 5px solid #ffffff;
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.16);
  background: #fff;
}

.mojebjj-club-athlete-card__count {
  right: -4px;
  bottom: -4px;
  min-width: 32px;
  height: 32px;
  font-size: 13px;
}

.mojebjj-club-athlete-card__name {
  display: none !important;
}

@media (max-width: 782px) {
  .mojebjj-club-athletes-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 8px;
  }

  .mojebjj-club-athlete-card {
    max-width: 88px;
  }

  .mojebjj-club-athlete-card__avatar-wrap,
  .mojebjj-club-athlete-card__avatar {
    width: 88px;
    height: 88px;
  }

  .mojebjj-club-athlete-card__count {
    min-width: 30px;
    height: 30px;
    font-size: 12px;
  }
}


/* v0.1.46 trainers panel */
.mojebjj-club-trainers-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}

.mojebjj-club-trainer-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  text-decoration: none;
  color: #0f172a;
  background: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
}

.mojebjj-club-trainer-row:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.mojebjj-club-trainer-row__avatar {
  width: 68px;
  height: 68px;
  border-radius: 999px;
  object-fit: cover;
  border: 4px solid #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
  flex-shrink: 0;
}

.mojebjj-club-trainer-row__name {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #0f172a;
}

@media (max-width: 782px) {
  .mojebjj-club-trainer-row {
    padding: 10px 12px;
    gap: 12px;
  }

  .mojebjj-club-trainer-row__avatar {
    width: 60px;
    height: 60px;
  }

  .mojebjj-club-trainer-row__name {
    font-size: 16px;
  }
}


/* v0.1.47 inline trainers panel on club profile */
.mojebjj-club-inline-trainers-card {
  margin-top: 18px;
}

.mojebjj-club-inline-trainers-card__head {
  margin-bottom: 14px;
}

.mojebjj-club-inline-trainers-card__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.1;
  color: #0f172a;
}

.mojebjj-club-trainers-list--inline {
  margin-top: 0;
}

@media (max-width: 782px) {
  .mojebjj-club-inline-trainers-card__title {
    font-size: 22px;
  }

  .mojebjj-club-belts-card__title,
  .mojebjj-club-schedule-card__title,
  .mojebjj-ranking-panel__title {
    font-size: 22px;
  }
}


/* v0.1.48 attendance tile */
.mojebjj-attendance-quick-form {
  width: 124px;
  max-width: 124px;
  justify-self: start;
}

.mojebjj-member-actions .mojebjj-attendance-tile,
.mojebjj-member-actions .mojebjj-attendance-tile:visited,
.mojebjj-member-actions .mojebjj-attendance-tile:hover,
.mojebjj-member-actions .mojebjj-attendance-tile:focus {
  width: 124px;
  max-width: 124px;
  min-width: 124px;
  height: 124px;
  min-height: 124px;
  padding: 12px;
  border-radius: 20px;
  background: #facc15;
  color: #111827;
  box-shadow: 0 12px 24px rgba(250, 204, 21, 0.28);
  border: 0;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.mojebjj-attendance-tile.is-pending .mojebjj-attendance-tile__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 20px;
  line-height: 1.15;
  max-width: 90px;
}

.mojebjj-member-actions .mojebjj-attendance-tile.is-present,
.mojebjj-member-actions .mojebjj-attendance-tile.is-present:hover,
.mojebjj-member-actions .mojebjj-attendance-tile.is-present:focus {
  background: #16a34a;
  color: #fff;
  box-shadow: 0 12px 24px rgba(22, 163, 74, 0.25);
  opacity: 1;
}

.mojebjj-attendance-tile__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 54px;
  line-height: 1;
  font-weight: 900;
}

@media (max-width: 782px) {
  .mojebjj-attendance-quick-form {
    width: 112px;
    max-width: 112px;
  }

  .mojebjj-member-actions .mojebjj-attendance-tile,
  .mojebjj-member-actions .mojebjj-attendance-tile:visited,
  .mojebjj-member-actions .mojebjj-attendance-tile:hover,
  .mojebjj-member-actions .mojebjj-attendance-tile:focus {
    width: 112px;
    max-width: 112px;
    min-width: 112px;
    height: 112px;
    min-height: 112px;
    border-radius: 18px;
    padding: 10px;
  }

  .mojebjj-attendance-tile.is-pending .mojebjj-attendance-tile__label {
    font-size: 18px;
    max-width: 82px;
  }

  .mojebjj-attendance-tile__check {
    font-size: 48px;
  }
}


.mojebjj-club-belts-card {
  margin-top: 18px;
}

.mojebjj-club-belts-card__head {
  margin-bottom: 18px;
}

.mojebjj-club-belts-card__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.1;
  color: #0f172a;
}

.mojebjj-club-belts-stack {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap;
}

.mojebjj-club-belts-stack--inline {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
  width: 100%;
}

.mojebjj-club-belt-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.mojebjj-club-belt-row--inline {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 1 0;
}

.mojebjj-club-belt-circle {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 3px solid rgba(255,255,255,0.92);
  box-shadow: 0 10px 22px rgba(17,24,39,0.12);
  flex: 0 0 58px;
}

.mojebjj-club-belt-circle__count {
  font-weight: 800;
  font-size: 24px;
  line-height: 1;
  color: #111827;
}

.mojebjj-club-belt-circle--black {
  background: #1f2937;
}
.mojebjj-club-belt-circle--black .mojebjj-club-belt-circle__count {
  color: #ffffff;
}

.mojebjj-club-belt-circle--brown {
  background: #8b5a2b;
}
.mojebjj-club-belt-circle--brown .mojebjj-club-belt-circle__count {
  color: #ffffff;
}

.mojebjj-club-belt-circle--purple {
  background: #7c3aed;
}
.mojebjj-club-belt-circle--purple .mojebjj-club-belt-circle__count {
  color: #ffffff;
}

.mojebjj-club-belt-circle--blue {
  background: #2563eb;
}
.mojebjj-club-belt-circle--blue .mojebjj-club-belt-circle__count {
  color: #ffffff;
}

.mojebjj-club-belt-circle--white {
  background: #ffffff;
  border-color: #d1d5db;
}

.mojebjj-club-belt-row__label {
  font-size: 18px;
  font-weight: 700;
  color: #334155;
}

@media (max-width: 782px) {
  .mojebjj-club-belts-stack,
  .mojebjj-club-belts-stack--inline {
    flex-direction: row !important;
    gap: 8px !important;
  }

  .mojebjj-club-belts-card__title {
    font-size: 22px;
  }

  .mojebjj-club-belt-circle {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }

  .mojebjj-club-belt-circle__count {
    font-size: 22px;
  }

  .mojebjj-club-belt-row__label {
    font-size: 16px;
  }
}


.mojebjj-club-trainer-row__name-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mojebjj-club-trainer-row__role {
    font-size: 13px;
    line-height: 1.25;
    color: #6b7a96;
}


/* v0.1.59 unified back arrow */
.mojebjj-screen-topbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 0 0 10px;
}

.mojebjj-icon-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  color: #0f172a;
  text-decoration: none;
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

.mojebjj-icon-back:hover {
  background: #f8fafc;
}

.mojebjj-screen-header-spaced {
  margin-top: 4px;
}

.mojebjj-edit-screen-header__row--center {
  justify-content: center;
}

@media (max-width: 782px) {
  .mojebjj-screen-topbar {
    margin-bottom: 8px;
  }

  .mojebjj-icon-back {
    width: 40px;
    height: 40px;
    font-size: 22px;
  }
}


/* v0.1.62 club schedule */
.mojebjj-club-schedule-card {
  margin-top: 18px;
}

.mojebjj-club-schedule-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.mojebjj-club-schedule-card__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.1;
  color: #0f172a;
}

.mojebjj-club-schedule-edit {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid #dbe2ea;
  background: #ffffff;
  color: #0f172a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.08);
  cursor: pointer;
}

.mojebjj-club-schedule-link {
  display: block;
  text-decoration: none;
}

.mojebjj-club-schedule-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
}

.mojebjj-club-schedule-frame--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed #cbd5e1;
  background: linear-gradient(135deg, rgba(226, 232, 240, 0.5), rgba(248, 250, 252, 0.95));
}

.mojebjj-club-schedule-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.mojebjj-club-schedule-open {
  position: absolute;
  right: 14px;
  bottom: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  backdrop-filter: blur(4px);
}

.mojebjj-club-schedule-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 20px;
  color: #475569;
}

.mojebjj-club-schedule-empty__title {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
}

.mojebjj-club-schedule-empty__subtitle {
  font-size: 14px;
  color: #64748b;
}

@media (max-width: 782px) {
  .mojebjj-club-schedule-card__title {
    font-size: 22px;
  }

  .mojebjj-club-schedule-edit {
    width: 42px;
    height: 42px;
  }

  .mojebjj-club-schedule-open {
    right: 10px;
    bottom: 10px;
    font-size: 12px;
    padding: 7px 10px;
  }

  .mojebjj-club-schedule-empty__title {
    font-size: 16px;
  }
}


/* v0.1.65 member profile action stack */
.mojebjj-member-actions--profile-stack {
  grid-template-columns: minmax(0, 132px) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}

.mojebjj-member-actions__left,
.mojebjj-member-actions__right {
  min-width: 0;
}

.mojebjj-member-actions__left {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
}

.mojebjj-member-actions__right {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-content: stretch;
}

.mojebjj-attendance-quick-form--stack {
  width: 100%;
  max-width: none;
  display: flex;
}

.mojebjj-member-actions .mojebjj-attendance-circle,
.mojebjj-member-actions .mojebjj-attendance-circle:visited,
.mojebjj-member-actions .mojebjj-attendance-circle:hover,
.mojebjj-member-actions .mojebjj-attendance-circle:focus {
  width: 124px;
  max-width: 124px;
  min-width: 124px;
  height: 124px;
  min-height: 124px;
  border-radius: 999px;
  background: #facc15;
  color: #111827;
  border: 0;
  box-shadow: 0 12px 24px rgba(250, 204, 21, 0.28);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 12px;
  font-weight: 800;
}

.mojebjj-attendance-circle__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 18px;
  line-height: 1.05;
  letter-spacing: 0.03em;
}

.mojebjj-member-actions .mojebjj-attendance-circle.is-present,
.mojebjj-member-actions .mojebjj-attendance-circle.is-present:hover,
.mojebjj-member-actions .mojebjj-attendance-circle.is-present:focus {
  background: #16a34a;
  color: #fff;
  box-shadow: 0 12px 24px rgba(22, 163, 74, 0.24);
  opacity: 1;
}

.mojebjj-attendance-circle__check {
  font-size: 54px;
  font-weight: 900;
  line-height: 1;
}

.mojebjj-member-secondary-actions {
  padding: 0 20px 20px;
}

.mojebjj-member-secondary-actions .mojebjj-member-action-button {
  width: 100%;
  min-height: 48px;
}

@media (max-width: 782px) {
  .mojebjj-member-actions--profile-stack {
    grid-template-columns: minmax(0, 112px) minmax(0, 1fr);
    gap: 12px;
    padding: 0 16px 16px;
  }

  .mojebjj-member-actions__right {
    gap: 10px;
  }

  .mojebjj-member-actions .mojebjj-attendance-circle,
  .mojebjj-member-actions .mojebjj-attendance-circle:visited,
  .mojebjj-member-actions .mojebjj-attendance-circle:hover,
  .mojebjj-member-actions .mojebjj-attendance-circle:focus {
    width: 112px;
    max-width: 112px;
    min-width: 112px;
    height: 112px;
    min-height: 112px;
  }

  .mojebjj-attendance-circle__label {
    font-size: 16px;
  }

  .mojebjj-attendance-circle__check {
    font-size: 48px;
  }

  .mojebjj-member-secondary-actions {
    padding: 0 16px 16px;
  }

  .mojebjj-member-secondary-actions--two {
    grid-template-columns: 1fr;
  }
}


/* v0.1.65.2 dedicated club schedule screen */
.mojebjj-club-schedule-screen__frame {
  width: 100%;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
}

.mojebjj-club-schedule-screen__image {
  display: block;
  width: 100%;
  height: auto;
}

.mojebjj-notification-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 16px;
  text-decoration: none;
  color: #422006;
  border: 1px solid #f59e0b;
  background: #fde68a;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.mojebjj-notification-panel__content {
  min-width: 0;
  flex: 1 1 auto;
}

.mojebjj-notification-panel__eyebrow {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #92400e;
}

.mojebjj-notification-panel__title {
  margin: 4px 0 6px;
  font-size: 20px;
  line-height: 1.2;
}

.mojebjj-notification-panel__text {
  margin: 0;
  color: #713f12;
  font-weight: 700;
}

.mojebjj-notification-panel:hover {
  transform: translateY(-1px);
}


.mojebjj-notification-panel__count,
.mojebjj-notifications-screen__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border-radius: 999px;
  background: #111827;
  color: #ffffff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
  flex: 0 0 auto;
}

.mojebjj-notifications-screen__count {
  min-width: 42px;
  height: 42px;
}

.mojebjj-notifications-screen .mojebjj-notification-launcher {
  margin-top: 8px;
}

.mojebjj-notification-launcher--inline {
  margin: 0;
}

.mojebjj-notification-launcher--inline .mojebjj-member-action-button {
  width: 100%;
}

.mojebjj-member-secondary-actions--two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.mojebjj-empty-state {
  margin-top: 16px;
  padding: 20px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: center;
  color: #475569;
}

.mojebjj-notification-launcher {
  margin: 16px 0 0;
}

.mojebjj-notification-launcher--inline {
  margin: 0;
}

.mojebjj-notifications-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 16px 0 24px;
}

.mojebjj-notification-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  background: #fde68a;
  border: 1px solid #f59e0b;
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.mojebjj-notification-card__content {
  min-width: 0;
  flex: 1 1 auto;
}

.mojebjj-notification-card__sender {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #854d0e;
  text-transform: uppercase;
}

.mojebjj-notification-card__title {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.2;
}

.mojebjj-notification-card__message {
  color: #422006;
  font-weight: 600;
  line-height: 1.55;
}

.mojebjj-notification-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 700;
  color: #713f12;
}

.mojebjj-notification-ok {
  border: 0;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  padding: 8px 12px;
  cursor: pointer;
}

.mojebjj-notification-ok:hover {
  opacity: 0.92;
}

.mojebjj-notification-sections {
  margin-top: 4px;
}

.mojebjj-modal[hidden] {
  display: none !important;
}

.mojebjj-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
}

.mojebjj-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.56);
}

.mojebjj-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 560px);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  margin: 24px auto;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.22);
  padding: 20px;
}

.mojebjj-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.mojebjj-modal__head h3 {
  margin: 0;
}

.mojebjj-modal__close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  background: #e2e8f0;
  color: #0f172a;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

body.mojebjj-modal-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .mojebjj-notification-card {
    flex-direction: column;
  }

  .mojebjj-notification-card__dismiss {
    align-self: flex-end;
  }

  .mojebjj-modal__dialog {
    width: calc(100vw - 20px);
    margin: 10px auto;
    max-height: calc(100vh - 20px);
    border-radius: 18px;
  }
}


.mojebjj-useful-upload-form {
  margin-bottom: 20px;
}

.mojebjj-useful-editor-grid,
.mojebjj-useful-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.mojebjj-useful-upload-field,
.mojebjj-useful-download-card,
.mojebjj-useful-instructions,
.mojebjj-useful-wallpapers {
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  background: #fff;
}

.mojebjj-useful-upload-field {
  padding: 16px;
}

.mojebjj-useful-upload-field label {
  display: block;
  font-weight: 700;
  margin-bottom: 10px;
}

.mojebjj-useful-upload-field input[type="file"] {
  width: 100%;
}

.mojebjj-useful-upload-preview {
  width: 100%;
  min-height: 160px;
  border-radius: 18px;
  overflow: hidden;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.mojebjj-useful-upload-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mojebjj-useful-upload-preview--icon {
  max-width: 180px;
  aspect-ratio: 1 / 1;
}

.mojebjj-useful-upload-preview--wallpaper {
  aspect-ratio: 9 / 16;
}

.mojebjj-useful-upload-preview--empty {
  color: #64748b;
  font-weight: 600;
}

.mojebjj-useful-wallpaper-editor {
  margin-top: 20px;
}

.mojebjj-useful-wallpaper-slots,
.mojebjj-useful-wallpapers-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.mojebjj-useful-wallpaper-slot,
.mojebjj-useful-wallpaper-card {
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 14px;
  background: #fff;
}

.mojebjj-useful-wallpaper-slot__head,
.mojebjj-useful-wallpaper-card__body h4 {
  font-weight: 800;
  margin-bottom: 10px;
}

.mojebjj-useful-download-sections {
  display: grid;
  gap: 20px;
}

.mojebjj-useful-download-card {
  overflow: hidden;
}

.mojebjj-useful-download-card__preview {
  background: #f8fafc;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mojebjj-useful-download-card__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mojebjj-useful-download-card__preview--icon {
  padding: 20px;
}

.mojebjj-useful-download-card__preview--icon img {
  max-width: 180px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

.mojebjj-useful-download-card__body,
.mojebjj-useful-wallpaper-card__body,
.mojebjj-useful-instructions {
  padding: 16px;
}

.mojebjj-useful-download-card__body h3,
.mojebjj-useful-wallpapers h3,
.mojebjj-useful-instructions h3 {
  margin-top: 0;
}

.mojebjj-useful-empty {
  padding: 16px;
  border-radius: 16px;
  background: #f8fafc;
  color: #64748b;
  font-weight: 600;
}

.mojebjj-useful-wallpaper-card__preview {
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 9 / 16;
  margin-bottom: 12px;
  background: #f8fafc;
}

.mojebjj-useful-wallpaper-card__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 640px) {
  .mojebjj-useful-editor-grid,
  .mojebjj-useful-grid,
  .mojebjj-useful-wallpaper-slots,
  .mojebjj-useful-wallpapers-grid {
    grid-template-columns: 1fr;
  }

  .mojebjj-useful-download-card__preview {
    min-height: 180px;
  }
}


/* v0.1.67.1 install shortcut */
.mojebjj-useful-download-card--install {align-items:center;}
.mojebjj-useful-install-note {margin-top:10px;color:#64748b;font-size:13px;line-height:1.4;}
.mojebjj-button.is-disabled {opacity:.65;pointer-events:none;}
.mojebjj-install-help__steps {margin:0;padding-left:20px;display:grid;gap:10px;color:#334155;}
.mojebjj-install-help strong {color:#0f172a;}


.mojebjj-pwa-badge-permission {
  margin-top: 12px;
  display: grid;
  gap: 10px;
}

.mojebjj-pwa-badge-permission__status {
  margin: 0;
  font-weight: 700;
  color: #1f2937;
}

.mojebjj-pwa-badge-permission__hint {
  margin: 0;
}


/* v0.1.71 pending achievements alerts */
.mojebjj-member-list-item.has-pending-approvals,
.mojebjj-member-list-item.has-pending-achievements {
  background: #fef2f2;
  border-color: #fca5a5;
  box-shadow: inset 0 0 0 1px rgba(239, 68, 68, 0.08);
}

.mojebjj-member-list-item.has-pending-approvals .mojebjj-member-list-meta strong,
.mojebjj-member-list-item.has-pending-approvals .mojebjj-member-list-arrow,
.mojebjj-member-list-item.has-pending-achievements .mojebjj-member-list-meta strong,
.mojebjj-member-list-item.has-pending-achievements .mojebjj-member-list-arrow {
  color: #991b1b;
}

.mojebjj-member-list-item.has-pending-approvals .mojebjj-member-list-meta > span,
.mojebjj-member-list-item.has-pending-achievements .mojebjj-member-list-meta > span {
  color: #b91c1c;
}

.mojebjj-member-list-alert {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fecaca;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
}

.mojebjj-pending-achievements-head {
  align-items: center;
  margin-bottom: 14px;
}

.mojebjj-achievement-list--pending-club {
  gap: 14px;
}

.mojebjj-achievement-item--pending-club {
  background: #fff8d6;
  border-color: #facc15;
}

.mojebjj-pending-achievement-meta {
  margin: 8px 0 0;
}


/* v0.1.71.1 footer cleanup */
.mojebjj-logout-wrap {
  display: flex;
  justify-content: center;
  margin: 28px 0 14px;
  padding: 0 0 12px;
}

.mojebjj-logout-link {
  display: inline-block;
  color: #64748b;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.01em;
}

.mojebjj-logout-link:hover,
.mojebjj-logout-link:focus {
  color: #0f172a;
  text-decoration: underline;
}

body.mojebjj-dashboard-page .mojebjj-logout-button {
  display: none !important;
}

body.mojebjj-dashboard-page footer.site-footer,
body.mojebjj-dashboard-page #colophon,
body.mojebjj-dashboard-page .site-info,
body.mojebjj-dashboard-page .wp-block-site-title,
body.mojebjj-dashboard-page .wp-block-site-title a,
body.mojebjj-dashboard-page footer.entry-footer,
body.mojebjj-dashboard-page .entry-footer {
  display: none !important;
}


/* v0.1.71.2 pull to refresh */
.mojebjj-pull-refresh-indicator {
  position: fixed;
  top: 10px;
  left: 50%;
  transform: translate(-50%, -140%);
  z-index: 9999;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.92);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.18s ease, opacity 0.18s ease;
}

.mojebjj-pull-refresh-indicator.is-visible {
  transform: translate(-50%, 0);
  opacity: 1;
}

.mojebjj-pull-refresh-indicator.is-ready {
  background: rgba(202, 138, 4, 0.96);
}


/* v0.1.72.0 legal pages, consents and cookies */
.mojebjj-logout-wrap {
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.mojebjj-legal-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}

.mojebjj-legal-links__item {
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.mojebjj-legal-links__item:hover,
.mojebjj-legal-links__item:focus {
  color: #0f172a;
  text-decoration: underline;
}

.mojebjj-checkbox-inline {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.mojebjj-checkbox-inline input[type="checkbox"] {
  margin: 3px 0 0;
  flex: 0 0 auto;
}

.mojebjj-legal-consents {
  margin: 18px 0 0;
  padding: 16px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #f8fafc;
}

.mojebjj-legal-consents__checks {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 14px;
}

.mojebjj-legal-consents__label {
  font-weight: 500;
  margin: 0;
}

.mojebjj-legal-consents__label span,
.mojebjj-legal-consents__clause,
.mojebjj-legal-consents__links {
  color: #334155;
  font-size: 14px;
  line-height: 1.55;
}

.mojebjj-legal-consents__clause,
.mojebjj-legal-consents__links {
  margin: 0 0 10px;
}

.mojebjj-legal-consents__links {
  margin-bottom: 0;
}

.mojebjj-cookie-banner {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 10000;
}

.mojebjj-cookie-banner__content {
  max-width: 760px;
  margin: 0 auto;
  background: rgba(15, 23, 42, 0.96);
  color: #fff;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.28);
}

.mojebjj-cookie-banner__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}

.mojebjj-cookie-banner__text a,
.mojebjj-cookie-banner__policy {
  color: #f8fafc;
  text-decoration: underline;
}

.mojebjj-cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}

.mojebjj-cookie-banner .mojebjj-button-secondary {
  background: #facc15;
  color: #111827;
}

@media (max-width: 782px) {
  .mojebjj-legal-consents {
    padding: 14px;
  }

  .mojebjj-cookie-banner {
    left: 12px;
    right: 12px;
    bottom: 12px;
  }

  .mojebjj-cookie-banner__content {
    padding: 14px;
  }

  .mojebjj-cookie-banner__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .mojebjj-cookie-banner__actions .mojebjj-button,
  .mojebjj-cookie-banner__actions .mojebjj-cookie-banner__policy {
    width: 100%;
    text-align: center;
  }
}

.mojebjj-ranking-panel,
.mojebjj-ranking-view,
.mojebjj-ranking-rules-view {
  margin-top: 16px;
}

.mojebjj-ranking-panel__head,
.mojebjj-ranking-view__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.mojebjj-ranking-panel__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.1;
  color: #0f172a;
}

.mojebjj-ranking-panel__subtitle {
  margin: 6px 0 0;
  color: #6b7280;
  font-size: 13px;
}

.mojebjj-ranking-panel__rules-link {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f3f4f6;
  color: #111827;
  text-decoration: none;
  font-weight: 700;
  border: 1px solid #e5e7eb;
}

.mojebjj-ranking-podium {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.mojebjj-ranking-podium__item {
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid #eceef3;
  border-radius: 18px;
  padding: 12px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.mojebjj-ranking-podium__item--1 {
  border-color: rgba(245, 158, 11, 0.35);
}

.mojebjj-ranking-podium__item--2 {
  border-color: rgba(148, 163, 184, 0.4);
}

.mojebjj-ranking-podium__item--3 {
  border-color: rgba(146, 64, 14, 0.35);
}

.mojebjj-ranking-podium__place {
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #facc15;
  color: #111827;
  font-size: 13px;
  font-weight: 700;
}

.mojebjj-ranking-podium__item--2 .mojebjj-ranking-podium__place {
  background: #cbd5e1;
}

.mojebjj-ranking-podium__item--3 .mojebjj-ranking-podium__place {
  background: #d6b08c;
}

.mojebjj-ranking-podium__avatar,
.mojebjj-ranking-row__avatar {
  width: 68px;
  height: 68px;
  border-radius: 999px;
  object-fit: cover;
  display: block;
}

.mojebjj-ranking-podium__name,
.mojebjj-ranking-row__name {
  font-weight: 700;
  line-height: 1.2;
}

.mojebjj-ranking-podium__points,
.mojebjj-ranking-row__points {
  font-size: 13px;
  color: #0f2f6d;
  font-weight: 700;
}

.mojebjj-ranking-panel__footer,
.mojebjj-ranking-panel__empty {
  margin-top: 14px;
}

.mojebjj-ranking-panel__open {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 12px;
  background: #f3f4f6;
  color: #111827;
  text-decoration: none;
  font-weight: 600;
}

.mojebjj-ranking-table {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
}

.mojebjj-ranking-row {
  display: grid;
  grid-template-columns: 34px 56px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  border: 1px solid #eceef3;
  border-radius: 16px;
  padding: 10px 12px;
  background: #fff;
}

.mojebjj-ranking-row__position {
  font-weight: 800;
  color: #0f2f6d;
  text-align: center;
}

.mojebjj-ranking-row__avatar {
  width: 56px;
  height: 56px;
}

.mojebjj-ranking-row__name-wrap {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.mojebjj-ranking-row__meta {
  font-size: 12px;
  color: #6b7280;
}

.mojebjj-ranking-rules {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mojebjj-ranking-rules p {
  margin: 0;
}

.mojebjj-ranking-rules__table {
  border: 1px solid #eceef3;
  border-radius: 16px;
  overflow: hidden;
}

.mojebjj-ranking-rules__row {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(54px, 0.6fr));
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  background: #fff;
  border-top: 1px solid #eceef3;
  font-size: 14px;
}

.mojebjj-ranking-rules__row:first-child {
  border-top: 0;
}

.mojebjj-ranking-rules__row--head {
  background: #f8fafc;
  font-weight: 700;
}

@media (max-width: 640px) {
  .mojebjj-ranking-podium {
    grid-template-columns: 1fr;
  }

  .mojebjj-ranking-row {
    grid-template-columns: 30px 50px minmax(0, 1fr);
  }

  .mojebjj-ranking-row__points {
    grid-column: 2 / span 2;
    justify-self: end;
  }

  .mojebjj-ranking-rules__row {
    grid-template-columns: minmax(0, 1fr) repeat(3, minmax(44px, auto));
    font-size: 13px;
  }
}

.mojebjj-tournaments-panel,
.mojebjj-tournaments-view,
.mojebjj-tournaments-rules-view {
  margin-top: 16px;
}

.mojebjj-tournaments-panel__month-list {
  margin-top: 14px;
}

.mojebjj-tournaments-calendar {
  border: 1px solid #eceef3;
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}

.mojebjj-tournaments-calendar__weekdays,
.mojebjj-tournaments-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.mojebjj-tournaments-calendar__weekdays {
  margin-bottom: 8px;
}

.mojebjj-tournaments-calendar__weekdays span {
  text-align: center;
  font-size: 12px;
  color: #6b7280;
  font-weight: 700;
}

.mojebjj-tournaments-calendar__cell {
  min-height: 44px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #edf1f5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 6px 4px;
}

.mojebjj-tournaments-calendar__cell--empty {
  background: transparent;
  border-color: transparent;
}

.mojebjj-tournaments-calendar__cell.is-has-events {
  background: rgba(15, 47, 109, 0.06);
  border-color: rgba(15, 47, 109, 0.18);
}

.mojebjj-tournaments-calendar__day {
  font-weight: 700;
  font-size: 13px;
}

.mojebjj-tournaments-calendar__count {
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #facc15;
  color: #111827;
  font-size: 11px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
}

.mojebjj-tournaments-event-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mojebjj-tournaments-event-list--panel {
  margin-top: 12px;
}

.mojebjj-tournaments-event-card {
  border: 1px solid #eceef3;
  border-radius: 16px;
  background: #fff;
  padding: 12px;
}

.mojebjj-tournaments-event-card__head,
.mojebjj-tournaments-event-card__meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.mojebjj-tournaments-event-card__meta {
  margin-top: 6px;
  color: #6b7280;
  font-size: 13px;
}

.mojebjj-tournaments-event-card__date {
  color: #0f2f6d;
  font-size: 13px;
  font-weight: 700;
}

.mojebjj-tournaments-event-card__notes {
  margin: 8px 0 0;
  font-size: 13px;
  color: #374151;
}

.mojebjj-link-button {
  background: none;
  border: 0;
  padding: 0;
  margin-top: 8px;
  color: #b91c1c;
  font-weight: 600;
  cursor: pointer;
}

.mojebjj-tournaments-form-card {
  margin: 16px 0;
}

.mojebjj-tournaments-months {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 14px;
}

.mojebjj-tournaments-month-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mojebjj-tournaments-month-title {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: #111827;
}

@media (max-width: 640px) {
  .mojebjj-tournaments-calendar__cell {
    min-height: 40px;
    padding: 4px 2px;
  }

  .mojebjj-tournaments-event-card__head,
  .mojebjj-tournaments-event-card__meta {
    flex-direction: column;
    align-items: flex-start;
  }
}


.mojebjj-ranking-panel__footer--stacked {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.mojebjj-ranking-panel__open--secondary {
  background: #fff;
  color: #0f2f6d;
  border: 1px solid rgba(15, 47, 109, 0.16);
}

.mojebjj-subsection-title {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 800;
  color: #111827;
}

.mojebjj-event-type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.mojebjj-event-type--tournament {
  background: rgba(220, 38, 38, 0.12);
  color: #b91c1c;
}

.mojebjj-event-type--sparring {
  background: rgba(37, 99, 235, 0.12);
  color: #1d4ed8;
}

.mojebjj-event-type--seminar {
  background: rgba(126, 34, 206, 0.12);
  color: #7e22ce;
}

.mojebjj-event-type--camp {
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
}

.mojebjj-calendar-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.mojebjj-calendar-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid #d8dde8;
  background: #fff;
  color: #0f172a;
  font-weight: 700;
  text-decoration: none;
}

.mojebjj-calendar-filter.is-active {
  background: #0f2f6d;
  border-color: #0f2f6d;
  color: #fff;
}

.mojebjj-calendar-manager-box {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid #eceef3;
  border-radius: 14px;
  background: #fffdf2;
  margin-bottom: 14px;
}


.mojebjj-tournaments-event-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 10px;
}

.mojebjj-link-button.is-primary {
  color: #0f2f6d;
}

.mojebjj-link-button.is-selected {
  color: #b91c1c;
}

.mojebjj-event-detail-view__notes {
  font-size: 14px;
  line-height: 1.6;
}

.mojebjj-event-detail-view__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
}

.mojebjj-event-detail-view__actions .mojebjj-link-button {
  margin-top: 0;
}

.mojebjj-tournaments-event-card--detail {
  padding: 16px;
}

.mojebjj-my-starts-panel {
  margin-top: 14px;
}


.mojebjj-member-actions .mojebjj-attendance-tile.is-awaiting,
.mojebjj-member-actions .mojebjj-attendance-tile.is-awaiting:hover,
.mojebjj-member-actions .mojebjj-attendance-tile.is-awaiting:focus,
.mojebjj-member-actions .mojebjj-attendance-tile.is-awaiting[disabled],
.mojebjj-member-actions .mojebjj-attendance-circle.is-awaiting,
.mojebjj-member-actions .mojebjj-attendance-circle.is-awaiting:hover,
.mojebjj-member-actions .mojebjj-attendance-circle.is-awaiting:focus,
.mojebjj-member-actions .mojebjj-attendance-circle.is-awaiting[disabled] {
  background: #f59e0b;
  color: #ffffff;
  box-shadow: 0 12px 24px rgba(245, 158, 11, 0.28);
  opacity: 1;
}

.mojebjj-member-actions .mojebjj-attendance-tile.is-rejected,
.mojebjj-member-actions .mojebjj-attendance-tile.is-rejected:hover,
.mojebjj-member-actions .mojebjj-attendance-tile.is-rejected:focus,
.mojebjj-member-actions .mojebjj-attendance-circle.is-rejected,
.mojebjj-member-actions .mojebjj-attendance-circle.is-rejected:hover,
.mojebjj-member-actions .mojebjj-attendance-circle.is-rejected:focus {
  background: #dc2626;
  color: #ffffff;
  box-shadow: 0 12px 24px rgba(220, 38, 38, 0.25);
}

.mojebjj-member-actions .mojebjj-attendance-tile[disabled],
.mojebjj-member-actions .mojebjj-attendance-circle[disabled] {
  opacity: 1;
}

.mojebjj-attendance-approval-list {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.mojebjj-attendance-approval-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid #fdba74;
  background: #fff7ed;
}

.mojebjj-attendance-approval-card__name {
  display: block;
  font-size: 16px;
}

.mojebjj-attendance-approval-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
  color: #9a3412;
  font-size: 13px;
  font-weight: 600;
}

.mojebjj-attendance-approval-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mojebjj-notification-panel--attendance {
  background: #fdba74;
  border-color: #f97316;
  color: #431407;
}

.mojebjj-notification-panel--attendance .mojebjj-notification-panel__eyebrow,
.mojebjj-notification-panel--attendance .mojebjj-notification-panel__text {
  color: #7c2d12;
}

.mojebjj-attendance-approve-all-form {
  margin-bottom: 14px;
}

@media (max-width: 782px) {
  .mojebjj-attendance-approval-card {
    align-items: stretch;
  }

  .mojebjj-attendance-approval-card__actions {
    width: 100%;
  }

  .mojebjj-attendance-approval-card__actions .mojebjj-inline-form,
  .mojebjj-attendance-approval-card__actions .mojebjj-button {
    width: 100%;
  }
}

.mojebjj-button-light {
  background: #ffffff;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

.mojebjj-button-light:hover {
  background: #fff5f5;
}

.mojebjj-notification-panel--payment-overdue {
  background: #fee2e2;
  border-color: #ef4444;
  color: #7f1d1d;
}

.mojebjj-notification-panel--payment-overdue .mojebjj-notification-panel__eyebrow,
.mojebjj-notification-panel--payment-overdue .mojebjj-notification-panel__text {
  color: #991b1b;
}

.mojebjj-notification-panel--payment-reminder {
  background: #f3f4f6;
  border-color: #9ca3af;
  color: #1f2937;
}

.mojebjj-notification-panel--payment-reminder .mojebjj-notification-panel__eyebrow,
.mojebjj-notification-panel--payment-reminder .mojebjj-notification-panel__text {
  color: #4b5563;
}

.mojebjj-notification-card--payment-overdue {
  background: #fee2e2;
  border-color: #ef4444;
}

.mojebjj-notification-card--payment-overdue .mojebjj-notification-card__sender,
.mojebjj-notification-card--payment-overdue .mojebjj-notification-card__meta {
  color: #991b1b;
}

.mojebjj-notification-card--payment-overdue .mojebjj-notification-card__message,
.mojebjj-notification-card--payment-overdue .mojebjj-notification-card__title {
  color: #7f1d1d;
}

.mojebjj-notification-card--payment-reminder {
  background: #f3f4f6;
  border-color: #9ca3af;
}

.mojebjj-notification-card--payment-reminder .mojebjj-notification-card__sender,
.mojebjj-notification-card--payment-reminder .mojebjj-notification-card__meta {
  color: #6b7280;
}

.mojebjj-notification-card--payment-reminder .mojebjj-notification-card__message,
.mojebjj-notification-card--payment-reminder .mojebjj-notification-card__title {
  color: #1f2937;
}

.mojebjj-button-light-neutral {
  background: #ffffff;
  color: #374151;
  border: 1px solid #d1d5db;
}

.mojebjj-button-light-neutral:hover {
  background: #f9fafb;
}

.mojebjj-notification-card__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
}

@media (max-width: 640px) {
  .mojebjj-notification-card__actions {
    width: 100%;
    justify-content: stretch;
  }

  .mojebjj-notification-card__actions .mojebjj-button {
    width: 100%;
  }
}


/* v0.1.78.1 news logo and news screens */
.mojebjj-app-logo-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.mojebjj-app-logo-link--new {
  animation: mojebjjLogoPulse 1.05s ease-in-out infinite;
}

.mojebjj-app-logo-link--new .mojebjj-app-logo {
  animation: mojebjjLogoFlash 1.05s ease-in-out infinite;
  filter: drop-shadow(0 0 18px rgba(245, 158, 11, 0.75));
}

.mojebjj-app-logo-badge {
  position: absolute;
  right: -22px;
  top: 50%;
  transform: translateY(-50%) rotate(12deg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 999px;
  background: #f59e0b;
  color: #111827;
  font-size: 14px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.28);
  border: 2px solid rgba(255,255,255,0.92);
}

.mojebjj-app-logo-link--new .mojebjj-app-logo-badge {
  animation: mojebjjNewsBadgePop 1.05s ease-in-out infinite;
}

@keyframes mojebjjLogoPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.055); }
}

@keyframes mojebjjLogoFlash {
  0%, 100% {
    opacity: 1;
    filter: brightness(1) drop-shadow(0 0 12px rgba(245, 158, 11, 0.45));
  }
  45% {
    opacity: 0.58;
    filter: brightness(1.35) drop-shadow(0 0 26px rgba(245, 158, 11, 0.95));
  }
  70% {
    opacity: 1;
    filter: brightness(1.15) drop-shadow(0 0 20px rgba(245, 158, 11, 0.78));
  }
}

@keyframes mojebjjNewsBadgePop {
  0%, 100% {
    transform: translateY(-50%) rotate(12deg) scale(1);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.28);
  }
  50% {
    transform: translateY(-50%) rotate(12deg) scale(1.11);
    box-shadow: 0 16px 34px rgba(245, 158, 11, 0.42);
  }
}

.mojebjj-news-screen {
  padding-top: 8px;
}

.mojebjj-news-empty {
  padding: 10px 0 4px;
}

.mojebjj-news-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.mojebjj-news-card {
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.mojebjj-news-card__thumb {
  display: block;
}

.mojebjj-news-card__thumb img,
.mojebjj-news-single__thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.mojebjj-news-card__body {
  padding: 16px;
}

.mojebjj-news-card__meta,
.mojebjj-news-single__meta {
  color: #64748b;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}

.mojebjj-news-card__title,
.mojebjj-news-single__title {
  margin: 0 0 10px;
  color: #0f172a;
}

.mojebjj-news-card__title a {
  color: inherit;
  text-decoration: none;
}

.mojebjj-news-card__excerpt {
  margin: 0 0 14px;
  color: #334155;
}

.mojebjj-news-card__button {
  width: 100%;
  justify-content: center;
}

.mojebjj-news-single__thumb {
  margin: 0 0 16px;
  border-radius: 20px;
  overflow: hidden;
}

.mojebjj-news-single__content {
  color: #0f172a;
}

.mojebjj-news-single__content p:first-child {
  margin-top: 0;
}

@media (max-width: 782px) {
  .mojebjj-app-logo-badge {
    right: -14px;
    top: 50%;
    transform: translateY(-50%) rotate(12deg);
    padding: 5px 10px;
    font-size: 12px;
  }

  .mojebjj-news-card__body {
    padding: 14px;
  }
}


.mojebjj-club-map-panel__summary{margin-top:10px;font-size:14px;color:#4b5563}.mojebjj-club-map-panel__summary--split{display:flex;gap:14px;flex-wrap:wrap}.mojebjj-map-canvas{width:100%;border-radius:18px;overflow:hidden;border:1px solid #dbe3ef;box-shadow:0 10px 28px rgba(15,23,42,.08)}.mojebjj-map-canvas--panel{height:260px}.mojebjj-map-canvas--view{height:68vh;max-height:620px;min-height:360px}.mojebjj-map-club-marker,.mojebjj-map-event-marker{background:transparent;border:none}.mojebjj-map-club-marker__ring{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:999px;background:#fff;border:3px solid #0f2f6d;box-shadow:0 12px 24px rgba(15,23,42,.22);overflow:hidden}.mojebjj-map-club-marker__image{width:100%;height:100%;object-fit:cover;display:block}.mojebjj-map-event-marker{overflow:visible!important}.mojebjj-map-event-marker__pin{position:relative;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);color:#fff;font-weight:800;font-size:10px;letter-spacing:.02em;box-shadow:0 10px 20px rgba(15,23,42,.22);border:2px solid #fff}.mojebjj-map-event-marker__label{display:inline-flex;align-items:center;justify-content:center;transform:rotate(45deg);line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.16)}.mojebjj-map-event-marker__pin::after{content:'';position:absolute;inset:6px;border-radius:50%;background:rgba(255,255,255,.12)}.mojebjj-map-event-marker__label{position:relative;z-index:1;font-size:10px;letter-spacing:-0.02em}.mojebjj-map-event-marker__pin--tournament{background:#d62828}.mojebjj-map-event-marker__pin--sparring{background:#1d4ed8}.mojebjj-map-event-marker__pin--seminar{background:#7c3aed}.mojebjj-map-event-marker__pin--camp{background:#15803d}.mojebjj-map-popup{min-width:220px}.mojebjj-map-popup__head{display:flex;gap:10px;align-items:center;margin-bottom:10px}.mojebjj-map-popup__avatar{width:46px;height:46px;border-radius:999px;object-fit:cover;border:2px solid #e5e7eb}.mojebjj-map-popup__button{width:100%;justify-content:center}.mojebjj-map-popup__event-type{display:inline-flex;margin-bottom:8px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2ff;color:#0f2f6d}.mojebjj-map-popup__meta{display:flex;flex-direction:column;gap:4px;margin-top:8px;color:#4b5563;font-size:13px}.mojebjj-map-popup__actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}.mojebjj-club-map-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.mojebjj-club-map-list__item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;text-decoration:none;color:#111827}.mojebjj-club-map-list__avatar{width:42px;height:42px;border-radius:999px;object-fit:cover;border:2px solid #e5e7eb}.mojebjj-club-map-list__text{display:flex;flex-direction:column;gap:2px}.mojebjj-club-map-list__text span:last-child{font-size:13px;color:#6b7280}.mojebjj-map-filters{display:flex;flex-direction:column;gap:10px;margin:14px 0}.mojebjj-map-filters__row{display:flex;gap:8px;flex-wrap:wrap}.mojebjj-map-filter-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;border:1px solid #d1d5db;background:#fff;color:#374151;text-decoration:none;font-size:13px;font-weight:700}.mojebjj-map-filter-chip.is-active{background:#0f2f6d;color:#fff;border-color:#0f2f6d}.mojebjj-map-events-section{margin-top:18px}.mojebjj-map-events-section h4{margin:0 0 10px}.mojebjj-map-events-list{display:flex;flex-direction:column;gap:10px}.mojebjj-map-events-list__item{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;text-decoration:none;color:#111827}.mojebjj-map-events-list__text{display:flex;flex-direction:column;gap:2px}.mojebjj-map-events-list__text span{font-size:13px;color:#6b7280}.mojebjj-field-help{display:block;margin-top:6px;font-size:12px;color:#6b7280}.mojebjj-club-map-view .mojebjj-muted{margin-bottom:12px}@media (max-width:640px){.mojebjj-map-canvas--panel{height:230px}.mojebjj-map-canvas--view{height:58vh}.mojebjj-map-popup{min-width:180px}.mojebjj-map-events-list__item{flex-direction:column}.mojebjj-map-event-marker__pin{width:30px;height:30px;font-size:8px}.mojebjj-map-event-marker__label{font-size:8px}}

.mojebjj-tournaments-form-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}


.mojebjj-club-schedule-card--manual .mojebjj-club-schedule-card__head {
  align-items: center;
  gap: 12px;
}

.mojebjj-schedule-preview-list {
  display: grid;
  gap: 12px;
}

.mojebjj-schedule-preview-item {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 16px;
  background: rgba(15,47,109,.06);
}

.mojebjj-schedule-preview-item__time {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: #4a5568;
  font-weight: 700;
}

.mojebjj-schedule-preview-item__time span {
  font-size: 16px;
  color: #111827;
}

.mojebjj-schedule-preview-item__content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mojebjj-schedule-preview-item__content span {
  font-size: 13px;
  color: #4a5568;
}

.mojebjj-club-schedule-empty--manual {
  min-height: 0;
  padding-top: 12px;
}

.mojebjj-schedule-form-card {
  margin-top: 16px;
  margin-bottom: 16px;
}

.mojebjj-schedule-week-grid {
  display: grid;
  gap: 14px;
}

.mojebjj-schedule-day-card {
  padding: 16px;
}

.mojebjj-schedule-day-card__title {
  margin: 0 0 12px;
  font-size: 18px;
}

.mojebjj-schedule-day-card__list {
  display: grid;
  gap: 12px;
}

.mojebjj-schedule-entry-card {
  padding: 12px;
  border-radius: 16px;
  background: rgba(15,47,109,.05);
}

.mojebjj-schedule-entry-card__top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.mojebjj-schedule-entry-card__top > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mojebjj-schedule-entry-card__top span {
  color: #4a5568;
  font-size: 13px;
}

.mojebjj-schedule-entry-card__time {
  font-weight: 800;
  white-space: nowrap;
}

.mojebjj-schedule-entry-card__meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 10px;
  color: #4a5568;
  font-size: 13px;
}

@media (max-width: 640px) {
  .mojebjj-schedule-preview-item {
    grid-template-columns: 1fr;
  }

  .mojebjj-schedule-entry-card__top {
    flex-direction: column;
  }
}

/* v0.1.81.13 assistant v2 */
.mojebjj-assistant-card {
  margin-top: 18px;
  border: 1px solid #dbe2ea;
  background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.08);
}

.mojebjj-assistant-card--today,
.mojebjj-assistant-card--confirmed {
  background: linear-gradient(135deg, #f8fafc 0%, #ecfccb 100%);
}

.mojebjj-assistant-card--pending {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
}

.mojebjj-assistant-card--attention,
.mojebjj-assistant-card--payment-due {
  background: linear-gradient(135deg, #fffbeb 0%, #fde68a 100%);
}

.mojebjj-assistant-card--payment-overdue {
  background: linear-gradient(135deg, #fff1f2 0%, #fecdd3 100%);
}

.mojebjj-assistant-card--event {
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
}

.mojebjj-assistant-card--frequency-good {
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
}

.mojebjj-assistant-card--frequency-return {
  background: linear-gradient(135deg, #f8fafc 0%, #e5e7eb 100%);
}

.mojebjj-assistant-card--today-ended,
.mojebjj-assistant-card--tomorrow,
.mojebjj-assistant-card--neutral {
  background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
}

.mojebjj-assistant-card__head {
  margin-bottom: 14px;
}

.mojebjj-assistant-card__eyebrow {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
}

.mojebjj-assistant-card__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.1;
  color: #0f172a;
}

.mojebjj-club-inline-trainers-card__title,
.mojebjj-club-belts-card__title,
.mojebjj-club-schedule-card__title,
.mojebjj-ranking-panel__title,
.mojebjj-assistant-card__title,
.mojebjj-notification-panel__title {
  font-size: 28px;
  line-height: 1.1;
  color: #0f172a;
}

@media (max-width: 782px) {
  .mojebjj-club-inline-trainers-card__title,
  .mojebjj-club-belts-card__title,
  .mojebjj-club-schedule-card__title,
  .mojebjj-ranking-panel__title,
  .mojebjj-assistant-card__title,
  .mojebjj-notification-panel__title {
    font-size: 22px;
  }
}

.mojebjj-assistant-card__body {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mojebjj-assistant-card__wolf-wrap {
  flex: 0 0 132px;
  width: 132px;
  height: 132px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.mojebjj-assistant-card__wolf {
  width: 128px;
  height: auto;
  max-height: 132px;
  display: block;
  object-fit: contain;
}

.mojebjj-assistant-card__bubble {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  background: #ffffff;
  border: 1px solid #dbe2ea;
  border-radius: 20px;
  padding: 16px 18px;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.06);
}

.mojebjj-assistant-card__bubble::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 28px;
  width: 18px;
  height: 18px;
  background: #ffffff;
  border-left: 1px solid #dbe2ea;
  border-bottom: 1px solid #dbe2ea;
  transform: rotate(45deg);
}

.mojebjj-assistant-card__message {
  margin: 0;
  font-size: 17px;
  line-height: 1.45;
  font-weight: 800;
  color: #0f172a;
}

.mojebjj-assistant-card__meta {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.4;
  color: #475569;
  font-weight: 700;
}

@media (max-width: 782px) {
  .mojebjj-assistant-card__body {
    align-items: flex-start;
    gap: 12px;
  }

  .mojebjj-assistant-card__wolf-wrap {
    flex-basis: 104px;
    width: 104px;
    height: 104px;
  }

  .mojebjj-assistant-card__wolf {
    width: 100px;
    height: auto;
    max-height: 104px;
  }

  .mojebjj-assistant-card__bubble {
    padding: 14px 14px 14px 16px;
    border-radius: 18px;
  }

  .mojebjj-assistant-card__bubble::before {
    left: -8px;
    top: 24px;
    width: 16px;
    height: 16px;
  }

  .mojebjj-assistant-card__message {
    font-size: 15px;
  }

  .mojebjj-assistant-card__meta {
    font-size: 12px;
  }
}

/* v0.1.81.14 assistant v3 */
.mojebjj-assistant-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.mojebjj-assistant-card__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  flex: 0 0 auto;
}

.mojebjj-assistant-card__toggle::after {
  content: '▾';
  font-size: 12px;
  line-height: 1;
  transition: transform 0.2s ease;
}

.mojebjj-assistant-card.is-expanded .mojebjj-assistant-card__toggle::after {
  transform: rotate(180deg);
}

.mojebjj-assistant-card__toggle-badge {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: #111827;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
}

.mojebjj-assistant-card__more {
  margin-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
  padding-top: 14px;
}

.mojebjj-assistant-card__section-title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #475569;
  margin: 0 0 10px;
}

.mojebjj-assistant-card__details {
  display: grid;
  gap: 10px;
}

.mojebjj-assistant-card__detail {
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid #dbe2ea;
  border-radius: 16px;
  padding: 12px 14px;
}

.mojebjj-assistant-card__detail-label {
  font-size: 12px;
  font-weight: 800;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-bottom: 6px;
}

.mojebjj-assistant-card__detail-text {
  font-size: 14px;
  line-height: 1.45;
  color: #0f172a;
  font-weight: 700;
}

.mojebjj-assistant-card__detail-link {
  display: inline-block;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 800;
  color: #1d4ed8;
  text-decoration: none;
}

.mojebjj-assistant-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.mojebjj-assistant-card__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #dbe2ea;
  color: #111827;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 782px) {
  .mojebjj-assistant-card__head {
    align-items: stretch;
    flex-direction: column;
  }

  .mojebjj-assistant-card__toggle {
    align-self: flex-start;
  }

  .mojebjj-assistant-card__detail {
    border-radius: 14px;
    padding: 11px 12px;
  }

  .mojebjj-assistant-card__detail-text {
    font-size: 13px;
  }

  .mojebjj-assistant-card__action {
    min-height: 34px;
    font-size: 12px;
  }
}


/* v0.1.81.22 profile cover/icons separation */
.mojebjj-member-head,
.mojebjj-club-profile-head {
  margin-top: 0;
  padding-top: 16px;
}

.mojebjj-member-avatars-row,
.mojebjj-club-profile-avatars-row {
  position: relative;
  z-index: 2;
}

@media (max-width: 782px) {
  .mojebjj-member-head,
  .mojebjj-club-profile-head {
    margin-top: 0;
    padding-top: 14px;
  }
}


/* v0.1.81.23 profile avatars partial overlap with cover */
.mojebjj-member-head,
.mojebjj-club-profile-head {
  margin-top: 0;
  padding-top: 0;
}

.mojebjj-member-avatars-row,
.mojebjj-club-profile-avatars-row {
  margin-top: -34px;
  margin-bottom: 8px;
}

@media (max-width: 782px) {
  .mojebjj-member-head,
  .mojebjj-club-profile-head {
    margin-top: 0;
    padding-top: 0;
  }

  .mojebjj-member-avatars-row,
  .mojebjj-club-profile-avatars-row {
    margin-top: -28px;
    margin-bottom: 6px;
  }
}


/* v0.1.81.30 athlete club avatar link from ranking path */
.mojebjj-club-badge-link--athlete {
  position: relative;
  z-index: 5;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.mojebjj-club-badge-link--athlete .mojebjj-club-badge__image {
  pointer-events: none;
}


/* v0.1.81.39 child profiles */
.mojebjj-member-profile--child .mojebjj-member-cover,
.mojebjj-athlete-public-profile.mojebjj-profile-theme--child .mojebjj-member-cover,
.mojebjj-member-cover--child {
  min-height: 124px;
  background: linear-gradient(135deg, #eef4ff, #d8e5fb);
  border-bottom-color: #8aa4cf;
}

.mojebjj-member-profile--child .mojebjj-member-cover__shade,
.mojebjj-athlete-public-profile.mojebjj-profile-theme--child .mojebjj-member-cover__shade,
.mojebjj-member-cover--child .mojebjj-member-cover__shade {
  background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(61,93,143,0.12));
}

.mojebjj-profile-theme--child .mojebjj-member-avatar-wrap--accent {
  background: linear-gradient(135deg, #8aa4cf, #ffffff);
}

.mojebjj-member-avatar--child {
  object-fit: contain;
  padding: 10px;
  background: radial-gradient(circle at top, #ffffff 0%, #edf3ff 100%);
}

.mojebjj-child-guardian-note {
  margin-top: 6px;
}

.mojebjj-child-guardian-fields {
  margin-top: 14px;
}

.mojebjj-club-trainer-row--locked {
  cursor: default;
}

.mojebjj-athlete-public-profile--locked {
  padding-top: 12px;
}

@media (max-width: 782px) {
  .mojebjj-member-profile--child .mojebjj-member-cover,
  .mojebjj-athlete-public-profile.mojebjj-profile-theme--child .mojebjj-member-cover,
  .mojebjj-member-cover--child {
    min-height: 96px;
  }
}


.mojebjj-profile-switcher-card {
  margin-bottom: 16px;
}
.mojebjj-profile-switcher-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.mojebjj-profile-switcher-item {
  margin: 0;
}
.mojebjj-profile-switcher-item__button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(15,23,42,0.08);
  background: #fff;
  color: #0f172a;
  border-radius: 16px;
  padding: 10px 12px;
  text-align: left;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
}
.mojebjj-profile-switcher-item.is-active .mojebjj-profile-switcher-item__button {
  border-color: rgba(15,47,109,0.35);
  box-shadow: 0 8px 24px rgba(15,47,109,0.10);
}
.mojebjj-profile-switcher-item__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 44px;
}
.mojebjj-profile-switcher-item__content {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}
.mojebjj-profile-switcher-item__content strong {
  display: block;
  margin: 0;
  color: #0f172a;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 700;
  white-space: normal;
  word-break: break-word;
}
.mojebjj-profile-switcher-item__content span {
  display: block;
  font-size: 13px;
  line-height: 1.25;
  color: #64748b;
  white-space: normal;
  word-break: break-word;
}
.mojebjj-profile-switcher-add-child {
  margin-top: 14px;
  border-top: 1px solid rgba(15,23,42,0.08);
  padding-top: 12px;
}
.mojebjj-profile-switcher-add-child > summary {
  cursor: pointer;
  font-weight: 700;
  color: #0f2f6d;
}
@media (max-width: 782px) {
  .mojebjj-profile-switcher-card__head p {
    margin: 0;
    font-size: 16px;
    line-height: 1.35;
  }
  .mojebjj-profile-switcher-item__button {
    padding: 12px;
    gap: 10px;
  }
  .mojebjj-profile-switcher-item__avatar {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }
  .mojebjj-profile-switcher-item__content strong {
    font-size: 15px;
  }
}


.mojebjj-club-payments-panel__preview {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.mojebjj-club-payments-panel__month,
.mojebjj-club-payments-panel__dots {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.mojebjj-ranking-panel--club-payments .mojebjj-ranking-panel__subtitle {
    max-width: 100%;
}

.mojebjj-club-payments-matrix-year-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 14px 0 10px;
}

.mojebjj-club-payments-matrix-legend {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.mojebjj-club-payments-matrix-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #6b7280;
}

.mojebjj-club-payments-matrix-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -4px;
    padding: 0 4px 4px;
}

.mojebjj-club-payments-matrix-table {
    width: 100%;
    min-width: 860px;
    border-collapse: separate;
    border-spacing: 0;
}

.mojebjj-club-payments-matrix-table th,
.mojebjj-club-payments-matrix-table td {
    padding: 8px 6px;
    text-align: center;
    border-bottom: 1px solid #eef1f4;
    background: #fff;
}

.mojebjj-club-payments-matrix-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8fafc;
    font-size: 12px;
    font-weight: 800;
    color: #374151;
}

.mojebjj-club-payments-matrix-table .is-sticky {
    position: sticky;
    left: 0;
    z-index: 3;
    min-width: 180px;
    text-align: left;
    background: #fff;
    box-shadow: 10px 0 12px -12px rgba(15, 23, 42, 0.18);
}

.mojebjj-club-payments-matrix-table thead .is-sticky {
    background: #f8fafc;
}

.mojebjj-club-payments-user {
    display: block;
    min-width: 168px;
}

.mojebjj-club-payments-user--trigger {
    color: inherit;
    text-decoration: none;
    display: block;
}

.mojebjj-club-payments-user--trigger:focus-visible {
    outline: 2px solid #f97316;
    outline-offset: 2px;
    border-radius: 12px;
}

.mojebjj-club-payments-user strong {
    font-size: 13px;
    line-height: 1.25;
}

.mojebjj-club-payments-matrix-row:target td {
    background: #fff7ed;
}

.mojebjj-club-payments-matrix-row:target .is-sticky {
    background: #ffedd5;
    box-shadow: 10px 0 12px -12px rgba(194, 65, 12, 0.35);
}

.mojebjj-club-payments-matrix-row:target .mojebjj-club-payments-user--trigger {
    color: #9a3412;
}

.mojebjj-club-payments-cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    background: #e5e7eb;
    color: #4b5563;
}

.mojebjj-club-payments-cell.is-approved {
    background: #dcfce7;
    color: #166534;
}

.mojebjj-club-payments-cell.is-pending {
    background: #fef3c7;
    color: #92400e;
}

.mojebjj-club-payments-cell.is-excused_absence {
    background: #fef3c7;
    color: #92400e;
}

.mojebjj-club-payments-cell.is-rejected {
    background: #fee2e2;
    color: #991b1b;
}

.mojebjj-club-payments-cell.is-not_reported {
    background: #e5e7eb;
    color: #4b5563;
}

.mojebjj-club-payments-cell.is-not_required {
    background: #e0e7ff;
    color: #4338ca;
}

.mojebjj-inline-cell-form {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.mojebjj-club-payments-cell-button {
    border: 0;
    padding: 0;
    font-family: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.mojebjj-club-payments-cell-button:hover,
.mojebjj-club-payments-cell-button:focus-visible {
    transform: scale(1.06);
    box-shadow: 0 0 0 3px rgba(153, 27, 27, 0.14);
    outline: none;
}

.mojebjj-club-payments-cell--legend {
    width: 18px;
    height: 18px;
    font-size: 0;
}

@media (max-width: 767px) {
    .mojebjj-club-payments-matrix-year-nav .mojebjj-button {
        flex: 1 1 calc(50% - 8px);
        justify-content: center;
        min-width: 0;
    }

    .mojebjj-club-payments-matrix-wrap {
        position: relative;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x pan-y;
        overscroll-behavior-x: contain;
        margin: 0 -12px;
        padding: 0 12px 12px;
    }

    .mojebjj-club-payments-matrix-table {
        width: auto;
        min-width: 760px;
    }

    .mojebjj-club-payments-matrix-table th,
    .mojebjj-club-payments-matrix-table td {
        padding: 7px 5px;
    }

    .mojebjj-club-payments-matrix-table thead th {
        position: static;
    }

    .mojebjj-club-payments-matrix-table .is-sticky {
        position: static;
        min-width: 128px;
        box-shadow: none;
    }

    .mojebjj-club-payments-user {
        min-width: 118px;
    }

    .mojebjj-club-payments-user strong {
        font-size: 12px;
    }

    .mojebjj-club-payments-cell {
        width: 24px;
        height: 24px;
        font-size: 12px;
    }
}


.mojebjj-club-members-toolbar {
    margin: 12px 0 14px;
    position: relative;
    z-index: 2;
}

.mojebjj-club-members-toolbar__form {
    display: inline-flex;
    margin: 0;
}

.mojebjj-club-members-toolbar__button {
    width: auto;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
}

@media (max-width: 767px) {
    .mojebjj-club-members-toolbar__button {
        padding: 8px 14px;
        font-size: 13px;
    }
}


.mojebjj-feedback {
  width: 100%;
  margin-top: 6px;
}

.mojebjj-feedback__summary {
  list-style: none;
  cursor: pointer;
}

.mojebjj-feedback__summary::-webkit-details-marker {
  display: none;
}

.mojebjj-feedback__panel {
  width: min(100%, 520px);
  margin: 10px auto 0;
  padding: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  text-align: left;
}

.mojebjj-feedback__intro {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #64748b;
}

.mojebjj-feedback__notice {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.4;
}

.mojebjj-feedback__notice.is-success {
  background: #ecfdf5;
  color: #166534;
}

.mojebjj-feedback__notice.is-error {
  background: #fef2f2;
  color: #991b1b;
}

.mojebjj-feedback__form {
  display: grid;
  gap: 12px;
}

.mojebjj-feedback__field {
  display: grid;
  gap: 6px;
}

.mojebjj-feedback__field label {
  font-size: 14px;
  font-weight: 700;
  color: #334155;
}

.mojebjj-feedback__field select,
.mojebjj-feedback__field textarea {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 12px 14px;
  background: #fff;
  font-size: 14px;
  color: #0f172a;
  box-sizing: border-box;
}

.mojebjj-feedback__field textarea {
  resize: vertical;
  min-height: 120px;
}

.mojebjj-feedback__submit {
  width: 100%;
  justify-content: center;
}


/* v0.1.81.120 modal above profile/status hub */
.mojebjj-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
}

/* v0.1.81.127 useful club audio download */
.mojebjj-useful-upload-field--audio audio,
.mojebjj-useful-download-card--audio audio {
  width: 100%;
  margin: 10px 0 12px;
}

.mojebjj-useful-audio-preview {
  padding: 16px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  margin-bottom: 12px;
}

.mojebjj-useful-audio-preview strong {
  display: block;
  margin-bottom: 8px;
  overflow-wrap: anywhere;
}

.mojebjj-useful-download-card__preview--audio {
  min-height: 180px;
  font-size: 72px;
  font-weight: 900;
  color: #0f172a;
}

.mojebjj-club-audio-profile-card {
  margin-top: 16px;
  display: grid;
  grid-template-columns: minmax(96px, 160px) minmax(0, 1fr);
  align-items: stretch;
}

.mojebjj-club-audio-profile-card .mojebjj-useful-download-card__preview {
  min-height: 150px;
}

.mojebjj-club-audio-profile-card .mojebjj-useful-download-card__body h3 {
  margin-bottom: 4px;
}

@media (max-width: 640px) {
  .mojebjj-club-audio-profile-card {
    grid-template-columns: 1fr;
  }
}

/* 0.1.81.132: Clickable red payment cells in Status Klubowiczów */
.mojebjj-club-payments-panel--member-direct {
    margin-top: 12px;
}
