@charset "UTF-8";
@import url("https://p.typekit.net/p.css?s=1&k=rwo1ylc&ht=tk&f=32202.32203.32204.32205.32206.32207&a=82700395&app=typekit&e=css");
.tk-stolzl {
  font-family: "stolzl", sans-serif;
}

.rz-dialog-confirm {
  width: min(520px, 100vw - 32px);
  border: 1px solid var(--bs-border-color, #e8eaf0);
  border-radius: 20px;
  overflow: hidden;
  background: var(--bs-white, #fff);
  box-shadow: 0 24px 60px rgba(var(--bs-secondary-rgb), 0.2);
  font-family: inherit;
}

.rz-dialog-confirm .rz-dialog-titlebar {
  padding: 24px 28px 8px;
  border: 0;
  background: var(--bs-white, #fff);
}

.rz-dialog-confirm .rz-dialog-title {
  color: var(--bs-primary);
  font-size: 1.35rem;
  font-weight: 800;
}

.rz-dialog-confirm .rz-dialog-titlebar-close {
  color: var(--bs-secondary);
  border-radius: 8px;
}

.rz-dialog-confirm .rz-dialog-titlebar-close:hover,
.rz-dialog-confirm .rz-dialog-titlebar-close:focus {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.rz-dialog-confirm .rz-dialog-content {
  padding: 8px 28px 24px;
  color: var(--bs-secondary);
  font-size: 1rem;
  line-height: 1.55;
}

.rz-dialog-confirm .rz-dialog-footer {
  display: flex;
  gap: 12px;
  padding: 0 28px 28px;
  border: 0;
  background: var(--bs-white, #fff);
}

.rz-dialog-confirm .rz-dialog-footer .rz-button {
  min-height: 46px;
  flex: 1;
  border-radius: 10px;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
}

.rz-dialog-confirm .rz-dialog-footer .rz-button:first-child {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: var(--bs-white, #fff);
}

.rz-dialog-confirm .rz-dialog-footer .rz-button:first-child:hover,
.rz-dialog-confirm .rz-dialog-footer .rz-button:first-child:focus {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: var(--bs-white, #fff);
  filter: brightness(0.94);
}

.rz-dialog-confirm .rz-dialog-footer .rz-button:last-child {
  border: 1px solid var(--bs-border-color, #e8eaf0);
  background: var(--bs-light, #f4f5f7);
  color: var(--bs-secondary);
}

.rz-dialog-confirm .rz-dialog-footer .rz-button:last-child:hover,
.rz-dialog-confirm .rz-dialog-footer .rz-button:last-child:focus {
  border-color: var(--bs-secondary);
  background: rgba(var(--bs-secondary-rgb), 0.08);
  color: var(--bs-secondary);
}

@media (max-width: 575.98px) {
  .rz-dialog-confirm .rz-dialog-titlebar {
    padding: 20px 20px 8px;
  }
  .rz-dialog-confirm .rz-dialog-content {
    padding: 8px 20px 20px;
  }
  .rz-dialog-confirm .rz-dialog-footer {
    padding: 0 20px 20px;
  }
}
/* Members group header (e.g. "By class" / group rows) */
.members-group-header {
  padding: 0.75rem 1.25rem;
  background: #f5f5f5;
  border: none;
  margin: 0 0 0 0;
  border-radius: 0;
}

.members-group-title {
  margin: 0;
  color: #6b7280;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.members-group-count {
  display: inline;
  padding: 0;
  background: transparent;
  color: #6b7280;
  border: none;
  font-weight: 600;
  font-size: 0.75rem;
  line-height: 1;
}

@media (max-width: 767.98px) {
  .members-group-header {
    padding: 0.5rem;
  }
  .members-group-title {
    font-size: 0.85rem;
  }
}
/* Waitlist action buttons */
.btn-waitlist-add {
  background: #5b6cf6;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 0.55rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
}
.btn-waitlist-add:hover {
  background: #4a5ae0;
  color: #fff;
}
.btn-waitlist-add:active, .btn-waitlist-add:focus {
  background: #3a4ad0;
  color: #fff;
}
.btn-waitlist-add i {
  font-size: 0.875rem;
}

.btn-waitlist-filter {
  background: #fff;
  color: #5b6cf6;
  border: 1.5px solid #d0d5f6;
  border-radius: 8px;
  padding: 0.55rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
}
.btn-waitlist-filter:hover {
  background: #f8f9ff;
  border-color: #b0b8f0;
  color: #4a5ae0;
}
.btn-waitlist-filter:active, .btn-waitlist-filter:focus {
  background: #f0f2ff;
  border-color: #5b6cf6;
  color: #4a5ae0;
}
.btn-waitlist-filter i {
  font-size: 0.875rem;
}
.btn-waitlist-filter .badge {
  background: #e8eaff;
  color: #5b6cf6;
  border-radius: 6px;
  padding: 0.15rem 0.45rem;
  font-size: 0.75rem;
  font-weight: 700;
  margin-left: 0.25rem;
}

/* View controls (per page, columns, etc.) */
.view-controls {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.view-controls-label {
  color: #6b7280;
  font-size: 0.875rem;
  font-weight: 500;
  margin: 0;
}

.view-controls-dropdown {
  position: relative;
}
.view-controls-dropdown .dropdown-toggle {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0.4rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #374151;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.view-controls-dropdown .dropdown-toggle:hover {
  border-color: #d1d5db;
  background: #f9fafb;
}
.view-controls-dropdown .dropdown-toggle::after {
  margin-left: 0.25rem;
}

.btn-view-columns {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 0.4rem 0.85rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #374151;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-view-columns:hover {
  border-color: #d1d5db;
  background: #f9fafb;
}
.btn-view-columns i {
  font-size: 0.875rem;
}
.btn-view-columns .badge {
  background: #f3f4f6;
  color: #6b7280;
  border-radius: 4px;
  padding: 0.15rem 0.4rem;
  font-size: 0.7rem;
  font-weight: 600;
  margin-left: 0.25rem;
}

.class-invite-flow {
  display: flex;
  flex-direction: column;
  min-height: 78vh;
  background: #fff;
}

.class-invite-flow__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 0rem 1rem;
  border-bottom: 1px solid #edf1f7;
}

.class-invite-flow__header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.class-invite-flow__header-icon {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 1.35rem;
  flex-shrink: 0;
}

.class-invite-flow__title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.class-invite-flow__subtitle {
  margin: 0.15rem 0 0;
  color: #93a2c2;
  font-size: 0.95rem;
}

.class-invite-flow__close {
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: #f7f9fd;
  color: #8392b1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.45rem;
}

.class-invite-flow__stage-bar {
  padding: 1.25rem 0rem 1rem;
  border-bottom: 1px solid #edf1f7;
}

.class-invite-flow__steps {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.class-invite-flow__step {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: #91a0bf;
  font-weight: 700;
  white-space: nowrap;
}

.class-invite-flow__step-dot {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 2px solid #8ea0c4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  line-height: 1;
}

.class-invite-flow__step.is-active {
  color: #e52c2c;
}

.class-invite-flow__step.is-active .class-invite-flow__step-dot,
.class-invite-flow__step.is-complete .class-invite-flow__step-dot {
  border-color: #e52c2c;
  background: #e52c2c;
  color: #fff;
}

.class-invite-flow__step-line {
  flex: 1;
  height: 2px;
  min-width: 44px;
  background: #e7ecf5;
}

.class-invite-flow__stage-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.class-invite-flow__stage-subtitle {
  margin: 0.25rem 0 0;
  color: #96a5c5;
  font-size: 0.98rem;
}

.class-invite-flow__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.35rem 1.4rem;
  background: #fbfcff;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.class-invite-flow__card,
.class-invite-flow__preview {
  border: 1px solid rgba(239, 68, 68, 0.34);
  border-radius: 22px;
  background: #fff;
  overflow: hidden;
}

.class-invite-flow__preview.is-invite-preview {
  border-color: rgba(16, 185, 129, 0.34);
}

.class-invite-flow__card.is-leave-card {
  padding: 1.2rem 1.3rem;
}

.class-invite-flow__card.is-audit-card,
.class-invite-flow__card.is-move-from-card {
  padding: 0.9rem 1rem;
  border-color: #e8edf5;
  border-radius: 14px;
}

.class-invite-flow__audit-head {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}

.class-invite-flow__audit-head .class-invite-flow__card-icon.is-purple {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  font-size: 0.85rem;
}

.class-invite-flow__audit-title {
  margin: 0;
  color: #8a98b6;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.class-invite-flow__audit-subtitle {
  margin: 0.15rem 0 0;
  color: #9aa8c6;
  font-size: 0.76rem;
}

.class-invite-flow__audit-notes {
  margin-bottom: 0;
}

.class-invite-flow__card.is-audit-card .class-invite-label {
  font-size: 0.68rem;
  margin-bottom: 0.45rem;
}

.class-invite-flow__card.is-audit-card .class-invite-input,
.class-invite-flow__card.is-audit-card .class-invite-textarea {
  font-size: 0.84rem;
  padding: 0.45rem 0.8rem;
  border-radius: 12px;
  color: var(--bs-secondary);
}

.class-invite-flow__card.is-audit-card .class-invite-textarea {
  min-height: 72px;
}

.class-invite-flow__card.is-audit-card .class-invite-flow__field-hint {
  font-size: 0.72rem;
  margin-top: 0.35rem;
}

.class-invite-flow__checkbox-row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding-left: 0;
  margin-bottom: 0;
}

.class-invite-flow__checkbox-row .form-check-input {
  position: static;
  float: none;
  margin: 0;
  flex-shrink: 0;
}

.class-invite-flow__checkbox-copy {
  display: flex;
  align-items: center;
  gap: 0.38rem;
  flex-wrap: nowrap;
  min-width: 0;
}

.class-invite-flow__checkbox-label {
  margin-bottom: 0;
  line-height: 1.35;
}

.class-invite-flow__inline-help {
  border: 0;
  background: transparent;
  padding: 0;
  color: #b0bbd0;
  font-size: 1rem;
  line-height: 1;
  flex-shrink: 0;
}

.class-invite-flow__inline-help:hover {
  color: var(--bs-primary);
}

.class-invite-flow__inline-help:focus-visible {
  outline: none;
  color: var(--bs-primary);
}

.class-invite-flow__field-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 0.45rem;
  padding: 0.1rem 0.42rem;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  vertical-align: middle;
}

.class-invite-flow__field-badge.is-required {
  background: #ffe8e8;
  color: #e52c2c;
}

.class-invite-flow__field-badge.is-optional {
  background: #eef2f8;
  color: #8a98b6;
}

.class-invite-flow__move-from-top {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.8rem;
}

.class-invite-flow__move-from-icon-wrap {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: #f3f5f9;
  color: #8a98b6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  flex-shrink: 0;
}

.class-invite-flow__move-from-copy {
  min-width: 0;
}

.class-invite-flow__move-from-label {
  display: block;
  color: #8a98b6;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  margin-bottom: 0.2rem;
}

.class-invite-flow__move-from-classline {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--bs-secondary);
}

.class-invite-flow__move-from-classline strong {
  font-weight: 700;
}

.class-invite-flow__move-from-dot,
.class-invite-flow__move-from-schedule {
  color: #8a98b6;
  font-weight: 500;
}

.class-invite-flow__move-from-bottom {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem 0.65rem;
}

.class-invite-flow__move-from-bottom.is-single-student {
  gap: 0.5rem 0.55rem;
}

.class-invite-flow__move-from-bottom.is-single-student .class-invite-flow__move-from-avatar {
  margin-right: 0;
}

.class-invite-flow__move-from-student-name {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
}

.class-invite-flow__move-from-avatars {
  display: flex;
  align-items: center;
}

.class-invite-flow__move-from-avatar {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 2px solid #fff;
  margin-right: -0.3rem;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 0.62rem;
  font-weight: 700;
  flex-shrink: 0;
}

.class-invite-flow__move-from-avatar.is-tone-1 {
  background: #dcfce7;
  color: #15803d;
}

.class-invite-flow__move-from-avatar.is-tone-2 {
  background: #ede9fe;
  color: #6d28d9;
}

.class-invite-flow__move-from-avatar.is-tone-3 {
  background: #ccfbf1;
  color: #0f766e;
}

.class-invite-flow__move-from-avatar.is-tone-4 {
  background: #fce7f3;
  color: #be185d;
}

.class-invite-flow__move-from-avatar.is-tone-5 {
  background: #ffedd5;
  color: #c2410c;
}

.class-invite-flow__move-from-avatar.is-tone-6 {
  background: #ecfccb;
  color: #4d7c0f;
}

.class-invite-flow__move-from-count {
  color: var(--bs-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.class-invite-flow__move-from-plan {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  background: #f4f6fb;
  color: var(--bs-secondary);
  font-size: 0.72rem;
  white-space: nowrap;
}

.class-invite-flow__move-from-plan strong {
  font-weight: 700;
}

.class-invite-flow__move-from-plan span {
  color: #8a98b6;
  font-weight: 500;
}

.class-invite-flow__class-sub-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid #e0d4ff;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.class-invite-flow__class-sub-badge i {
  font-size: 0.62rem;
}

.class-invite-flow__move-from-empty {
  margin: 0;
  color: #9aa8c6;
  font-size: 0.8rem;
}

.class-invite-flow__move-from-loading {
  min-height: 88px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 1rem;
}

.class-invite-flow__move-from-customise-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid #edf1f7;
}

.class-invite-flow__move-from-customise {
  border: 0;
  background: transparent;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #8a98b6;
  font-size: 0.76rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.class-invite-flow__move-from-addon-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.48rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.28);
  background: rgba(var(--bs-secondary-rgb), 0.08);
  color: var(--bs-secondary);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
}

.class-invite-flow__move-from-customise:hover {
  color: var(--bs-secondary);
}

.class-invite-flow__move-from-customise i {
  font-size: 0.68rem;
}

.class-invite-flow__leave-customise {
  margin-top: 0.75rem;
  border: 1px solid #e8edf5;
  border-radius: 12px;
  background: #fff;
  padding: 0.8rem 0.85rem 0.85rem;
}

.class-invite-flow__leave-customise-intro {
  margin: 0 0 0.7rem;
  color: #8a98b6;
  font-size: 0.74rem;
  line-height: 1.45;
}

.class-invite-flow__leave-customise-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.class-invite-flow__leave-customise-student {
  border: 1px solid #e8edf5;
  border-radius: 10px;
  background: #fbfcff;
  padding: 0.65rem 0.7rem 0.7rem;
}

.class-invite-flow__leave-customise-student-top {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.55rem;
}

.class-invite-flow__leave-customise-empty {
  color: #8a98b6;
  font-size: 0.72rem;
  font-weight: 600;
}

.class-invite-flow__leave-customise-footer {
  margin-top: 0.75rem;
  padding-top: 0.7rem;
  border-top: 1px solid #edf1f7;
}

.class-invite-flow__sub-review-badge.is-complete {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.class-invite-flow__sub-review-option-class {
  display: inline-flex;
  align-items: center;
  padding: 0.08rem 0.32rem;
  border-radius: 999px;
  background: rgba(var(--bs-secondary-rgb), 0.1);
  color: var(--bs-secondary);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.class-invite-flow__sub-review {
  margin-top: 0.85rem;
  border: 1px solid #fde8c8;
  border-radius: 12px;
  background: #fffaf3;
  padding: 0.8rem 0.85rem 0.85rem;
}

.class-invite-flow__sub-review.is-below-customise {
  margin-top: 0.75rem;
}

.class-invite-flow__sub-review.is-complete {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  background: #f7fffb;
}

.class-invite-flow__sub-review-head {
  margin-bottom: 0.45rem;
}

.class-invite-flow__sub-review-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: #ffedd5;
  color: #c2410c;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.class-invite-flow__sub-review.is-complete .class-invite-flow__sub-review-badge {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.class-invite-flow__sub-review-intro {
  margin: 0 0 0.7rem;
  color: #8a98b6;
  font-size: 0.74rem;
  line-height: 1.45;
}

.class-invite-flow__sub-review-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.class-invite-flow__sub-review-student {
  border: 1px solid #fde8c8;
  border-radius: 10px;
  background: #fff;
  padding: 0.65rem 0.7rem 0.7rem;
}

.class-invite-flow__sub-review-student.is-complete {
  border-color: rgba(var(--bs-primary-rgb), 0.22);
}

.class-invite-flow__sub-review-student-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.55rem;
}

.class-invite-flow__sub-review-student-main {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.class-invite-flow__sub-review-avatar {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.62rem;
  font-weight: 700;
  flex-shrink: 0;
}

.class-invite-flow__sub-review-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}

.class-invite-flow__sub-review-copy strong {
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.25;
}

.class-invite-flow__sub-review-copy span {
  color: #8a98b6;
  font-size: 0.7rem;
  line-height: 1.25;
}

.class-invite-flow__sub-review-status {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
}

.class-invite-flow__sub-review-status.is-needs-choice {
  background: #ffedd5;
  color: #c2410c;
}

.class-invite-flow__sub-review-status.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.class-invite-flow__sub-review-status.is-no-subscriptions {
  background: rgba(var(--bs-secondary-rgb), 0.1);
  color: var(--bs-secondary);
}

.class-invite-flow__sub-review-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
}

.class-invite-flow__sub-review-option {
  border: 1px solid #dce4f1;
  border-radius: 999px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.32rem 0.62rem 0.32rem 0.42rem;
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  cursor: pointer;
}

.class-invite-flow__sub-review-option.is-selected {
  border-color: rgba(var(--bs-secondary-rgb), 0.35);
  background: rgba(var(--bs-secondary-rgb), 0.08);
  color: var(--bs-secondary);
}

.class-invite-flow__sub-review-option-check {
  width: 14px;
  height: 14px;
  border: 1.5px solid #c7d2e3;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.55rem;
  flex-shrink: 0;
}

.class-invite-flow__sub-review-option-check.is-selected {
  border-color: var(--bs-secondary);
  background: var(--bs-secondary);
  color: #fff;
}

.class-invite-flow__footer.is-leave-step {
  align-items: center;
  gap: 0.75rem;
}

.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-left,
.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right {
  flex: 0 0 auto;
}

.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right {
  flex: 1;
  justify-content: flex-end;
}

.class-invite-flow__primary-btn.is-leave-continue {
  min-height: 38px;
  padding: 0.5rem 1rem;
  font-size: 0.82rem;
  font-weight: 700;
  border-radius: 12px;
}

.class-invite-flow__primary-btn.is-leave-blocked {
  flex: 1;
  max-width: 100%;
  min-height: 38px;
  padding: 0.5rem 0.85rem;
  border: 0;
  border-radius: 12px;
  background: #eef1f6;
  color: #8a98b6;
  font-size: 0.78rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  cursor: not-allowed;
  opacity: 1;
}

.class-invite-flow__primary-btn.is-leave-blocked i {
  font-size: 0.82rem;
}

.class-invite-flow__footer.is-leave-step .class-invite-flow__secondary-btn {
  min-height: 38px;
  padding: 0.5rem 0.95rem;
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 12px;
}

.class-invite-flow__footer.is-invite-step {
  align-items: center;
  gap: 0.75rem;
}

.class-invite-flow__footer.is-invite-step .class-invite-flow__footer-right {
  flex: 1;
  justify-content: flex-end;
}

.class-invite-flow__footer.is-invite-step .class-invite-flow__secondary-btn {
  min-height: 38px;
  padding: 0.5rem 0.95rem;
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 12px;
}

.class-invite-flow__move-step-card {
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 14px;
  background: #fff;
  padding: 0.85rem 0.95rem;
}

.class-invite-flow__move-step-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
}

.class-invite-flow__move-step-badge {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #10b981;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.class-invite-flow__move-step-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 700;
}

.class-invite-flow__move-class-list {
  border: 1px solid #e8edf5;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.class-invite-flow__move-class {
  background: #fff;
}

.class-invite-flow__move-class + .class-invite-flow__move-class {
  border-top: 1px solid #edf1f7;
}

.class-invite-flow__move-class.is-expanded {
  background: #f0fdf8;
  border-top: 1px solid rgba(16, 185, 129, 0.22);
  border-bottom: 1px solid rgba(16, 185, 129, 0.22);
}

.class-invite-flow__move-class.is-expanded + .class-invite-flow__move-class {
  border-top: 0;
}

.class-invite-flow__move-class-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0.7rem 0.8rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-align: left;
}

.class-invite-flow__move-class-icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #f3f5f9;
  color: #8a98b6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  flex-shrink: 0;
}

.class-invite-flow__move-class-icon.is-active {
  background: #ecfdf5;
  color: var(--bs-primary);
}

.class-invite-flow__move-class-icon.is-expanded {
  background: #10b981;
  color: #fff;
}

.class-invite-flow__move-class-copy {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.class-invite-flow__move-class-copy strong {
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 700;
}

.class-invite-flow__move-class-copy span {
  color: #8a98b6;
  font-size: 0.72rem;
}

.class-invite-flow__move-class-selected {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  background: #ecfdf5;
  color: var(--bs-primary);
  font-size: 0.68rem;
  font-weight: 700;
  white-space: nowrap;
}

.class-invite-flow__move-class-chevron {
  color: #b0bbd0;
  font-size: 0.72rem;
  flex-shrink: 0;
}

.class-invite-flow__move-class-chevron.is-expanded {
  color: var(--bs-primary);
}

.class-invite-flow__move-class-options {
  padding: 0 0.55rem 0.55rem;
  background: #f0fdf8;
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
}

.class-invite-flow__move-group-option {
  width: 100%;
  border: 1px solid #e8edf5;
  border-radius: 10px;
  background: #fff;
  padding: 0.62rem 0.72rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-align: left;
}

.class-invite-flow__move-group-option.is-full {
  border-color: #fdba74;
}

.class-invite-flow__move-group-option.is-selected {
  border-color: #10b981;
  background: #f8fffc;
  box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.08);
}

.class-invite-flow__move-group-radio {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  border: 2px solid #c7d2e3;
  flex-shrink: 0;
  position: relative;
}

.class-invite-flow__move-group-radio.is-selected {
  border-color: #10b981;
}

.class-invite-flow__move-group-radio.is-selected::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 999px;
  background: #10b981;
}

.class-invite-flow__move-group-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.class-invite-flow__move-group-main strong {
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 700;
}

.class-invite-flow__move-group-spaces {
  color: #8a98b6;
  font-size: 0.7rem;
}

.class-invite-flow__move-group-full {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.12rem 0.42rem;
  border-radius: 999px;
  background: #fff4e8;
  color: #c2410c;
  font-size: 0.64rem;
  font-weight: 700;
  width: fit-content;
}

.class-invite-flow__move-group-full i {
  font-size: 0.62rem;
}

.class-invite-flow__pending-list-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(30, 42, 74, 0.45);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.class-invite-flow__pending-list-modal {
  width: min(100%, 520px);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(30, 42, 74, 0.18);
  overflow: hidden;
}

.class-invite-flow__pending-list-head {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1.15rem 1.25rem 1rem;
  background: #fff8ef;
  border-bottom: 1px solid #fde8c8;
}

.class-invite-flow__pending-list-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #ffedd5;
  color: #d97706;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}

.class-invite-flow__pending-list-title {
  margin: 0;
  color: #9a3412;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.25;
}

.class-invite-flow__pending-list-subtitle {
  margin: 0.2rem 0 0;
  color: #6b7280;
  font-size: 0.82rem;
  line-height: 1.45;
}

.class-invite-flow__pending-list-body {
  padding: 1.1rem 1.25rem 1.2rem;
}

.class-invite-flow__pending-list-copy {
  margin: 0;
  color: #374151;
  font-size: 0.88rem;
  line-height: 1.6;
}

.class-invite-flow__pending-list-note {
  margin-top: 0.9rem;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  color: #4b5563;
  font-size: 0.8rem;
  line-height: 1.5;
}

.class-invite-flow__pending-list-note i {
  color: #9aa8c6;
  margin-top: 0.12rem;
  flex-shrink: 0;
}

.class-invite-flow__pending-list-footer {
  padding: 0 1.25rem 1.2rem;
  display: flex;
  justify-content: flex-end;
}

.class-invite-flow__send-endings-body {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.class-invite-flow__move-group-price {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.22rem 0.48rem;
  border-radius: 999px;
  background: #f4f6fb;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
  margin-left: auto;
  flex-shrink: 0;
}

.class-invite-flow__move-group-price i {
  color: var(--bs-primary);
  font-size: 0.65rem;
}

.class-invite-flow__move-group-price span {
  color: var(--bs-primary);
}

.class-invite-flow__move-month-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.class-invite-flow__move-month {
  border: 1px solid #dce4f1;
  border-radius: 999px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.76rem;
  font-weight: 600;
  padding: 0.38rem 0.72rem;
  min-width: 0;
}

.class-invite-flow__move-month.is-selected {
  border-color: #10b981;
  background: #ecfdf5;
  color: var(--bs-primary);
}

.class-invite-flow__footer.is-review-step {
  align-items: center;
  gap: 0.75rem;
}

.class-invite-flow__footer.is-review-step .class-invite-flow__footer-right {
  flex: 1;
  justify-content: flex-end;
}

.class-invite-flow__footer.is-review-step .class-invite-flow__secondary-btn {
  min-height: 38px;
  padding: 0.5rem 0.95rem;
  font-size: 0.82rem;
  font-weight: 600;
  border-radius: 12px;
}

.class-invite-flow__review-card {
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #fff;
  padding: 0.95rem 1rem 1rem;
}

.class-invite-flow__review-intro {
  margin: 0 0 0.9rem;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  line-height: 1.5;
}

.class-invite-flow__review-recipients-wrap {
  position: relative;
  display: inline-block;
}

.class-invite-flow__review-recipients-link {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 2px;
  cursor: pointer;
}

.class-invite-flow__review-recipients-popover {
  position: absolute;
  left: 0;
  top: calc(100% + 0.45rem);
  z-index: 20;
  width: 280px;
  border: 1px solid #e8edf5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.12);
  overflow: hidden;
}

.class-invite-flow__review-recipients-popover-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  background: #f7f9fd;
  color: #8a98b6;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.class-invite-flow__review-recipients-popover-list {
  max-height: 220px;
  overflow-y: auto;
  padding: 0.35rem 0;
}

.class-invite-flow__review-recipient-row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.75rem;
}

.class-invite-flow__review-recipient-row strong {
  display: block;
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 700;
}

.class-invite-flow__review-recipient-row span {
  display: block;
  color: #8a98b6;
  font-size: 0.72rem;
}

.class-invite-flow__review-rows {
  border-top: 1px solid #edf1f7;
}

.class-invite-flow__review-row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 0.75rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid #edf1f7;
}

.class-invite-flow__review-label {
  color: #8a98b6;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding-top: 0.1rem;
}

.class-invite-flow__review-value strong {
  display: block;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 700;
}

.class-invite-flow__review-hint {
  display: block;
  margin-top: 0.2rem;
  color: #8a98b6;
  font-size: 0.74rem;
  line-height: 1.4;
}

.class-invite-flow__review-hint strong {
  display: inline;
  color: var(--bs-secondary);
  font-size: 0.74rem;
  font-weight: 600;
}

.class-invite-flow__review-help {
  margin-left: 0.2rem;
  color: #b0bbd0;
  font-size: 0.72rem;
}

.class-invite-flow__review-options-intro {
  margin-bottom: 0.55rem;
}

.class-invite-flow__review-options-list {
  margin: 0;
  padding-left: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.class-invite-flow__review-options-list li {
  color: #5a6b8c;
  font-size: 0.78rem;
  line-height: 1.45;
}

.class-invite-flow__review-options-list li strong {
  display: inline;
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 700;
}

.class-invite-flow__review-pending-headline {
  display: block;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 700;
  margin-bottom: 0.2rem;
}

.class-invite-flow__review-email {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid #edf1f7;
  cursor: pointer;
}

.class-invite-flow__review-email-check {
  margin-top: 0.15rem;
  accent-color: var(--bs-primary);
}

.class-invite-flow__review-email-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.class-invite-flow__review-email-copy strong {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
}

.class-invite-flow__review-email-copy span {
  color: #8a98b6;
  font-size: 0.74rem;
  line-height: 1.4;
}

.class-invite-flow__card.is-invite-card {
  border-color: rgba(16, 185, 129, 0.35);
}

.class-invite-flow__card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.class-invite-flow__card-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.class-invite-flow__card-icon {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 1.2rem;
  flex-shrink: 0;
}

.class-invite-flow__card-icon.is-purple {
  background: #f4efff;
  color: #7c4dff;
}

.class-invite-flow__card-icon.is-invite {
  background: #ecfdf5;
  color: #10b981;
}

.class-invite-flow__card-title {
  margin: 0;
  color: #24345d;
  font-size: 1.45rem;
  font-weight: 800;
}

.class-invite-flow__card-subtitle {
  margin: 0.22rem 0 0;
  color: #9aa8c6;
  font-size: 0.94rem;
}

.class-invite-flow__student-count {
  border-radius: 999px;
  background: #fff1f1;
  color: #e04747;
  padding: 0.45rem 0.9rem;
  font-size: 0.92rem;
  font-weight: 700;
}

.class-invite-flow__student-count.is-invite {
  background: #ecfdf5;
  color: #0f9f73;
}

.class-invite-flow__leave-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
}

.class-invite-flow__pill,
.class-invite-flow__preview-sub,
.class-invite-flow__review-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border: 1px solid #dfe5f1;
  border-radius: 12px;
  background: #f7f9fc;
  color: #31405f;
  padding: 0.48rem 0.8rem;
  font-size: 0.92rem;
  font-weight: 700;
}

.class-invite-flow__pill span,
.class-invite-flow__preview-sub span {
  color: #7c8cae;
  font-weight: 600;
}

.class-invite-flow__pill.is-leave-group {
  border-color: rgba(239, 68, 68, 0.45);
  background: #fff6f6;
  color: #db3e3e;
}

.class-invite-flow__pill.is-custom {
  border-color: rgba(239, 68, 68, 0.45);
  background: #fff6f6;
}

.class-invite-flow__custom-badge {
  border-radius: 8px;
  background: #f4efff;
  color: #7c4dff;
  padding: 0.32rem 0.56rem;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.class-invite-flow__date-box,
.class-invite-flow__row-date-box {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  border: 1px solid rgba(239, 68, 68, 0.45);
  border-radius: 16px;
  background: #fff8f8;
  padding: 0.35rem 0.5rem 0.35rem 0.8rem;
}

.class-invite-flow__date-label,
.class-invite-flow__row-date-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #dc3c3c;
  font-size: 0.9rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.class-invite-flow__date-select,
.class-invite-flow__row-date-select,
.class-invite-flow__search-input {
  border: 1px solid rgba(239, 68, 68, 0.32);
  border-radius: 10px;
  background: #fff;
  color: #24345d;
  min-height: 40px;
  padding: 0.4rem 0.75rem;
  font-size: 0.94rem;
  font-weight: 700;
}

.class-invite-flow__cancel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.2rem;
  background: #fff8f8;
  border-bottom: 1px solid rgba(239, 68, 68, 0.18);
}

.class-invite-flow__cancel-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
}

.class-invite-flow__cancel-icon {
  color: #e04545;
  font-size: 1rem;
}

.class-invite-flow__cancel-title {
  margin: 0;
  color: #d93636;
  font-size: 1.22rem;
  font-weight: 800;
}

.class-invite-flow__cancel-source {
  color: #f16a6a;
  font-size: 0.9rem;
}

.class-invite-flow__cancel-list {
  display: flex;
  flex-direction: column;
}

.class-invite-flow__cancel-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1.2rem;
  border-bottom: 1px solid #edf1f7;
}

.class-invite-flow__cancel-row.is-selected {
  background: #fff7f7;
}

.class-invite-flow__cancel-row-main,
.class-invite-flow__cancel-row-side,
.class-invite-flow__library-search,
.class-invite-flow__library-row,
.class-invite-flow__footer,
.class-invite-flow__footer-right,
.class-invite-flow__footer-left,
.class-invite-flow__preview-student {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.class-invite-flow__cancel-row-side {
  margin-left: auto;
}

.class-invite-flow__cancel-checkbox {
  margin: 0;
  width: 18px;
  height: 18px;
  border-color: #d8e0ee;
}

.class-invite-flow__cancel-count {
  color: #92a0bd;
  font-size: 0.88rem;
  font-weight: 700;
}

.class-invite-flow__remove-custom {
  width: 34px;
  height: 34px;
  border: 1px solid #dfe5f1;
  border-radius: 10px;
  background: #fff;
  color: #9aa6c1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.class-invite-flow__add-more {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  width: 100%;
  padding: 1rem 1.2rem;
  border: 0;
  border-top: 1px solid #edf1f7;
  background: #fff;
  text-align: left;
}

.class-invite-flow__add-more-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  border: 1px solid rgba(239, 68, 68, 0.22);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.class-invite-flow__add-more-copy,
.class-invite-flow__join-card-head,
.class-invite-flow__review-copy {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

.class-invite-flow__add-more-title {
  color: #2d3c60;
  font-size: 1.02rem;
  font-weight: 800;
}

.class-invite-flow__add-more-subtitle {
  color: #97a4c3;
  font-size: 0.88rem;
}

.class-invite-flow__library {
  padding: 0 1.2rem 1.2rem;
}

.class-invite-flow__library-search {
  padding: 0.9rem 0 0.6rem;
}

.class-invite-flow__search-input {
  flex: 1;
  border-color: #dbe3ef;
}

.class-invite-flow__library-cancel,
.class-invite-flow__secondary-btn {
  border: 1px solid #dce4f1;
  border-radius: 14px;
  background: #fff;
  color: #8a99b8;
  min-height: 44px;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  font-weight: 700;
}

.class-invite-flow__library-list {
  max-height: 190px;
  overflow-y: auto;
  border: 1px solid #e6ecf5;
  border-radius: 16px;
  background: #fff;
}

.class-invite-flow__library-row {
  justify-content: space-between;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #edf1f7;
}

.class-invite-flow__library-row:last-child {
  border-bottom: 0;
}

.class-invite-flow__library-add {
  border: 0;
  background: transparent;
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.9rem;
  font-weight: 800;
}

.class-invite-flow__preview-head,
.class-invite-flow__preview-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.35fr);
  gap: 1rem;
  align-items: start;
}

.class-invite-flow__preview-head {
  padding: 0.95rem 1rem;
  border-bottom: 1px solid #edf1f7;
  color: #9aa8c6;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.class-invite-flow__preview-row {
  padding: 1rem;
  border-bottom: 1px solid #edf1f7;
  background: #fff9f9;
}

.class-invite-flow__preview-row:last-child {
  border-bottom: 0;
}

.class-invite-flow__preview-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f5e7ff;
  color: #8a52ff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.92rem;
  font-weight: 800;
  flex-shrink: 0;
}

.class-invite-flow__preview-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.class-invite-flow__preview-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.class-invite-flow__preview-name {
  color: #24345d;
  font-size: 1rem;
  font-weight: 800;
}

.class-invite-flow__preview-meta {
  color: #e04545;
  font-size: 0.88rem;
  font-weight: 700;
  margin-top: 0.2rem;
}

.class-invite-flow__preview-class {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}

.class-invite-flow__preview-class-card {
  border: 1px solid rgba(239, 68, 68, 0.45);
  border-radius: 12px;
  background: #fff6f6;
  padding: 0.72rem 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}

.class-invite-flow__preview-class-name {
  color: #d53b3b;
  font-size: 0.95rem;
  font-weight: 800;
  text-decoration: line-through;
}

.class-invite-flow__preview-class-name span {
  color: #c98989;
  font-weight: 700;
  margin-left: 0.35rem;
}

.class-invite-flow__preview-class-date {
  display: inline-flex;
  width: fit-content;
  color: #d53b3b;
  padding: 0;
  font-size: 0.84rem;
  font-weight: 800;
  text-decoration: line-through;
}

.class-invite-flow__preview-subs,
.class-invite-flow__review-chips,
.class-invite-flow__join-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.class-invite-flow__preview-sub.is-selected {
  border-color: rgba(239, 68, 68, 0.45);
  background: #fff2f2;
  color: #d53b3b;
  text-decoration: line-through;
}

.class-invite-flow__preview-sub.is-selected span {
  color: #d68f8f;
}

.class-invite-flow__preview-sub.is-selected strong {
  display: inline-flex;
  border-radius: 10px;
  background: #fff;
  color: #d53b3b;
  padding: 0.26rem 0.5rem;
  font-size: 0.8rem;
  font-weight: 800;
}

.class-invite-flow__preview-subs.is-leave-preview {
  margin-top: 0.6rem;
}

.class-invite-flow__preview-empty {
  color: #9caccc;
  font-weight: 700;
}

.class-invite-flow__join-card,
.class-invite-flow__review-card {
  flex: 1 1 280px;
  border: 1px solid #e2e8f3;
  border-radius: 18px;
  background: #fff;
  padding: 1rem;
}

.class-invite-flow__join-title,
.class-invite-flow__review-title {
  margin: 0;
  color: #24345d;
  font-size: 1.12rem;
  font-weight: 800;
}

.class-invite-flow__join-subtitle,
.class-invite-flow__review-copy span {
  color: #94a3c1;
  font-size: 0.9rem;
}

.class-invite-flow__review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.class-invite-flow__review-copy strong {
  color: #24345d;
  font-size: 0.98rem;
}

.class-invite-flow__review-chip.is-remove {
  border-color: rgba(239, 68, 68, 0.34);
  background: #fff5f5;
  color: #dc3c3c;
  text-decoration: line-through;
}

.class-invite-flow__review-chip.is-add {
  border-color: rgba(124, 77, 255, 0.28);
  background: #f5f1ff;
  color: #7c4dff;
}

.class-invite-flow__review-chip.is-email {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.class-invite-flow__invite-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.class-invite-flow__invite-chip {
  border: 1px solid rgba(16, 185, 129, 0.35);
  border-radius: 12px;
  background: #ecfdf5;
  color: #0f9f73;
  padding: 0.5rem 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.92rem;
  font-weight: 800;
}

.class-invite-flow__invite-chip span span {
  color: #5ba88a;
  font-weight: 700;
  margin-left: 0.25rem;
}

.class-invite-flow__invite-week-card {
  margin-top: 1rem;
  border: 1px solid #e3eaf4;
  border-radius: 18px;
  background: #f8fafc;
  padding: 1rem;
}

.class-invite-flow__invite-week-head,
.class-invite-flow__catalogue-head,
.class-invite-flow__catalogue-group-head,
.class-invite-flow__catalogue-row,
.class-invite-flow__catalogue-row-main,
.class-invite-flow__catalogue-row-side,
.class-invite-flow__invite-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.class-invite-flow__invite-week-title,
.class-invite-flow__catalogue-title,
.class-invite-flow__catalogue-group-title {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #31405f;
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
}

.class-invite-flow__invite-week-copy,
.class-invite-flow__catalogue-group-count {
  color: #97a4c3;
  font-size: 0.84rem;
  font-weight: 700;
}

.class-invite-flow__invite-week-nav {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 0.8rem;
}

.class-invite-flow__invite-week-list {
  display: flex;
  flex: 1;
  min-width: 0;
  gap: 0.65rem;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.class-invite-flow__invite-week-list::-webkit-scrollbar {
  display: none;
}

.class-invite-flow__invite-week-arrow {
  width: 42px;
  height: 42px;
  border: 1px solid #dfe5f1;
  border-radius: 12px;
  background: #fff;
  color: #31405f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.class-invite-flow__invite-week-arrow:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.class-invite-flow__invite-week {
  flex: 0 0 auto;
  min-width: 140px;
  border: 1px solid #dfe5f1;
  border-radius: 14px;
  background: #fff;
  color: #31405f;
  padding: 0.8rem 0.9rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  font-weight: 800;
}

.class-invite-flow__invite-week.is-selected {
  border-color: rgba(16, 185, 129, 0.4);
  background: #ecfdf5;
}

.class-invite-flow__invite-week-label {
  color: #97a4c3;
  font-size: 0.78rem;
  text-transform: uppercase;
}

.class-invite-flow__invite-week-range {
  color: #31405f;
  font-size: 0.96rem;
}

.class-invite-flow__catalogue {
  margin-top: 1rem;
  border: 1px solid rgba(16, 185, 129, 0.35);
  border-radius: 18px;
  background: #fff;
  padding: 1rem;
}

.class-invite-flow__catalogue-groups {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.class-invite-flow__catalogue-group {
  border: 1px solid #dfe5f1;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.class-invite-flow__catalogue-group-head {
  padding: 0.85rem 1rem;
  background: #f8fafc;
}

.class-invite-flow__catalogue-group-name {
  color: #31405f;
  font-size: 1rem;
  font-weight: 800;
}

.class-invite-flow__catalogue-group-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.8rem;
}

.class-invite-flow__catalogue-row {
  border: 1px solid #e3eaf4;
  border-radius: 14px;
  background: #fff;
  padding: 0.75rem 0.9rem;
}

.class-invite-flow__catalogue-row.is-selected {
  border-color: rgba(16, 185, 129, 0.4);
  background: #ecfdf5;
}

.class-invite-flow__catalogue-checkbox {
  margin: 0;
  width: 18px;
  height: 18px;
  border-color: #d8e0ee;
}

.class-invite-flow__invite-date-box {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid rgba(16, 185, 129, 0.4);
  border-radius: 10px;
  background: #fff;
  padding: 0.35rem 0.55rem;
  color: #0f9f73;
}

.class-invite-flow__invite-date-select {
  border: 0;
  background: transparent;
  color: #31405f;
  font-size: 0.88rem;
  font-weight: 700;
  min-width: 112px;
}

.class-invite-flow__capacity-pill {
  border-radius: 999px;
  background: #ecfdf5;
  color: #0f9f73;
  padding: 0.35rem 0.7rem;
  font-size: 0.84rem;
  font-weight: 800;
}

.class-invite-flow__capacity-pill.is-trial {
  background: #eff6ff;
  color: #3b82f6;
}

.class-invite-flow__preview-head.is-invite-preview,
.class-invite-flow__preview-row.is-invite-preview {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr);
  background: #effcf8;
}

.class-invite-flow__preview-meta.is-invite {
  color: #0f9f73;
}

.class-invite-flow__invite-options {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.class-invite-flow__invite-option {
  justify-content: flex-start;
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 14px;
  background: #fff;
  padding: 0.75rem 0.85rem;
}

.class-invite-flow__invite-option-index {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ecfdf5;
  color: #0f9f73;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
  font-weight: 800;
  flex-shrink: 0;
}

.class-invite-flow__invite-option-main {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  min-width: 0;
  flex: 1;
}

.class-invite-flow__invite-option-name {
  color: #24345d;
  font-size: 0.94rem;
  font-weight: 800;
}

.class-invite-flow__invite-option-group {
  color: #5da88b;
  font-size: 0.88rem;
  font-weight: 700;
}

.class-invite-flow__invite-option-date {
  border-radius: 10px;
  background: #ecfdf5;
  color: #0f9f73;
  padding: 0.35rem 0.6rem;
  font-size: 0.82rem;
  font-weight: 800;
}

.class-invite-flow__info-banner {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  border: 1px solid rgba(16, 185, 129, 0.32);
  border-radius: 16px;
  background: #ecfdf5;
  color: #1f7a63;
  padding: 0.75rem 0.95rem;
  font-size: 0.82rem;
  font-weight: 700;
}

.class-invite-flow__subscriptions-stage {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.class-invite-flow__subscription-group-card {
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}

.class-invite-flow__subscription-group-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem 0.8rem;
  background: #f4fffa;
  border-bottom: 1px solid rgba(16, 185, 129, 0.14);
}

.class-invite-flow__subscription-group-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
}

.class-invite-flow__subscription-group-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid rgba(16, 185, 129, 0.24);
  background: #fff;
  color: #10b981;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.class-invite-flow__subscription-group-title {
  margin: 0;
  color: #24345d;
  font-size: 0.96rem;
  font-weight: 800;
}

.class-invite-flow__subscription-group-subtitle {
  margin: 0.16rem 0 0;
  color: #2d8a71;
  font-size: 0.78rem;
  font-weight: 700;
}

.class-invite-flow__subscription-group-count {
  border-radius: 10px;
  border: 1px solid rgba(16, 185, 129, 0.24);
  background: #fff;
  color: #1d7f67;
  padding: 0.38rem 0.68rem;
  font-size: 0.76rem;
  font-weight: 800;
}

.class-invite-flow__subscription-group-list {
  display: flex;
  flex-direction: column;
}

.class-invite-flow__subscription-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.72rem 1rem;
  border-bottom: 1px solid #edf7f2;
  background: #fff;
}

.class-invite-flow__subscription-row.is-selected {
  background: #ecfdf5;
}

.class-invite-flow__subscription-row-main,
.class-invite-flow__subscription-row-side {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.class-invite-flow__subscription-row-side {
  margin-left: auto;
}

.class-invite-flow__subscription-checkbox {
  margin: 0;
  width: 18px;
  height: 18px;
  border-color: #d8e0ee;
}

.class-invite-flow__pill.is-invite-sub {
  border-color: rgba(16, 185, 129, 0.28);
  background: #f4fffa;
  color: #1a7e66;
}

.class-invite-flow__invite-date-box.is-subscription-start {
  border-color: rgba(16, 185, 129, 0.32);
  background: #fff;
  padding-right: 0.45rem;
}

.class-invite-flow__invite-start-label {
  color: #1d8d72;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
}

.class-invite-flow__invite-date-select.is-text {
  min-width: 70px;
  padding: 0.22rem 0.42rem;
  text-align: center;
}

.class-invite-flow__add-more.is-invite-add {
  border-top: 1px solid #edf7f2;
  color: #2d3c60;
}

.class-invite-flow__add-more.is-invite-add .class-invite-flow__add-more-icon {
  border-color: rgba(16, 185, 129, 0.24);
  color: #10b981;
}

.class-invite-flow__add-more.is-invite-add .class-invite-flow__add-more-title {
  color: var(--bs-secondary);
}

.class-invite-flow__add-more.is-invite-add .class-invite-flow__add-more-subtitle {
  color: #97a4c3;
}

.class-invite-flow__library.is-invite-library {
  padding-top: 0;
}

.class-invite-flow__library-search.is-invite-library {
  gap: 0.6rem;
}

.class-invite-flow__search-input.is-invite-library {
  border-color: rgba(16, 185, 129, 0.28);
}

.class-invite-flow__library-list.is-invite-library {
  border-color: #d6f5e7;
}

.class-invite-flow__library-row.is-invite-library {
  background: #fff;
}

.class-invite-flow__library-add.is-invite-library {
  color: #10b981;
}

.class-invite-flow__library-empty {
  padding: 0.9rem 1rem;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
}

.class-invite-flow__footer {
  justify-content: space-between;
  padding: 1rem 1.4rem 1.25rem;
  border-top: 1px solid #edf1f7;
  background: #fff;
}

.class-invite-flow__primary-btn {
  border: 0;
  border-radius: 14px;
  background: var(--bs-primary);
  color: #fff;
  min-height: 48px;
  padding: 0.8rem 1.3rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.98rem;
  font-weight: 800;
}

.class-invite-flow__primary-btn.is-muted {
  background: #8f9bb3;
  box-shadow: none;
}

.class-invite-flow__primary-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  box-shadow: none;
}

.class-invite-flow__form-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 1rem;
}

@media (max-width: 991.98px) {
  .class-invite-flow {
    min-height: auto;
  }
  .class-invite-flow__header,
  .class-invite-flow__stage-bar,
  .class-invite-flow__body,
  .class-invite-flow__footer {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .class-invite-flow__leave-summary,
  .class-invite-flow__cancel-row,
  .class-invite-flow__footer,
  .class-invite-flow__library-search,
  .class-invite-flow__review-grid,
  .class-invite-flow__form-grid {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
  }
  .class-invite-flow__step-line {
    display: none;
  }
  .class-invite-flow__steps {
    gap: 0.7rem;
    flex-wrap: wrap;
  }
  .class-invite-flow__cancel-row-side {
    margin-left: 0;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .class-invite-flow__preview-head {
    display: none;
  }
  .class-invite-flow__preview-row {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }
  .class-invite-flow__catalogue-row,
  .class-invite-flow__catalogue-row-main,
  .class-invite-flow__catalogue-row-side,
  .class-invite-flow__invite-option,
  .class-invite-flow__invite-week-head,
  .class-invite-flow__subscription-group-head,
  .class-invite-flow__subscription-row,
  .class-invite-flow__subscription-row-main,
  .class-invite-flow__subscription-row-side {
    flex-direction: column;
    align-items: stretch;
  }
  .class-invite-flow__invite-chip-row,
  .class-invite-flow__invite-week-list {
    flex-wrap: wrap;
  }
  .class-invite-flow__invite-week-nav {
    flex-direction: row;
    align-items: center;
  }
  .class-invite-flow__invite-week-list {
    flex-wrap: nowrap;
    overflow-x: auto;
  }
  .class-invite-flow__invite-week-arrow {
    width: 34px;
    flex: 0 0 34px;
  }
  .class-invite-flow__footer-right {
    width: 100%;
    flex-direction: column;
  }
  .class-invite-flow__primary-btn,
  .class-invite-flow__secondary-btn,
  .class-invite-flow__library-cancel {
    width: 100%;
    justify-content: center;
  }
}
.bg-a2b-brand-wave {
  background-image: url("../img/a2b-brand-wave-bg.svg");
  background-size: cover;
  background-position: bottom center;
  background-repeat: no-repeat;
}

.rounded-image-100 {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: 50%;
}

.image-cover-50 {
  width: 50px;
  height: 50px;
  object-fit: cover;
}

.image-cover-80 {
  width: 80px;
  height: 80px;
  object-fit: cover;
}

.daterangepicker td.in-range {
  background-color: rgba(var(--bs-primary-rgb), 0.1) !important;
}
.daterangepicker td.active {
  background-color: var(--bs-primary) !important;
  color: var(--bs-primary-foreground) !important;
}
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
  display: inline-block;
}

[aria-expanded]::after {
  transition: all 0.2s ease-in-out;
  transform: rotate(0deg);
}

[aria-expanded=true]::after {
  transform: rotate(180deg);
}

.nested-nav {
  border-left: 1px solid #dee2e6;
  margin-left: 1.625rem;
  padding-left: 0.625rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-size: 0.875em;
}

.trial-actions-bar {
  position: relative;
  z-index: 1030;
}
.trial-actions-bar .dropdown-menu {
  z-index: 1060;
}

.trials-toolbar-action-dropdown {
  --bs-dropdown-zindex: 1035;
}

.settings-hub-page {
  background: #f1f3f6;
}
.settings-hub-page .doc-wrapper,
.settings-hub-page .nj-shell {
  width: min(100%, 1280px);
  box-sizing: border-box;
}

.settings-hub-container {
  max-width: 1100px;
}

.settings-hub-header {
  border-radius: 12px;
}

.settings-hub-breadcrumb {
  font-size: 0.78rem;
}
.settings-hub-breadcrumb .breadcrumb-item,
.settings-hub-breadcrumb .breadcrumb-item.active {
  color: #8a96b0;
}
.settings-hub-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  color: #cbd5e1;
}
.settings-hub-breadcrumb a {
  color: var(--bs-primary);
  text-decoration: none;
}
.settings-hub-breadcrumb a:hover {
  color: var(--bs-link-hover-color);
  text-decoration: underline;
}

.settings-hub-title {
  color: var(--bs-secondary);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02rem;
}

.settings-hub-subtitle {
  color: #8a96b0;
  font-size: 0.9rem;
}

.settings-group-title {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.settings-group-description {
  color: #8a96b0;
  font-size: 0.82rem;
}

.settings-hub-card {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  color: inherit;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.settings-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.settings-card-title {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.35;
}

.settings-card-description {
  color: #8a96b0;
  font-size: 0.8rem;
  line-height: 1.45;
}

.settings-card-chevron {
  color: #cbd5e1;
  opacity: 0;
  transform: translateX(0);
  transition: opacity 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.settings-hub-card:hover {
  border-color: var(--bs-primary-border-subtle);
  box-shadow: 0 10px 25px -5px rgba(var(--bs-primary-rgb), 0.15);
  transform: translateY(-2px);
}

.settings-hub-card:hover .settings-card-icon {
  background: color-mix(in srgb, var(--bs-primary) 12%, white);
  color: var(--bs-link-hover-color);
}

.settings-hub-card:hover .settings-card-title {
  color: var(--bs-primary);
}

.settings-hub-card:hover .settings-card-chevron {
  color: var(--bs-primary);
  opacity: 1;
  transform: translateX(2px);
}

.club-class-name-row {
  align-items: center;
  width: 100%;
  max-width: 100%;
}

.club-class-short-description {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  white-space: pre-line;
}

.club-group-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  text-align: left;
}

.club-group-card__body {
  flex: 1 1 auto;
  min-width: 0;
}

.club-group-card__header {
  display: block;
}

.club-group-card__title {
  display: block;
}

.club-group-card__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  margin-top: 0.35rem;
  text-align: left;
}

.club-group-card__badges .badge {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.club-group-card__badge--trial {
  background: #fef3c7;
  border-color: #fcd34d !important;
  color: #92400e;
}

.club-group-card__details {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.club-group-card__session + .club-group-card__session {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--bs-border-color-translucent, rgba(0, 0, 0, 0.08));
}

.club-group-card__session-line {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  line-height: 1.35;
}

.club-group-card__session-line + .club-group-card__session-line {
  margin-top: 0.25rem;
}

.club-group-card__detail {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  line-height: 1.35;
}

.club-group-card__detail-icon {
  flex: 0 0 1rem;
  width: 1rem;
  text-align: center;
  margin-top: 0.1rem;
}

.club-group-card__action {
  flex: 0 0 auto;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

@media (max-width: 575.98px) {
  .club-group-card__action {
    width: 100%;
  }
}
@media (min-width: 576px) {
  .club-group-card {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .club-group-card__action {
    align-self: center;
  }
}
.club-class-toggle-btn {
  min-width: 0;
  overflow: hidden;
}

.club-class-toggle-label {
  min-width: 0;
  flex: 1 1 0;
  overflow: hidden;
}

.club-class-toggle-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.club-class-name-row .club-class-share-btn.btn {
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  flex: 0 0 2.5rem;
  align-self: center;
  width: 2.5rem;
  height: 2.5rem;
  min-height: 2.5rem;
  max-height: 2.5rem;
  padding: 0;
  border-radius: 50%;
  line-height: 1;
}

.club-class-share-menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  right: 0;
  z-index: 20;
  min-width: 9rem;
  padding: 0.35rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  background: var(--bs-body-bg);
}

.club-class-share-menu .btn {
  display: block;
  width: 100%;
  padding: 0.4rem 0.55rem;
  color: var(--bs-body-color);
  text-decoration: none;
}

.club-class-share-menu .btn:hover,
.club-class-share-menu .btn:focus-visible {
  background: var(--bs-light);
}

@media (max-width: 991.98px) {
  .club-class-name-row .club-class-share-btn.btn {
    --bs-btn-padding-x: 0;
    --bs-btn-padding-y: 0;
    flex: 0 0 2.25rem;
    align-self: center;
    width: 2.25rem;
    height: 2.25rem;
    min-height: 2.25rem;
    max-height: 2.25rem;
    padding: 0;
    border-radius: 50%;
    line-height: 1;
  }
  .club-class-toggle-label {
    flex-wrap: nowrap;
  }
}
@media (min-width: 576px) and (max-width: 991.98px) {
  .club-class-name-row {
    gap: 0.75rem;
  }
  .club-class-name-row .club-class-share-btn.btn {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    min-height: 2.5rem;
    max-height: 2.5rem;
  }
}
@media (min-width: 992px) {
  .club-class-name-row .club-class-share-btn.btn {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    min-height: 2.5rem;
    max-height: 2.5rem;
    padding: 0;
    border-radius: 50%;
  }
}
.page-container {
  max-width: 1200px;
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #8a96b0;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.82rem;
  margin-bottom: 0.55rem;
}
.back-link:hover {
  color: #4b5563;
}

.subtitle {
  color: #6b7a99;
  margin-top: 0.2rem;
}

.badge-trial {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #fef3c7;
  border: 1px solid #fcd34d;
  color: #92400e;
  font-weight: 700;
  font-size: 0.78rem;
}

.badge-category {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.82rem;
}

.badge-category-rec {
  color: #059669;
  background: rgba(5, 150, 105, 0.12);
}

.badge-category-camp {
  color: #c2410c;
  background: rgba(234, 88, 12, 0.12);
}

.badge-category-term {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.12);
}

.badge-category-payg {
  color: #b45309;
  background: rgba(245, 158, 11, 0.12);
}

.chip-strip {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.info-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  background: #eef1f4;
  color: #4b5563;
  padding: 7px 13px;
  font-weight: 600;
  font-size: 0.8rem;
}
.info-chip i {
  color: var(--bs-primary);
}

.content-card {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  padding: 1.25rem;
}

.card-hdr {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 18px 22px 14px;
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--bs-primary);
  margin: 0;
}
.card-hdr i {
  font-size: 0.95rem;
  color: var(--bs-primary);
}

.desc-text {
  font-size: 0.88rem;
  color: #4b5870;
  line-height: 1.7;
  padding: 0 22px 20px;
  margin: 0;
}

.term-banner {
  padding: 10px 22px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid #f3f4f6;
}

.term-name-col {
  min-width: 160px;
}

.term-name-label {
  display: block;
  font-size: 0.72rem;
  color: #8a96b0;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.term-name-value {
  font-size: 1.95rem;
  line-height: 1;
  font-weight: 800;
  color: #1e2a4a;
}

.term-dates-row {
  display: flex;
  align-items: flex-end;
  gap: 16px;
}

.term-date-col {
  min-width: 130px;
}

.term-date-sublabel {
  font-size: 0.72rem;
  color: #8a96b0;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.term-date-val-start,
.term-date-val-end {
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.1;
  border-bottom: 3px solid transparent;
  padding-bottom: 3px;
}

.term-date-val-start {
  color: #1e2a4a;
  border-bottom-color: rgba(var(--bs-primary-rgb), 0.55);
}

.term-date-val-end {
  color: #ef4444;
  border-bottom-color: #ef4444;
}

.term-arrow {
  font-size: 1.2rem;
  color: #9ca3af;
  font-weight: 700;
  padding-bottom: 5px;
}

.tl-count {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 0.75rem;
  font-weight: 700;
}

.tl-card-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #f3f4f6;
  padding: 16px 22px 12px;
}

.tl-card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  font-weight: 800;
  color: #1e2a4a;
}

.me-location-filter {
  padding: 16px 22px;
}

.me-location-filter__label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e2a4a;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.me-location-filter__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.me-location-filter-pill {
  appearance: none;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.me-location-filter-pill:hover {
  background: rgba(var(--bs-primary-rgb), 0.18);
}
.me-location-filter-pill.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.92);
  color: #fff;
  border-color: rgba(var(--bs-primary-rgb), 0.4);
}

.me-location-filter__hint {
  margin-top: 10px;
  font-size: 0.78rem;
}

.me-location-filter-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 20px 22px;
  color: #6b7a99;
  font-size: 0.88rem;
  border-top: 1px solid #f3f4f6;
}

.me-loc-accordions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 16px 16px;
}

.me-loc-row {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.me-loc-header {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: rgba(var(--bs-primary-rgb), 0.06);
  padding: 12px 14px;
  text-align: left;
  cursor: pointer;
}
.me-loc-header:hover {
  background: rgba(var(--bs-primary-rgb), 0.1);
}

.me-loc-name {
  flex: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: 0.92rem;
  color: #1e2a4a;
  min-width: 0;
}

.me-loc-chevron {
  font-size: 0.72rem;
  color: var(--bs-primary);
  transition: transform 0.15s ease;
  flex-shrink: 0;
}

.me-loc-row.open .me-loc-chevron {
  transform: rotate(180deg);
}

.me-loc-events {
  border-top: 1px dashed rgba(var(--bs-primary-rgb), 0.3);
  background: #fff;
}
.me-loc-events .me-row:last-of-type {
  border-bottom: none;
}

.tl-col-hdr {
  display: grid;
  grid-template-columns: 110px 1fr 1fr 96px;
  padding: 11px 22px;
  border-bottom: 1px solid #f3f4f6;
  color: #8a96b0;
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.tl-col-hdr span:last-child {
  text-align: right;
}

.tl-row {
  display: grid;
  grid-template-columns: 110px 1fr 1fr;
  align-items: center;
  gap: 0;
  padding: 14px 22px;
  border-bottom: 1px solid #f8f9fc;
}
.tl-row:last-of-type {
  border-bottom: none;
}
.tl-row:nth-child(even) {
  background: #fafbfc;
}

.tl-row-term {
  display: grid;
  grid-template-columns: 110px 1fr 1fr 96px;
  align-items: center;
  gap: 0;
  padding: 14px 22px;
  border-bottom: 1px solid #f8f9fc;
}
.tl-row-term:last-of-type {
  border-bottom: none;
}

.tl-price {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--bs-primary);
  text-align: right;
}

.term-sessions-wrap {
  padding: 10px 22px 12px;
  border-bottom: 2px solid #f8f9fc;
}

.term-sessions-label {
  font-size: 0.74rem;
  color: #8a96b0;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.term-sessions-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.term-session-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: #4b5563;
  font-size: 0.82rem;
  font-weight: 600;
}

.day-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 11px;
  border-radius: 8px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 0.78rem;
  font-weight: 800;
}

.tl-time {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e2a4a;
  padding: 0 12px;
}
.tl-time i {
  color: #8a96b0;
}

.tl-loc {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 0.82rem;
  color: #6b7a99;
  line-height: 1.45;
}
.tl-loc i {
  color: var(--bs-primary);
  margin-top: 2px;
  flex-shrink: 0;
}

.tl-footer {
  padding: 12px 0 14px;
  border-top: 1px solid #f3f4f6;
  display: flex;
  justify-content: center;
}

.tl-footer-wide {
  justify-content: stretch;
}

.me-row {
  padding: 16px 22px;
  border-bottom: 1px solid #f3f4f6;
}
.me-row:last-of-type {
  border-bottom: none;
}
.me-row:nth-child(even) {
  background: #fafbfc;
}

.me-row-r1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
}

.me-name {
  font-weight: 800;
  font-size: 0.92rem;
  color: #1e2a4a;
  display: flex;
  align-items: center;
  gap: 8px;
}
.me-name i {
  color: var(--bs-primary);
}

.me-price {
  font-weight: 900;
  font-size: 1rem;
  color: var(--bs-primary);
  flex-shrink: 0;
  margin-left: 12px;
}

.me-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.81rem;
  color: #4b5563;
  font-weight: 600;
  margin-bottom: 5px;
}
.me-meta i {
  color: #8a96b0;
}

.me-pills {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.me-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: 10px;
  font-size: 0.72rem;
  font-weight: 800;
}

.me-pill-ok {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.me-pill-low {
  background: #fef3c7;
  color: #92400e;
}

.me-pill-grey {
  background: #f3f4f6;
  color: #6b7280;
  font-weight: 700;
}

.payg-sess-row {
  padding: 16px 22px;
  border-bottom: 1px solid #f3f4f6;
}
.payg-sess-row:last-of-type {
  border-bottom: none;
}
.payg-sess-row:nth-child(even) {
  overflow: hidden;
}

.class-session-selector {
  position: relative;
}

.class-session-selector__backdrop {
  position: fixed;
  inset: 0;
  border: 0;
  background: transparent;
  padding: 0;
}

.class-session-selector__panel {
  position: relative;
  padding: 1.5rem;
  border: 1px solid #dbe4f0;
  background: white;
  border-radius: var(--bs-border-radius);
}

.class-session-selector__panel.is-register-only .class-session-selector__grid {
  grid-template-columns: minmax(0, 1fr) auto;
}

.class-session-selector__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: start;
}

.class-session-selector__field,
.class-session-selector__dropdown {
  position: relative;
}

.class-session-selector__label {
  display: block;
  margin-bottom: 0.55rem;
  color: #212529;
  font-size: 1rem;
  font-weight: 600;
}

.class-session-selector__trigger {
  width: 100%;
  min-height: 3rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 1rem;
  border: 1px solid #d8e0ec;
  border-radius: 1rem;
  background: #fff;
  color: #212529;
  text-align: left;
  font-weight: 600;
  box-shadow: none;
}

.class-session-selector__trigger:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.32);
}

.class-session-selector__trigger.is-open,
.class-session-selector__trigger:focus-visible {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.18);
}

.class-session-selector__trigger-icon {
  color: var(--bs-primary);
  font-size: 0.95rem;
}

.class-session-selector__trigger-value {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1rem;
}

.class-session-selector__count-badge {
  width: 1.75rem;
  height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 999px;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground);
  font-size: 0.82rem;
  font-weight: 700;
}

.class-session-selector__chevron {
  color: #7b8aa3;
  font-size: 0.8rem;
  flex-shrink: 0;
  margin-left: 0.5rem;
}

.class-session-selector__helper-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.class-session-selector__helper {
  display: block;
  margin-top: 0.5rem;
  color: #6c757d;
  font-size: 0.78rem;
  font-weight: 400;
}

.class-session-selector__helper-wrap .class-session-selector__helper {
  margin-top: 0;
}

.class-session-selector__helper-action {
  border: 0;
  background: transparent;
  color: var(--bs-primary);
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}

.class-session-selector__menu {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: 0;
  right: 0;
  z-index: 1052;
  overflow: hidden;
  border: 1px solid #dde4ef;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.14);
}

.class-session-selector__menu.is-register {
  max-height: 21rem;
}

.class-session-selector__list {
  max-height: 21rem;
  overflow: auto;
}

.class-session-selector__group {
  padding: 0.25rem 0;
}

.class-session-selector__group-label {
  padding: 0.8rem 1.1rem 0.35rem;
  color: #71839d;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.class-session-selector__register-option {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.8rem 1rem;
  border: 0;
  border-radius: 0.85rem;
  background: transparent;
  color: #212529;
  font-size: 1rem;
  font-weight: 600;
}

.class-session-selector__register-option:hover {
  background: #f5f7fb;
}

.class-session-selector__register-option.is-selected {
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.14);
}

.class-session-selector__register-option-tick {
  width: 1rem;
  display: inline-flex;
  justify-content: center;
  color: var(--bs-primary);
  flex-shrink: 0;
}

.class-session-selector__search-wrap,
.class-session-selector__bulk,
.class-session-selector__footer {
  padding: 0.85rem 1rem;
}

.class-session-selector__search-wrap,
.class-session-selector__bulk {
  border-bottom: 1px solid #e9eef5;
}

.class-session-selector__search {
  position: relative;
}

.class-session-selector__search i {
  position: absolute;
  top: 50%;
  left: 0.9rem;
  transform: translateY(-50%);
  color: #8d9bb1;
  font-size: 0.85rem;
}

.class-session-selector__search input {
  width: 100%;
  min-height: 2.8rem;
  padding: 0.7rem 1rem 0.7rem 2.5rem;
  border: 1px solid #dce3ee;
  border-radius: 0.85rem;
  background: #f8fafe;
  color: #212529;
  font-size: 1rem;
  font-weight: 400;
}

.class-session-selector__search input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  background: #fff;
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.14);
}

.class-session-selector__bulk {
  align-items: center;
  gap: 0.75rem;
}

.class-session-selector__bulk-btn {
  min-height: 2.2rem;
  padding: 0.35rem 0.95rem;
  border: 1px solid #d9e0ec;
  border-radius: 999px;
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 600;
}

.class-session-selector__bulk-btn:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.25);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.class-session-selector__bulk-btn.is-active {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.class-session-selector__bulk-summary {
  margin-left: auto;
  color: #6c757d;
  font-size: 0.82rem;
  font-weight: 600;
  text-align: right;
}

.class-session-selector__check-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.8rem 1rem;
  margin: 0;
  border-bottom: 1px solid #eef2f7;
  cursor: pointer;
}

.class-session-selector__check-row:last-child {
  border-bottom: 0;
}

.class-session-selector__check-row:hover {
  background: #f8fafe;
}

.class-session-selector__check-row input[type=checkbox] {
  width: 1rem;
  height: 1rem;
  margin: 0;
  accent-color: var(--bs-primary);
  flex-shrink: 0;
  cursor: pointer;
}

.class-session-selector__check-copy {
  min-width: 0;
  color: #212529;
  font-size: 1rem;
  font-weight: 600;
}

.class-session-selector__check-time {
  margin-left: auto;
  color: #71839d;
  font-size: 0.9rem;
  font-weight: 400;
  white-space: nowrap;
}

.class-session-selector__none {
  padding: 1.2rem 1rem;
  color: #71839d;
  font-size: 0.84rem;
  font-weight: 400;
  text-align: center;
}

.class-session-selector__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  background: #fbfcfe;
}

.class-session-selector__footer-btn {
  min-height: 3rem;
  padding: 0.65rem 1.35rem;
  border-radius: 0.9rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.class-session-selector__footer-btn.is-ghost {
  border: 1px solid #d9e0ec;
  background: #fff;
  color: #56657e;
}

.class-session-selector__footer-btn.is-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: var(--bs-primary-foreground);
}

.class-session-selector__counters {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding-top: 1.95rem;
}

.class-session-selector__counter {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.7rem;
  padding: 0.55rem 1rem;
  border: 1px solid #d9e0ec;
  border-radius: 999px;
  background: #fff;
  color: #6c757d;
  font-size: 0.95rem;
  font-weight: 400;
  white-space: nowrap;
}

.class-session-selector__counter strong {
  color: #212529;
  font-weight: 700;
}

.class-session-selector__dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  flex-shrink: 0;
}

.class-session-selector__dot.is-enrolled {
  background: #1f9d60;
}

.class-session-selector__dot.is-trials {
  background: #5b21b6;
}

.class-session-selector__dot.is-capacity {
  background: var(--bs-primary);
}

.class-session-selector__dot.is-due-start {
  background: #f59e0b;
}

.class-session-selector__dot.is-due-end {
  background: #e11d48;
}

.class-group-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
}

.class-group-title-row__heading {
  font-size: 1.25rem;
  line-height: 1.2;
}

.class-group-title-row__counters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.class-session-selector__counter--inline {
  min-height: 1.5rem;
  padding: 0.1rem 0.65rem;
  gap: 0.4rem;
  font-size: 0.8125rem;
  line-height: 1.2;
}

.class-session-selector__counter--inline strong {
  font-size: 0.8125rem;
}

.class-session-selector__counter--inline .class-session-selector__dot {
  width: 0.45rem;
  height: 0.45rem;
}

.class-session-selector__applied {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.7rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e8edf5;
}

.class-session-selector__applied-label {
  color: #6c757d;
  font-size: 0.95rem;
  font-weight: 600;
}

.class-session-selector__chip {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.3rem 0.9rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.32);
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 0.95rem;
  font-weight: 600;
}

@media (max-width: 991.98px) {
  .class-session-selector__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .class-session-selector__counters {
    grid-column: 1/-1;
    padding-top: 0;
    flex-wrap: wrap;
  }
}
@media (max-width: 575.98px) {
  .class-session-selector__panel {
    padding: 1rem;
    border-radius: 1.15rem;
  }
  .class-session-selector__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }
  .class-session-selector__trigger {
    min-height: 3.15rem;
  }
  .class-session-selector__menu {
    left: -0.15rem;
    right: -0.15rem;
  }
  .class-session-selector__bulk,
  .class-session-selector__applied,
  .class-session-selector__helper-wrap,
  .class-session-selector__counters {
    flex-wrap: wrap;
  }
  .class-session-selector__bulk-summary,
  .class-session-selector__check-time {
    margin-left: 0;
    width: 100%;
    text-align: left;
  }
  .class-session-selector__footer {
    justify-content: stretch;
  }
  .class-session-selector__footer-btn {
    flex: 1 1 0;
  }
  .class-session-selector__counter {
    flex: 1 1 0;
    justify-content: center;
  }
}
.classes-admin-explorer {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.classes-admin-explorer__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.classes-admin-explorer__mobile-actions,
.classes-admin-explorer__mobile-summary,
.classes-admin-explorer__mobile-sheet-backdrop,
.classes-admin-explorer__mobile-sheet-head,
.classes-admin-explorer__filters-foot {
  display: none;
}

.classes-admin-explorer__filters-card {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}

.classes-admin-explorer__filters-foot {
  margin-top: 0.35rem;
  justify-content: flex-end;
  gap: 12px;
}

.classes-admin-explorer__filters-reset {
  border: 1px solid #dfe5ef;
  background: #fff;
  color: #64748b;
  border-radius: 12px;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 0.8rem;
  font-weight: 700;
}

.classes-admin-explorer__filters-reset:disabled {
  opacity: 0.5;
}

.classes-admin-explorer__filters-apply {
  display: none;
  border: 0;
  border-radius: 12px;
  min-height: 36px;
  padding: 8px 16px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
}

.classes-admin-explorer__title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.55rem;
  font-weight: 800;
  line-height: 1.1;
}

.classes-admin-explorer__subtitle,
.classes-admin-explorer__stat-copy,
.classes-admin-explorer__location,
.classes-admin-explorer__when-sub,
.classes-admin-explorer__mobile-meta {
  color: #6b7a99;
  font-size: 0.84rem;
  line-height: 1.45;
}

.classes-admin-explorer__stats {
  display: block;
}

.classes-admin-explorer__stats-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.85rem;
}

.classes-admin-explorer__stat {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1rem 1.1rem;
  border: 1px solid #e3e8f0;
  border-radius: 16px;
  background: #fff;
}

.classes-admin-explorer__stat-icon {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.classes-admin-explorer__stat-icon.is-primary {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}
.classes-admin-explorer__stat-icon.is-success {
  background: rgba(14, 159, 110, 0.12);
  color: #0f9f6e;
}
.classes-admin-explorer__stat-icon.is-info {
  background: rgba(14, 165, 233, 0.12);
  color: #0ea5e9;
}
.classes-admin-explorer__stat-icon.is-danger {
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
}
.classes-admin-explorer__stat-icon.is-warning {
  background: rgba(245, 158, 11, 0.14);
  color: #f59e0b;
}

.classes-admin-explorer__stat-label {
  color: #6b7a99;
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.classes-admin-explorer__stat-value {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
  margin-top: 0.2rem;
}

.classes-admin-explorer__toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
  padding: 1rem 1.1rem;
  border: 1px solid #e3e8f0;
  border-radius: 18px;
  background: #fff;
}

.classes-admin-explorer__search-wrap {
  position: relative;
}
.classes-admin-explorer__search-wrap i {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #8a96b0;
  font-size: 0.88rem;
}

.classes-admin-explorer__search {
  width: 100%;
  min-height: 48px;
  padding: 0.8rem 1rem 0.8rem 2.6rem;
  border: 1px solid #d9e1ec;
  border-radius: 14px;
  background: #fbfcfe;
  color: #1e2a4a;
  font-size: 0.9rem;
  font-weight: 600;
  outline: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.classes-admin-explorer__search:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), 0.08);
}

.classes-admin-explorer__day-chips,
.classes-admin-explorer__toolbar-row,
.classes-admin-explorer__mobile-pills,
.classes-admin-explorer__group-bar-row,
.classes-admin-explorer__group-title-row,
.classes-admin-explorer__mobile-top,
.classes-admin-explorer__cap-head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.classes-admin-explorer__day-chips,
.classes-admin-explorer__toolbar-row,
.classes-admin-explorer__mobile-pills {
  flex-wrap: wrap;
}

.classes-admin-explorer__chip,
.classes-admin-explorer__filter-btn,
.classes-admin-explorer__segment-btn {
  border: 1px solid #d9e1ec;
  background: #fff;
  color: #1e2a4a;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.2;
}

.classes-admin-explorer__chip {
  min-height: 38px;
  padding: 0.5rem 0.95rem;
  border-radius: 12px;
}
.classes-admin-explorer__chip.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.32);
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}

.classes-admin-explorer__segment {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.2rem;
  border: 1px solid #d9e1ec;
  border-radius: 14px;
  background: #fff;
}

.classes-admin-explorer__segment-btn {
  min-height: 38px;
  padding: 0.5rem 0.95rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.classes-admin-explorer__segment-btn.is-active {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  border-color: transparent;
}

.classes-admin-explorer__filter-btn {
  min-height: 40px;
  padding: 0.6rem 0.95rem;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.classes-admin-explorer__dropdown {
  min-width: 240px;
  padding: 1rem;
  border-radius: 16px;
  border: 1px solid #d9e1ec;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}
.classes-admin-explorer__dropdown.is-wide {
  min-width: 300px;
}
.classes-admin-explorer__dropdown.is-payment {
  min-width: 300px;
}
.classes-admin-explorer__dropdown.is-columns {
  min-width: 300px;
}
.classes-admin-explorer__dropdown.is-capacity {
  min-width: 390px;
}

.classes-admin-explorer__dropdown-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
  color: #6b7a99;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.classes-admin-explorer__dropdown-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.8rem;
}

.classes-admin-explorer__dropdown-action {
  min-height: 46px;
  padding: 0.7rem 0.9rem;
  border: 1px solid #d9e1ec;
  border-radius: 14px;
  background: #fff;
  color: #68778f;
  font-size: 0.85rem;
  font-weight: 800;
  text-align: center;
}
.classes-admin-explorer__dropdown-action.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.16);
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}
.classes-admin-explorer__dropdown-action.is-success {
  border-color: rgba(15, 159, 110, 0.32);
  background: rgba(15, 159, 110, 0.12);
  color: #166534;
}
.classes-admin-explorer__dropdown-action.is-danger {
  border-color: rgba(239, 68, 68, 0.32);
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}

.classes-admin-explorer__toggle-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.45rem 0.25rem;
  border: 0;
  background: transparent;
  color: #1e2a4a;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: left;
}

.classes-admin-explorer__toggle-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  color: var(--bs-secondary);
}

.classes-admin-explorer__toggle-label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.classes-admin-explorer__toggle-icon {
  color: #6b7a99;
  font-size: 0.8rem;
  flex-shrink: 0;
}

.classes-admin-explorer__toggle-count {
  color: #68778f;
  font-size: 0.82rem;
  font-weight: 700;
  flex-shrink: 0;
}

.classes-admin-explorer__toggle-switch {
  width: 46px;
  height: 26px;
  padding: 3px;
  border-radius: 999px;
  background: #e9edf3;
  position: relative;
  transition: background-color 0.18s ease;
  flex-shrink: 0;
}
.classes-admin-explorer__toggle-switch.is-on {
  background: var(--bs-primary);
}

.classes-admin-explorer__toggle-knob {
  width: 20px;
  height: 20px;
  display: block;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 4px rgba(15, 23, 42, 0.15);
  transition: transform 0.18s ease;
}

.classes-admin-explorer__toggle-switch.is-on .classes-admin-explorer__toggle-knob {
  transform: translateX(20px);
}

.classes-admin-explorer__toggle {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 1.5px solid #cdd7e4;
  background: #eef2f7;
  position: relative;
  flex-shrink: 0;
}
.classes-admin-explorer__toggle.is-on {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.15);
}
.classes-admin-explorer__toggle.is-on::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 999px;
  background: var(--bs-primary);
}

.classes-admin-explorer__filter-count,
.classes-admin-explorer__filter-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
}

.classes-admin-explorer__filter-meta.is-over {
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
}

.classes-admin-explorer__capacity-summary,
.classes-admin-explorer__capacity-threshold-row,
.classes-admin-explorer__capacity-customise-toggle,
.classes-admin-explorer__capacity-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.classes-admin-explorer__capacity-summary {
  margin-bottom: 0.8rem;
}

.classes-admin-explorer__capacity-range-value {
  color: #223154;
  font-size: 1.05rem;
  font-weight: 900;
}
.classes-admin-explorer__capacity-range-value.is-over {
  color: #e63946;
}

.classes-admin-explorer__capacity-count {
  color: #6f7f95;
  font-size: 0.82rem;
  font-weight: 700;
}

.classes-admin-explorer__capacity-slider {
  position: relative;
  margin-bottom: 1rem;
  padding: 0.25rem 0 0.35rem;
}

.classes-admin-explorer__capacity-slider-track {
  height: 6px;
  border-radius: 999px;
}

.classes-admin-explorer__capacity-range {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 13px;
  margin: 0;
  background: transparent;
  pointer-events: none;
  appearance: none;
  -webkit-appearance: none;
}
.classes-admin-explorer__capacity-range::-webkit-slider-runnable-track {
  height: 6px;
  background: transparent;
}
.classes-admin-explorer__capacity-range::-moz-range-track {
  height: 6px;
  background: transparent;
}
.classes-admin-explorer__capacity-range::-webkit-slider-thumb {
  width: 18px;
  height: 18px;
  margin-top: -6px;
  border: 3px solid #5d63f3;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(93, 99, 243, 0.18);
  pointer-events: auto;
  appearance: none;
  -webkit-appearance: none;
}
.classes-admin-explorer__capacity-range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border: 3px solid #5d63f3;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(93, 99, 243, 0.18);
  pointer-events: auto;
}

.classes-admin-explorer__capacity-legend {
  padding: 0.9rem 0.9rem 0.75rem;
  border-radius: 14px;
  background: #f8fafc;
  margin-bottom: 0.9rem;
}

.classes-admin-explorer__capacity-legend-title {
  margin-bottom: 0.7rem;
  color: #6f7f95;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.classes-admin-explorer__capacity-legend-row {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: center;
  gap: 0.65rem;
  padding: 0.2rem 0;
}

.classes-admin-explorer__capacity-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: inline-block;
  flex-shrink: 0;
}
.classes-admin-explorer__capacity-dot.is-low {
  background: #e63946;
}
.classes-admin-explorer__capacity-dot.is-mid {
  background: #ffbf00;
}
.classes-admin-explorer__capacity-dot.is-high {
  background: #1f8f57;
}
.classes-admin-explorer__capacity-dot.is-over {
  background: #e63946;
}
.classes-admin-explorer__capacity-dot.is-trial {
  background: #22b8db;
}

.classes-admin-explorer__capacity-legend-range {
  color: var(--bs-secondary);
  font-size: 0.83rem;
  font-weight: 800;
}

.classes-admin-explorer__capacity-legend-copy,
.classes-admin-explorer__capacity-help,
.classes-admin-explorer__capacity-threshold-copy {
  color: #6f7f95;
  font-size: 0.8rem;
}

.classes-admin-explorer__capacity-presets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.classes-admin-explorer__capacity-preset,
.classes-admin-explorer__capacity-clear,
.classes-admin-explorer__capacity-save,
.classes-admin-explorer__capacity-reset {
  min-height: 46px;
  border: 1px solid #d9e1ec;
  border-radius: 14px;
  background: #fff;
  color: #6f7f95;
  font-size: 0.84rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
}

.classes-admin-explorer__capacity-preset {
  padding: 0.65rem 0.9rem;
}
.classes-admin-explorer__capacity-preset.is-full-row {
  grid-column: 1/-1;
}
.classes-admin-explorer__capacity-preset.is-active.is-low {
  border-color: rgba(230, 57, 70, 0.32);
  background: rgba(230, 57, 70, 0.1);
  color: #b4232d;
}
.classes-admin-explorer__capacity-preset.is-active.is-mid {
  border-color: rgba(255, 191, 0, 0.38);
  background: rgba(255, 191, 0, 0.14);
  color: #9c6a00;
}
.classes-admin-explorer__capacity-preset.is-active.is-high {
  border-color: rgba(31, 143, 87, 0.32);
  background: rgba(31, 143, 87, 0.12);
  color: #166534;
}
.classes-admin-explorer__capacity-preset.is-active.is-over {
  border-color: rgba(230, 57, 70, 0.5);
  background: rgba(230, 57, 70, 0.08);
  color: #b4232d;
}

.classes-admin-explorer__capacity-clear {
  width: 100%;
  margin-bottom: 0.9rem;
  color: #223154;
}

.classes-admin-explorer__capacity-customise {
  padding-top: 0.85rem;
  border-top: 1px solid #e8edf6;
}

.classes-admin-explorer__capacity-customise-toggle {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6f7f95;
  font-size: 0.84rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.classes-admin-explorer__capacity-customise-chevron {
  transition: transform 0.18s ease;
}
.classes-admin-explorer__capacity-customise-chevron.is-open {
  transform: rotate(180deg);
}

.classes-admin-explorer__capacity-customise-body {
  margin-top: 0.9rem;
}

.classes-admin-explorer__capacity-threshold {
  margin-top: 0.85rem;
}

.classes-admin-explorer__capacity-threshold-label {
  margin-bottom: 0.45rem;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 800;
}

.classes-admin-explorer__capacity-threshold-row {
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.classes-admin-explorer__capacity-input {
  width: 76px;
  height: 44px;
  padding: 0.45rem 0.75rem;
  border: 1px solid #d9e1ec;
  border-radius: 12px;
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
}

.classes-admin-explorer__capacity-actions {
  margin-top: 1rem;
}

.classes-admin-explorer__capacity-save,
.classes-admin-explorer__capacity-reset {
  flex: 1 1 0;
}

.classes-admin-explorer__capacity-save {
  border-color: rgba(93, 99, 243, 0.22);
  background: #5d63f3;
  color: #fff;
}

.classes-admin-explorer__capacity-reset {
  color: #8a96b0;
}

.classes-admin-explorer__capacity-save:disabled,
.classes-admin-explorer__capacity-reset:disabled {
  opacity: 0.55;
  cursor: default;
}

.classes-admin-explorer__groups {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.classes-admin-explorer__group {
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.28);
  border-radius: 18px;
  background: white;
  overflow: visible;
}

.classes-admin-explorer__group-head {
  width: 100%;
  padding: 1rem 1.15rem;
  border: 0;
  background: transparent;
  text-align: left;
  position: relative;
  z-index: 2;
}

.classes-admin-explorer__group-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--bs-secondary);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.classes-admin-explorer__group-kicker span {
  color: #6b7a99;
  font-weight: 700;
}

.classes-admin-explorer__group-chevron {
  margin-left: auto;
  color: var(--bs-secondary);
  transition: transform 0.18s ease;
}

.classes-admin-explorer__group-head.is-collapsed .classes-admin-explorer__group-chevron {
  transform: rotate(90deg);
}

.classes-admin-explorer__group-bar-row {
  margin-top: 0.75rem;
}

.classes-admin-explorer__group-percent {
  min-width: 56px;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.95rem;
  font-weight: 800;
}
.classes-admin-explorer__group-percent.is-low {
  color: #ef4444;
}
.classes-admin-explorer__group-percent.is-mid {
  color: #f59e0b;
}
.classes-admin-explorer__group-percent.is-high {
  color: #0f9f6e;
}
.classes-admin-explorer__group-percent.is-over {
  color: #e63946;
}

.classes-admin-explorer__group-track,
.classes-admin-explorer__cap-track {
  flex: 1 1 auto;
  display: flex;
  position: relative;
  height: 16px;
  border-radius: 999px;
  background: #e8edf6;
  overflow: visible;
}

.classes-admin-explorer__bar-segment {
  position: relative;
}

.classes-admin-explorer__group-fill,
.classes-admin-explorer__cap-fill {
  height: 100%;
  display: block;
  border-radius: 0;
}
.classes-admin-explorer__group-fill:first-child,
.classes-admin-explorer__cap-fill:first-child {
  border-top-left-radius: 999px;
  border-bottom-left-radius: 999px;
}
.classes-admin-explorer__group-fill:last-child,
.classes-admin-explorer__cap-fill:last-child {
  border-top-right-radius: 999px;
  border-bottom-right-radius: 999px;
}
.classes-admin-explorer__group-fill:first-child:last-child,
.classes-admin-explorer__cap-fill:first-child:last-child {
  border-radius: 999px;
}
.classes-admin-explorer__group-fill.is-low,
.classes-admin-explorer__cap-fill.is-low {
  background: #e63946;
}
.classes-admin-explorer__group-fill.is-mid,
.classes-admin-explorer__cap-fill.is-mid {
  background: #ffbf00;
}
.classes-admin-explorer__group-fill.is-high,
.classes-admin-explorer__cap-fill.is-high {
  background: #1f9d62;
}
.classes-admin-explorer__group-fill.is-over,
.classes-admin-explorer__cap-fill.is-over {
  background: #e63946;
}
.classes-admin-explorer__group-fill.is-trial,
.classes-admin-explorer__cap-fill.is-trial {
  background: #22b8db;
}

@media (hover: hover) {
  .classes-admin-explorer__bar-segment[data-tooltip]:hover::after,
  .classes-admin-explorer__bar-segment[data-tooltip]:focus-visible::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 12px);
    transform: translateX(-50%);
    padding: 0.42rem 0.72rem;
    border-radius: 0.65rem;
    background: #000;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.2);
    pointer-events: none;
    z-index: 12;
  }
  .classes-admin-explorer__bar-segment[data-tooltip]:hover::before,
  .classes-admin-explorer__bar-segment[data-tooltip]:focus-visible::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: calc(100% + 6px);
    transform: translateX(-50%);
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #000;
    pointer-events: none;
    z-index: 12;
  }
}
.classes-admin-explorer__group-meta,
.classes-admin-explorer__trial-note,
.classes-admin-explorer__session-pill,
.classes-admin-explorer__pill,
.classes-admin-explorer__payment-pill,
.classes-admin-explorer__status,
.classes-admin-explorer__location {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.classes-admin-explorer__group-meta {
  color: #52647f;
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
}

.classes-admin-explorer__trial-note {
  color: #0e7490;
}

.classes-admin-explorer__trial-dot,
.classes-admin-explorer__status-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
  flex-shrink: 0;
}

.classes-admin-explorer__table-wrap {
  padding: 0 0 0.15rem;
}

.classes-admin-explorer__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.classes-admin-explorer__table th {
  padding: 0.85rem 1rem;
  background: rgba(255, 255, 255, 0.55);
  color: #6b7a99;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-top: 1px solid rgba(var(--bs-secondary-rgb), 0.18);
}
.classes-admin-explorer__table td {
  padding: 0.95rem 1rem;
  background: #fff;
  border-top: 1px solid #eef2f7;
  color: #1e2a4a;
  font-size: 0.86rem;
  vertical-align: middle;
}

.classes-admin-explorer__table-row {
  cursor: pointer;
}
.classes-admin-explorer__table-row:hover td {
  background: #fbfcff;
}
.classes-admin-explorer__table-row.is-selected td {
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.classes-admin-explorer__name-cell {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.classes-admin-explorer__name-bar {
  width: 4px;
  min-height: 38px;
  border-radius: 999px;
  background: var(--bs-primary);
  flex-shrink: 0;
}

.classes-admin-explorer__class-name {
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.35;
}

.classes-admin-explorer__group-pill,
.classes-admin-explorer__session-pill,
.classes-admin-explorer__pill,
.classes-admin-explorer__payment-pill,
.classes-admin-explorer__status {
  min-height: 28px;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
}

.classes-admin-explorer__group-pill,
.classes-admin-explorer__session-pill {
  margin-top: 0.35rem;
}

.classes-admin-explorer__group-pill {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
}

.classes-admin-explorer__session-pill {
  background: #f3f5f9;
  color: var(--bs-secondary);
}

.classes-admin-explorer__when-main {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.classes-admin-explorer__location {
  align-items: flex-start;
}
.classes-admin-explorer__location i {
  margin-top: 0.15rem;
  color: #8a96b0;
}

.classes-admin-explorer__cap-head {
  justify-content: space-between;
  color: var(--bs-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 0.35rem;
}

.classes-admin-explorer__pill {
  justify-content: center;
}
.classes-admin-explorer__pill.is-pending {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.2);
}
.classes-admin-explorer__pill.is-trial {
  background: rgba(34, 184, 219, 0.14);
  color: #0891b2;
  border: 1px solid rgba(34, 184, 219, 0.22);
}
.classes-admin-explorer__pill.is-waiting {
  background: rgba(245, 158, 11, 0.14);
  color: #b45309;
  border: 1px solid rgba(245, 158, 11, 0.24);
}
.classes-admin-explorer__pill.is-disabled {
  background: #f3f5f9;
  color: #7b879d;
  border: 1px solid #e3e8f0;
}

.classes-admin-explorer__payment-pill {
  border: 1px solid transparent;
}
.classes-admin-explorer__payment-pill.is-recurring {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border-color: rgba(var(--bs-primary-rgb), 0.22);
  color: var(--bs-primary);
}
.classes-admin-explorer__payment-pill.is-term {
  background: rgba(34, 184, 219, 0.14);
  border-color: rgba(34, 184, 219, 0.22);
  color: #0891b2;
}
.classes-admin-explorer__payment-pill.is-multi {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(245, 158, 11, 0.24);
  color: #b45309;
}
.classes-admin-explorer__payment-pill.is-payg {
  background: #f3f5f9;
  border-color: #e3e8f0;
  color: #65748b;
}

.classes-admin-explorer__payment-dates {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-top: 0.45rem;
}

.classes-admin-explorer__payment-date {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #52647f;
  font-size: 0.78rem;
  font-weight: 700;
}

.classes-admin-explorer__status.is-space {
  background: rgba(15, 159, 110, 0.12);
  color: #0f9f6e;
}
.classes-admin-explorer__status.is-full {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
}

.classes-admin-explorer__open-btn {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  border-radius: 10px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}
.classes-admin-explorer__open-btn:hover {
  background: rgba(var(--bs-primary-rgb), 0.14);
}

.classes-admin-explorer__empty {
  color: #8a96b0;
  font-size: 0.85rem;
  font-weight: 700;
}

.classes-admin-explorer__mobile-list {
  display: grid;
  gap: 0.8rem;
  padding: 0.9rem;
}

.classes-admin-explorer__mobile-card {
  width: 100%;
  padding: 0.95rem 0.95rem 1rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  border-radius: 16px;
  background: #fff;
  text-align: left;
  position: relative;
}
.classes-admin-explorer__mobile-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 4px;
  border-radius: 999px;
  background: var(--bs-primary);
}
.classes-admin-explorer__mobile-card.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.06);
  border-color: rgba(var(--bs-primary-rgb), 0.28);
}

.classes-admin-explorer__mobile-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding-left: 0.55rem;
}

.classes-admin-explorer__mobile-title {
  min-width: 0;
}

.classes-admin-explorer__mobile-top-actions {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  flex-shrink: 0;
}

.classes-admin-explorer__mobile-meta {
  margin-top: 0.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.8rem;
  padding-left: 0.55rem;
  color: #52647f;
  font-size: 0.82rem;
  font-weight: 700;
}
.classes-admin-explorer__mobile-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.classes-admin-explorer__mobile-meta i {
  color: #8a96b0;
}

.classes-admin-explorer__mobile-card .classes-admin-explorer__location,
.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-head,
.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-track,
.classes-admin-explorer__mobile-card .classes-admin-explorer__mobile-pills {
  margin-left: 0.55rem;
}

.classes-admin-explorer__mobile-card .classes-admin-explorer__location {
  margin-top: 0.35rem;
  color: #52647f;
  font-size: 0.82rem;
}

.classes-admin-explorer__mobile-card .classes-admin-explorer__session-pill {
  margin-top: 0;
}

.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-head {
  margin-top: 0.55rem;
  font-size: 0.88rem;
  font-weight: 800;
}

.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-track {
  height: 8px;
}

.classes-admin-explorer__mobile-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: flex-start;
}

.classes-admin-explorer__mobile-pills .classes-admin-explorer__pill,
.classes-admin-explorer__mobile-pills .classes-admin-explorer__payment-pill {
  min-height: 30px;
}

.classes-admin-explorer__mobile-pills .classes-admin-explorer__pill {
  gap: 0.35rem;
}

.classes-admin-explorer__mobile-pills .classes-admin-explorer__payment-dates {
  width: 100%;
  margin-top: -0.15rem;
  margin-left: 0.1rem;
}

.classes-admin-explorer__mobile-pills .classes-admin-explorer__payment-date {
  font-size: 0.8rem;
}

@media (max-width: 1399.98px) {
  .classes-admin-explorer__stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 991.98px) {
  .classes-admin-explorer__stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .classes-admin-explorer__group-bar-row {
    flex-wrap: wrap;
  }
  .classes-admin-explorer__group-meta {
    width: 100%;
    justify-content: flex-end;
  }
}
@media (max-width: 767.98px) {
  .classes-admin-explorer__title {
    font-size: 1.35rem;
  }
  .classes-admin-explorer__subtitle {
    display: none;
  }
  .classes-admin-explorer__mobile-summary {
    display: block;
    margin-top: 0.15rem;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
  }
  .classes-admin-explorer__mobile-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    flex-shrink: 0;
  }
  .classes-admin-explorer__mobile-icon-btn {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid #dbe3f1;
    background: #fff;
    color: #1e2a4a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  }
  .classes-admin-explorer__mobile-icon-btn.is-active {
    border-color: rgba(var(--bs-primary-rgb), 0.28);
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
  }
  .classes-admin-explorer__mobile-sheet-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1090;
    border: 0;
    background: rgba(15, 23, 42, 0.36);
  }
  .classes-admin-explorer__mobile-sheet-head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    padding-top: 14px;
    flex-shrink: 0;
    touch-action: none;
    user-select: none;
  }
  .classes-admin-explorer__mobile-sheet-title {
    color: #1e2a4a;
    font-size: 1rem;
    font-weight: 800;
  }
  .classes-admin-explorer__mobile-sheet-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 12px;
    background: #f8fafc;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .classes-admin-explorer__mobile-sheet-handle {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 5px;
    border-radius: 999px;
    background: #dbe3f1;
  }
  .classes-admin-explorer__stats:not(.is-mobile-open) {
    display: none;
  }
  .classes-admin-explorer__stats.is-mobile-open {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 20px 16px calc(12px + env(safe-area-inset-bottom));
    background: #fff;
    border-radius: 26px 26px 0 0;
    box-shadow: 0 -20px 60px rgba(15, 23, 42, 0.18);
    max-height: min(72vh, 620px);
    overflow: hidden;
    will-change: transform;
    box-sizing: border-box;
    width: 100%;
  }
  .classes-admin-explorer__stats.is-mobile-open .classes-admin-explorer__stats-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    overflow-y: auto;
    padding-bottom: 0.25rem;
  }
  .classes-admin-explorer__stats.is-mobile-open .classes-admin-explorer__stat {
    padding: 0.85rem 0.95rem;
  }
  .classes-admin-explorer__filters-card:not(.is-mobile-open) {
    display: none;
  }
  .classes-admin-explorer__filters-card.is-mobile-open {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    margin: 0;
    border-radius: 26px 26px 0 0;
    padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -20px 60px rgba(15, 23, 42, 0.18);
    max-height: min(82vh, 760px);
    overflow: hidden;
    will-change: transform;
    gap: 0.85rem;
    box-sizing: border-box;
    width: 100%;
  }
  .classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__day-chips,
  .classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__toolbar-row {
    overflow-y: auto;
    padding-bottom: 0.25rem;
  }
  .classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__dropdown {
    position: static;
    transform: none;
    display: none;
    float: none;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin-top: 0.35rem;
    box-shadow: none;
    border: 1px solid #e3e8f0;
  }
  .classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__dropdown.show {
    display: block;
  }
  .classes-admin-explorer__filters-foot {
    display: flex;
    justify-content: stretch;
    gap: 10px;
    margin-top: auto;
    padding-top: 0.35rem;
  }
  .classes-admin-explorer__filters-reset,
  .classes-admin-explorer__filters-apply {
    width: 100%;
    min-height: 40px;
    font-size: 0.8rem;
  }
  .classes-admin-explorer__filters-apply {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .classes-admin-explorer__toolbar {
    padding: 0.9rem;
  }
  .classes-admin-explorer__filter-btn,
  .classes-admin-explorer__segment,
  .classes-admin-explorer__segment-btn {
    width: 100%;
    justify-content: center;
  }
  .classes-admin-explorer__toolbar-row > .dropdown {
    width: 100%;
  }
  .classes-admin-explorer__dropdown {
    left: 0;
    right: auto;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
}
.booking-card {
  position: sticky;
  top: 1.25rem;
}

.gd-hdr {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a96b0;
  font-weight: 700;
  padding: 14px 16px;
  border-bottom: 1px solid #eef1f4;
}

.gd-hdr-name {
  color: var(--bs-primary);
}

.gd-photo-wrap {
  position: relative;
}

.gd-photo {
  width: 100%;
  object-fit: cover;
  display: block;
}

.gd-photo-video {
  aspect-ratio: 16 / 9;
  min-height: 190px;
  border: 0;
  background: #000;
}

.gd-badge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 0.75rem;
  font-weight: 800;
}

.gd-badge-ok {
  background: rgba(var(--bs-primary-rgb), 0.92);
  color: #fff;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.4);
}

.gd-badge-low {
  background: #fef3c7;
  border: 1px solid #fcd34d;
  color: #92400e;
}

.gd-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid #f3f4f6;
  color: #6b7280;
}

.gd-row-last {
  border-bottom: none;
}

.gd-lbl {
  font-size: 0.82rem;
  color: #8a96b0;
  font-weight: 400;
}

.gd-val {
  font-size: 0.85rem;
  font-weight: 800;
  color: #1e2a4a;
  text-align: right;
}

.gd-val-suffix {
  font-size: 0.75rem;
  font-weight: 600;
  color: #8a96b0;
}

.gd-subs {
  min-width: 220px;
  max-width: 250px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sub-row {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  border-radius: 10px;
  overflow: hidden;
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.sub-row-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: 0;
  background: rgba(var(--bs-primary-rgb), 0.06);
  padding: 8px 10px;
  text-align: left;
}

.sub-row-name {
  color: #4b5a7a;
  font-size: 0.85rem;
  font-weight: 700;
  flex: 1;
}

.sub-row-price {
  color: var(--bs-primary);
  font-weight: 800;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  flex-shrink: 0;
}
.sub-row-price span {
  color: #8a96b0;
  font-weight: 700;
  font-size: 0.76rem;
}

.sub-row-chevron {
  font-size: 0.72rem;
  color: var(--bs-primary);
  transition: transform 0.15s;
}

.sub-row.open .sub-row-chevron {
  transform: rotate(180deg);
}

.sub-row-body {
  border-top: 1px dashed rgba(var(--bs-primary-rgb), 0.3);
  padding: 8px 10px;
  color: #4b5a7a;
  font-size: 0.86rem;
}

.avail-banner {
  margin: 0 12px 12px;
  border-radius: 12px;
  padding: 11px 12px;
  display: flex;
  gap: 8px;
  font-weight: 700;
  font-size: 0.82rem;
  align-items: flex-start;
  line-height: 1.45;
}

.avail-ok {
  background: rgba(var(--bs-primary-rgb), 0.07);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  color: var(--bs-primary);
}
.avail-ok i {
  margin-top: 1px;
  flex-shrink: 0;
}

.avail-full {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  color: #92400e;
}
.avail-full i {
  margin-top: 1px;
  flex-shrink: 0;
}

.avail-me-ok {
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: rgba(var(--bs-primary-rgb), 0.07);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  color: var(--bs-primary);
  font-size: 0.95rem;
  font-weight: 600;
}
.avail-me-ok .bi {
  font-size: 1.2rem;
  flex-shrink: 0;
  line-height: 1;
  color: var(--bs-primary);
}

.btn-book-now {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
  width: 95%;
  padding: 11px 18px;
  border: none;
  border-radius: 12px;
  background: var(--bs-primary);
  color: #fff;
  font-weight: 800;
  font-size: 0.98rem;
  text-decoration: none;
  transition: filter 0.2s;
}
.btn-book-now:hover {
  filter: brightness(0.93);
  color: #fff;
}

.btn-book-wide {
  width: 100%;
  justify-content: center;
  border-radius: 13px;
  min-height: 52px;
  font-size: 1.05rem;
}

.btn-book-now.btn-join-wl {
  background: #d97706;
  color: #fff;
  text-decoration: none;
}
.btn-book-now.btn-join-wl:hover {
  color: #fff;
  filter: brightness(0.93);
}

.fade-swap {
  opacity: 1;
  transition: opacity 0.18s ease-in-out;
}
.fade-swap.is-fading {
  opacity: 0;
}

.booking-panel-only {
  background: transparent !important;
  padding: 0 !important;
}
.booking-panel-only .book-right {
  flex: 0 0 100%;
  max-width: 100%;
}
.booking-panel-only .book-right .card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.15) !important;
  border-radius: 14px;
  box-shadow: none !important;
}
.booking-panel-only .book-right .card-body {
  padding: 1rem;
}
.booking-panel-only .booking-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--bs-primary);
  font-size: 0.95rem;
  text-decoration: none;
}
.booking-panel-only .booking-steps {
  color: rgba(var(--bs-primary-rgb), 0.55) !important;
  font-size: 0.95rem;
  font-weight: 600;
  row-gap: 0.25rem;
}
.booking-panel-only .trial-info {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  border-radius: 12px;
  padding: 0.7rem 0.8rem;
}
.booking-panel-only .attendee-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.booking-panel-only .attendee-card {
  border-radius: 12px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.booking-panel-only .attendee-card-selected {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
}
.booking-panel-only .attendee-card .attendee-row {
  width: 100%;
  border: none;
  border-radius: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.62rem 0.75rem;
  color: #000;
  font-weight: 600;
  background: transparent;
}
.booking-panel-only .attendee-card:not(.attendee-card-selected) .attendee-row {
  background: #fff;
}
.booking-panel-only .attendee-card .attendee-row.attendee-row-selected {
  background: transparent;
  color: #fff;
}
.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .attendee-left i {
  color: #fff;
}
.booking-panel-only .attendee-row {
  width: 100%;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  background: #fff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.62rem 0.75rem;
  color: var(--bs-primary);
  font-weight: 600;
}
.booking-panel-only .attendee-row.attendee-row-selected {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}
.booking-panel-only .attendee-row:disabled {
  opacity: 0.8;
  cursor: not-allowed;
}
.booking-panel-only .attendee-card-body {
  background: #fff;
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.35);
}
.booking-panel-only .attendee-card-body .form-label {
  color: var(--bs-primary);
  letter-spacing: 0.04em;
}
.booking-panel-only .attendee-card:not(.attendee-card-selected) .attendee-card-body {
  border-top: 1px solid rgba(var(--bs-primary-rgb), 0.2);
}
.booking-panel-only .attendee-left {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}
.booking-panel-only .attendee-check {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.32);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  color: #fff;
  background: rgba(var(--bs-primary-rgb), 0.06);
}
.booking-panel-only .attendee-check-selected {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.45);
}
.booking-panel-only .student-status-pill {
  border-radius: 999px;
  font-size: 0.72rem;
  padding: 0.18rem 0.5rem;
  font-weight: 700;
}
.booking-panel-only .trial-pill {
  border: 1px solid rgba(var(--bs-warning-rgb), 0.55) !important;
  background: rgba(var(--bs-warning-rgb), 0.35) !important;
  color: #78350f !important;
}
.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .badge.trial-pill,
.booking-panel-only .attendee-row.attendee-row-selected .badge.trial-pill {
  border: 1px solid rgba(245, 158, 11, 0.85) !important;
  background: #fde68a !important;
  color: #78350f !important;
  box-shadow: none !important;
}
.booking-panel-only .class-offer-pill {
  border: 1px solid rgba(34, 197, 94, 0.5) !important;
  background: rgba(34, 197, 94, 0.12) !important;
  color: #166534 !important;
  padding-inline: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}
.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .badge.class-offer-pill,
.booking-panel-only .attendee-row.attendee-row-selected .badge.class-offer-pill {
  border: 1px solid rgba(134, 239, 172, 0.75) !important;
  background: #dcfce7 !important;
  color: #166534 !important;
  box-shadow: 0 0 0 1px rgba(22, 101, 52, 0.05) inset !important;
}
.booking-panel-only .too-young-pill {
  background: var(--bs-danger) !important;
  color: #fff !important;
}
.booking-panel-only .session-date-select {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.35) !important;
  border-radius: 10px;
  box-shadow: none !important;
  font-size: 1.05rem;
}
.booking-panel-only .summary-card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.12) !important;
}
.booking-panel-only .booking-summary-class {
  font-size: 0.92rem;
  margin-bottom: 0.75rem;
  color: #6b7a99;
}
.booking-panel-only .booking-summary-class strong {
  color: #1e2a4a;
}
.booking-panel-only .booking-summary-student-card {
  background: #fff;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.14);
  border-radius: 10px;
  padding: 0.65rem 0.85rem;
  margin-bottom: 0.5rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.booking-panel-only .booking-summary-student-card:last-child {
  margin-bottom: 0;
}
.booking-panel-only .booking-summary-student-card i,
.booking-panel-only .booking-summary-student-card label {
  display: none !important;
}
.booking-panel-only .booking-summary-student-name {
  font-weight: 800;
  color: #1e2a4a;
  font-size: 0.9rem;
  margin-bottom: 0.2rem;
}
.booking-panel-only .booking-summary-student-detail {
  font-size: 0.82rem;
  color: #6b7a99;
  line-height: 1.35;
}
.booking-panel-only .booking-summary-student-detail .text-warning {
  color: #d97706 !important;
}
.booking-panel-only .multievent-help {
  color: #7c8ba8;
  font-size: 0.95rem;
}
.booking-panel-only .multievent-student-wrap {
  margin-bottom: 1rem;
}
.booking-panel-only .multievent-student-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.45rem;
}
.booking-panel-only .multievent-student-name {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--bs-secondary);
  font-weight: 800;
}
.booking-panel-only .multievent-selected-chip {
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  background: rgba(var(--bs-primary-rgb), 0.14);
  color: var(--bs-primary);
  font-size: 0.74rem;
  font-weight: 800;
}
.booking-panel-only .multievent-session-card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  border-radius: 12px;
  background: #fff;
  padding: 0.65rem 0.75rem;
  margin-bottom: 0.5rem;
}
.booking-panel-only .multievent-session-card.selected {
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  background: rgba(var(--bs-primary-rgb), 0.06);
}
.booking-panel-only .multievent-session-card.disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
@media (min-width: 768px) {
  .booking-panel-only .multievent-session-card:not(.disabled) {
    cursor: pointer;
  }
}
.booking-panel-only .multievent-session-card.closed {
  border-color: rgba(var(--bs-danger-rgb), 0.45);
  background: rgba(var(--bs-danger-rgb), 0.04);
}
.booking-panel-only .multievent-session-card.closed .multievent-session-name,
.booking-panel-only .multievent-session-card.closed .multievent-session-meta {
  color: var(--bs-danger);
  text-decoration: line-through;
}
.booking-panel-only .booking-closed-badge {
  color: var(--bs-danger);
  background: rgba(var(--bs-danger-rgb), 0.1);
  border: 1px solid rgba(var(--bs-danger-rgb), 0.35);
}
.booking-panel-only .multievent-session-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
}
.booking-panel-only .multievent-session-name {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #1e2a4a;
  font-weight: 800;
}
.booking-panel-only .multievent-session-name .form-check-input {
  margin-top: 0;
}
.booking-panel-only .multievent-session-price {
  color: var(--bs-primary);
  font-size: 1.05rem;
  font-weight: 900;
}
.booking-panel-only .multievent-session-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
  color: #4b5563;
  font-size: 0.81rem;
  font-weight: 600;
  margin-top: 0.2rem;
}
.booking-panel-only .multievent-session-meta i {
  color: #8a96b0;
}
.booking-panel-only .multievent-summary-student {
  border-bottom: 1px solid #eceff5;
  padding-bottom: 0.55rem;
  margin-bottom: 0.55rem;
}
.booking-panel-only .multievent-summary-student-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #1e2a4a;
  font-weight: 800;
  margin-bottom: 0.2rem;
}
.booking-panel-only .multievent-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.84rem;
  color: #5f6f8f;
  margin-top: 0.15rem;
}
.booking-panel-only .multievent-summary-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.7rem;
  padding-top: 0.65rem;
  border-top: 1px solid #dbe5ef;
  text-transform: uppercase;
  color: #8a96b0;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.booking-panel-only .multievent-summary-total strong {
  color: var(--bs-primary);
  font-size: 1.9rem;
  font-weight: 900;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
}
.booking-panel-only .payg-student-wrap {
  margin-bottom: 1rem;
  padding: 0.85rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.14);
  border-radius: 14px;
  background: #f8fbff;
}
.booking-panel-only .payg-student-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}
.booking-panel-only .payg-student-hdr .student-name {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #1e2a4a;
  font-weight: 800;
  font-size: 0.98rem;
}
.booking-panel-only .payg-student-hdr .student-name i {
  color: #6b7a99;
}
.booking-panel-only .payg-selected-chip {
  border-radius: 999px;
  padding: 0.18rem 0.6rem;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.74rem;
  font-weight: 800;
  white-space: nowrap;
}
.booking-panel-only .payg-list-box {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.booking-panel-only .payg-list-row {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
  border-radius: 12px;
  background: #fff;
  padding: 0.72rem 0.85rem;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}
.booking-panel-only .payg-list-row.selected {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  background: rgba(var(--bs-primary-rgb), 0.05);
  box-shadow: 0 4px 14px rgba(30, 42, 74, 0.06);
}
.booking-panel-only .payg-list-row.warning {
  border-color: rgba(217, 119, 6, 0.35);
  background: #fffaf2;
}
.booking-panel-only .payg-list-row.disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.booking-panel-only .payg-list-row.closed {
  border-color: rgba(var(--bs-danger-rgb), 0.45);
  background: rgba(var(--bs-danger-rgb), 0.04);
}
.booking-panel-only .payg-list-row.closed .payg-list-label,
.booking-panel-only .payg-list-row.closed .payg-list-row-meta {
  color: var(--bs-danger);
  text-decoration: line-through;
}
.booking-panel-only .payg-list-row-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.booking-panel-only .payg-list-label {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 0;
  color: #1e2a4a;
  font-weight: 800;
  font-size: 0.94rem;
  line-height: 1.35;
  cursor: inherit;
  flex: 1;
}
.booking-panel-only .payg-list-label .form-check-input {
  margin-top: 0.1rem;
  flex-shrink: 0;
}
.booking-panel-only .payg-list-label span {
  display: inline-block;
}
.booking-panel-only .payg-list-row .session-price {
  color: var(--bs-primary);
  font-size: 1.02rem;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
}
.booking-panel-only .payg-list-row-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  margin-top: 0.4rem;
  color: #7c8ba8;
  font-size: 0.84rem;
}
.booking-panel-only .payg-list-row-meta > span {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
}
.booking-panel-only .payg-list-row-meta i {
  color: #9aa6c0;
}
.booking-panel-only .status-alert-danger {
  border: 1px solid rgba(var(--bs-danger-rgb), 0.35);
  background: rgba(var(--bs-danger), 0.07);
  color: var(--bs-danger);
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
}
.booking-panel-only .status-alert-warning {
  border: 1px solid rgba(var(--bs-warning-rgb), 0.55);
  background: rgba(var(--bs-warning), 0.16);
  color: #7b5600;
  border-radius: 10px;
  padding: 0.7rem 0.75rem;
}
.booking-panel-only .terms-toggle {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  border-radius: 9px;
  padding: 0.45rem 0.65rem;
  font-size: 0.92rem;
}
.booking-panel-only .submitButton {
  border-radius: 10px;
  font-weight: 700;
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
}
.booking-panel-only .waitinglist-top-alert {
  font-size: 0.9rem;
  line-height: 1.45;
}
.booking-panel-only .waitinglist-title {
  color: #1e2a4a;
}
.booking-panel-only .attendee-card-disabled {
  opacity: 0.6;
}
.booking-panel-only .waitinglist-chip {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.3);
  background: #fef3c7;
  color: #92400e;
  font-size: 0.72rem;
  font-weight: 700;
}
.booking-panel-only .waitinglist-chip-success {
  border: 1px solid rgba(22, 163, 74, 0.35);
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
  font-size: 0.72rem;
  font-weight: 700;
}
.booking-panel-only .waitinglist-submit {
  width: 100%;
  border-radius: 12px;
  min-height: 48px;
  font-size: 1rem;
}
.booking-panel-only .attendee-row-selected .waitinglist-chip {
  border-color: #f59e0b;
  background: #fef3c7;
  color: #92400e;
  font-weight: 800;
}
.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .waitinglist-chip-success,
.booking-panel-only .attendee-row.attendee-row-selected .waitinglist-chip-success {
  border-color: rgba(134, 239, 172, 0.75);
  background: #dcfce7;
  color: #166534;
  font-weight: 800;
  box-shadow: 0 0 0 1px rgba(22, 101, 52, 0.05) inset;
}
.booking-panel-only .waitinglist-multi-body {
  border-top: 1px solid rgba(var(--bs-warning-rgb), 0.45);
  background: #fffdfa;
  padding: 0.65rem 0.7rem 0.7rem;
}
.booking-panel-only .waitinglist-multi-title {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.74rem;
  font-weight: 800;
  color: #b45309;
  margin-bottom: 0.45rem;
}
.booking-panel-only .waitinglist-session-card {
  width: 100%;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  border-radius: 10px;
  background: #fff;
  padding: 0.52rem 0.65rem;
  text-align: left;
  margin-bottom: 0.45rem;
}
.booking-panel-only .waitinglist-session-card:last-child {
  margin-bottom: 0;
}
.booking-panel-only .waitinglist-session-card.selected {
  border-color: #d97706;
  background: #fff7ed;
}
.booking-panel-only .waitinglist-session-card:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.booking-panel-only .waitinglist-session-card .attendee-check-selected {
  background: #d97706;
  border-color: #d97706;
  color: #fff;
}
.booking-panel-only .waitinglist-session-r1 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.2rem;
}
.booking-panel-only .waitinglist-session-name {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #1e2a4a;
  font-weight: 800;
}
.booking-panel-only .waitinglist-session-price {
  color: #d97706;
  font-weight: 900;
}
.booking-panel-only .waitinglist-session-meta {
  font-size: 0.81rem;
  font-weight: 600;
  color: #4b5563;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.2rem;
}
.booking-panel-only .waitinglist-session-meta i {
  color: #8a96b0;
}
.booking-panel-only .waitinglist-success-card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.25);
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  padding: 0.9rem;
}
.booking-panel-only .waitinglist-success-title {
  font-weight: 800;
  color: var(--bs-primary);
  font-size: 1.15rem;
  margin-bottom: 0.4rem;
  display: flex;
  align-items: center;
}
.booking-panel-only .waitinglist-success-text {
  color: #3f4c66;
  font-size: 0.92rem;
  line-height: 1.45;
}
.booking-panel-only .waitinglist-success-linkbox {
  background: rgba(255, 255, 255, 0.55);
  border-radius: 10px;
  padding: 0.65rem 0.7rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.booking-panel-only .waitinglist-success-linkrow {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.booking-panel-only .waitinglist-success-linkrow small {
  display: block;
  color: #8a96b0;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 0.1rem;
}
.booking-panel-only .waitinglist-success-linkrow a {
  color: var(--bs-primary);
  text-decoration: none;
  font-weight: 800;
}
.booking-panel-only .waitinglist-success-linkrow strong {
  color: #1f3152;
  font-size: 0.98rem;
}
.booking-panel-only .waitinglist-success-ico {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.booking-step-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.25);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.8rem;
  margin-right: 0.35rem;
}

.booking-step-dot-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

@media (max-width: 991.98px) {
  .chip-row {
    flex-wrap: nowrap;
    min-width: max-content;
  }
  .tl-row {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
  .tl-col-hdr {
    display: none;
  }
  .tl-row-term {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }
  .tl-time {
    padding: 0;
  }
  .tl-price {
    text-align: left;
  }
  .term-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  .term-name-value {
    font-size: 1.5rem;
  }
  .term-dates-row {
    width: 100%;
    justify-content: space-between;
  }
  .term-date-val-start,
  .term-date-val-end {
    font-size: 1rem;
  }
  .day-pill {
    width: 8rem;
  }
}
.class-details-left-sticky {
  position: static;
}

.class-details-main-column .tl-footer {
  display: none;
}

@media (max-width: 991.98px) {
  .class-details-page:not(.mobile-booking-open) .class-details-main-column {
    padding-bottom: 6.5rem;
  }
  .class-details-page:not(.mobile-booking-open) .class-details-booking-column .tl-footer {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 0.75rem;
    z-index: 1040;
    background: transparent;
    border-top: none;
    padding: 0;
    margin: 0;
  }
  .class-details-page:not(.mobile-booking-open) .class-details-booking-column .tl-footer .btn-book-now {
    width: 100%;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
  }
  .class-details-page.mobile-booking-open .class-details-main-column {
    display: none;
  }
  .class-details-page.mobile-booking-open .class-details-booking-column {
    order: 1;
  }
  .class-details-page.mobile-booking-open .page-container {
    padding-bottom: 6.5rem;
  }
  .booking-panel-only {
    padding-bottom: 6.5rem !important;
  }
  .booking-panel-only .submitButton {
    position: sticky;
    bottom: 0.75rem;
    z-index: 20;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
  }
}
@media (min-width: 992px) {
  .class-details-page:not(.mobile-booking-open) .class-details-booking-column {
    position: sticky;
    top: 1.5rem;
    align-self: flex-start;
  }
  .class-details-page.mobile-booking-open .class-details-main-column {
    position: sticky;
    top: 1.5rem;
    align-self: flex-start;
  }
}
.basket-page-shell {
  min-height: 100vh;
  background: #f3f4f6;
}

.basket-page-header {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  min-height: 72px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  padding: 0 1.5rem;
}

.basket-header-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #8a96b0;
  text-decoration: none;
}
.basket-header-back:hover {
  color: #4b5563;
}

.basket-header-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
}
.basket-header-title h1 {
  margin: 0;
  font-weight: 900;
  font-size: 1.45rem;
  color: #1e2a4a;
  line-height: 1.15;
}
.basket-header-title i {
  color: var(--bs-primary);
}

.basket-header-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  font-size: 0.73rem;
  font-weight: 800;
  color: var(--bs-primary);
}

.basket-header-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
}

.basket-header-total {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.86rem;
  font-weight: 800;
  color: var(--bs-primary);
}
.basket-header-total i {
  color: var(--bs-primary);
}

.basket-header-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.84rem;
  font-weight: 900;
}

.basket-body-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 1.75rem 1.5rem 3.5rem;
}

.basket-card-base {
  background: #fff;
  border-radius: 16px;
  border: 1px solid #f1f1f5;
  box-shadow: 0 2px 12px rgba(30, 42, 74, 0.06);
  overflow: hidden;
}

.basket-item-header {
  padding: 1.1rem 1.35rem 0.95rem;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
}

.basket-item-class-name {
  font-weight: 900;
  font-size: 1.1rem;
  color: #1e2a4a;
  margin-bottom: 0.15rem;
}

.basket-item-group-name {
  font-size: 0.82rem;
  color: var(--bs-primary);
  font-weight: 700;
  margin-bottom: 0.1rem;
}

.basket-item-student-name {
  font-size: 0.82rem;
  color: #8a96b0;
  font-weight: 600;
}

.basket-item-student-meta {
  margin-top: 0.2rem;
  font-size: 0.76rem;
  color: #8a96b0;
  font-weight: 700;
}

.basket-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
}
.basket-badge svg {
  width: 11px;
  height: 11px;
  flex-shrink: 0;
}

.basket-badge-primary,
.basket-badge-event {
  background: rgba(var(--bs-primary-rgb), 0.08);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  color: var(--bs-primary);
}

.basket-badge-secondary {
  background: rgba(var(--bs-secondary-rgb), 0.08);
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.22);
  color: var(--bs-secondary);
}

.basket-badge-trial,
.basket-badge-trial-small {
  background: #fef3c7;
  border: 1px solid #fcd34d;
  color: #92400e;
}

.basket-badge-trial-small {
  padding: 0.2rem 0.55rem;
  font-size: 0.67rem;
}
.basket-badge-trial-small svg {
  width: 10px;
  height: 10px;
}

.basket-badge-payg {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #c2410c;
}

.basket-item-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.basket-shop-body {
  display: block;
}

.basket-shop-line {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.35rem;
  border-bottom: 1px solid #f3f4f6;
}

.basket-shop-line-info {
  min-width: 0;
}

.basket-shop-line-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: #1e2a4a;
  line-height: 1.3;
}

.basket-shop-line-variant,
.basket-shop-line-qty {
  font-size: 0.8rem;
  color: #8a96b0;
  font-weight: 600;
  margin-top: 0.15rem;
}

.basket-shop-line-price {
  font-size: 0.92rem;
  font-weight: 700;
  color: #1e2a4a;
  white-space: nowrap;
  flex-shrink: 0;
}

.basket-shop-total-row {
  padding: 1rem 1.35rem;
  margin-top: 0;
}

.basket-shop-location-card .basket-item-header {
  align-items: center;
}

.basket-shop-location-icon {
  font-size: 1.35rem;
  color: var(--bs-primary);
  opacity: 0.7;
}

.basket-shop-location-body {
  padding: 0.85rem 1.35rem 1.25rem;
}

.basket-item-left,
.basket-item-right {
  padding: 1.15rem 1.35rem;
}

.basket-item-left {
  border-right: 1px solid #f3f4f6;
}

.basket-item-right {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
}

.basket-item-field {
  margin-bottom: 1rem;
}
.basket-item-field:last-child {
  margin-bottom: 0;
}

.basket-item-field-label,
.basket-pay-today-label {
  font-size: 0.66rem;
  font-weight: 800;
  color: #8a96b0;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
}

.basket-item-line {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: #6b7a99;
  font-size: 0.82rem;
  font-weight: 600;
  margin-top: 0.2rem;
}

.basket-item-line-strong {
  color: #1e2a4a;
  font-size: 0.86rem;
  font-weight: 800;
}

.basket-item-date-title,
.basket-item-address {
  color: #1e2a4a;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.45;
}

.basket-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.basket-date-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.71rem;
  font-weight: 700;
}

.basket-date-chip-muted {
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #8a96b0;
}

.basket-date-chip-trial {
  background: #fef3c7;
  border: 1px solid #fcd34d;
  color: #92400e;
}

.basket-date-chip-payg {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #c2410c;
}

.basket-payg-session-list,
.basket-payg-additional-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.basket-payg-additional-list {
  margin-top: 0.55rem;
}

.basket-payg-session-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.84rem;
}

.basket-payg-session-date {
  color: #1e2a4a;
  font-weight: 600;
}

.basket-payg-session-price {
  color: #6b7a99;
  font-weight: 700;
  white-space: nowrap;
}

.basket-payg-session-row-additional .basket-payg-session-date {
  color: #6b7a99;
  font-weight: 500;
}

.basket-subscription-list,
.basket-breakdown-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.basket-subscription-row,
.basket-breakdown-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
}

.basket-subscription-name {
  font-size: 0.78rem;
  color: #8a96b0;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.basket-subscription-cost {
  font-size: 0.9rem;
  color: #1e2a4a;
  font-weight: 800;
}

.basket-subscription-period {
  font-size: 0.78rem;
  color: #8a96b0;
  font-weight: 600;
}

.basket-booking-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #f3f4f6;
  border-radius: 10px;
  padding: 4px;
  gap: 4px;
  margin-bottom: 1rem;
}

.basket-btt-btn {
  border: none;
  background: transparent;
  border-radius: 7px;
  padding: 0.5rem 0.4rem;
}
.basket-btt-btn.active {
  background: #fff;
  box-shadow: 0 1px 4px rgba(30, 42, 74, 0.1);
}
.basket-btt-btn.active .basket-btt-label {
  color: #1e2a4a;
}
.basket-btt-btn.active .basket-btt-sub {
  color: var(--bs-primary);
}

.basket-btt-label {
  font-size: 0.72rem;
  font-weight: 800;
  color: #8a96b0;
}

.basket-btt-sub {
  font-size: 0.7rem;
  font-weight: 700;
  color: #b0b8cc;
  margin-top: 0.1rem;
}

.basket-pay-today-line {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.basket-pay-today-amount {
  font-size: 1.2rem;
  font-weight: 900;
  color: var(--bs-primary);
}

.basket-pay-today-amount-lg {
  font-size: 1.9rem;
  line-height: 1;
}

.basket-pay-today-note {
  font-size: 0.8rem;
  color: #8a96b0;
  font-weight: 600;
}

.basket-breakdown-list {
  margin-top: 0.9rem;
  padding-top: 0.6rem;
  border-top: 1px solid #f3f4f6;
}

.basket-breakdown-row span {
  font-size: 0.78rem;
  color: #8a96b0;
  font-weight: 600;
}
.basket-breakdown-row strong {
  font-size: 0.8rem;
  color: #1e2a4a;
  font-weight: 800;
}

.basket-breakdown-rich {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.basket-breakdown-rich-top {
  font-size: 0.8rem;
  color: #6b7a99;
  font-weight: 600;
}

.basket-breakdown-rich-bottom {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  font-size: 0.8rem;
  color: #8a96b0;
  font-weight: 600;
}

.basket-badge-due-today {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.7rem;
  font-weight: 800;
}

.basket-payg-note {
  margin-top: 0.9rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #7c3100;
  font-size: 0.8rem;
  font-weight: 600;
}

.basket-payg-note-muted,
.basket-term-note,
.basket-payment-notice,
.basket-trial-notice {
  margin-top: 0.7rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 700;
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  line-height: 1.45;
}

.basket-payg-note-muted {
  background: #f8f9fc;
  border: 1px solid #eaecf4;
  color: #6b7a99;
}

.basket-term-note {
  background: #fef3c7;
  border: 1px solid #fcd34d;
  color: #92400e;
}

.basket-payment-notice,
.basket-trial-notice {
  background: rgba(var(--bs-primary-rgb), 0.07);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  color: var(--bs-primary);
}

.basket-auto-coupon-notice {
  flex-direction: column;
  align-items: stretch;
  gap: 0.3rem;
  margin-bottom: 0.9rem;
}

.basket-auto-coupon-notice-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.basket-auto-coupon-notice-row strong {
  white-space: nowrap;
}

.basket-auto-coupon-notice-id {
  font-size: 0.72rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.basket-item-total-row,
.basket-summary-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.65rem;
  border-top: 1px solid #f3f4f6;
}

.basket-item-total-label {
  font-size: 0.8rem;
  color: #8a96b0;
  font-weight: 600;
}

.basket-item-total-val {
  font-size: 0.9rem;
  color: #1e2a4a;
  font-weight: 800;
}

.basket-btn-remove {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: none;
  background: none;
  color: #dc2626;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.7rem 0 0;
}

.basket-order-summary {
  position: sticky;
  top: 3.5rem;
}

.basket-stepper {
  padding: 0.95rem 1.2rem;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.basket-step-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 900;
}

.basket-step-dot-active {
  background: rgba(var(--bs-primary-rgb), 0.15);
  border: 2px solid var(--bs-primary);
  color: var(--bs-primary);
}

.basket-step-dot-pending {
  background: #e9eaf0;
  color: #8a96b0;
}

.basket-step-label {
  font-size: 0.78rem;
  font-weight: 700;
}

.basket-step-label-active {
  color: var(--bs-primary);
}

.basket-step-label-pending,
.basket-step-sep {
  color: #c7cdd8;
}

.basket-summary-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.8rem;
  color: #1e2a4a;
  font-size: 1.4rem;
  font-weight: 900;
}

.basket-summary-expand {
  width: 100%;
  border: none;
  background: none;
  padding: 0.35rem 0 0.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.basket-summary-expand span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  color: #8a96b0;
  font-weight: 600;
}
.basket-summary-expand strong {
  font-size: 0.88rem;
  color: #1e2a4a;
  font-weight: 800;
}

.basket-chevron-open {
  transform: rotate(180deg);
}

.basket-summary-item {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.45rem 0 0.45rem 0.9rem;
  border-bottom: 1px dashed #f3f4f6;
}

.basket-summary-item-left {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.2rem;
  font-size: 0.79rem;
  color: #4b5a7a;
  font-weight: 700;
}
.basket-summary-item-left small {
  font-size: 0.69rem;
  color: #8a96b0;
  font-weight: 600;
}

.basket-summary-item-right {
  font-size: 0.82rem;
  color: #1e2a4a;
  font-weight: 800;
}

.basket-summary-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  font-size: 0.66rem;
  font-weight: 800;
}

.basket-summary-badge-event,
.basket-summary-badge-subscription {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.basket-summary-badge-term {
  background: rgba(var(--bs-secondary-rgb), 0.08);
  color: var(--bs-secondary);
}

.basket-summary-badge-trial {
  background: #fef3c7;
  color: #92400e;
}

.basket-summary-badge-payg {
  background: #fff7ed;
  color: #c2410c;
}

.basket-summary-total span {
  font-size: 0.86rem;
  color: #8a96b0;
  font-weight: 600;
}
.basket-summary-total strong {
  font-size: 1.15rem;
  color: #1e2a4a;
  font-weight: 900;
}

.basket-promo-card {
  margin-top: 0.9rem;
  padding: 0.9rem;
  border-radius: 14px;
  border: 1px solid #dfe5f2;
  background: linear-gradient(180deg, #f8faff 0%, #f3f6fc 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.basket-promo-toggle {
  width: 100%;
  border: 1px dashed rgba(var(--bs-primary-rgb), 0.28);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  padding: 0.85rem 0.95rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  text-align: left;
}

.basket-promo-toggle-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.basket-promo-toggle-copy {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.15rem;
}
.basket-promo-toggle-copy strong {
  color: #1e2a4a;
  font-size: 0.92rem;
  font-weight: 900;
}
.basket-promo-toggle-copy small {
  color: #8a96b0;
  font-size: 0.73rem;
  font-weight: 600;
  line-height: 1.45;
}

.basket-promo-toggle-action {
  color: var(--bs-primary);
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.basket-promo-body {
  margin: 0;
}

.basket-promo-input .form-control {
  min-height: 54px;
  border-color: #d7deed;
  background: #fff;
  color: #1e2a4a;
  box-shadow: none;
}
.basket-promo-input .form-control:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}
.basket-promo-input label {
  color: #7d8cab;
  font-weight: 700;
}

.basket-promo-actions {
  width: 100%;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.basket-promo-btn {
  min-width: 102px;
  min-height: 46px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 800;
}

.basket-promo-btn-secondary {
  border-color: #cfd7e6;
  color: #374151;
}

.basket-promo-feedback {
  border-radius: 10px;
  padding: 0.7rem 0.8rem;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.55;
}

.basket-promo-feedback-success {
  background: #ecfdf3;
  border: 1px solid #bbf7d0;
  color: #15803d;
}

.basket-promo-feedback-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
}

.basket-summary-item-discount {
  margin-top: 0.15rem;
  padding: 0.7rem 0 0.7rem 0.9rem;
  border-bottom-style: solid;
  border-bottom-color: #edf2fb;
}

.basket-summary-item-left-discount {
  color: #2f4064;
  gap: 0.12rem;
}
.basket-summary-item-left-discount small {
  color: #8a96b0;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.basket-summary-item-right-discount {
  color: #15803d;
}

.basket-summary-total-discount {
  padding-top: 0.8rem;
}

.basket-btn-primary,
.basket-btn-primary-secondary {
  width: 100%;
  border: none;
  border-radius: 12px;
  padding: 0.95rem 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 800;
}

.basket-btn-primary {
  background: var(--bs-secondary);
  color: var(--m-on-secondary, #fff);
  box-shadow: 0 4px 18px rgba(30, 42, 74, 0.25);
}
.basket-btn-primary:hover {
  color: var(--m-on-secondary, #fff);
}

.basket-btn-primary-secondary {
  background: var(--bs-secondary);
  color: var(--m-on-secondary, #fff);
}
.basket-btn-primary-secondary:hover {
  color: var(--m-on-secondary, #fff);
}

.basket-btn-saved-card {
  width: 100%;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.3);
  background: rgba(var(--bs-primary-rgb), 0.04);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.basket-saved-card-info {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.basket-saved-card-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  flex-shrink: 0;
}

.basket-saved-card-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
}

.basket-saved-card-brand {
  font-size: 0.98rem;
  font-weight: 800;
  color: #8a96b0;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.basket-saved-card-value {
  font-size: 1rem;
  font-weight: 900;
  color: #1e2a4a;
}

.basket-saved-card-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.72rem;
  font-weight: 800;
}

.basket-payment-divider {
  position: relative;
  text-align: center;
  margin: 0.35rem 0;
}
.basket-payment-divider::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  border-top: 1px solid #e5e7eb;
}
.basket-payment-divider span {
  position: relative;
  padding: 0 0.8rem;
  background: #fff;
  color: #b5bdcf;
  font-size: 0.82rem;
  font-weight: 800;
}

.basket-payment-helper {
  margin: 0.15rem 0 0;
  font-size: 0.76rem;
  color: #b5bdcf;
  text-align: center;
  line-height: 1.5;
}

.basket-payment-options-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 5.5rem;
  padding: 0.5rem 0;
}

.basket-payment-options-loading-text {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: #8a96b0;
  text-align: center;
}

.basket-policy-text {
  margin: 0;
  font-size: 0.75rem;
  color: #8a96b0;
  text-align: center;
  line-height: 1.6;
}

.basket-inline-alert {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  width: 100%;
  padding: 1rem 1.05rem;
  border-radius: 1rem;
  border: 1px solid #f5c2c7;
  background: linear-gradient(180deg, #fff8f8 0%, #fff1f2 100%);
  box-shadow: 0 14px 28px rgba(122, 28, 47, 0.08);
}

.basket-inline-alert-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  border-radius: 999px;
  font-size: 0.95rem;
}

.basket-inline-alert-text {
  flex: 1 1 auto;
  color: #7a1c2f;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.6;
}

.basket-inline-alert-error .basket-inline-alert-icon {
  background: rgba(185, 28, 28, 0.12);
  color: #b91c1c;
  box-shadow: inset 0 0 0 1px rgba(185, 28, 28, 0.08);
}

.basket-continue-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 0.45rem;
  color: var(--bs-primary);
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 700;
}

.basket-empty-state {
  text-align: center;
  padding: 3rem 1.5rem;
}
.basket-empty-state h2 {
  color: #1e2a4a;
  font-size: 1.4rem;
  font-weight: 900;
  margin-bottom: 0.35rem;
}
.basket-empty-state p {
  color: #8a96b0;
  margin-bottom: 1.2rem;
}

.basket-empty-icon {
  width: 82px;
  height: 82px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
}

.basket-empty-link {
  max-width: 220px;
  margin: 0 auto;
}

.nav-user-menu .dropdown-toggle::after {
  display: none;
}

.nav-user-trigger {
  width: 2.5rem;
  height: 2.5rem;
  border: none;
  border-radius: 999px;
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-weight: 800;
  box-shadow: 0 4px 14px rgba(var(--bs-primary-rgb), 0.18);
}

.nav-user-trigger-text {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.nav-user-dropdown {
  min-width: 15.6rem;
  margin-top: 0.9rem;
  padding: 0.45rem 0 0.55rem;
  border: 1px solid #d8dee8;
  border-radius: 14px;
  box-shadow: 0 18px 40px rgba(20, 32, 62, 0.16);
  overflow: hidden;
}

.nav-user-item {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.88rem 1.2rem;
  font-size: 0.86rem;
  font-weight: 700;
  color: #1e2a4a;
}
.nav-user-item i {
  width: 1rem;
  color: #7d89a7;
}
.nav-user-item:hover, .nav-user-item:focus {
  background: #f8fafc;
  color: #14203e;
}

.nav-user-divider {
  margin: 0.2rem 0 0;
  border-top-color: #e9edf4;
}

.nav-user-item-logout {
  margin-top: 0.55rem;
  background: #e62c2c;
  color: #fff;
  border-radius: 0;
}
.nav-user-item-logout i, .nav-user-item-logout:hover, .nav-user-item-logout:focus, .nav-user-item-logout:hover i, .nav-user-item-logout:focus i {
  color: #fff;
}
.nav-user-item-logout:hover, .nav-user-item-logout:focus {
  background: #d82424;
}

.checkout-complete-page {
  padding-top: 1.2rem;
  padding-bottom: 2.8rem;
}

.checkout-loading-card,
.checkout-missing-card {
  padding: 1.5rem;
}

.checkout-loading-title {
  font-size: 1rem;
  font-weight: 800;
  color: #1e2a4a;
}

.checkout-loading-subtitle {
  font-size: 0.84rem;
  color: #8a96b0;
  font-weight: 600;
}

.confirm-banner {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.7rem 2rem;
  border-left: 5px solid var(--bs-primary);
  box-shadow: 0 10px 28px rgba(var(--bs-primary-rgb), 0.12);
}

.confirm-icon {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.confirm-icon svg {
  width: 28px;
  height: 28px;
}

.confirm-title {
  font-size: 1.1rem;
  font-weight: 900;
  color: #1e2a4a;
  margin-bottom: 0.25rem;
}

.confirm-sub {
  font-size: 0.96rem;
  color: #62739a;
  font-weight: 500;
}

.checkout-bookings-head {
  padding: 0.95rem 1.35rem;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.checkout-panel-title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 1rem;
  font-weight: 900;
  color: #1e2a4a;
}
.checkout-panel-title svg {
  width: 16px;
  height: 16px;
}

.checkout-brand-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #8a96b0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.checkout-booking-row {
  padding: 1.15rem 1.35rem;
}

.checkout-booking-row-border {
  border-bottom: 1px solid #f3f4f6;
}

.checkout-booking-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.95rem;
}

.checkout-booking-class {
  font-size: 1.05rem;
  font-weight: 900;
  color: #1e2a4a;
  margin-bottom: 0.15rem;
}

.checkout-booking-group {
  font-size: 0.88rem;
  color: #8a96b0;
  font-weight: 600;
}

.checkout-booking-badges {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.checkout-confirmed-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  background: #f0fdf4;
  border: 1px solid #86efac;
  color: #16a34a;
  font-size: 0.76rem;
  font-weight: 800;
}
.checkout-confirmed-badge svg {
  width: 7px;
  height: 7px;
  fill: currentColor;
}

.checkout-meta-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
  font-size: 0.62rem;
  font-weight: 800;
  color: #8a96b0;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.checkout-meta-label svg {
  width: 11px;
  height: 11px;
}

.checkout-member-name,
.checkout-location {
  font-size: 0.92rem;
  font-weight: 700;
  color: #1e2a4a;
  line-height: 1.45;
}

.checkout-member-name + .checkout-member-name {
  margin-top: 0.7rem;
}

.checkout-shop-student-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.35rem;
}

.checkout-shop-student-meta {
  font-size: 0.84rem;
  font-weight: 600;
  color: #8a96b0;
  white-space: nowrap;
}

.checkout-starting-date {
  margin-top: 0.45rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #62739a;
}

.checkout-date-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.55rem;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 0.76rem;
  font-weight: 700;
}
.checkout-date-chip svg {
  width: 10px;
  height: 10px;
}

.checkout-step-card {
  padding: 0.85rem 1.15rem;
}

.basket-stepper-complete {
  padding: 0;
  border-bottom: none;
}

.checkout-step-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.basket-step-dot-done {
  background: var(--bs-primary);
  color: #fff;
}
.basket-step-dot-done svg {
  width: 11px;
  height: 11px;
}

.checkout-step-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #1e2a4a;
  white-space: nowrap;
}

.checkout-next-card {
  padding: 1.25rem 1.35rem;
}

.checkout-next-title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 1.05rem;
  font-size: 1.05rem;
  font-weight: 900;
  color: #1e2a4a;
}
.checkout-next-title svg {
  width: 18px;
  height: 18px;
}

.what-next-item {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
  padding: 0.6rem 0;
}
.what-next-item:last-child {
  padding-bottom: 0;
}

.what-next-icon {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.what-next-icon svg {
  width: 15px;
  height: 15px;
}

.what-next-title {
  font-size: 0.98rem;
  color: #1e2a4a;
  font-weight: 900;
  margin-bottom: 0.15rem;
}

.what-next-copy {
  font-size: 0.86rem;
  font-weight: 500;
  color: #62739a;
  line-height: 1.5;
  max-width: 18rem;
}

.what-next-link {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--bs-primary);
  text-decoration: none;
  line-height: 1.4;
}
.what-next-link:hover {
  opacity: 0.85;
}

.checkout-amend-card {
  margin-top: 0.8rem;
  padding: 0.95rem 1rem;
  border-radius: 12px;
  background: #f6f8fd;
  border: 1px solid #e7ebf5;
}

.checkout-amend-title {
  font-size: 0.98rem;
  font-weight: 900;
  color: #1e2a4a;
  margin-bottom: 0.3rem;
}

.checkout-amend-copy {
  font-size: 0.86rem;
  color: #62739a;
  font-weight: 500;
  line-height: 1.5;
}

.checkout-contact-banner {
  margin-top: 1rem;
  padding: 0.85rem 0.95rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--bs-primary);
  font-size: 0.88rem;
  font-weight: 600;
}
.checkout-contact-banner svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

.checkout-back-btn {
  margin-top: 1rem;
}
.checkout-back-btn svg {
  width: 16px;
  height: 16px;
}

@media (max-width: 991.98px) {
  .basket-page-header {
    grid-template-columns: 1fr;
    justify-items: flex-start;
    padding: 1rem 1rem;
  }
  .basket-header-title,
  .basket-header-right {
    width: 100%;
    justify-content: space-between;
  }
  .basket-body-container {
    padding: 1.2rem 1rem 2.5rem;
  }
  .basket-item-body {
    grid-template-columns: 1fr;
  }
  .basket-item-left {
    border-right: none;
    border-bottom: 1px solid #f3f4f6;
  }
  .basket-order-summary {
    position: static;
  }
  .basket-stepper {
    gap: 0.3rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .basket-stepper::-webkit-scrollbar {
    display: none;
  }
  .basket-step-label {
    font-size: 0.72rem;
  }
  .basket-step-sep {
    font-size: 0.7rem;
  }
  .confirm-banner {
    padding: 1.2rem 1rem;
    gap: 0.9rem;
  }
  .confirm-icon {
    width: 56px;
    height: 56px;
  }
  .checkout-bookings-head,
  .checkout-booking-row,
  .checkout-next-card {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .checkout-booking-top {
    flex-direction: column;
  }
  .basket-item-header {
    padding: 1.1rem 0.75rem 0.95rem;
    border-bottom: 1px solid #f3f4f6;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
  }
  .basket-saved-card-icon {
    width: 30px;
    height: 30px;
    border-radius: 12px;
    background: rgba(var(--bs-primary-rgb), 0.08);
    color: var(--bs-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    flex-shrink: 0;
  }
  .basket-saved-card-brand {
    font-size: 0.8rem;
    font-weight: 800;
    color: #8a96b0;
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  .basket-saved-card-value {
    font-size: 0.81rem;
    font-weight: 900;
    color: #1e2a4a;
  }
  .basket-saved-card-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: var(--bs-primary);
    color: var(--m-on-primary, #fff);
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.6rem;
    font-weight: 800;
  }
}
.page-header {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 20px 24px 18px;
}
.page-header h4 {
  margin: 0;
  font-weight: 800;
  color: #1e2a4a;
  font-size: 1.15rem;
  letter-spacing: -0.3px;
}
.page-header p {
  margin: 4px 0 0;
  color: #6b7a99;
  font-size: 0.85rem;
}

.content-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.section-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8a96b0;
  margin-bottom: 12px;
  padding-left: 2px;
}

.stat-card {
  background: #fff;
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  gap: 12px;
}

.stat-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.stat-icon-balance {
  background: rgba(22, 163, 74, 0.09);
  color: #16a34a;
}

.stat-icon-balance-debit {
  background: rgba(220, 38, 38, 0.09);
  color: #dc2626;
}

.stat-icon-subs {
  background: rgba(var(--bs-primary-rgb), 0.09);
  color: var(--bs-primary);
}

.stat-icon-cards {
  background: rgba(16, 185, 129, 0.09);
  color: #10b981;
}

.stat-label {
  font-size: 0.7rem;
  color: #8a96b0;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.stat-value {
  font-size: 1.3rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.2;
}

.stat-badge {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 99px;
}

.stat-badge-credit {
  background: rgba(22, 163, 74, 0.12);
  color: #16a34a;
  border: 1px solid rgba(22, 163, 74, 0.2);
}

.stat-badge-debit {
  background: rgba(220, 38, 38, 0.12);
  color: #dc2626;
  border: 1px solid rgba(220, 38, 38, 0.2);
}

.stat-sub-note {
  font-size: 0.65rem;
  color: #dc2626;
  font-weight: 600;
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 3px;
}

.failed-banner {
  padding: 14px 18px;
  border-radius: 12px;
  background: #fef2f2;
  border: 1.5px solid #fecaca;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}

.failed-banner-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fee2e2;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
  color: #dc2626;
  font-size: 0.9rem;
}

.failed-banner-title {
  font-weight: 800;
  color: #b91c1c;
  font-size: 0.875rem;
}

.failed-banner-desc {
  font-size: 0.78rem;
  color: #dc2626;
  margin-top: 3px;
  line-height: 1.5;
}

@media (max-width: 680px) {
  .two-column-layout {
    flex-direction: column;
  }
}
.tx-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 0;
  border-bottom: 1px solid #f3f4f6;
}
.tx-row:last-child {
  border-bottom: none;
}

.tx-row-failed {
  background: rgba(254, 242, 242, 0.5);
  margin: 0 -20px;
  padding: 13px 20px;
  border-radius: 8px;
}

.tx-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}

.tx-icon-ok {
  background: #f0fdf4;
  color: #16a34a;
}

.tx-icon-failed {
  background: #fee2e2;
  color: #dc2626;
}

.tx-icon-refund {
  background: #fff7ed;
  color: #ea580c;
}

.tx-icon-partial {
  background: #fffbeb;
  color: #d97706;
}

.tx-name {
  font-weight: 700;
  font-size: 0.875rem;
  color: #1e2a4a;
}

.tx-name-failed {
  color: #b91c1c;
}

.tx-name-refund {
  color: #6b7280;
  text-decoration: line-through;
}

.tx-meta {
  font-size: 0.75rem;
  color: #8a96b0;
  margin-top: 1px;
}

.tx-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 7px;
  border-radius: 99px;
  font-size: 0.62rem;
  font-weight: 700;
}

.tx-badge-failed {
  background: #fee2e2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

.tx-badge-refund {
  background: #fff7ed;
  color: #ea580c;
  border: 1px solid #fed7aa;
}

.tx-badge-partial {
  background: #fffbeb;
  color: #d97706;
  border: 1px solid #fde68a;
}

.tx-sub-link {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--bs-primary);
}

.tx-sub-link-failed {
  color: #dc2626;
}

.tx-charge-desc {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin-top: 4px;
  font-size: 0.7rem;
  color: #6b7a99;
  line-height: 1.4;
}

.tx-refund-reason {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin-top: 4px;
  font-size: 0.72rem;
  font-style: italic;
  line-height: 1.4;
}

.tx-refund-reason-full {
  color: #ea580c;
}

.tx-refund-reason-partial {
  color: #d97706;
}

.tx-pay-now {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  padding: 5px 12px;
  border-radius: 7px;
  background: #dc2626;
  color: #fff;
  font-weight: 700;
  font-size: 0.72rem;
  text-decoration: none;
  letter-spacing: 0.02em;
}
.tx-pay-now:hover {
  opacity: 0.9;
  color: #fff;
}

.tx-pay-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 6px 16px;
  border-radius: 8px;
  background: #dc2626;
  color: #fff;
  font-weight: 700;
  font-size: 0.75rem;
  text-decoration: none;
  letter-spacing: 0.02em;
  border: none;
  cursor: pointer;
  transition: background 0.15s, box-shadow 0.15s;
  box-shadow: 0 1px 3px rgba(220, 38, 38, 0.18);
}
.tx-pay-btn:hover {
  background: #b91c1c;
  color: #fff;
  box-shadow: 0 2px 6px rgba(220, 38, 38, 0.28);
}

.invoice-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 20px;
  border-bottom: 1px solid #f3f4f6;
}
.invoice-row:last-child {
  border-bottom: none;
}

.invoice-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
}

.invoice-desc {
  font-weight: 600;
  color: #1e2a4a;
  font-size: 0.85rem;
  line-height: 1.4;
}

.invoice-date {
  font-size: 0.72rem;
  color: #8a96b0;
  margin-top: 2px;
}

.invoice-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 2px 9px;
  border-radius: 99px;
  font-size: 0.66rem;
  font-weight: 700;
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  border: 1px solid var(--bs-danger);
}

.invoice-amount {
  flex-shrink: 0;
  font-weight: 800;
  font-size: 1rem;
  min-width: 64px;
  text-align: right;
  color: var(--bs-danger);
}

.invoice-pay-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  padding: 5px 12px;
  border-radius: 7px;
  background: var(--bs-danger);
  color: #fff;
  font-weight: 700;
  font-size: 0.72rem;
  text-decoration: none;
  letter-spacing: 0.02em;
  border: 0;
  cursor: pointer;
}
.invoice-pay-btn:hover {
  opacity: 0.9;
  color: #fff;
}
.invoice-pay-btn.invoice-pay-btn-primary {
  background: var(--bs-primary);
  box-shadow: 0 1px 4px rgba(var(--bs-primary-rgb), 0.25);
}
.invoice-pay-btn.invoice-pay-btn-primary:hover {
  filter: brightness(0.93);
  opacity: 1;
  color: #fff;
}
.invoice-pay-btn.invoice-pay-btn-primary:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.student-outstanding-invoices__total {
  font-size: 0.72rem;
  font-weight: 700;
  margin-bottom: 0.65rem;
}

.student-outstanding-invoices__list {
  margin: 0 -1.25rem -1rem;
}

.student-outstanding-invoices__row {
  padding-left: 1.1rem;
  padding-right: 1.1rem;
}

.student-outstanding-invoices__row.is-failed {
  background: #fef2f2;
}

.student-outstanding-invoices__row.is-paying {
  background: #f8fafc;
}

.student-outstanding-invoices__row .invoice-icon.is-failed {
  background: #fee2e2;
  color: #dc2626;
}

.student-outstanding-invoices__row .invoice-status-badge.is-failed {
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fecaca;
}

.student-outstanding-invoices__row-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
}

.student-outstanding-invoices__row-status.is-paying {
  color: #64748b;
}

.student-outstanding-invoices__row-status.is-failed {
  color: #b91c1c;
}

.student-outstanding-invoices__banner {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
  padding: 0.7rem 0.85rem;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.4;
}

.student-outstanding-invoices__banner i {
  margin-top: 0.1rem;
  flex-shrink: 0;
}

.student-outstanding-invoices__banner.is-success {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #166534;
}

.student-outstanding-invoices__banner.is-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.student-outstanding-invoices__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.student-outstanding-invoices__charge-btn,
.student-outstanding-invoices__link-btn {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dbe3f0;
  background: #fff;
  color: var(--bs-primary);
  padding: 0;
  line-height: 1;
  text-decoration: none;
}

.student-outstanding-invoices__charge-btn:hover:not(:disabled),
.student-outstanding-invoices__link-btn:hover {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.student-outstanding-invoices__charge-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.student-outstanding-invoices__charge-btn i,
.student-outstanding-invoices__link-btn i {
  font-size: 1.05rem;
}

.student-outstanding-invoices__confirm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.45);
}

.student-outstanding-invoices__confirm {
  width: min(100%, 380px);
  padding: 1.25rem 1.3rem 1.15rem;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.22);
  text-align: center;
}

.student-outstanding-invoices__confirm-icon {
  width: 2.75rem;
  height: 2.75rem;
  margin: 0 auto 0.75rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 1.2rem;
}

.student-outstanding-invoices__confirm h6 {
  margin: 0 0 0.35rem;
  font-weight: 800;
  color: #1e2a4a;
}

.student-outstanding-invoices__confirm-copy {
  margin: 0 0 0.85rem;
  color: #64748b;
  font-size: 0.9rem;
}

.student-outstanding-invoices__confirm-details {
  display: grid;
  gap: 0.15rem;
  margin-bottom: 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: left;
}

.student-outstanding-invoices__confirm-details strong {
  color: #0f172a;
  font-size: 1rem;
}

.student-outstanding-invoices__confirm-details span {
  color: #334155;
  font-size: 0.85rem;
  font-weight: 600;
}

.student-outstanding-invoices__confirm-details small {
  color: #64748b;
  font-size: 0.75rem;
}

.student-outstanding-invoices__confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.tx-amount {
  flex-shrink: 0;
  text-align: right;
  padding-top: 2px;
}

.tx-amount-main {
  font-weight: 800;
  font-size: 1rem;
  color: #1e2a4a;
}

.tx-amount-main-failed {
  color: #dc2626;
}

.tx-amount-main-refund {
  color: #6b7280;
  text-decoration: line-through;
}

.tx-amount-sub {
  font-size: 0.68rem;
  font-weight: 600;
  margin-top: 1px;
}

.tx-amount-sub-failed {
  color: #dc2626;
}

.tx-amount-sub-refund {
  color: #ea580c;
}

.tx-amount-sub-partial {
  color: #d97706;
}

.tx-amount-sub-net {
  color: #8a96b0;
}

.tx-download-btn {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  margin-top: 1px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #6b7a99;
  transition: border-color 0.15s;
  padding: 0;
}
.tx-download-btn:hover {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}

.basket-subscription-list .sub-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 0;
  border: none !important;
  border-bottom: 1px solid #f3f4f6 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
}
.basket-subscription-list .sub-row:last-child {
  border-bottom: none !important;
}
.basket-subscription-list .sub-row-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(var(--bs-primary-rgb), 0.09);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--bs-primary);
}
.basket-subscription-list .sub-row-plan {
  font-weight: 700;
  color: #1e2a4a;
  font-size: 0.82rem;
}
.basket-subscription-list .sub-freq-badge {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 99px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.3px;
  background: rgba(var(--bs-primary-rgb), 0.09);
  color: var(--bs-primary);
}
.basket-subscription-list .sub-row-member {
  font-size: 0.72rem;
  color: #8a96b0;
  margin-top: 1px;
}

.sub-status-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 0.65rem;
  font-weight: 700;
  background: #f0fdf4;
  color: #16a34a;
}

.sub-renewal {
  font-size: 0.68rem;
  color: #8a96b0;
  display: flex;
  align-items: center;
  gap: 3px;
}

.balance-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 20px;
  border-bottom: 1px solid #f3f4f6;
}
.balance-row:last-child {
  border-bottom: none;
}

.balance-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.balance-icon-credit {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
}

.balance-icon-debit {
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
}

.balance-note {
  font-weight: 600;
  color: #1e2a4a;
  font-size: 0.85rem;
  line-height: 1.4;
}

.balance-date {
  font-size: 0.72rem;
  color: #8a96b0;
  margin-top: 2px;
}

.balance-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 2px 9px;
  border-radius: 99px;
  font-size: 0.66rem;
  font-weight: 700;
}

.balance-badge-credit {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  border: 1px solid var(--bs-success);
}

.balance-badge-debit {
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  border: 1px solid var(--bs-danger);
}

.balance-amount {
  flex-shrink: 0;
  font-weight: 800;
  font-size: 1rem;
  min-width: 64px;
  text-align: right;
}

.balance-amount-credit {
  color: var(--bs-success);
}

.balance-amount-debit {
  color: var(--bs-danger);
}

.expand-btn {
  width: 100%;
  padding: 12px 20px;
  background: #fff;
  border: none;
  border-top: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--clr-sub);
  cursor: pointer;
  font-family: inherit;
}
.expand-btn:hover {
  background: #fafafa;
}

.page-header-branded {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 20px 24px 18px;
}
.page-header-branded h4 {
  margin: 0;
  font-weight: 800;
  color: #1e2a4a;
  font-size: 1.15rem;
  letter-spacing: -0.3px;
}
.page-header-branded p {
  margin: 4px 0 0;
  color: #6b7a99;
  font-size: 0.85rem;
}
@media (max-width: 575.98px) {
  .page-header-branded {
    padding: 16px;
  }
  .page-header-branded h4 {
    font-size: 1rem;
  }
}

.terms-version-strip {
  background: #fff;
  border-radius: 12px;
  padding: 10px 16px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.terms-version-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: 99px;
  font-size: 0.66rem;
  font-weight: 700;
  background: rgb(225.96, 237.6, 254.76);
  color: rgb(10.4, 88, 202.4);
}

.terms-locked-pill {
  font-size: 0.7rem;
  color: #8a96b0;
  background: #f3f4f6;
  border-radius: 6px;
  padding: 3px 8px;
  font-weight: 500;
}

.terms-acceptance-banner {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 14px;
  padding: 15px 18px;
}

.terms-acceptance-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #dcfce7;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.terms-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  border: none;
}

.terms-prose {
  color: #374151;
  font-size: 0.875rem;
  line-height: 1.75;
  padding: 24px 28px;
}
.terms-prose h2 {
  font-size: 1rem;
  font-weight: 800;
  color: #1e2a4a;
  margin: 0 0 14px;
  letter-spacing: -0.2px;
}
.terms-prose h3 {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1e2a4a;
  margin: 28px 0 8px;
}
.terms-prose p {
  margin: 0 0 10px;
}
.terms-prose ul,
.terms-prose ol {
  margin: 6px 0 14px 0;
  padding-left: 22px;
}
.terms-prose li {
  margin-bottom: 5px;
}
.terms-prose strong {
  font-weight: 700;
  color: #1e2a4a;
}
.terms-prose a {
  color: #0d6efd;
}

.terms-body-wrapper {
  position: relative;
  max-height: 480px;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.terms-body-wrapper.expanded {
  max-height: none;
  overflow: visible;
}

.terms-fade {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: linear-gradient(to bottom, transparent, #fff);
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.terms-fade.hidden {
  opacity: 0;
}

.btn-terms-expand {
  width: 100%;
  padding: 13px 28px;
  background: #fff;
  border: none;
  border-top: 1px solid #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  color: #0d6efd;
  cursor: pointer;
}
.btn-terms-expand:hover {
  background: #fafafa;
}
.btn-terms-expand.expanded {
  background: #fafafa;
}

.terms-action-bar {
  background: #fff;
  border-radius: 14px;
  padding: 18px 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.btn-terms-accept {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 700;
  background: #0d6efd;
  color: #fff;
  border: none;
  box-shadow: 0 2px 8px rgba(13, 110, 253, 0.28);
  white-space: nowrap;
}
.btn-terms-accept:hover {
  filter: brightness(0.93);
  color: #fff;
}

.btn-terms-download {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 700;
  background: #f3f4f6;
  color: #6b7a99;
  border: 1px solid #e5e7eb;
  white-space: nowrap;
}
.btn-terms-download:hover {
  background: #e9eaf0;
  color: #6b7a99;
}
.btn-terms-download.accepted {
  background: #f0fdf4;
  color: #15803d;
  border-color: #86efac;
}
.btn-terms-download.accepted:hover {
  background: #dcfce7;
  color: #15803d;
}

.btn-terms-download-green {
  font-size: 0.76rem;
  font-weight: 700;
  color: #15803d;
  background: #fff;
  border: 1px solid #86efac;
  border-radius: 9px;
  padding: 7px 14px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.btn-terms-download-green:hover {
  background: #f0fdf4;
  color: #15803d;
}

.terms-dot-sep {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #d1d5db;
  display: inline-block;
  flex-shrink: 0;
}

@media (max-width: 575.98px) {
  .terms-prose {
    padding: 16px;
  }
}
.page-header {
  background: #fff;
  border-bottom: 1px solid var(--bs-border-color);
  padding: 20px 24px 18px;
}

.page-header h4 {
  font-weight: 800;
  color: #1e2a4a;
  font-size: 1.15rem;
  letter-spacing: -0.3px;
  margin: 0;
}

.page-header p {
  color: #6b7a99;
  font-size: 0.85rem;
  margin: 4px 0 0;
}

.card-top-bar {
  height: 6px;
  background: var(--bs-primary);
}

.field-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #8a96b0;
  margin-bottom: 6px;
}

.field-label .req {
  color: var(--bs-primary);
}

.eye-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #9ca3af;
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  line-height: 1;
}

.inline-check {
  position: absolute;
  right: 44px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bs-success);
  line-height: 1;
}

.strength-bars {
  display: flex;
  gap: 4px;
  margin-bottom: 4px;
}

.strength-bar {
  flex: 1;
  height: 4px;
  border-radius: 99px;
  background: #e5e7eb;
  transition: background 0.2s;
}

.strength-label {
  font-size: 0.72rem;
  font-weight: 700;
}

.req-box {
  background: #fafbff;
  border: 1.5px solid #e8eaf0;
  border-radius: 10px;
  padding: 12px 14px;
}

.req-box-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #8a96b0;
  margin-bottom: 8px;
}

.req-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.78rem;
  margin-bottom: 5px;
}

.req-item:last-child {
  margin-bottom: 0;
}

.req-item.ok {
  color: var(--bs-success);
  font-weight: 700;
}

.req-item.fail {
  color: #6b7a99;
  font-weight: 400;
}

.req-dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1.5px solid var(--bs-border-color);
  flex-shrink: 0;
  display: inline-block;
}

.btn-save {
  font-weight: 700;
  font-size: 0.95rem;
  border-radius: 12px;
  padding: 13px 28px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.btn-save.btn-primary {
  background: var(--bs-btn-bg);
  border-color: var(--bs-btn-border-color);
  box-shadow: 0 2px 10px rgba(99, 102, 241, 0.35);
}

.btn-save.btn-primary:hover {
  background: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
}

.btn-save:disabled, .btn-save.disabled {
  background: var(--bs-btn-disabled-bg);
  border-color: var(--bs-btn-disabled-border-color);
  color: var(--bs-btn-disabled-color);
  box-shadow: none;
  opacity: 1;
}

.btn-save.saving {
  background: var(--bs-btn-disabled-bg);
  border-color: var(--bs-btn-disabled-border-color);
}

.success-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bs-success-bg-subtle);
  border: 1.5px solid var(--bs-success);
  color: var(--bs-success);
  border-radius: 10px;
  padding: 6px 12px;
  font-weight: 700;
  font-size: 0.78rem;
}

.success-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--bs-success-bg-subtle);
  border: 2px solid var(--bs-success);
  color: var(--bs-success);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}

.error-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--bs-danger);
  color: var(--bs-danger);
  border: 2px solid var(--bs-danger);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border: 2.5px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}

.helper-text {
  text-align: center;
  font-size: 0.75rem;
  color: #9ca3af;
  margin-top: 10px;
}

.secure-footer {
  text-align: center;
  color: #c4cad6;
  font-size: 0.73rem;
  margin-top: 28px;
}

:root {
  --md-bg: #f3f4f6;
  --md-white: #ffffff;
  --md-heading: #1e2a4a;
  --md-muted: #8a96b0;
  --md-muted-dark: #6b7a99;
  --md-border: #e5e7eb;
  --md-border-lg: #f1f3f6;
  --md-card-bg: #fafbff;
  --md-indigo: var(--bs-primary);
  --md-indigo-bg: var(--bs-primary-bg-subtle);
  --md-indigo-ring: rgba(var(--bs-primary-rgb), 0.12);
  --md-radius-card: 18px;
  --md-radius-field: 10px;
  --md-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.07);
}

.md-page-header {
  background: var(--md-white);
  border-bottom: 1px solid var(--md-border);
  padding: 20px 24px 18px;
}
.md-page-header h4 {
  margin: 0;
  font-weight: 800;
  color: var(--md-heading);
  font-size: 1.15rem;
  letter-spacing: -0.3px;
}
.md-page-header p {
  margin: 4px 0 0;
  color: var(--md-muted-dark);
  font-size: 0.85rem;
}

.md-saved-banner {
  display: none;
  align-items: center;
  gap: 6px;
  background: #f0fdf4;
  border: 1.5px solid #86efac;
  border-radius: 10px;
  padding: 6px 12px;
  color: #15803d;
  font-weight: 700;
  font-size: 0.78rem;
  animation: md-fade-in 0.25s ease;
}
.md-saved-banner.visible {
  display: flex;
}

@keyframes md-fade-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.md-content {
  max-width: 720px;
  margin: 0 auto;
  padding: 24px 16px 40px;
}

.md-card {
  background: var(--md-white);
  border-radius: var(--md-radius-card);
  box-shadow: var(--md-shadow-card);
  overflow: hidden;
  margin-bottom: 16px;
}

.md-card-accent {
  height: 6px;
  background: linear-gradient(90deg, var(--bs-primary), var(--bs-primary-border-subtle));
}

.md-profile-body {
  padding: 24px;
}

.md-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bs-primary), var(--bs-primary-border-subtle));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.4rem;
  color: #fff;
  box-shadow: 0 0 0 4px var(--bs-primary-bg-subtle);
  flex-shrink: 0;
  user-select: none;
}
.md-avatar img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--bs-primary-border-subtle);
  box-shadow: 0 0 0 4px var(--bs-primary-bg-subtle);
}

.md-profile-name {
  font-weight: 800;
  color: var(--md-heading);
  font-size: 1.05rem;
  margin-bottom: 2px;
}

.md-profile-email {
  font-size: 0.83rem;
  color: var(--md-muted-dark);
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 10px;
}

.md-photo-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f3f4f6;
  border: 1.5px solid var(--md-border);
  border-radius: 9px;
  padding: 7px 14px;
  font-size: 0.78rem;
  font-weight: 600;
  color: #374151;
  cursor: pointer;
  transition: background 0.12s;
  text-decoration: none;
}
.md-photo-btn:hover {
  background: #e9eaf0;
}

.md-photo-filename {
  font-size: 0.72rem;
  color: var(--md-muted);
  margin-left: 4px;
  vertical-align: middle;
}

.md-photo-remove {
  background: none;
  border: none;
  color: #9ca3af;
  font-size: 0.72rem;
  cursor: pointer;
  text-decoration: underline;
  margin-left: 6px;
  padding: 0;
}

.md-section {
  padding: 20px 24px;
}

.md-section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.md-section-icon {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--md-indigo-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.md-section-icon i {
  color: var(--md-indigo);
  font-size: 0.82rem;
}

.md-section-title {
  font-weight: 700;
  color: var(--md-heading);
  font-size: 0.87rem;
}

.md-divider {
  height: 1px;
  background: #f3f4f6;
  margin: 0 24px;
}

.md-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--md-muted);
  margin-bottom: 6px;
}
.md-label .md-required {
  color: var(--md-indigo);
  margin-left: 3px;
}

.md-input {
  width: 100%;
  padding: 11px 13px;
  border: 1.5px solid var(--md-border);
  border-radius: var(--md-radius-field);
  font-size: 0.87rem;
  color: var(--md-heading);
  background: var(--md-white);
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
}
.md-input:focus {
  border-color: var(--md-indigo);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.25);
}
.md-input.is-locked {
  background: #f9fafb;
  color: #6b7280;
  padding-right: 44px;
  cursor: default;
}

.md-locked-wrap {
  position: relative;
}

.md-locked-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  font-size: 0.78rem;
  pointer-events: none;
}

.md-locked-hint {
  font-size: 0.72rem;
  color: #9ca3af;
  margin-top: 5px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.md-postcode {
  max-width: 220px;
}

.md-name-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.md-save-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.md-saving-text {
  font-size: 0.78rem;
  color: var(--md-muted);
}

.md-save-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: var(--md-indigo);
  color: #fff;
  border: none;
  border-radius: 11px;
  font-weight: 700;
  font-size: 0.88rem;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(var(--bs-primary-rgb), 0.35);
  transition: background 0.15s, opacity 0.15s;
  min-width: 140px;
  justify-content: center;
}
.md-save-btn:hover {
  background: var(--bs-link-hover-color);
}
.md-save-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.md-save-btn.is-saved {
  background: #16a34a;
}

.md-page-footer {
  text-align: center;
  color: #c4cad6;
  font-size: 0.73rem;
  margin-top: 24px;
}

@media (max-width: 420px) {
  .md-name-grid {
    grid-template-columns: 1fr;
  }
  .md-save-row {
    flex-direction: column;
    align-items: stretch;
  }
  .md-save-btn {
    width: 100%;
    padding: 14px;
    font-size: 0.95rem;
  }
  .md-page-header {
    padding: 16px 16px 14px;
  }
  .md-section {
    padding: 16px;
  }
  .md-profile-body {
    padding: 16px;
  }
  .md-divider {
    margin: 0 16px;
  }
  .md-content {
    padding: 16px 12px 32px;
  }
}
@media (max-width: 575px) {
  .md-page-header h4 {
    font-size: 1rem;
  }
}
.contact-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  padding: 20px;
  border: none;
}

@media (min-width: 576px) {
  .contact-card {
    padding: 24px;
  }
}
.avatar-circle {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.95rem;
  color: #fff;
  flex-shrink: 0;
  overflow: hidden;
}

.avatar-brand {
  background: var(--bs-primary);
  color: #fff;
}

.avatar-grey {
  background: #e5e7eb;
  color: #4b5563;
}

.avatar-sm {
  width: 52px;
  height: 52px;
  font-size: 1.05rem;
}

.meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8rem;
  color: #6b7a99;
}

.badge-custom {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 99px;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
}

.badge-brand {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary-text-emphasis);
  border: 1px solid var(--bs-primary-border-subtle);
}

.badge-green {
  background: #f0fdf4;
  color: #15803d;
}

.badge-grey {
  background: #f3f4f6;
  color: #6b7a99;
}

.badge-silver {
  background: #f9fafb;
  color: #9ca3af;
}

.btn-brand {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 18px;
  background: var(--bs-primary);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  font-family: inherit;
}

.btn-brand:hover {
  filter: brightness(0.93);
  color: #fff;
}

.btn-ghost {
  padding: 9px 16px;
  background: #f3f4f6;
  color: #6b7a99;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.85rem;
  cursor: pointer;
  font-family: inherit;
}

.btn-danger-soft {
  padding: 9px 16px;
  background: #fef2f2;
  color: #ef4444;
  border: 1.5px solid #fecaca;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.btn-icon {
  background: #f3f4f6;
  border: none;
  border-radius: 8px;
  padding: 7px;
  cursor: pointer;
  display: flex;
  align-items: center;
  color: #6b7a99;
  transition: background 0.12s;
  flex-shrink: 0;
}

.btn-icon:hover {
  background: #e9eaf0;
}

.btn-icon-danger {
  color: #ef4444;
}

.btn-icon-danger:hover {
  background: #fee2e2;
}

.btn-dashed-brand {
  width: 100%;
  padding: 13px 20px;
  background: none;
  border: 2px dashed var(--bs-primary-border-subtle);
  border-radius: 14px;
  color: var(--bs-primary);
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  font-family: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: border-color 0.15s, background 0.15s;
}

.btn-dashed-brand:hover {
  background: var(--bs-primary-bg-subtle);
}

.form-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  padding: 24px;
  border: none;
  overflow: visible;
}

.form-card-stripe {
  height: 5px;
  background: linear-gradient(90deg, var(--bs-primary), var(--bs-primary-border-subtle));
  margin: -24px -24px 20px;
  border-radius: 14px 14px 0 0;
}

.field-required {
  color: var(--bs-primary);
}

.field-error {
  margin-top: 4px;
  font-size: 0.73rem;
  color: #ef4444;
}

.radio-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b7a99;
}

.radio-brand.active {
  font-weight: 700;
  color: #1e2a4a;
}

.radio-brand-input {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}

.form-card .radio-brand .checkbox-brand-control {
  width: 20px;
  height: 20px;
  border-radius: 7px;
  border: 2px solid #d1d5db;
  background: #fff;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.15s;
  font-size: 0.75rem;
  line-height: 1;
}

.form-card .radio-brand .checkbox-brand-control.is-checked {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
}

.radio-circle {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #d1d5db;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.15s;
}

.radio-circle.checked {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
}

.radio-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
}

.photo-guidelines {
  background: #f8f9ff;
  border: 1.5px solid #e0e3f8;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 14px;
}

.photo-preview-circle {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  flex-shrink: 0;
  overflow: hidden;
  background: #f3f4f6;
  border: 2px solid #e5e7eb;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s;
}

.photo-preview-circle.has-photo {
  border-color: var(--bs-primary);
}

.photo-icon-bg {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--bs-primary-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.photo-icon-bg i {
  color: var(--bs-primary);
}

.delete-confirm {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.info-banner {
  background: #fffbeb;
  border: 1.5px solid #fde68a;
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 20px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.info-banner p {
  font-size: 0.8rem;
  color: #92400e;
  line-height: 1.6;
  margin: 0;
}

.btn-reset-brand {
  background: none;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 0.83rem;
  font-weight: 600;
  color: #8a96b0;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  align-self: flex-end;
}

@media (max-width: 575.98px) {
  .branding-panel {
    padding: 12px 16px;
  }
  .photo-guidelines .row {
    --bs-gutter-x: 0;
  }
  .photo-guidelines .col-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media (min-width: 576px) and (max-width: 991.98px) {
  .page-header-branded {
    padding: 18px 20px 16px;
  }
}
.aam-modal-shell {
  border-radius: 24px;
  overflow: hidden;
}

.aam-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 1.75rem 1.25rem;
  border-bottom: 1px solid #e5e7eb;
  background: #fff;
}

.aam-header-content {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  flex: 1;
}

.aam-header-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  flex-shrink: 0;
}

.aam-title {
  margin: 0 0 0.25rem;
  color: #1e2a4a;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.02rem;
}

.aam-subtitle {
  margin: 0;
  color: #8a96b0;
  font-size: 0.88rem;
  line-height: 1.5;
}

.aam-close-btn {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 12px;
  background: #f3f4f6;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
  cursor: pointer;
}
.aam-close-btn:hover {
  background: rgba(var(--bs-danger-rgb), 0.1);
  color: var(--bs-danger);
}

.aam-body {
  padding: 1.5rem 1.75rem;
  background: #fafbfc;
  max-height: calc(100vh - 320px);
  overflow-y: auto;
}

.aam-section-wrap {
  background: #fff;
  border-radius: 16px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.aam-section-wrap:last-child {
  margin-bottom: 0;
}
.aam-section-wrap.mb-0 {
  margin-bottom: 0 !important;
}

.aam-section-title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.aam-section-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  flex-shrink: 0;
}

.aam-section-label {
  color: #1e2a4a;
  font-size: 1rem;
  font-weight: 700;
}

.aam-section-rule {
  margin: 0 0 1.25rem;
  border-top: 1px solid #e5e7eb;
  opacity: 1;
}

.aam-label {
  display: block;
  margin-bottom: 0.5rem;
  color: #4b5563;
  font-size: 0.82rem;
  font-weight: 600;
}

.aam-required {
  color: var(--bs-danger);
  margin-left: 0.15rem;
}

.aam-icon-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.aam-field-icon {
  position: absolute;
  left: 1rem;
  color: #9ca3af;
  font-size: 0.95rem;
  pointer-events: none;
  z-index: 1;
}

.aam-input {
  width: 100%;
  padding: 0.75rem 1rem 0.75rem 2.75rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #1e2a4a;
  font-size: 0.9rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.aam-input:focus {
  outline: 0;
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.1);
}
.aam-input:read-only {
  background: #f9fafb;
  color: #6b7280;
  cursor: not-allowed;
}

.aam-input-password {
  padding-right: 3rem;
}

.aam-pw-toggle {
  position: absolute;
  right: 0.75rem;
  border: 0;
  background: transparent;
  color: #9ca3af;
  padding: 0.5rem;
  cursor: pointer;
  transition: color 0.2s ease;
  z-index: 1;
}
.aam-pw-toggle:hover {
  color: var(--bs-primary);
}

.aam-hint {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: rgba(var(--bs-primary-rgb), 0.05);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.15);
  color: var(--bs-primary);
  font-size: 0.82rem;
  line-height: 1.5;
}
.aam-hint i {
  margin-top: 0.1rem;
  flex-shrink: 0;
}

.aam-help-text {
  margin: 0 0 0.85rem;
  color: #6b7280;
  font-size: 0.85rem;
  line-height: 1.5;
}

.aam-role-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.85rem;
  border-radius: 10px;
  border: 1.5px solid transparent;
  font-size: 0.82rem;
  font-weight: 700;
  transition: all 0.2s ease;
  cursor: pointer;
  background: #f3f4f6;
  color: #6b7280;
}
.aam-role-pill:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.3);
  background: rgba(var(--bs-primary-rgb), 0.05);
}
.aam-role-pill.selected {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.aam-role-pill-super {
  background: rgba(var(--bs-danger-rgb), 0.1);
  border-color: rgba(var(--bs-danger-rgb), 0.3);
  color: var(--bs-danger);
}
.aam-role-pill-super.selected {
  background: var(--bs-danger);
  border-color: var(--bs-danger);
  color: #fff;
}

.aam-role-pill-ops {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border-color: rgba(var(--bs-primary-rgb), 0.3);
  color: var(--bs-primary);
}
.aam-role-pill-ops.selected {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.aam-role-pill-club {
  background: rgba(var(--bs-secondary-rgb), 0.1);
  border-color: rgba(var(--bs-secondary-rgb), 0.3);
  color: var(--bs-secondary);
}
.aam-role-pill-club.selected {
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: #fff;
}

.aam-role-selector {
  position: relative;
}

.aam-role-selector-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #1f2937;
  font-size: 0.9rem;
  font-weight: 700;
}

.aam-role-selector-menu {
  margin-top: 0.65rem;
  padding: 0.6rem;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
  display: grid;
  gap: 0.4rem;
}

.aam-role-selector-option {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  padding: 0.7rem 0.8rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #374151;
  font-size: 0.88rem;
  font-weight: 700;
  text-align: left;
}
.aam-role-selector-option:hover {
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.aam-role-selector-check {
  color: var(--bs-primary);
  font-size: 0.95rem;
}

.aam-role-groups {
  display: grid;
  gap: 0.9rem;
  margin-bottom: 1rem;
}

.aam-role-group-card {
  border: 1px solid #eceff3;
  border-radius: 14px;
  padding: 0.95rem;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
}

.aam-role-group-head {
  margin-bottom: 0.8rem;
}

.aam-role-group-title {
  color: #111827;
  font-size: 0.92rem;
  font-weight: 800;
}

.aam-role-group-copy {
  margin-top: 0.2rem;
  color: #6b7280;
  font-size: 0.8rem;
  line-height: 1.45;
}

.aam-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  border: 2px dashed #d1d5db;
  border-radius: 14px;
  background: #fafbfc;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease;
  text-align: center;
}
.aam-upload:hover {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.02);
}

.aam-upload-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  margin-bottom: 0.75rem;
}

.aam-upload-title {
  color: #1e2a4a;
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
}

.aam-upload-subtitle {
  color: #8a96b0;
  font-size: 0.8rem;
}

.aam-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  padding: 1.25rem 1.75rem;
  border-top: 1px solid #e5e7eb;
  background: #fff;
}

.aam-btn-cancel,
.aam-btn-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 700;
  transition: all 0.2s ease;
  min-width: 120px;
}

.aam-btn-cancel {
  border: 1.5px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
}
.aam-btn-cancel:hover {
  border-color: #d1d5db;
  background: #f9fafb;
  color: #4b5563;
}

.aam-btn-save {
  border: 0;
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 4px 14px rgba(var(--bs-primary-rgb), 0.3);
}
.aam-btn-save:hover:not(:disabled) {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(var(--bs-primary-rgb), 0.35);
}
.aam-btn-save:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 575.98px) {
  .aam-header,
  .aam-body,
  .aam-footer {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .aam-section-wrap {
    padding: 1rem 1.25rem;
  }
  .aam-title {
    font-size: 1.1rem;
  }
  .aam-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .aam-btn-cancel,
  .aam-btn-save {
    width: 100%;
  }
}
.aa-page {
  background: #f3f4f6;
  min-height: 100vh;
}

.aa-container {
  max-width: 1100px;
}

.aa-page-header, .mp-page-header {
  background: var(--bs-body-bg);
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  margin-bottom: 16px;
}

.aa-breadcrumb, .mp-breadcrumb {
  font-size: 0.78rem;
  margin-bottom: 0;
}
.aa-breadcrumb .breadcrumb-item, .mp-breadcrumb .breadcrumb-item,
.aa-breadcrumb .breadcrumb-item.active {
  color: #8a96b0;
}
.aa-breadcrumb .breadcrumb-item + .breadcrumb-item::before, .mp-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  color: #cbd5e1;
}
.aa-breadcrumb a, .mp-breadcrumb a {
  color: var(--bs-primary);
  text-decoration: none;
}
.aa-breadcrumb a:hover, .mp-breadcrumb a:hover {
  color: var(--bs-link-hover-color);
  text-decoration: underline;
}

.aa-page-title, .mp-page-title {
  color: #1e2a4a;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02rem;
  margin: 0;
}

.aa-page-subtitle, .mp-page-subtitle {
  color: #8a96b0;
  font-size: 0.9rem;
  margin: 0;
}

.aa-add-btn, .mp-add-btn {
  background: var(--bs-primary);
  border: 0;
  color: #fff;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.82rem;
  padding: 8px 18px;
  transition: filter 0.15s;
}
.aa-add-btn:hover, .mp-add-btn:hover {
  filter: brightness(0.93);
  color: #fff;
}

.aa-toolbar-count, .mp-toolbar-count {
  color: #1e2a4a;
  font-size: 0.875rem;
}

.aa-search-input, .mp-search-input {
  max-width: 280px;
}
.aa-search-input .input-group-text, .mp-search-input .input-group-text {
  background: var(--bs-body-bg);
  border-color: var(--bs-border-color);
  color: #8a96b0;
}
.aa-search-input .form-control, .mp-search-input .form-control {
  border-color: var(--bs-border-color);
  font-size: 0.875rem;
}
.aa-search-input .form-control:focus, .mp-search-input .form-control:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}
.aa-search-input .form-control:focus ~ .input-group-text, .mp-search-input .form-control:focus ~ .input-group-text {
  border-color: var(--bs-primary);
}

.aa-add-card, .mp-add-card {
  background: var(--bs-body-bg);
  border: 2px dashed var(--bs-border-color);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.aa-add-card:hover, .mp-add-card:hover {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.02);
}

.aa-add-icon, .mp-add-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  margin-bottom: 12px;
}

.aa-add-card-title, .mp-add-card-title {
  color: #1e2a4a;
  font-size: 0.95rem;
  margin-bottom: 6px;
}

.aa-add-card-subtitle, .mp-add-card-subtitle {
  color: #8a96b0;
  font-size: 0.82rem;
}

.aa-card, .mp-card {
  background: var(--bs-body-bg);
  border-radius: 12px;
  border: 1px solid var(--bs-border-color);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.aa-card:hover, .mp-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.aa-avatar, .mp-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.1rem;
  color: #fff;
  flex-shrink: 0;
  overflow: hidden;
}
.aa-avatar img, .mp-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.aa-user-name, .mp-user-name {
  font-weight: 700;
  color: #1e2a4a;
  font-size: 0.95rem;
  margin-bottom: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aa-user-email, .mp-user-email {
  font-size: 0.82rem;
  color: #8a96b0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aa-user-wrap, .mp-user-wrap {
  min-width: 0;
  flex: 1;
}

.aa-card-footer, .mp-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--bs-border-color);
}

.aa-role-super {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(var(--bs-danger-rgb), 0.1);
  border: 1px solid rgba(var(--bs-danger-rgb), 0.2);
  color: var(--bs-danger);
}

.aa-role-club {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--bs-primary-bg-subtle);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  color: var(--bs-primary);
}

.aa-admin-label, .mp-parent-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #8a96b0;
  font-size: 0.78rem;
  font-weight: 600;
}
.aa-admin-label i, .mp-parent-label i {
  font-size: 0.82rem;
}

.aa-edit-btn, .mp-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #6b7a99;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.aa-edit-btn:hover, .mp-edit-btn:hover {
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
}

.aa-empty-state, .mp-empty-state {
  color: #8a96b0;
  padding: 48px 24px;
}

.mp-alpha-filter {
  background: var(--bs-body-bg);
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.mp-alpha-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.mp-alpha-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 4px 10px;
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 700;
  color: #6b7a99;
  cursor: pointer;
  transition: all 0.15s;
}
.mp-alpha-btn:hover:not(.disabled) {
  background: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}
.mp-alpha-btn.active {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}
.mp-alpha-btn.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.cat-page-header {
  background: var(--bs-body-bg);
  border-bottom: 1px solid var(--bs-border-color);
  padding: 16px 24px 20px;
}

.cat-page-header-inner {
  max-width: 860px;
  margin: 0 auto;
}

.cat-breadcrumb-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}

.cat-breadcrumb-row .cat-bc-link {
  color: var(--bs-primary);
  font-weight: 600;
  font-size: 0.82rem;
  text-decoration: none;
}

.cat-breadcrumb-row .cat-bc-link:hover {
  text-decoration: underline;
}

.cat-breadcrumb-row .cat-bc-sep {
  color: var(--bs-border-color);
  font-size: 0.82rem;
}

.cat-breadcrumb-row .cat-bc-current {
  color: var(--bs-secondary-color);
  font-size: 0.82rem;
  font-weight: 500;
}

.cat-page-header-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.cat-page-header-title {
  margin: 0;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  font-size: 1.3rem;
  letter-spacing: -0.4px;
}

.cat-page-header-sub {
  margin: 3px 0 0;
  color: var(--bs-secondary-color);
  font-size: 0.84rem;
}

.cat-count-badge {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary-text-emphasis);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.15);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.cat-content-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 24px 24px 64px;
}

.cat-card {
  background: var(--bs-body-bg);
  border-radius: 16px;
  border: 1px solid var(--bs-border-color);
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.cat-card-header {
  padding: 16px 20px 14px;
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  align-items: center;
  gap: 10px;
}

.cat-card-title {
  font-weight: 700;
  color: var(--bs-emphasis-color);
  font-size: 0.95rem;
  margin: 0;
}

.cat-count-pill {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 0.72rem;
  font-weight: 700;
}

.cat-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 20px;
  border-bottom: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
  transition: background 0.15s;
}

.cat-row:last-child {
  border-bottom: none;
}

.cat-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bs-primary);
  flex-shrink: 0;
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}

.cat-name {
  flex: 1;
  font-weight: 600;
  color: var(--bs-emphasis-color);
  font-size: 0.9rem;
  min-width: 0;
}

.cat-class-count {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
  margin-right: 4px;
}

.cat-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  border: 1.5px solid var(--bs-border-color);
  background: var(--bs-tertiary-bg);
  cursor: pointer;
  font-family: inherit;
  flex-shrink: 0;
  color: var(--bs-secondary-color);
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.cat-icon-btn i {
  font-size: 0.78rem;
}

.cat-icon-btn:hover {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
}

.cat-icon-btn.cat-del:hover {
  border-color: var(--bs-danger-border-subtle);
  color: var(--bs-danger);
  background: var(--bs-danger-bg-subtle);
}

.cat-row-editing {
  background: rgba(var(--bs-primary-rgb), 0.04);
  border-bottom: 1px solid var(--bs-border-color);
  padding: 12px 20px;
}
.cat-row-editing .form-control {
  border: 2px solid var(--bs-primary);
  border-radius: 9px;
  font-weight: 600;
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}
.cat-row-editing .form-control.is-invalid {
  border-color: var(--bs-danger);
  box-shadow: 0 0 0 3px rgba(var(--bs-danger-rgb), 0.15);
}
.cat-row-editing .form-control:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}

.cat-row-editing:last-child {
  border-bottom: none;
}

.cat-row-delete {
  background: var(--bs-danger-bg-subtle);
  border-bottom: 1px solid var(--bs-border-color);
  padding: 13px 20px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.cat-row-delete:last-child {
  border-bottom: none;
}

.cat-delete-msg {
  flex: 1;
  min-width: 160px;
  font-size: 0.87rem;
}
.cat-delete-msg strong {
  color: var(--bs-emphasis-color);
}
.cat-delete-msg .cat-del-action {
  color: var(--bs-danger);
  font-weight: 700;
}
.cat-delete-msg .cat-del-warn {
  color: var(--bs-secondary-color);
}

.cat-reassign-panel-wrapper {
  border-bottom: 1px solid var(--bs-border-color);
  background: var(--bs-danger-bg-subtle);
}

.cat-reassign-panel-wrapper:last-child {
  border-bottom: none;
}

.cat-reassign-panel {
  padding: 16px 20px;
}

.cat-reassign-warn-box {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: var(--bs-danger-bg-subtle);
  border: 1px solid var(--bs-danger-border-subtle);
  border-radius: 10px;
  padding: 11px 14px;
  margin-bottom: 14px;
}

.cat-reassign-warn-icon {
  color: var(--bs-danger);
  flex-shrink: 0;
  margin-top: 2px;
  font-size: 1rem;
}

.cat-reassign-warn-title {
  font-weight: 700;
  color: var(--bs-danger-text-emphasis);
  font-size: 0.87rem;
  margin: 0 0 2px;
}

.cat-reassign-warn-sub {
  margin: 0;
  color: var(--bs-secondary-color);
  font-size: 0.8rem;
  line-height: 1.5;
}

.cat-reassign-bulk {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 14px;
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  margin-bottom: 10px;
}

.cat-reassign-bulk-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  white-space: nowrap;
}

.cat-reassign-bulk-select {
  flex: 1;
  min-width: 160px;
  padding: 7px 10px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  font-size: 0.82rem;
  color: var(--bs-emphasis-color);
  background: var(--bs-body-bg);
  font-family: inherit;
}

.cat-btn-move-all {
  padding: 7px 14px;
  background: var(--bs-primary);
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.cat-btn-move-all:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.cat-btn-move-all:not(:disabled):hover {
  filter: brightness(0.93);
}

.cat-reassign-list {
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
}

.cat-reassign-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
}

.cat-reassign-row:last-child {
  border-bottom: none;
}

.cat-reassign-row.moved {
  background: var(--bs-success-bg-subtle);
}

.cat-rrow-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--bs-border-color);
}

.cat-reassign-row.moved .cat-rrow-dot {
  background: var(--bs-success);
}

.cat-rrow-name {
  flex: 1;
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--bs-emphasis-color);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cat-reassign-row.moved .cat-rrow-name {
  color: var(--bs-success-text-emphasis);
}

.cat-rrow-select {
  min-width: 180px;
  padding: 6px 10px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg);
  font-family: inherit;
  flex-shrink: 0;
}

.cat-rrow-moved-label {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  font-size: 0.78rem;
  color: var(--bs-success);
  font-weight: 600;
}

.cat-rrow-check {
  color: var(--bs-success);
}

.cat-rrow-undo {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--bs-tertiary-color);
  font-size: 0.95rem;
  padding: 4px;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  transition: color 0.15s;
}

.cat-rrow-undo:hover {
  color: var(--bs-secondary-color);
}

.cat-reassign-ready-box {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bs-success-bg-subtle);
  border: 1px solid var(--bs-success-border-subtle);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 14px;
}

.cat-ready-check {
  color: var(--bs-success);
  font-size: 0.95rem;
}

.cat-reassign-ready-text {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--bs-success-text-emphasis);
}

.cat-reassign-footer {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.cat-empty-state {
  padding: 48px 24px;
  text-align: center;
  color: var(--bs-tertiary-color);
  font-size: 0.875rem;
}

.cat-empty-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--bs-primary-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 14px;
  color: var(--bs-primary);
  font-size: 1.3rem;
}

.cat-empty-title {
  font-weight: 700;
  color: var(--bs-secondary-color);
  font-size: 0.9rem;
  margin-bottom: 4px;
}

.cat-add-new-card {
  background: var(--bs-body-bg);
  border-radius: 16px;
  border: 1px solid var(--bs-border-color);
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  margin-top: 16px;
}

.cat-add-new-header {
  padding: 16px 20px 14px;
  border-bottom: 1px solid var(--bs-border-color);
  font-weight: 700;
  color: var(--bs-emphasis-color);
  font-size: 0.95rem;
}

.cat-add-new-body {
  padding: 18px 20px;
}
.cat-add-new-body .form-label {
  font-weight: 600;
  color: var(--bs-emphasis-color);
  margin-bottom: 8px;
}
.cat-add-new-body .form-control {
  border-radius: 10px;
  font-size: 0.9rem;
}
.cat-add-new-body .form-control:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.12);
}
.cat-add-new-body .form-text {
  color: var(--bs-tertiary-color);
  font-size: 0.78rem;
  margin-top: 10px;
}

.cat-what-card {
  background: var(--bs-body-bg);
  border-radius: 16px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}

.cat-what-header {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background: none;
  border: none;
  border-bottom: 1px solid rgba(var(--bs-primary-rgb), 0.12);
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

.cat-what-header.collapsed {
  border-bottom: none;
}

.cat-what-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--bs-primary-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--bs-primary);
  font-size: 0.9rem;
}

.cat-what-title {
  flex: 1;
  font-weight: 700;
  color: var(--bs-emphasis-color);
  font-size: 0.9rem;
  margin: 0;
}

.cat-what-chevron {
  flex-shrink: 0;
  color: var(--bs-primary);
  transition: transform 0.2s;
}

.cat-what-chevron.collapsed {
  transform: rotate(-90deg);
}

.cat-what-body {
  padding: 18px 20px 20px;
}
.cat-what-body p {
  margin: 0 0 12px;
  color: var(--bs-body-color);
  font-size: 0.85rem;
  line-height: 1.65;
}
.cat-what-body p:last-child {
  margin-bottom: 0;
}
.cat-what-body .cat-use-heading {
  font-weight: 700;
  color: var(--bs-emphasis-color);
  font-size: 0.85rem;
  margin: 0 0 10px;
}

.cat-use-item {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
  align-items: flex-start;
}

.cat-use-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--bs-primary);
  flex-shrink: 0;
  margin-top: 7px;
  box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.18);
}

.cat-use-item-text {
  font-size: 0.84rem;
  line-height: 1.55;
}
.cat-use-item-text strong {
  color: var(--bs-emphasis-color);
}
.cat-use-item-text span {
  color: var(--bs-secondary-color);
}

.cat-what-tip {
  margin-top: 14px;
  padding: 11px 14px;
  background: var(--bs-primary-bg-subtle);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  border-radius: 10px;
}
.cat-what-tip p {
  color: var(--bs-primary-text-emphasis);
  font-size: 0.82rem;
  line-height: 1.55;
  margin: 0 0 5px;
}
.cat-what-tip p:last-child {
  margin: 0;
}
.cat-what-tip .cat-tip-label {
  font-weight: 700;
}

@media (max-width: 575.98px) {
  .cat-page-header {
    padding: 14px 14px 12px;
  }
  .cat-content-wrap {
    padding: 14px 12px 48px;
  }
  .cat-row {
    padding: 12px 14px;
  }
  .cat-row-editing {
    padding: 12px 14px;
  }
  .cat-row-delete {
    padding: 12px 14px;
  }
  .cat-card-header {
    padding: 14px 14px 12px;
  }
  .cat-add-new-header {
    padding: 14px 14px 12px;
  }
  .cat-add-new-body {
    padding: 14px 14px;
  }
  .cat-page-header-title {
    font-size: 1rem;
  }
  .cat-class-count {
    display: none;
  }
}
.members-page {
  background: #f4f6fb;
  flex: 1 0 auto;
}

.members-page-shell {
  max-width: 1280px;
  display: flex;
  flex-direction: column;
  padding-top: 1.5rem;
  padding-bottom: 1rem;
}

/* Wider desktop shell for Members, Trials, and Waiting List admin routes. */
@media (min-width: 992px) {
  .members-admin-page > .members-page-shell,
  .trials-admin > .members-page-shell,
  .waiting-list-admin > .waiting-list-admin__shell {
    max-width: 1540px;
  }
}

.members-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.members-page-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--bs-secondary);
  margin: 0 0 0.2rem;
}

.members-page-subtitle {
  font-size: 0.78rem;
  color: #8a96b0;
  margin: 0;
}

.members-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.9rem 1.2rem;
  border: 0;
  border-radius: 12px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.22);
}

.members-filter-toggle-count {
  min-width: 1.6rem;
  height: 1.6rem;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 900;
}

.members-filter-panel-wrap.is-hidden {
  display: none;
}

.members-search-modal__dialog {
  margin: 1rem auto;
}

.members-search-modal__content {
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 920px);
  border: 0;
  border-radius: 20px;
  overflow: hidden;
}

.members-search-modal__header {
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.35rem 1rem;
  border-bottom: 1px solid #e8edf5;
}

.members-search-modal__title {
  color: var(--bs-secondary);
  font-weight: 800;
}

.members-search-modal__helper {
  margin-top: 0.35rem;
  color: #8a96b0;
  font-size: 0.82rem;
}

.members-search-modal__body {
  overflow-y: auto;
  padding: 1.1rem 1.35rem;
  background: #fff;
}

.members-search-modal__filters.filter-panel,
.members-search-modal__filters {
  padding: 0;
  gap: 1.1rem;
  background: transparent;
}

.members-search-modal__footer {
  display: flex;
  justify-content: stretch;
  gap: 0.85rem;
  padding: 1rem 1.35rem calc(1rem + env(safe-area-inset-bottom));
  border-top: 1px solid #e8edf5;
  background: #fff;
  flex-shrink: 0;
}

.members-layout-search-modal__footer {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.85rem;
  padding: 1rem 1.35rem calc(1rem + env(safe-area-inset-bottom));
  border-top: 1px solid #e8edf5;
  background: #fff;
  flex-shrink: 0;
}

.members-search-modal__footer .members-filter-reset,
.members-search-modal__footer .members-filter-submit {
  flex: 1 1 0;
  min-height: 48px;
}

.members-search-modal__footer .members-filter-reset:disabled,
.members-search-modal__footer .members-filter-submit:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.members-search-error {
  margin-bottom: 1rem;
}

.members-retrieving-state {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  padding: 3rem 1.5rem;
  min-height: 360px;
}

.members-retrieving-state__icon {
  margin-bottom: 1.5rem;
}

.members-retrieving-state__title {
  color: var(--bs-secondary);
  font-weight: 700;
}

.members-retrieving-state__text {
  max-width: 320px;
}

.filter-panel {
  font-family: sans-serif;
  padding: 20px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.filter-section-label {
  font-size: 12px;
  font-weight: 600;
  color: #4a5568;
  text-transform: uppercase;
  margin-bottom: 12px;
  letter-spacing: 0.5px;
}

/* Status Pills styling */
.status-pills-row {
  display: flex;
  gap: 12px;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  cursor: pointer;
  border: 1px solid #e2e8f0;
}

.status-pill.active {
  font-weight: 700;
}

/* Specific Pill Color Overrides matching image */
.status-pill.succeeded {
  color: var(--bs-primary);
}

.status-pill.succeeded.active {
  border-color: var(--bs-primary);
  background-color: rgba(var(--bs-primary-rgb), 0.1);
}

.status-pill.succeeded .dot {
  background-color: var(--bs-primary);
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.status-pill.partial-refund {
  color: var(--bs-warning);
}

.status-pill.partial-refund.active {
  border-color: var(--bs-warning);
  background-color: #fff7ed;
}

.status-pill.partial-refund .dot {
  background-color: var(--bs-warning);
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.status-pill.refunded {
  color: #9b2c2c;
}

.status-pill.refunded.active {
  border-color: #fc8181;
  background-color: #fff5f5;
}

.status-pill.refunded .dot {
  background-color: #e53e3e;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/* Input Field Rows */
.field-row {
  display: flex;
  gap: 16px;
}

.field-mini {
  font-size: 12px;
  color: #718096;
  margin-bottom: 6px;
}

.input-date, .pound-input {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px 12px;
  min-width: 140px;
  display: flex;
  align-items: center;
  background: #fff;
}

.pound-input input {
  border: none;
  outline: none;
  width: 100%;
  margin-left: 4px;
  color: #4a5568;
}

.pound-prefix {
  color: #a0aec0;
}

/* Action Buttons Alignment */
.filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 16px;
}

.btn-filter-reset {
  background: #fff;
  border: 1px solid #e2e8f0;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  color: #4a5568;
  font-weight: 500;
}

.btn-filter-search {
  background-color: #4db6ac; /* Muted teal color from image */
  color: white;
  border: none;
  padding: 10px 24px;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 500;
}

.members-filter-search {
  position: relative;
  margin-bottom: 1.25rem;
}

.members-filter-search-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
  font-size: 0.95rem;
}

.members-filter-search-input,
.members-filter-input,
.members-action-select {
  width: 100%;
  min-height: 48px;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  background: #f8fafc;
  color: #6f84a2;
  font-size: 0.84rem;
  font-weight: 500;
  padding: 0.8rem 1rem;
  box-shadow: none;
}

.members-filter-search-input {
  padding-left: 2.6rem;
}

.members-filter-search-input::placeholder,
.members-filter-input::placeholder {
  color: #a1b1c7;
}

.members-filter-search-input:focus,
.members-filter-input:focus,
.members-action-select:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}

.members-filter-section {
  margin-bottom: 1.25rem;
}

.members-filter-section .filter-label,
.members-filter-layout-row .filter-label,
.members-filter-side-stack .filter-label,
.members-filter-date-row .filter-label,
.members-filter-compact-row .filter-label {
  display: inline-block;
  margin: 0 0 0.7rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8fa1bc;
}

.members-filter-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.members-filter-chip-list-tags {
  gap: 0.5rem;
}

.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1.5px solid #dbe2ea;
  border-radius: 12px;
  background: #f8fafc;
  color: #8ea0b7;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.6rem 1rem;
}

.members-filter-chip-list .filter-chip:not(.active) {
  border-color: #dbe2ea !important;
  background: #f8fafc !important;
  color: #8ea0b7 !important;
}

.filter-chip .chip-dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: #cbd5e1;
}

.members-filter-chip-list .filter-chip:not(.active) .chip-dot {
  background: #cbd5e1 !important;
}

.filter-chip.active {
  background: none;
}

.filter-chip.active .chip-dot {
  background: currentColor;
}

.filter-chip.active.chip-indigo {
  border-color: rgba(99, 102, 241, 0.6);
  color: #6366f1;
}

.filter-chip.active.chip-amber {
  border-color: rgba(245, 158, 11, 0.65);
  color: #f59e0b;
}

.filter-chip.active.chip-slate {
  border-color: rgba(148, 163, 184, 0.65);
  color: #94a3b8;
}

.filter-chip.active.chip-sky {
  border-color: rgba(56, 189, 248, 0.65);
  color: #0ea5e9;
}

.filter-chip.active.chip-pink {
  border-color: rgba(var(--bs-secondary-rgb), 0.55);
  color: var(--bs-secondary);
}

.filter-chip.active.chip-emerald {
  border-color: rgba(16, 185, 129, 0.55);
  color: #10b981;
}

.filter-chip.active.chip-violet {
  border-color: rgba(139, 92, 246, 0.55);
  color: #8b5cf6;
}

.filter-chip.active.chip-red {
  border-color: rgba(239, 68, 68, 0.55);
  color: #ef4444;
}

.filter-chip.active.chip-tag {
  border-color: #f59e0b;
  color: #d97706;
  background: none;
}

.filter-chip.chip-day {
  min-width: 3rem;
  justify-content: center;
  padding-left: 0.85rem;
  padding-right: 0.85rem;
}

.filter-chip.active.chip-category,
.filter-chip.active.chip-day {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
  background: none;
}

.members-filter-side-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.members-filter-accordion {
  border: 1.5px solid #e5e7eb;
  border-radius: 14px;
  background: #f8fafc;
  overflow: hidden;
}

.members-filter-accordion-section + .members-filter-accordion-section {
  border-top: 1px solid #eef2f7;
}

.members-filter-accordion-section.is-selected .members-filter-accordion-header {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.members-filter-accordion-header {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.85rem;
  background: #f8fafc;
}

.members-filter-accordion-check {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  cursor: pointer;
}

.members-filter-accordion-check input,
.members-filter-accordion-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.members-filter-accordion-check-box {
  width: 1rem;
  height: 1rem;
  border: 1.5px solid #dbe2ea;
  border-radius: 4px;
  background: #fff;
  flex-shrink: 0;
  position: relative;
}

.members-filter-accordion-check input:checked + .members-filter-accordion-check-box,
.members-filter-accordion-option input:checked + .members-filter-accordion-check-box {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
}

.members-filter-accordion-check input:checked + .members-filter-accordion-check-box::after,
.members-filter-accordion-option input:checked + .members-filter-accordion-check-box::after {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #fff;
  font-size: 0.56rem;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.members-filter-accordion-title {
  color: #2f3f5f;
  font-size: 0.84rem;
  font-weight: 600;
}

.members-filter-accordion-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.members-filter-accordion-count {
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
}

.members-filter-accordion-toggle {
  width: 1.5rem;
  height: 1.5rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.members-filter-accordion-body {
  max-height: 168px;
  overflow-y: auto;
}

.members-filter-accordion-option {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 0.85rem 0.7rem 1.35rem;
  background: #fbfcfe;
  color: #7083a0;
  font-size: 0.84rem;
  font-weight: 500;
  cursor: pointer;
}

.members-filter-accordion-option.is-selected {
  background: #eaf6ff;
  color: var(--bs-primary);
  font-weight: 700;
}

.members-filter-accordion-summary {
  margin-top: 0.45rem;
  color: var(--bs-primary);
  font-size: 0.78rem;
  font-weight: 700;
}

.members-filter-actions {
  margin-top: 1.4rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.85rem;
}

.members-filter-reset,
.members-filter-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 48px;
  padding: 0 1.35rem;
  border-radius: 12px;
  font-size: 0.84rem;
  font-weight: 800;
}

.members-filter-reset {
  border: 1.5px solid #e5e7eb;
  background: #f8fafc;
  color: #94a3b8;
}

.members-filter-submit {
  border: 0;
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.22);
}

.action-bar {
  background: #fff;
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 20px;
  box-shadow: 0 2px 14px rgba(var(--bs-primary-rgb), 0.08);
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}

.members-action-grid {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
}

.members-action-selected {
  min-height: 48px;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0 1rem;
  font-size: 0.82rem;
  font-weight: 800;
}

.members-action-field {
  min-width: 0;
}

.members-action-select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  border: 1.5px solid #e3e8f2;
  border-radius: 18px;
  background: #fff;
  color: #1e2a4a;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.05);
  padding: 0 1rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.members-action-select:hover,
.members-action-select:focus,
.members-action-select:focus-visible,
.members-action-select.show {
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  background: #fff;
  box-shadow: 0 10px 28px rgba(91, 97, 255, 0.12);
}

.members-action-select::after {
  margin-left: auto;
  color: #a2acc0;
}

.members-action-select-value {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.members-action-select-text {
  color: #1e2a4a;
}

.members-action-icon {
  width: 1rem;
  text-align: center;
  flex-shrink: 0;
}

.members-action-menu {
  border: 1px solid #dde4f0;
  border-radius: 18px;
  box-shadow: 0 22px 48px rgba(15, 23, 42, 0.14);
  padding: 0.2rem 0 0.75rem;
  overflow: hidden;
}

.members-action-menu-title {
  padding: 0.9rem 1rem 0.8rem;
  margin-bottom: 0.25rem;
  border-bottom: 1px solid #eef2f8;
  font-size: 0.84rem;
  font-weight: 700;
  color: #94a3b8;
}

.members-action-item {
  --members-action-accent: #5b61ff;
  --members-action-hover-bg: rgba(91, 97, 255, 0.12);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.85rem 1rem;
  font-size: 0.84rem;
  font-weight: 700;
  color: #1e2a4a;
  background: transparent;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.members-action-item:hover,
.members-action-item:focus,
.members-action-item:focus-visible,
.members-action-item.is-active {
  background: var(--members-action-hover-bg);
  color: var(--members-action-accent);
}

.members-action-item-text {
  line-height: 1.2;
}

.members-action-select.is-none .members-action-icon,
.members-action-item.is-none .members-action-icon {
  color: #94a3b8;
}

.members-action-item.is-none {
  --members-action-accent: #94a3b8;
  --members-action-hover-bg: rgba(148, 163, 184, 0.14);
}

.members-action-select.is-email .members-action-icon,
.members-action-item.is-email .members-action-icon {
  color: #5b61ff;
}

.members-action-item.is-email {
  --members-action-accent: #5b61ff;
  --members-action-hover-bg: rgba(91, 97, 255, 0.12);
}

.members-action-select.is-send-offer .members-action-icon,
.members-action-item.is-send-offer .members-action-icon {
  color: #16a34a;
}

.members-action-item.is-send-offer {
  --members-action-accent: #16a34a;
  --members-action-hover-bg: rgba(22, 163, 74, 0.12);
}

.members-action-select.is-bulk-charge .members-action-icon,
.members-action-item.is-bulk-charge .members-action-icon {
  color: #00b8ff;
}

.members-action-item.is-bulk-charge {
  --members-action-accent: #00b8ff;
  --members-action-hover-bg: rgba(0, 184, 255, 0.12);
}

.members-action-select.is-email-invoice-links .members-action-icon,
.members-action-item.is-email-invoice-links .members-action-icon {
  color: #8b5cf6;
}

.members-action-item.is-email-invoice-links {
  --members-action-accent: #8b5cf6;
  --members-action-hover-bg: rgba(139, 92, 246, 0.12);
}

.members-action-select.is-set-tags .members-action-icon,
.members-action-item.is-set-tags .members-action-icon {
  color: #f4b000;
}

.members-action-item.is-set-tags {
  --members-action-accent: #f4b000;
  --members-action-hover-bg: rgba(244, 176, 0, 0.14);
}

.members-action-select.is-subscription-management .members-action-icon,
.members-action-item.is-subscription-management .members-action-icon {
  color: #16a34a;
}

.members-action-item.is-subscription-management {
  --members-action-accent: #16a34a;
  --members-action-hover-bg: rgba(22, 163, 74, 0.12);
}

.members-action-select.is-set-affiliation .members-action-icon,
.members-action-item.is-set-affiliation .members-action-icon {
  color: #12d8b6;
}

.members-action-item.is-set-affiliation {
  --members-action-accent: #12d8b6;
  --members-action-hover-bg: rgba(18, 216, 182, 0.12);
}

.members-action-select.is-set-sub-group .members-action-icon,
.members-action-item.is-set-sub-group .members-action-icon {
  color: #ff7a21;
}

.members-action-item.is-set-sub-group {
  --members-action-accent: #ff7a21;
  --members-action-hover-bg: rgba(255, 122, 33, 0.12);
}

.members-action-select.is-manage-awards .members-action-icon,
.members-action-item.is-manage-awards .members-action-icon {
  color: #e83e8c;
}

.members-action-item.is-manage-awards {
  --members-action-accent: #e83e8c;
  --members-action-hover-bg: rgba(232, 62, 140, 0.12);
}

.members-action-select.is-class-invitation .members-action-icon,
.members-action-item.is-class-invitation .members-action-icon {
  color: #2563eb;
}

.members-action-item.is-class-invitation {
  --members-action-accent: #2563eb;
  --members-action-hover-bg: rgba(37, 99, 235, 0.12);
}

.members-action-select.is-member-transfer .members-action-icon,
.members-action-item.is-member-transfer .members-action-icon {
  color: var(--bs-primary);
}

.members-action-item.is-member-transfer {
  --members-action-accent: var(--bs-primary);
  --members-action-hover-bg: rgba(var(--bs-primary-rgb), 0.12);
}

.members-action-select.is-credit-debit .members-action-icon,
.members-action-item.is-credit-debit .members-action-icon {
  color: #f97316;
}

.members-action-item.is-credit-debit {
  --members-action-accent: #f97316;
  --members-action-hover-bg: rgba(249, 115, 22, 0.12);
}

.members-action-select.is-remove-from-class .members-action-icon,
.members-action-item.is-remove-from-class .members-action-icon {
  color: #ef4444;
}

.members-action-item.is-remove-from-class {
  --members-action-accent: #ef4444;
  --members-action-hover-bg: rgba(239, 68, 68, 0.12);
}

.members-action-select.is-export .members-action-icon,
.members-action-item.is-export .members-action-icon {
  color: #111827;
}

.members-action-item.is-export {
  --members-action-accent: #111827;
  --members-action-hover-bg: rgba(17, 24, 39, 0.08);
}

.members-action-select.is-send-receipt .members-action-icon,
.members-action-item.is-send-receipt .members-action-icon {
  color: var(--bs-primary);
}

.members-action-item.is-send-receipt {
  --members-action-accent: var(--bs-primary);
  --members-action-hover-bg: rgba(var(--bs-primary-rgb), 0.12);
}

.members-action-footer {
  margin-top: 0.9rem;
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.members-action-apply,
.members-action-clear {
  min-height: 46px;
  border-radius: 12px;
  font-size: 0.84rem;
  font-weight: 800;
}

.members-action-apply {
  flex: 1;
  border: 0;
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.22);
}

.members-action-clear {
  min-width: 180px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  color: #94a3b8;
}

.members-action-clear-placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #cbd5e1;
}

.members-card {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  border: 1px solid #eef2f7;
}

.members-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.4rem;
  border-bottom: 1px solid #f1f5f9;
}

.view-switcher {
  display: inline-flex;
  gap: 0.2rem;
  background: #f3f4f6;
  border-radius: 14px;
  padding: 0.25rem;
}

.view-btn {
  min-height: 40px;
  border: 0;
  border-radius: 11px;
  padding: 0 1rem;
  font-size: 0.82rem;
  font-weight: 800;
}

.view-btn.active {
  background: #fff;
  color: #1e2a4a;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.members-card .view-btn.active {
  color: var(--bs-secondary);
}

.view-btn.inactive {
  background: transparent;
  color: #94a3b8;
}

.members-card-tools {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.members-columns-wrap {
  position: relative;
}

.members-card-sort-note {
  font-size: 0.76rem;
  color: #94a3b8;
}

.members-card-columns {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 42px;
  padding: 0 1rem;
  border-radius: 12px;
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.42);
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 800;
}

.members-card-columns.is-open {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.18);
}

.members-card-columns-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 900;
}

.members-per-page {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 42px;
  padding: 0 0.85rem;
  border-radius: 12px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  margin: 0;
  cursor: pointer;
}

.members-per-page:focus-within {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.12);
}

.members-per-page__label,
.members-per-page__value {
  pointer-events: none;
  position: relative;
  z-index: 0;
}

.members-per-page__label {
  margin: 0;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.members-per-page__value {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
  padding-right: 1rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%2394a3b8' d='M4.427 6.427l3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 6H4.604a.25.25 0 0 0-.177.427z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
}

.members-per-page__select {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  appearance: none;
  cursor: pointer;
}

.members-per-page__select:focus {
  outline: none;
}

.members-columns-panel {
  position: absolute;
  top: 3rem;
  right: 0;
  z-index: 1050;
  width: 260px;
  background: #fff;
  border: 1px solid #edf1f7;
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.15);
}
.members-columns-panel .card {
  border: none;
  border-radius: 12px;
}
.members-columns-panel .card-body {
  padding: 1.25rem;
}

.members-card {
  position: relative;
}

.members-columns-panel-title {
  margin-bottom: 0.9rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.members-columns-panel-actions {
  display: flex;
  gap: 0.6rem;
  margin-bottom: 0.8rem;
}

.members-columns-panel-btn {
  flex: 1;
  min-height: 36px;
  border-radius: 10px;
  font-size: 0.74rem;
  font-weight: 800;
  border: 1.5px solid transparent;
  background: #fff;
}

.members-columns-panel-btn.is-show {
  border-color: #a7f3d0;
  background: #ecfdf5;
  color: #16a34a;
}

.members-columns-panel-btn.is-hide {
  border-color: #fecaca;
  background: #fef2f2;
  color: #ef4444;
}

.members-columns-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-height: 42px;
  border: 0;
  background: transparent;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
  text-align: left;
}

.members-columns-switch {
  position: relative;
  width: 2rem;
  height: 1.25rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  padding: 0 0.16rem;
  transition: background 0.18s ease;
  flex-shrink: 0;
}

.members-columns-switch.is-on {
  background: var(--bs-primary);
  justify-content: flex-end;
}

.members-columns-switch.is-off {
  background: #e5e7eb;
  justify-content: flex-start;
}

.members-columns-switch-knob {
  width: 0.88rem;
  height: 0.88rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.2);
}

.members-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.members-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.members-table th {
  background: #fff;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.95rem 0.75rem;
  border-bottom: 1px solid #eef2f7;
}

.members-table-sort {
  width: 100%;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-align: left;
}

.members-table-sort-center {
  align-items: center;
  text-align: center;
}

.members-table-sort-icon {
  color: #cbd5e1;
  font-size: 0.9rem;
  transition: color 0.18s ease;
}

.members-table-sort.is-active .members-table-sort-icon {
  color: var(--bs-primary);
}

.members-table-sort:hover .members-table-sort-icon {
  color: rgba(var(--bs-primary-rgb), 0.8);
}

.members-table td {
  padding: 0.95rem 0.75rem;
  font-size: 0.8rem;
  color: #1e2a4a;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: middle;
}

.members-table tbody tr:nth-child(odd) {
  background: #fcfdff;
}

.members-table tbody tr:nth-child(even) {
  background: #f7f9fc;
}

.members-table tbody tr.is-selected {
  background: rgba(139, 92, 246, 0.08);
}

.members-table-check {
  width: 56px;
  text-align: center;
}

.members-table-check-toggle,
.members-table-row-check {
  width: 18px;
  height: 18px;
  border-radius: 7px;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.members-table-check-toggle {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.members-table-check-toggle:not(.is-active) {
  background: #fff;
  border-color: #cbd5e1;
  color: transparent;
}

.members-table-row-check.is-checked {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.members-table-name-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--bs-secondary);
  text-decoration: none;
  font-weight: 800;
}

.members-table-avatar {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 900;
  flex-shrink: 0;
}

.members-table-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.members-table-avatar.is-female {
  background: #fce7f3;
  color: #ec4899;
}

.members-table-name-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.members-table-name {
  color: var(--bs-secondary);
  line-height: 1.2;
}

.members-table-status {
  font-size: 0.7rem;
  color: #ef4444;
  font-weight: 800;
}

.members-table-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.badge-tag {
  display: inline-flex;
  align-items: center;
  min-height: 1.7rem;
  padding: 0 0.6rem;
  border-radius: 8px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #6b7a99;
  font-size: 0.7rem;
  font-weight: 700;
}

.members-table-empty {
  color: #cbd5e1;
}

.members-table-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 1.8rem;
  padding: 0 0.65rem;
  border-radius: 8px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.members-table-pill-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  width: 100%;
}

.members-col-name {
  width: 180px;
}

.members-col-class,
.members-col-group,
.members-col-subgroup,
.members-col-award {
  width: 1%;
}

.members-col-tags {
  width: 90px;
}

.members-col-dob {
  width: 92px;
}

.members-col-age {
  width: 48px;
}

.members-col-sex {
  width: 78px;
}

.members-col-photo,
.members-col-insurance {
  width: 62px;
}

.members-table-pill-class {
  background: #e0f2fe;
  border: 1px solid #7dd3fc;
  color: #0369a1;
}

/* Desktop: wrap long class names so later columns (e.g. Insurance) stay on screen. */
@media (min-width: 992px) {
  .members-admin-page .members-col-class {
    width: auto;
    min-width: 140px;
    max-width: 260px;
  }

  .members-admin-page .members-table-pill-list {
    min-width: 0;
  }

  .members-admin-page .members-table-pill-class {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.35;
    height: auto;
    max-width: 100%;
    align-items: flex-start;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
  }
}

.members-table-pill-group {
  background: #f3e8ff;
  border: 1px solid #d8b4fe;
  color: #7c3aed;
}

.members-table-pill-subgroup {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #059669;
}

.members-table-pill-award {
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #c2410c;
}

.members-table-pill-award i {
  font-size: 0.62rem;
}

.members-table-sex {
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  padding: 0 0.8rem;
  border-radius: 9px;
  font-size: 0.74rem;
  font-weight: 800;
}

.members-table-sex.is-male {
  background: #e0f2fe;
  border: 1px solid #7dd3fc;
  color: #0369a1;
}

.members-table-sex.is-female {
  background: #fce7f3;
  border: 1px solid #f9a8d4;
  color: #be185d;
}

.members-table-bool {
  width: 34px;
  height: 34px;
  border: 0;
  background: transparent;
  font-size: 1.1rem;
}

.members-table-bool.is-true {
  color: #10b981;
}

.members-table-bool.is-false {
  color: #ef4444;
}

.members-card-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  padding: 1rem 1.4rem;
}

.members-card-range {
  margin: 0;
  font-size: 0.82rem;
  color: #64748b;
  font-weight: 500;
}

.members-card-range strong {
  color: #334155;
  font-weight: 700;
}

.members-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
}

.members-pager-status {
  flex: 1 1 auto;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
}

.members-pager-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 38px;
  padding: 0.45rem 0.85rem;
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
}

.members-pager-btn:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}

.members-pager-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.members-audit-view {
  padding: 1rem 1.4rem 1.4rem;
}

.members-audit-view .members-audit-selection-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem;
  margin-bottom: 1rem;
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.22);
  border-radius: 18px;
  background: #fff;
}

.members-audit-view .members-audit-selection-count {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 1rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 800;
}

.members-audit-view .members-audit-selection-button {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 42px;
  padding: 0 1rem;
  border: 0;
  border-radius: 12px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.2);
}

.members-audit-view .members-audit-summary-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0 1rem;
}

.members-audit-view .members-audit-summary-left,
.members-audit-view .members-audit-summary-right {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
}

.members-audit-view .members-audit-summary-right {
  margin-left: auto;
  justify-content: flex-end;
  text-align: right;
}

.members-audit-view .members-audit-summary-label,
.members-audit-view .members-audit-meta-line {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
}

.members-audit-view .members-audit-meta-count {
  margin-left: auto;
}

.members-audit-view .members-audit-summary-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 0.85rem;
  border-radius: 10px;
  border: 1px solid transparent;
  font-size: 0.76rem;
  font-weight: 800;
}

.members-audit-view .members-audit-summary-pill.is-overdue {
  background: #fff1f2;
  border-color: #fda4af;
  color: #dc2626;
}

.members-audit-view .members-audit-summary-pill.is-missing {
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: #fff;
}

.members-audit-view .members-audit-table-wrap {
  border-top: 1px solid #eef2f7;
}

.members-audit-view .members-audit-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.members-audit-view .members-audit-table th {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.9rem 0.65rem;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
}

.members-audit-view .members-audit-table td {
  padding: 0.9rem 0.65rem;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: middle;
  font-size: 0.82rem;
  color: #1e2a4a;
}

.members-audit-view .members-audit-table tbody tr:nth-child(odd) {
  background: #fcfdff;
}

.members-audit-view .members-audit-table tbody tr:nth-child(even) {
  background: #f7f9fc;
}

.members-audit-view .members-audit-table tbody .members-audit-row td:first-child {
  position: relative;
}

.members-audit-view .members-audit-table tbody .members-audit-row td:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 999px;
  background: transparent;
}

.members-audit-view .members-audit-table tbody .members-audit-row.is-ok td:first-child::before {
  background: #10b981;
}

.members-audit-view .members-audit-table tbody .members-audit-row.is-warning td:first-child::before {
  background: #f59e0b;
}

.members-audit-view .members-audit-table tbody .members-audit-row.is-missing td:first-child::before {
  background: #ef4444;
}

.members-audit-view .members-audit-table tbody tr.is-selected {
  background: #effcf8;
}

.members-audit-view .members-audit-col-check {
  width: 42px;
  text-align: center;
}

.members-audit-view .members-audit-col-status {
  width: 72px;
  text-align: center;
}

.members-audit-view .members-audit-col-total {
  width: 92px;
  min-width: 92px;
  text-align: center;
}

.members-audit-view .members-audit-col-subscriptions {
  width: 38%;
}

.members-audit-view .members-audit-checkbox {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.members-audit-view .members-audit-checkbox.is-active {
  background: #10b981;
  border-color: #10b981;
  color: #fff;
}

.members-audit-view .members-audit-status {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}

.members-audit-view .members-audit-status.is-ok {
  background: #e8faf2;
  color: #16a34a;
}

.members-audit-view .members-audit-status.is-warning {
  background: #fff7ed;
  color: #f97316;
}

.members-audit-view .members-audit-status.is-missing {
  background: #fff1f2;
  color: #ef4444;
}

.members-audit-view .members-audit-name-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.members-audit-view .members-audit-avatar {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 900;
  flex-shrink: 0;
}

.members-audit-view .members-audit-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.members-audit-view .members-audit-avatar.is-female {
  background: #fce7f3;
  color: #ec4899;
}

.members-audit-view .members-audit-name-copy {
  font-size: 0.86rem;
  font-weight: 800;
  color: var(--bs-secondary);
}

.members-audit-view .members-audit-email {
  color: #4f46e5;
  text-decoration: none;
}

.members-audit-view .members-audit-empty,
.subscription-audit .members-audit-empty {
  color: #cbd5e1;
}

.members-audit-view .members-audit-total-chip,
.subscription-audit .members-audit-total-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  padding: 0 0.55rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.8rem;
  font-weight: 800;
}

.members-audit-view .members-audit-header-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.members-audit-view .members-audit-sort,
.subscription-audit .members-audit-sort {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.members-audit-view .members-audit-sort-icon,
.subscription-audit .members-audit-sort-icon {
  color: #cbd5e1;
  font-size: 0.84rem;
  transition: color 0.18s ease;
}

.members-audit-view .members-audit-sort.is-active .members-audit-sort-icon,
.subscription-audit .members-audit-sort.is-active .members-audit-sort-icon {
  color: var(--bs-primary);
}

.members-audit-view .members-audit-sort:hover .members-audit-sort-icon,
.subscription-audit .members-audit-sort:hover .members-audit-sort-icon {
  color: rgba(var(--bs-primary-rgb), 0.8);
}

.members-audit-view .members-audit-refresh {
  width: 1.5rem;
  height: 1.5rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.members-audit-view .members-audit-subscription-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.members-audit-view .members-audit-subscription-chip,
.members-audit-view .members-audit-subscription-pair {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  border-radius: 10px;
  overflow: hidden;
  font-size: 0.74rem;
  font-weight: 800;
}

.members-audit-view .members-audit-subscription-chip {
  gap: 0.45rem;
  min-height: 34px;
  padding: 0 0.8rem;
}

.members-audit-view .members-audit-subscription-chip.is-missing {
  background: #1f2b58;
  color: #fff;
}

.members-audit-view .members-audit-subscription-part {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0 0.7rem;
  border: 1px solid transparent;
}

.members-audit-view .members-audit-subscription-pair.is-due .members-audit-subscription-part {
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0369a1;
}

.members-audit-view .members-audit-subscription-pair.is-paid .members-audit-subscription-part {
  background: #e8faf2;
  border-color: #86efac;
  color: #15803d;
}

.members-audit-view .members-audit-subscription-pair.is-overdue .members-audit-subscription-part {
  background: #fff1f2;
  border-color: #fda4af;
  color: #dc2626;
}

.members-audit-view .members-audit-subscription-pair .members-audit-subscription-part + .members-audit-subscription-part {
  border-left-width: 0;
}

.subscription-audit .members-audit-selection-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem;
  margin-bottom: 1rem;
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.22);
  border-radius: 18px;
  background: #fff;
}
.subscription-audit .members-audit-selection-count {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 1rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 800;
}
.subscription-audit .members-audit-selection-button {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 42px;
  padding: 0 1rem;
  border: 0;
  border-radius: 12px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.2);
}
.subscription-audit .members-audit-summary-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0 1rem;
}
.subscription-audit .members-audit-summary-left,
.subscription-audit .members-audit-summary-right {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
}
.subscription-audit .members-audit-summary-right {
  margin-left: auto;
  justify-content: flex-end;
  text-align: right;
}
.subscription-audit .members-audit-summary-label,
.subscription-audit .members-audit-meta-line {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
}
.subscription-audit .members-audit-meta-count {
  margin-left: auto;
}
.subscription-audit .members-audit-summary-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 0.85rem;
  border-radius: 10px;
  border: 1px solid transparent;
  font-size: 0.76rem;
  font-weight: 800;
}
.subscription-audit .members-audit-summary-pill.is-overdue {
  background: #fff1f2;
  border-color: #fda4af;
  color: #dc2626;
}
.subscription-audit .members-audit-summary-pill.is-missing {
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: #fff;
}
.subscription-audit .members-audit-table-wrap {
  border-top: 1px solid #eef2f7;
}
.subscription-audit .members-audit-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.subscription-audit .members-audit-table th {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.9rem 0.65rem;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
}
.subscription-audit .members-audit-table td {
  padding: 0.9rem 0.65rem;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: middle;
  font-size: 0.82rem;
  color: #1e2a4a;
}
.subscription-audit .members-audit-table tbody tr:nth-child(odd) {
  background: #fcfdff;
}
.subscription-audit .members-audit-table tbody tr:nth-child(even) {
  background: #f7f9fc;
}
.subscription-audit .members-audit-table tbody .members-audit-row td:first-child {
  position: relative;
}
.subscription-audit .members-audit-table tbody .members-audit-row td:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 999px;
  background: transparent;
}
.subscription-audit .members-audit-table tbody .members-audit-row.is-ok td:first-child::before {
  background: #10b981;
}
.subscription-audit .members-audit-table tbody .members-audit-row.is-warning td:first-child::before {
  background: #f59e0b;
}
.subscription-audit .members-audit-table tbody .members-audit-row.is-missing td:first-child::before {
  background: #ef4444;
}
.subscription-audit .members-audit-table tbody tr.is-selected {
  background: #effcf8;
}
.subscription-audit .members-audit-col-check {
  width: 42px;
  text-align: center;
}
.subscription-audit .members-audit-col-status {
  width: 72px;
  text-align: center;
}
.subscription-audit .members-audit-col-subscriptions {
  width: 55%;
}
.subscription-audit .members-audit-checkbox {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.subscription-audit .members-audit-checkbox.is-active {
  background: #10b981;
  border-color: #10b981;
  color: #fff;
}
.subscription-audit .members-audit-status {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}
.subscription-audit .members-audit-status.is-ok {
  background: #e8faf2;
  color: #16a34a;
}
.subscription-audit .members-audit-status.is-warning {
  background: #fff7ed;
  color: #f97316;
}
.subscription-audit .members-audit-status.is-missing {
  background: #fff1f2;
  color: #ef4444;
}
.subscription-audit .members-audit-name-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.subscription-audit .members-audit-avatar {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 900;
  flex-shrink: 0;
}
.subscription-audit .members-audit-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}
.subscription-audit .members-audit-avatar.is-female {
  background: #fce7f3;
  color: #ec4899;
}
.subscription-audit .members-audit-name-copy {
  font-size: 0.86rem;
  font-weight: 800;
  color: var(--bs-secondary);
}
.subscription-audit .members-audit-email {
  color: #4f46e5;
  text-decoration: none;
}
.subscription-audit .members-audit-empty {
  color: #cbd5e1;
}
.subscription-audit .members-audit-header-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.subscription-audit .members-audit-refresh {
  width: 1.5rem;
  height: 1.5rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.subscription-audit .members-audit-subscription-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.subscription-audit .members-audit-subscription-chip,
.subscription-audit .members-audit-subscription-pair {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  border-radius: 10px;
  overflow: hidden;
  font-size: 0.74rem;
  font-weight: 800;
}
.subscription-audit .members-audit-subscription-chip {
  gap: 0.45rem;
  min-height: 34px;
  padding: 0 0.8rem;
}
.subscription-audit .members-audit-subscription-chip.is-missing {
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
}
.subscription-audit .members-audit-subscription-part {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0 0.7rem;
  border: 1px solid transparent;
}
.subscription-audit .members-audit-subscription-pair.is-due .members-audit-subscription-part {
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0369a1;
}
.subscription-audit .members-audit-subscription-pair.is-paid .members-audit-subscription-part {
  background: #e8faf2;
  border-color: #86efac;
  color: #15803d;
}
.subscription-audit .members-audit-subscription-pair.is-overdue .members-audit-subscription-part {
  background: #fff1f2;
  border-color: #fda4af;
  color: #dc2626;
}
.subscription-audit .members-audit-subscription-pair .members-audit-subscription-part + .members-audit-subscription-part {
  border-left-width: 0;
}

/* Pagination container */
.members-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.members-pagination li {
  list-style: none;
}

.members-page-btn {
  min-width: 2.2rem;
  height: 2.2rem;
  padding: 0 0.7rem;
  border-radius: 0.7rem;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  color: #8ea0b7;
  font-size: 0.82rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
  cursor: pointer;
}

.members-page-btn:hover {
  background: #f8fafc;
  border-color: #cfd8e3;
}

.members-page-btn.is-active {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), 0.22);
}

/* Item range display (e.g. "1–10 of 1,349") */
.members-card-range {
  margin: 0;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 500;
}

.members-card-range strong {
  color: #334155;
  font-weight: 700;
}

/* Old styles kept for backward compatibility */
.members-page-btn {
  min-width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 800;
}

.members-page-btn.is-active {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* Capacity display with progress bar */
.capacity-display {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 60px;
}

.capacity-text {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
}

.capacity-used {
  font-weight: 700;
}

.capacity-total {
  color: #9ca3af;
  font-weight: 500;
}

.capacity-bar {
  width: 100%;
  height: 4px;
  background: #e5e7eb;
  border-radius: 2px;
  overflow: hidden;
}

.capacity-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.3s ease;
}

/* Capacity status colors */
.capacity-display.is-available .capacity-used {
  color: #10b981;
}
.capacity-display.is-available .capacity-bar-fill {
  background: #10b981;
}

.capacity-display.is-high .capacity-used {
  color: #f59e0b;
}
.capacity-display.is-high .capacity-bar-fill {
  background: #f59e0b;
}

.capacity-display.is-almost-full .capacity-used {
  color: #f97316;
}
.capacity-display.is-almost-full .capacity-bar-fill {
  background: #f97316;
}

.capacity-display.is-full .capacity-used {
  color: #ef4444;
}
.capacity-display.is-full .capacity-bar-fill {
  background: #ef4444;
}

.send-email-modal-title,
.bulk-charge-modal-title,
.set-tags-modal-title,
.manage-awards-title,
.set-affiliation-title,
.set-sub-group-title,
.subscription-management-title,
.export-members-modal-title,
.class-invite-title,
.member-transfer-modal__title,
.remove-from-class-modal__title,
.a2b-modal-title {
  color: var(--bs-secondary);
}

.members-modal-dialog {
  max-width: 850px;
  padding: 1rem 0.25rem;
}

.members-modal-content {
  border: 0;
  border-radius: 24px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}

.members-modal-body {
  padding: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.members-modal-body > .row {
  margin-left: 0;
  margin-right: 0;
  padding: 1rem 1rem 1.1rem;
}

.student-picker {
  padding-bottom: 0.25rem;
}

.student-picker .form-floating,
.student-picker .btn {
  margin-bottom: 0.25rem;
}

.student-picker .list-group {
  margin-bottom: 0.4rem;
}

.members-modal-body::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.export-members-modal {
  padding: 1.5rem;
}

.export-members-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  margin-bottom: 1.2rem;
  border-bottom: 1px solid #edf2f7;
}

.export-members-modal-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.export-members-modal-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 14px;
  background: rgba(22, 163, 74, 0.12);
  color: #16a34a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.05rem;
}

.export-members-modal-title {
  margin: 0 0 0.15rem;
  font-size: 1.15rem;
  font-weight: 800;
}

.export-members-modal-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.export-members-modal-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 10px;
  background: #f3f4f6;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.export-members-modal-body {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.export-members-modal-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.export-members-modal-section-title {
  margin: 0;
  color: #1e2a4a;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.export-members-deselect {
  border: 0;
  background: transparent;
  color: var(--bs-primary);
  font-size: 0.9rem;
  font-weight: 700;
}

.export-members-group {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.export-members-group-title {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.export-members-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.export-members-column {
  width: 100%;
  min-height: 48px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem 0.9rem;
  text-align: left;
  font-size: 0.92rem;
  font-weight: 700;
}

.export-members-column.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.export-members-column-check {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 6px;
  border: 1.5px solid #dbe2ea;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.68rem;
  color: transparent;
  background: #fff;
}

.export-members-column.is-selected .export-members-column-check {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.export-members-summary {
  padding: 1rem 1rem;
  border-radius: 14px;
  border: 1px solid #a7f3d0;
  background: #dff7ea;
  color: #15803d;
  font-size: 0.95rem;
  font-weight: 700;
}

.export-members-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #edf2f7;
}

.export-members-secondary,
.export-members-primary {
  min-height: 50px;
  border-radius: 14px;
  padding: 0 1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-size: 0.92rem;
  font-weight: 800;
}

.export-members-secondary {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #64748b;
}

.export-members-primary {
  border: 1px solid #16a34a;
  background: #16a34a;
  color: #fff;
}

.export-members-primary:disabled {
  border-color: #bbf7d0;
  background: #bbf7d0;
  color: #f8fafc;
}

.send-email-modal {
  padding: 1.5rem;
}

.send-email-success {
  min-height: 430px;
  padding: 2.35rem 1.6rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #fff;
}

.send-email-success-ring {
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 999px;
  border: 1px solid rgba(16, 185, 129, 0.32);
  background: rgba(16, 185, 129, 0.08);
  color: #10b981;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  margin-bottom: 1.35rem;
}

.send-email-success-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.1rem;
  font-weight: 800;
}

.send-email-success-subtitle {
  max-width: 32rem;
  margin: 1rem auto 0;
  color: #7c8aa5;
  font-size: 0.92rem;
  line-height: 1.65;
}

.send-email-success-pills {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.send-email-success-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #475569;
  font-size: 0.85rem;
  font-weight: 700;
}

.send-email-success-actions {
  margin-top: 1.55rem;
}

.send-email-success-btn {
  min-width: 6.9rem;
  min-height: 3.1rem;
  border: 0;
  border-radius: 14px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  padding: 0.78rem 1.25rem;
  font-size: 0.98rem;
  font-weight: 800;
  box-shadow: 0 14px 28px rgba(99, 102, 241, 0.22);
}

.send-email-success.is-award-order .send-email-success-btn {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
  box-shadow: 0 14px 28px rgba(var(--bs-primary-rgb), 0.22);
}

.email-progress-toast-stack {
  position: fixed;
  top: 1.15rem;
  right: 1.15rem;
  z-index: 1200;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: min(26rem, 100vw - 1.5rem);
  pointer-events: none;
}

.email-progress-toast {
  pointer-events: auto;
  border-radius: 1.15rem;
  border: 1px solid #edf0f7;
  background: #fff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.14);
  padding: 0.95rem 1rem 0.85rem;
}

.email-progress-toast__row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
}

.email-progress-toast__icon {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 1rem;
}

.email-progress-toast.is-complete .email-progress-toast__icon {
  border-color: rgba(var(--bs-success-rgb), 0.24);
  background: rgba(var(--bs-success-rgb), 0.08);
  color: var(--bs-success);
}

.email-progress-toast.is-failed .email-progress-toast__icon {
  border-color: rgba(var(--bs-danger-rgb), 0.24);
  background: rgba(var(--bs-danger-rgb), 0.08);
  color: var(--bs-danger);
}

.email-progress-toast.is-failed .email-progress-toast__percent,
.email-progress-toast.is-failed.is-complete .email-progress-toast__percent {
  color: var(--bs-danger);
}

.email-progress-toast.is-failed .email-progress-toast__bar.is-complete {
  background: var(--bs-danger);
}

.email-progress-toast__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.75rem;
}

.email-progress-toast__action-btn {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  border-radius: 999px;
  padding: 0.35rem 0.85rem;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
}

.email-progress-toast__action-btn:hover,
.email-progress-toast__action-btn:focus-visible {
  background: rgba(var(--bs-primary-rgb), 0.14);
}

.email-progress-toast__copy {
  min-width: 0;
}

.email-progress-toast__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.email-progress-toast__title {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
}

.email-progress-toast__percent {
  color: var(--bs-primary);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
}

.email-progress-toast.is-complete .email-progress-toast__percent {
  color: var(--bs-success);
}

.email-progress-toast__subtitle {
  margin-top: 0.15rem;
  color: #7c8aa5;
  font-size: 0.82rem;
  line-height: 1.4;
}

.email-progress-toast__close {
  width: 1.9rem;
  height: 1.9rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.9rem;
}

.email-progress-toast__track {
  position: relative;
  overflow: hidden;
  height: 0.38rem;
  border-radius: 999px;
  background: #eef2f7;
  margin-top: 0.85rem;
}

.email-progress-toast__bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bs-primary);
  transition: width 0.2s ease;
}

.email-progress-toast__bar.is-complete {
  background: var(--bs-success);
}

.send-email-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.send-email-modal-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.send-email-modal-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.send-email-modal-title {
  margin: 0 0 0.15rem;
  font-size: 1.15rem;
  font-weight: 800;
}

.send-email-modal-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.send-email-modal-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 10px;
  background: #f3f4f6;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.send-email-recipient-panel {
  border: 1px solid #e9edf5;
  border-radius: 16px;
  background: #fff;
  padding: 0.9rem;
  margin-bottom: 1rem;
}

.send-email-recipient-toolbar {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 0.75rem;
}

.send-email-recipient-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.send-email-recipient-count {
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 900;
}

.send-email-recipient-tools {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex: 1;
  min-width: 0;
}

.send-email-recipient-search {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 42px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  padding: 0 0.85rem;
  color: #94a3b8;
}

.send-email-recipient-tools .send-email-recipient-action {
  flex-shrink: 0;
}

.send-email-family-option {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.8rem;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
}

.send-email-family-option input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--bs-primary);
}

.send-email-schedule-recipient-option {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.85rem;
  padding: 0.8rem 0.95rem;
  border: 1px solid rgba(79, 10, 140, 0.18);
  border-radius: 0.65rem;
  background: rgba(79, 10, 140, 0.04);
  color: #34313a;
  font-size: 0.875rem;
}

.send-email-schedule-recipient-label {
  font-weight: 700;
}

.send-email-schedule-recipient-option input {
  margin-right: 0.45rem;
  accent-color: var(--bs-primary);
}

.rz-dropdown-panel .rz-dropdown-item.rz-state-highlight,
.rz-dropdown-panel .rz-dropdown-item.rz-state-highlight:hover,
.rz-dropdown-panel .rz-dropdown-item.rz-state-highlight:focus,
.rz-dropdown-panel .rz-dropdown-item.rz-state-highlight .rz-dropdown-item-text {
  color: #fff !important;
}

.send-email-recipient-search-input {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  padding: 0;
  outline: none;
}

.send-email-recipient-action {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 42px;
  padding: 0 1rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
  font-size: 0.8rem;
  font-weight: 800;
}

.send-email-recipient-action.is-outline {
  border-color: rgba(var(--bs-primary-rgb), 0.42);
  color: var(--bs-primary);
}

.send-email-recipient-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.send-email-recipient-manual {
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 0rem !important;
  width: 100%;
}

.send-email-recipient-manual-icon {
  border: 1px solid #e5e7eb;
  border-right: 0 !important;
  border-radius: 12px 0 0 12px;
  background: #fff;
  color: #94a3b8;
  min-height: 48px;
  padding: 0 0.95rem;
  box-shadow: none !important;
}

.send-email-recipient-manual-input {
  border: 1px solid #e5e7eb !important;
  border-left: 0 !important;
  border-radius: 0 12px 12px 0;
  padding-left: 0.1rem;
  box-shadow: none !important;
  background: #fff !important;
}

.send-email-recipient-manual-input:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.45) !important;
  border-left: 0 !important;
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12) !important;
}

.send-email-recipient-manual .send-email-recipient-action {
  min-height: 48px;
  border-radius: 12px;
  padding: 0 1.05rem;
}

.send-email-recipient-manual .send-email-recipient-action.is-primary {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: var(--m-on-primary, #fff);
}

.send-email-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 36px;
  max-width: 100%;
  padding: 0 0.7rem;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
}

.send-email-chip-avatar {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 900;
  color: #7c2d12;
  flex-shrink: 0;
}

.send-email-chip-label {
  max-width: 240px;
  color: #4b5870;
  font-size: 0.78rem;
  font-weight: 700;
}

.send-email-chip-action {
  border: 0;
  background: transparent;
  color: #94a3b8;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.send-email-chip-action.is-star,
.send-email-chip-action.is-saved-state {
  width: 18px;
  height: 18px;
  border-radius: 999px;
}

.send-email-chip-action.is-star.is-active,
.send-email-chip-action.is-saved-state.is-active {
  color: var(--bs-primary);
}

.send-email-chip-link {
  border: 0;
  background: transparent;
  color: #4b5870;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 0;
  min-width: 0;
}

.send-email-saved {
  border-top: 1px solid #eef2f7;
  padding-top: 0.75rem;
}

.send-email-saved-label {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 0.55rem;
}

.send-email-saved-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.send-email-chip.is-saved {
  background: #fff;
}

.send-email-chip.is-saved.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.2);
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.send-email-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 0.9rem;
}

.send-email-field-full {
  grid-column: 1/-1;
}

.send-email-label {
  display: block;
  margin-bottom: 0.45rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.send-email-input {
  width: 100%;
  min-height: 48px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  padding: 0.8rem 1rem;
  box-shadow: none;
}

.send-email-input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}

.send-email-upload-wrap .mt-2 {
  margin-top: 0 !important;
}
.send-email-upload-wrap .input-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
}
.send-email-upload-wrap .form-control {
  min-height: 48px;
  border: 1px solid #e5e7eb;
  border-radius: 12px !important;
  background: #fff;
  font-size: 0.84rem;
  padding: 0.8rem 1rem;
  box-shadow: none;
  width: 100%;
}
.send-email-upload-wrap .btn {
  min-height: 48px;
  border: 0;
  border-radius: 12px !important;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.84rem;
  font-weight: 800;
  padding: 0 1.15rem;
}
.send-email-upload-wrap small {
  color: #94a3b8 !important;
  font-size: 0.76rem;
}

.send-email-document-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.55rem;
}

.send-email-document-hint {
  color: #94a3b8;
  font-size: 0.76rem;
  line-height: 1.4;
}

.send-email-document-preview {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 32px;
  padding: 0 0.85rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.5);
  border-radius: 10px;
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.8rem;
  font-weight: 800;
  flex-shrink: 0;
}

.send-email-attachment-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.send-email-editor-shell {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  overflow: visible;
}

.send-email-editor-shell .rz-html-editor {
  border: 0 !important;
  border-radius: 16px;
  overflow: visible;
  background: #fff;
}

.send-email-editor-shell .rz-html-editor-toolbar {
  border: 0 !important;
  border-bottom: 1px solid #e5e7eb !important;
  border-radius: 16px 16px 0 0;
  padding: 0.4rem 0.45rem;
  background: #fff;
}

.send-email-editor-shell .rz-html-editor-content {
  min-height: 220px;
  border: 0 !important;
  border-radius: 0 0 16px 16px;
  background: #fff;
}

.send-email-editor-shell .d-flex.align-items-center.gap-2 {
  justify-content: flex-end;
  padding: 0.95rem 1rem 0;
  margin-top: 0 !important;
}

.send-email-editor-shell .btn.btn-sm.btn-primary {
  min-height: 42px;
  border: 1px solid var(--bs-primary);
  border-radius: 12px;
  background: var(--bs-primary);
  color: #fff;
  padding: 0 1.2rem;
  font-size: 0.84rem;
  font-weight: 800;
  margin-top: 0 !important;
}

.send-email-editor-shell .btn.btn-sm.btn-primary:last-of-type {
  background: #fff;
  color: #4b5870;
  border: 1px solid #e5e7eb;
}

.send-email-alert-wrap {
  margin: 1rem 0.5rem 0.85rem;
}

.send-email-alert-wrap .alert {
  margin-bottom: 0;
  border-radius: 16px;
  border: 1px solid transparent;
  padding: 0.95rem 1rem;
  font-size: 0.84rem;
  font-weight: 700;
}

.send-email-alert-wrap .alert-success {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #047857;
}

.send-email-alert-wrap .alert-danger {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

.bulk-charge-modal {
  padding: 1.5rem;
}

.bulk-charge-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.bulk-charge-modal-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.bulk-charge-modal-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.bulk-charge-modal-icon .fa-link {
  color: var(--bs-primary);
}

.bulk-charge-modal-title {
  margin: 0 0 0.15rem;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--bs-secondary);
}

.bulk-charge-modal-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.bulk-charge-modal-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 10px;
  background: #f3f4f6;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.bulk-charge-modal-description {
  margin: 0 0 1.1rem;
  color: #94a3b8;
  font-size: 0.88rem;
  line-height: 1.55;
}

.bulk-charge-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 0.9rem;
}

.bulk-charge-field-full {
  grid-column: 1/-1;
}

.bulk-charge-label {
  display: block;
  margin-bottom: 0.45rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.bulk-charge-input {
  width: 100%;
  min-height: 48px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  padding: 0.8rem 1rem;
  box-shadow: none;
}

.bulk-charge-textarea {
  min-height: 82px;
  resize: vertical;
}

.bulk-charge-input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}

.bulk-charge-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.4rem;
}

.bulk-charge-modal-footer-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
}

.bulk-charge-primary,
.bulk-charge-secondary {
  min-height: 42px;
  border-radius: 12px;
  font-size: 0.84rem;
  font-weight: 800;
  padding: 0 1.2rem;
}

.bulk-charge-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.18);
}

.bulk-charge-secondary {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #4b5870;
}

.bulk-charge-loading {
  margin-top: 1.25rem;
}

.bulk-charge-results {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.bulk-charge-results-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.bulk-charge-results-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.95rem;
  padding: 1.35rem 1.3rem;
  border-radius: 18px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.bulk-charge-results-banner-icon {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 1rem;
  flex-shrink: 0;
}

.bulk-charge-results-banner-title {
  color: var(--bs-primary);
  font-size: 1.1rem;
  font-weight: 800;
}

.bulk-charge-results-banner-copy {
  margin-top: 0.2rem;
  color: rgba(var(--bs-primary-rgb), 0.9);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.55;
}

.bulk-charge-results-stat {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1.15rem 1.2rem;
  border-radius: 18px;
  border: 1px solid #e5e7eb;
}

.bulk-charge-results-stat.is-success {
  border-color: #a7f3d0;
  background: #ecfdf5;
}

.bulk-charge-results-stat.is-warning {
  border-color: #fcd34d;
  background: #fffbeb;
}

.bulk-charge-results-stat.is-error {
  border-color: #fecaca;
  background: #fef2f2;
}

.bulk-charge-results-stat-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.bulk-charge-results-stat.is-success .bulk-charge-results-stat-icon {
  background: #d1fae5;
  color: #059669;
}

.bulk-charge-results-stat.is-warning .bulk-charge-results-stat-icon {
  background: #fef3c7;
  color: #d97706;
}

.bulk-charge-results-stat.is-error .bulk-charge-results-stat-icon {
  background: #fee2e2;
  color: #dc2626;
}

.bulk-charge-results-stat-count {
  color: var(--bs-secondary);
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1;
}

.bulk-charge-results-stat-label {
  margin-top: 0.2rem;
  color: #64748b;
  font-size: 0.92rem;
  font-weight: 700;
}

.bulk-charge-results-section {
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  overflow: hidden;
}

.bulk-charge-results-section.is-success {
  border-color: #a7f3d0;
}

.bulk-charge-results-section.is-warning {
  border-color: #fcd34d;
}

.bulk-charge-results-section.is-error {
  border-color: #fecaca;
}

.bulk-charge-results-section.is-invoice-link {
  border-color: rgba(var(--bs-primary-rgb), 0.22);
}

.bulk-charge-results-banner.is-error {
  border-color: #fecaca;
  background: #fef2f2;
}

.bulk-charge-results-banner.is-error .bulk-charge-results-banner-icon {
  background: #fee2e2;
  color: #dc2626;
}

.bulk-charge-results-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1.15rem;
  font-size: 0.96rem;
  font-weight: 800;
}

.bulk-charge-results-section.is-success .bulk-charge-results-section-header {
  background: #ecfdf5;
  color: #16803d;
}

.bulk-charge-results-section.is-warning .bulk-charge-results-section-header {
  background: #fffbeb;
  color: #b45309;
}

.bulk-charge-results-section.is-error .bulk-charge-results-section-header {
  background: #fef2f2;
  color: #b91c1c;
}

.bulk-charge-results-section.is-error .bulk-charge-results-section-copy {
  color: #991b1b;
}

.bulk-charge-results-section.is-invoice-link .bulk-charge-results-section-header {
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
}

.bulk-charge-results-failure-list {
  display: grid;
  gap: 0.75rem;
}

.bulk-charge-results-failure-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fff;
}

.bulk-charge-results-failure-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.bulk-charge-results-failure-copy strong {
  color: #991b1b;
  font-size: 0.9rem;
}

.bulk-charge-results-failure-copy span {
  color: #7f1d1d;
  font-size: 0.84rem;
  line-height: 1.45;
}

.bulk-charge-results-section-meta {
  flex-shrink: 0;
  font-size: 0.88rem;
  font-weight: 700;
}

.bulk-charge-results-section-copy {
  padding: 0.95rem 1.15rem 0;
  color: #7c5c35;
  font-size: 0.9rem;
  line-height: 1.6;
}

.bulk-charge-results-section-body {
  padding: 0.95rem 1.15rem 1.1rem;
}

.bulk-charge-results-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.bulk-charge-results-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.35rem;
  padding: 0.38rem 0.8rem 0.38rem 0.5rem;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #334155;
  font-size: 0.88rem;
  font-weight: 700;
}

.bulk-charge-results-chip.is-success {
  border-color: #86efac;
  background: #f0fdf4;
  color: #15803d;
}

.bulk-charge-results-chip.is-warning {
  border-color: #fcd34d;
  background: #fff7ed;
  color: #b45309;
}

.bulk-charge-results-chip.is-invoice-link {
  border-color: rgba(var(--bs-primary-rgb), 0.25);
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
}

.bulk-charge-results-chip-avatar {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
  flex-shrink: 0;
}

.bulk-charge-results-chip-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.bulk-charge-results-chip-avatar.is-female {
  background: #fce7f3;
  color: #ec4899;
}

.bulk-charge-results-chip-name {
  font-weight: 800;
}

.bulk-charge-results-chip-name.is-male {
  color: #0284c7;
}

.bulk-charge-results-chip-name.is-female {
  color: #db2777;
}

.bulk-charge-results-note {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.6;
}

.bulk-charge-results-note a {
  color: inherit;
  font-weight: 800;
}

.bulk-charge-results .bulk-charge-modal-footer {
  justify-content: flex-end;
  margin-top: 0.25rem;
}

.bulk-charge-alert-wrap {
  margin-top: 1rem;
}

.bulk-charge-alert-wrap .alert {
  margin-bottom: 0;
  border-radius: 16px;
  border: 1px solid #a7f3d0;
  background: #ecfdf5;
  color: #047857;
  padding: 0.95rem 1rem;
  font-size: 0.84rem;
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .export-members-modal {
    padding: 1rem;
  }
  .export-members-modal-topbar,
  .export-members-modal-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .export-members-columns {
    grid-template-columns: 1fr;
  }
  .export-members-primary,
  .export-members-secondary {
    width: 100%;
  }
  .bulk-charge-results-summary {
    grid-template-columns: 1fr;
  }
}
.set-tags-modal {
  padding: 1.5rem;
}

.set-tags-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.set-tags-modal-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.set-tags-modal-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-tags-modal-title {
  margin: 0 0 0.15rem;
  font-size: 1.15rem;
  font-weight: 800;
}

.set-tags-modal-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.set-tags-modal-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 10px;
  background: #f3f4f6;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.set-tags-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}

.set-tags-field-full {
  min-width: 0;
}

.set-tags-label {
  display: block;
  margin-bottom: 0.45rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.set-tags-add-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
}

.set-tags-input {
  width: 100%;
  min-height: 48px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  padding: 0.8rem 1rem;
  box-shadow: none;
}

.set-tags-input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}

.set-tags-add-button,
.set-tags-primary,
.set-tags-secondary {
  min-height: 48px;
  border-radius: 12px;
  font-size: 0.84rem;
  font-weight: 800;
  padding: 0 1.2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.set-tags-add-button,
.set-tags-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.set-tags-secondary {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #4b5870;
}

.set-tags-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.75rem;
}

.set-tags-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 36px;
  padding: 0 0.8rem;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #4b5870;
  font-size: 0.8rem;
  font-weight: 700;
}

.set-tags-chip-remove {
  border: 0;
  background: transparent;
  color: #94a3b8;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.set-tags-action-list {
  display: grid;
  gap: 0.65rem;
}

.set-tags-action-card {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  color: var(--bs-secondary);
  padding: 0.95rem 1rem;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  text-align: left;
}

.set-tags-action-card.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.set-tags-action-card.is-selected.is-success {
  border-color: #86efac;
  background: #ecfdf5;
}

.set-tags-action-card.is-selected.is-warning {
  border-color: #fcd34d;
  background: #fffbeb;
}

.set-tags-action-card.is-selected.is-danger {
  border-color: #fca5a5;
  background: #fef2f2;
}

.set-tags-action-radio {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  border: 2px solid #dbe2ea;
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.5rem;
  flex-shrink: 0;
}

.set-tags-action-card.is-selected .set-tags-action-radio {
  border-color: var(--bs-primary);
}

.set-tags-action-card.is-selected.is-success .set-tags-action-radio,
.set-tags-action-card.is-selected.is-success .set-tags-action-icon {
  color: #16a34a;
}

.set-tags-action-card.is-selected.is-success .set-tags-action-radio {
  border-color: #16a34a;
}

.set-tags-action-card.is-selected.is-success .set-tags-action-icon {
  background: rgba(22, 163, 74, 0.12);
}

.set-tags-action-card.is-selected.is-warning .set-tags-action-radio,
.set-tags-action-card.is-selected.is-warning .set-tags-action-icon {
  color: #d97706;
}

.set-tags-action-card.is-selected.is-warning .set-tags-action-radio {
  border-color: #d97706;
}

.set-tags-action-card.is-selected.is-warning .set-tags-action-icon {
  background: rgba(217, 119, 6, 0.12);
}

.set-tags-action-card.is-selected.is-danger .set-tags-action-radio,
.set-tags-action-card.is-selected.is-danger .set-tags-action-icon {
  color: #dc2626;
}

.set-tags-action-card.is-selected.is-danger .set-tags-action-radio {
  border-color: #dc2626;
}

.set-tags-action-card.is-selected.is-danger .set-tags-action-icon {
  background: rgba(220, 38, 38, 0.12);
}

.set-tags-action-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-tags-action-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.set-tags-action-title {
  color: #374151;
  font-size: 0.92rem;
  font-weight: 800;
}

.set-tags-action-description {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.45;
}

.set-tags-notify-card {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  text-align: left;
}

.set-tags-notify-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.set-tags-notify-title {
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
}

.set-tags-notify-description {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
}

.set-tags-toggle {
  width: 2.8rem;
  height: 1.7rem;
  border-radius: 999px;
  background: #e5e7eb;
  padding: 0.15rem;
  display: inline-flex;
  align-items: center;
  transition: background-color 0.2s ease;
  flex-shrink: 0;
}

.set-tags-toggle.is-on {
  justify-content: flex-end;
  background: rgba(var(--bs-primary-rgb), 0.22);
}

.set-tags-toggle-knob {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.16);
}

.set-tags-toggle.is-on .set-tags-toggle-knob {
  background: var(--bs-primary);
}

.set-tags-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1.35rem;
}

.set-tags-modal-help {
  margin-top: 0.9rem;
  display: flex;
  justify-content: flex-end;
}

.set-tags-preview-copy {
  margin-bottom: 1rem;
}

.set-tags-preview-title {
  margin: 0 0 0.3rem;
  color: var(--bs-secondary);
  font-size: 1.3rem;
  font-weight: 800;
}

.set-tags-preview-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.6;
}

.set-tags-preview-table {
  border-top: 1px solid #edf2f7;
}

.set-tags-preview-head,
.set-tags-preview-row {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.set-tags-preview-head {
  padding: 0.85rem 0.25rem 0.75rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.set-tags-preview-head .is-success {
  color: #16a34a;
}

.set-tags-preview-head .is-danger {
  color: #ef4444;
}

.set-tags-preview-row {
  padding: 0.95rem 0.6rem;
  border-top: 1px solid #f1f5f9;
  background: #fff;
}

.set-tags-preview-member {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
}

.set-tags-preview-avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.8rem;
  font-weight: 800;
}

.set-tags-preview-avatar.is-male {
  background: #e0f2fe;
  color: #0284c7;
}

.set-tags-preview-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.set-tags-preview-name {
  color: var(--bs-secondary);
  font-size: 0.98rem;
  font-weight: 800;
}

.set-tags-preview-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}

.set-tags-preview-tag {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.22rem 0.65rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 700;
}

.set-tags-preview-tag.is-success {
  border-color: #86efac;
  background: #ecfdf5;
  color: #16a34a;
}

.set-tags-preview-tag.is-remove,
.set-tags-preview-tag.is-danger {
  border-color: #fca5a5;
  background: #fef2f2;
  color: #ef4444;
}

.set-tags-preview-empty {
  color: #cbd5e1;
  font-size: 1.1rem;
  font-weight: 700;
}

.set-tags-preview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.4rem;
}

.set-tags-preview-apply {
  min-height: 52px;
  border-radius: 14px;
  padding: 0 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  border: 0;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 800;
}

.set-tags-preview-apply.is-success {
  background: #16a34a;
}

.set-tags-preview-apply.is-warning {
  background: #d97706;
}

.set-tags-preview-apply.is-danger {
  background: #ef4444;
}

.set-tags-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2.25rem 0 0.5rem;
}

.set-tags-success-icon {
  width: 5.3rem;
  height: 5.3rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #99f6e4;
  background: #ecfdf5;
  color: #15803d;
  font-size: 2rem;
}

.set-tags-success-title {
  margin: 1.5rem 0 0.45rem;
  color: var(--bs-secondary);
  font-size: 1.85rem;
  font-weight: 800;
}

.set-tags-success-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.6;
}

.set-tags-success-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.6rem;
}

.set-tags-success-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.45rem;
  padding: 0.3rem 0.95rem;
  border-radius: 12px;
  border: 1px solid #86efac;
  background: #ecfdf5;
  color: #16a34a;
  font-size: 0.92rem;
  font-weight: 800;
}

.set-tags-success-button {
  min-width: 150px;
  margin-top: 2rem;
}

.set-affiliation-modal {
  padding: 1.5rem;
}

.set-affiliation-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.set-affiliation-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.set-affiliation-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: #ecfeff;
  color: #14b8a6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-affiliation-title {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 800;
}

.set-affiliation-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.set-affiliation-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 999px;
  background: #f8fafc;
  color: #a0aec0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-affiliation-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.set-affiliation-info {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid #99f6e4;
  border-radius: 14px;
  background: #f0fdfa;
}

.set-affiliation-info-icon {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  border: 1px solid #99f6e4;
  color: #14b8a6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-affiliation-info-copy h3 {
  margin: 0 0 0.5rem;
  color: #14b8a6;
  font-size: 0.92rem;
  font-weight: 800;
}

.set-affiliation-info-copy p {
  margin: 0;
  color: #7c8aa5;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.65;
}

.set-affiliation-info-copy p + p {
  margin-top: 0.85rem;
}

.set-affiliation-info-copy strong,
.set-affiliation-info-copy a,
.set-affiliation-info-copy .is-affiliated {
  color: var(--bs-secondary);
}

.set-affiliation-info-copy .is-affiliated {
  color: #10b981;
}

.set-affiliation-info-copy .is-not-affiliated {
  color: #ef4444;
}

.set-affiliation-info-copy a {
  color: #14b8a6;
  text-decoration: none;
}

.set-affiliation-section {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.set-affiliation-section-label {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.set-affiliation-status-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.45rem;
  border-radius: 14px;
  background: #f3f5f9;
}

.set-affiliation-status-option {
  min-height: 2.7rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-size: 0.88rem;
  font-weight: 800;
  transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.set-affiliation-status-option.is-selected.is-affiliated {
  background: #10b981;
  color: #fff;
  box-shadow: 0 12px 24px rgba(16, 185, 129, 0.18);
}

.set-affiliation-status-option.is-selected.is-not-affiliated {
  background: #ea2525;
  color: #fff;
  box-shadow: 0 12px 24px rgba(234, 37, 37, 0.18);
}

.set-affiliation-table {
  border: 1px solid #e5eaf3;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.set-affiliation-table-head,
.set-affiliation-table-row {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.8fr) minmax(0, 0.95fr);
  gap: 0.85rem;
  align-items: center;
}

.set-affiliation-table-head {
  padding: 0.8rem 1rem;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.set-affiliation-table-row {
  padding: 0.95rem 1rem;
  border-top: 1px solid #eef2f7;
}

.set-affiliation-member {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.set-affiliation-avatar,
.set-affiliation-success-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  flex-shrink: 0;
}

.set-affiliation-avatar.is-male,
.set-affiliation-success-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.set-affiliation-avatar.is-female,
.set-affiliation-success-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.set-affiliation-member-name {
  min-width: 0;
  color: #334155;
  font-size: 0.84rem;
  font-weight: 700;
}

.set-affiliation-status-cell {
  display: inline-flex;
  align-items: center;
}

.set-affiliation-status-cell.is-after {
  gap: 0.55rem;
}

.set-affiliation-status-arrow {
  color: #14b8a6;
  font-size: 1rem;
}

.set-affiliation-badge {
  min-height: 1.8rem;
  padding: 0.16rem 0.58rem;
  border-radius: 10px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.set-affiliation-badge.is-affiliated {
  border-color: #99f6e4;
  background: #f0fdfa;
  color: #10b981;
}

.set-affiliation-badge.is-not-affiliated {
  border-color: #fecaca;
  background: #fef2f2;
  color: #ef4444;
}

.set-affiliation-notify-card {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  text-align: left;
}

.set-affiliation-notify-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.set-affiliation-notify-title {
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 800;
}

.set-affiliation-notify-description {
  color: #94a3b8;
  font-size: 0.74rem;
  font-weight: 600;
}

.set-affiliation-toggle {
  width: 2.5rem;
  height: 1.5rem;
  padding: 0.15rem;
  border-radius: 999px;
  background: #e5e7eb;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-shrink: 0;
}

.set-affiliation-toggle.is-on {
  justify-content: flex-end;
  background: rgba(20, 184, 166, 0.22);
}

.set-affiliation-toggle-knob {
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
}

.set-affiliation-toggle.is-on .set-affiliation-toggle-knob {
  background: #14b8a6;
}

.set-affiliation-error {
  margin-top: 0.2rem;
}

.set-affiliation-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.6rem;
}

.set-affiliation-primary,
.set-affiliation-secondary {
  min-height: 42px;
  border-radius: 12px;
  padding: 0 1.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-size: 0.84rem;
  font-weight: 800;
}

.set-affiliation-primary {
  border: 1px solid #14b8a6;
  background: #14b8a6;
  color: #fff;
  box-shadow: 0 10px 24px rgba(20, 184, 166, 0.2);
}

.set-affiliation-secondary {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #94a3b8;
}

.set-affiliation-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 0 0.5rem;
}

.set-affiliation-success-icon {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #99f6e4;
  background: #ecfeff;
  color: #14b8a6;
  font-size: 1.65rem;
}

.set-affiliation-success-title {
  margin: 1.4rem 0 0.45rem;
  color: var(--bs-secondary);
  font-size: 1.35rem;
  font-weight: 800;
}

.set-affiliation-success-subtitle {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.set-affiliation-success-subtitle .is-affiliated {
  color: #10b981;
}

.set-affiliation-success-subtitle .is-not-affiliated {
  color: #ef4444;
}

.set-affiliation-success-students {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.7rem;
  margin-top: 1.6rem;
}

.set-affiliation-success-student {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.1rem;
  padding: 0.24rem 0.72rem;
  border-radius: 12px;
  border: 1px solid #99f6e4;
  background: #f0fdfa;
  color: #14b8a6;
  font-size: 0.76rem;
  font-weight: 700;
}

.set-affiliation-success-more {
  display: inline-flex;
  align-items: center;
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
}

.set-affiliation-success-button {
  min-width: 120px;
  margin-top: 1.4rem;
}

.set-sub-group-modal {
  padding: 1.5rem;
}

.set-sub-group-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.set-sub-group-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.set-sub-group-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: #fff7ed;
  color: #ff7a1a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-sub-group-title {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 800;
}

.set-sub-group-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.set-sub-group-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 999px;
  background: #f8fafc;
  color: #a0aec0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-sub-group-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.set-sub-group-info {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid #fdba74;
  border-radius: 14px;
  background: #fff7ed;
}

.set-sub-group-info-icon {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  border: 1px solid #fdba74;
  color: #ff7a1a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.set-sub-group-info-copy h3 {
  margin: 0 0 0.5rem;
  color: #ff7a1a;
  font-size: 0.92rem;
  font-weight: 800;
}

.set-sub-group-info-copy p {
  margin: 0;
  color: #7c8aa5;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.65;
}

.set-sub-group-info-copy .is-accent,
.set-sub-group-info-copy strong {
  color: #ff7a1a;
}

.set-sub-group-section {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.set-sub-group-section-label {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.set-sub-group-mode-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.45rem;
  border-radius: 14px;
  background: #f3f5f9;
}

.set-sub-group-mode-option {
  min-height: 2.7rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-size: 0.88rem;
  font-weight: 800;
}

.set-sub-group-mode-option.is-selected {
  background: #ff7a1a;
  color: #fff;
  box-shadow: 0 12px 24px rgba(255, 122, 26, 0.18);
}

.set-sub-group-existing-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}

.set-sub-group-existing-card {
  min-height: 4.8rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  padding: 0.8rem 0.85rem;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.5rem;
}

.set-sub-group-existing-card.is-selected {
  border-color: #fdba74;
  background: #fff7ed;
}

.set-sub-group-existing-card-top {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.set-sub-group-existing-initials {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.66rem;
  font-weight: 800;
  flex-shrink: 0;
}

.set-sub-group-existing-name {
  color: #334155;
  font-size: 0.84rem;
  font-weight: 700;
}

.set-sub-group-existing-card.is-selected .set-sub-group-existing-initials {
  background: #ff7a1a;
  color: #fff;
}

.set-sub-group-existing-card.is-selected .set-sub-group-existing-name {
  color: #ff7a1a;
}

.set-sub-group-existing-meta {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 600;
}

.set-sub-group-input {
  width: 100%;
  min-height: 44px;
  border: 1px solid #fdba74;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 600;
  padding: 0 0.9rem;
  outline: none;
}

.set-sub-group-input:focus {
  border-color: #ff7a1a;
  box-shadow: 0 0 0 0.18rem rgba(255, 122, 26, 0.12);
}

.set-sub-group-input-help {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 600;
}

.set-sub-group-table {
  border: 1px solid #e5eaf3;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.set-sub-group-table-head,
.set-sub-group-table-row {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.8fr) minmax(0, 0.95fr);
  gap: 0.85rem;
  align-items: center;
}

.set-sub-group-table-head {
  padding: 0.8rem 1rem;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.set-sub-group-table-row {
  padding: 0.95rem 1rem;
  border-top: 1px solid #eef2f7;
}

.set-sub-group-member {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.set-sub-group-avatar,
.set-sub-group-success-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  flex-shrink: 0;
}

.set-sub-group-avatar.is-male,
.set-sub-group-success-avatar.is-male {
  background: #fff7ed;
  color: #c2410c;
}

.set-sub-group-avatar.is-female,
.set-sub-group-success-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.set-sub-group-member-name {
  min-width: 0;
  color: #334155;
  font-size: 0.84rem;
  font-weight: 700;
}

.set-sub-group-status-cell {
  display: inline-flex;
  align-items: center;
}

.set-sub-group-status-cell.is-after {
  gap: 0.55rem;
}

.set-sub-group-status-arrow {
  color: #ff7a1a;
  font-size: 1rem;
}

.set-sub-group-badge {
  min-height: 1.8rem;
  padding: 0.16rem 0.58rem;
  border-radius: 10px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.set-sub-group-badge.is-current {
  border-color: #e5e7eb;
  background: #f8fafc;
  color: #64748b;
}

.set-sub-group-badge.is-next {
  border-color: #fdba74;
  background: #fff7ed;
  color: #ff7a1a;
}

.set-sub-group-notify-card {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  text-align: left;
}

.set-sub-group-notify-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.set-sub-group-notify-title {
  color: var(--bs-primary);
  font-size: 0.84rem;
  font-weight: 800;
}

.set-sub-group-notify-description {
  color: #94a3b8;
  font-size: 0.74rem;
  font-weight: 600;
}

.set-sub-group-toggle {
  width: 2.5rem;
  height: 1.5rem;
  padding: 0.15rem;
  border-radius: 999px;
  background: #e5e7eb;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-shrink: 0;
}

.set-sub-group-toggle.is-on {
  justify-content: flex-end;
  background: rgba(255, 122, 26, 0.22);
}

.set-sub-group-toggle-knob {
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18);
}

.set-sub-group-toggle.is-on .set-sub-group-toggle-knob {
  background: #ff7a1a;
}

.set-sub-group-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.6rem;
}

.set-sub-group-primary,
.set-sub-group-secondary {
  min-height: 42px;
  border-radius: 12px;
  padding: 0 1.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-size: 0.84rem;
  font-weight: 800;
}

.set-sub-group-primary {
  border: 1px solid #ff7a1a;
  background: #ff7a1a;
  color: #fff;
  box-shadow: 0 10px 24px rgba(255, 122, 26, 0.2);
}

.set-sub-group-secondary {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #94a3b8;
}

.set-sub-group-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.8rem 0 0.5rem;
}

.set-sub-group-success-icon {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fdba74;
  background: #fff7ed;
  color: #ff7a1a;
  font-size: 1.65rem;
}

.set-sub-group-success-title {
  margin: 1.4rem 0 0.45rem;
  color: var(--bs-secondary);
  font-size: 1.35rem;
  font-weight: 800;
}

.set-sub-group-success-subtitle {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.set-sub-group-success-subtitle .is-accent {
  color: #ff7a1a;
}

.set-sub-group-success-students {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.7rem;
  margin-top: 1.6rem;
}

.set-sub-group-success-student {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.1rem;
  padding: 0.24rem 0.72rem;
  border-radius: 12px;
  border: 1px solid #fdba74;
  background: #fff7ed;
  color: #ff7a1a;
  font-size: 0.76rem;
  font-weight: 700;
}

.set-sub-group-success-more {
  display: inline-flex;
  align-items: center;
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
}

.set-sub-group-success-button {
  min-width: 120px;
  margin-top: 1.4rem;
}

.manage-awards-modal {
  padding: 1.5rem;
}

.manage-awards-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.1rem;
}

.manage-awards-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.manage-awards-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: #fdf2f8;
  color: #ec4899;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.manage-awards-icon-primary {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.manage-awards-title {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 800;
}

.manage-awards-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.manage-awards-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 999px;
  background: #f8fafc;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-shrink: 0;
}

.manage-awards-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.manage-awards-info {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid #f9a8d4;
  border-radius: 14px;
  background: #fff8fb;
}

.manage-awards-info-icon {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  border: 1px solid #f9a8d4;
  color: #ec4899;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.72rem;
}

.manage-awards-info-copy h3 {
  margin: 0 0 0.45rem;
  color: #ec4899;
  font-size: 0.92rem;
  font-weight: 800;
}

.manage-awards-info-copy p {
  margin: 0;
  color: #7c8aa5;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.7;
}

.manage-awards-info-copy strong {
  color: var(--bs-secondary);
}

.manage-awards-info-copy .is-add {
  color: #ec4899;
}

.manage-awards-info-copy .is-remove {
  color: #ef4444;
}

.manage-awards-section {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.manage-awards-section-label {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.manage-awards-mode-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.45rem;
  border-radius: 14px;
  background: #f5f7fb;
}

.manage-awards-mode-option {
  min-height: 2.7rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.86rem;
  font-weight: 800;
}

.manage-awards-mode-option.is-selected.is-add {
  background: #ec4899;
  color: #fff;
  box-shadow: 0 12px 24px rgba(236, 72, 153, 0.18);
}

.manage-awards-mode-option.is-selected.is-remove {
  background: #ea2525;
  color: #fff;
  box-shadow: 0 12px 24px rgba(234, 37, 37, 0.18);
}

.manage-awards-picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.manage-awards-picker-title {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.manage-awards-picker-count {
  color: #ec4899;
}

.manage-awards-picker-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 600;
}

.manage-awards-clear {
  border: 0;
  background: transparent;
  color: #ef4444;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0;
}

.manage-awards-track-list {
  border: 1px solid #f5c6dd;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.manage-awards-track-row {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 0.9rem;
  align-items: center;
  padding: 0.8rem 1rem;
}

.manage-awards-track-row + .manage-awards-track-row {
  border-top: 1px solid #f1f5f9;
}

.manage-awards-track-row.is-selected.is-add {
  background: #fff5fa;
}

.manage-awards-track-row.is-selected.is-remove {
  background: #fff5f5;
}

.manage-awards-track-name {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  color: #334155;
  font-size: 0.84rem;
  font-weight: 800;
}

.manage-awards-track-icon {
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.74rem;
  flex-shrink: 0;
}

.manage-awards-track-icon.is-selected.is-add {
  background: #ec4899;
  color: #fff;
}

.manage-awards-track-icon.is-selected.is-remove {
  background: #ef4444;
  color: #fff;
}

.manage-awards-track-options {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.manage-awards-track-chip {
  min-height: 1.95rem;
  border: 1px solid #dfe6f1;
  border-radius: 9px;
  background: #fff;
  color: #475569;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.18rem 0.75rem;
  font-size: 0.76rem;
  font-weight: 700;
}

.manage-awards-track-chip.is-selected.is-add {
  border-color: #f472b6;
  background: #fff;
  color: #ec4899;
}

.manage-awards-track-chip.is-selected.is-remove {
  border-color: #f87171;
  background: #fff;
  color: #ef4444;
}

.manage-awards-table {
  border: 1px solid #e5eaf3;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.manage-awards-table-head,
.manage-awards-table-row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1.35fr);
  gap: 0.85rem;
  align-items: center;
}

.manage-awards-table-head {
  padding: 0.8rem 1rem;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.manage-awards-table-row {
  padding: 0.95rem 1rem;
  border-top: 1px solid #eef2f7;
}

.manage-awards-member {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.manage-awards-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
  flex-shrink: 0;
}

.manage-awards-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.manage-awards-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.manage-awards-member-name {
  min-width: 0;
  color: #334155;
  font-size: 0.84rem;
  font-weight: 700;
}

.manage-awards-cell {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}

.manage-awards-cell.is-after {
  gap: 0.55rem;
}

.manage-awards-arrow {
  color: #ec4899;
  font-size: 1rem;
  flex-shrink: 0;
}

.manage-awards-badge-list {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.manage-awards-badge {
  min-height: 1.7rem;
  padding: 0.14rem 0.5rem;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  gap: 0.24rem;
  font-size: 0.7rem;
  font-weight: 700;
}

.manage-awards-badge.is-add {
  border-color: #f9a8d4;
  background: #fff1f8;
  color: #ec4899;
}

.manage-awards-badge.is-remove-empty {
  border-color: #fca5a5;
  background: #fef2f2;
  color: #ef4444;
}

.manage-awards-empty {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
}

.manage-awards-notify-card {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
}

.manage-awards-notify-switch {
  margin: 0;
  flex-shrink: 0;
}

.manage-awards-notify-toggle {
  width: 2.75rem !important;
  height: 1.5rem;
  margin: 0;
  cursor: pointer;
}

.manage-awards-notify-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.manage-awards-notify-title {
  color: var(--bs-primary);
  font-size: 0.84rem;
  font-weight: 800;
}

.manage-awards-notify-description {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 600;
}

.manage-awards-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  margin-top: 1rem;
}

.manage-awards-success {
  min-height: 430px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2.5rem 1rem 1rem;
}

.manage-awards-success-icon {
  width: 6.2rem;
  height: 6.2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2.1rem;
  margin-bottom: 1.5rem;
  background: #fff;
  border: 2px solid transparent;
}

.manage-awards-success-icon.is-add {
  border-color: #f9a8d4;
  color: #ec4899;
}

.manage-awards-success-icon.is-remove {
  border-color: #fca5a5;
  color: #dc2626;
}

.manage-awards-success-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.15rem;
  font-weight: 800;
}

.manage-awards-success-subtitle {
  margin: 0.8rem 0 0;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 600;
}

.manage-awards-success-subtitle strong {
  color: var(--bs-secondary);
}

.manage-awards-success-subtitle .is-add {
  color: #ec4899;
  font-weight: 800;
}

.manage-awards-success-subtitle .is-remove {
  color: #ef4444;
  font-weight: 800;
}

.manage-awards-success-awards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
  margin-top: 1.5rem;
}

.manage-awards-success-badge {
  min-height: 2.2rem;
  padding: 0.24rem 0.8rem;
  border-radius: 10px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.84rem;
  font-weight: 800;
}

.manage-awards-success-badge.is-add {
  border-color: #f9a8d4;
  background: #fff8fb;
  color: #ec4899;
}

.manage-awards-success-badge.is-remove {
  border-color: #fca5a5;
  background: #fff8f8;
  color: #ef4444;
}

.manage-awards-success-button {
  min-width: 138px;
  margin: 1.6rem auto 0 !important;
}

.manage-awards-primary,
.manage-awards-secondary {
  min-height: 3rem;
  border-radius: 12px;
  padding: 0 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.84rem;
  font-weight: 800;
}

.manage-awards-secondary {
  min-width: 92px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #94a3b8;
}

.manage-awards-primary {
  min-width: 156px;
  border: 1px solid transparent;
  color: #fff;
  margin-left: auto;
}

.manage-awards-primary.is-add {
  background: #ec4899;
  border-color: #ec4899;
}

.manage-awards-primary.is-remove {
  background: #ea2525;
  border-color: #ea2525;
}

.manage-awards-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.subscription-management-modal {
  --subscription-stage-accent: var(--bs-primary);
  --subscription-stage-complete: #10b981;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.subscription-management-modal::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.subscription-management-modal.is-remove-stage {
  --subscription-stage-accent: #dc2626;
}

.subscription-management-modal.is-add-stage {
  --subscription-stage-accent: #10b981;
}

.subscription-management-modal.is-apply-stage {
  --subscription-stage-accent: var(--bs-primary);
}

.subscription-management-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid #edf2f7;
}

.subscription-management-header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.subscription-management-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.subscription-management-title {
  margin: 0 0 0.15rem;
  font-size: 1.15rem;
  font-weight: 800;
}

.subscription-management-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
}

.subscription-management-header-actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.subscription-management-stage-header {
  padding: 1rem 0 1.15rem;
  border-bottom: 1px solid #edf2f7;
  margin-bottom: 1rem;
}

.subscription-management-steps {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  margin-bottom: 10px;
}

.subscription-management-step {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 800;
}

.subscription-management-step.is-active,
.subscription-management-step.is-complete {
  background: var(--subscription-stage-accent);
  color: #fff;
}

.subscription-management-step.is-complete {
  border: 1px solid var(--subscription-stage-complete);
  background: #fff;
  color: var(--subscription-stage-complete);
}

.subscription-management-step-label {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
}

.subscription-management-step-label.is-active {
  color: var(--subscription-stage-accent);
}

.subscription-management-step-label.is-complete {
  color: var(--subscription-stage-complete);
}

.subscription-management-step-line {
  flex: 1 1 auto;
  height: 1px;
  background: #dbe2ea;
}

.subscription-management-modal.is-add-stage .subscription-management-step-line:first-of-type,
.subscription-management-modal.is-apply-stage .subscription-management-step-line:first-of-type {
  background: #10b981;
}

.subscription-management-modal.is-apply-stage .subscription-management-step-line:last-of-type {
  background: var(--bs-primary);
}

.subscription-management-close {
  width: 2.1rem;
  height: 2.1rem;
  border: 0;
  border-radius: 10px;
  background: #f3f4f6;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.subscription-management-grid,
.subscription-management-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  flex: 1 1 auto;
  min-height: 0;
}

.subscription-management-column,
.subscription-management-preview-column {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.subscription-management-column-title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.8rem;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.subscription-management-column-dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: #d1d5db;
}

.subscription-management-column-title.is-remove .subscription-management-column-dot {
  background: #fb7185;
}

.subscription-management-column-title.is-add .subscription-management-column-dot {
  background: #22c55e;
}

.subscription-management-list,
.subscription-management-preview-list {
  display: grid;
  gap: 0.8rem;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding-right: 0.2rem;
}

.subscription-management-card,
.subscription-management-preview-card {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  padding: 1rem;
}

.subscription-management-card.is-selected.is-remove {
  border-color: #fda4af;
  background: #fff1f2;
}

.subscription-management-card.is-selected.is-add {
  border-color: #86efac;
  background: #ecfdf5;
}

.subscription-management-card-head,
.subscription-management-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

.subscription-management-card-title,
.subscription-management-preview-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
}

.subscription-management-card-price {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0 0.55rem;
  border-radius: 999px;
  background: #f5f7fb;
  color: #94a3b8;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
}

.subscription-management-label {
  display: block;
  margin-bottom: 0.2rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.subscription-management-help {
  margin: 0 0 0.65rem;
  color: #c0c8d8;
  font-size: 0.72rem;
  font-weight: 600;
}

.subscription-management-input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  padding: 0.7rem 0.9rem;
  box-shadow: none;
}

.subscription-management-input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}

.subscription-management-card-button,
.subscription-management-primary,
.subscription-management-secondary,
.subscription-management-secondary-action {
  min-height: 42px;
  border-radius: 12px;
  font-size: 0.82rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0 1rem;
}

.subscription-management-card-button {
  width: 100%;
  margin-top: 0.75rem;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #c0c8d8;
}

.subscription-management-card-button.is-selected {
  font-weight: 900;
}

.subscription-management-card.is-selected.is-remove .subscription-management-card-button.is-selected {
  border-color: #fda4af;
  background: #ffe4e6;
  color: #e11d48;
}

.subscription-management-card.is-selected.is-add .subscription-management-card-button.is-selected {
  border-color: #6ee7b7;
  background: #d1fae5;
  color: #059669;
}

.subscription-management-card.is-selected.is-remove .subscription-management-input {
  border-color: #fecdd3;
  background: #fff;
}

.subscription-management-card.is-selected.is-add .subscription-management-input {
  border-color: #a7f3d0;
  background: #fff;
}

.subscription-management-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.subscription-management-primary:disabled,
.subscription-management-card-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.subscription-management-secondary,
.subscription-management-secondary-action {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #4b5870;
}

.subscription-management-preview {
  flex: 1 1 auto;
  min-height: 0;
  margin-bottom: 1rem;
}

.subscription-management-preview-intro {
  margin: 0 0 1rem;
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.6;
}

.subscription-management-preview-intro .is-add {
  color: #16a34a;
  font-weight: 800;
}

.subscription-management-preview-intro .is-remove {
  color: #dc2626;
  font-weight: 800;
}

.subscription-management-preview-students {
  display: grid;
  gap: 0.9rem;
  max-height: 520px;
  overflow: auto;
  padding-right: 0.2rem;
}

.subscription-management-preview-student-card {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  padding: 0.95rem 1rem;
}

.subscription-management-preview-student-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.8rem;
}

.subscription-management-preview-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 800;
  flex-shrink: 0;
}

.subscription-management-preview-student-name {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.subscription-management-preview-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.subscription-management-preview-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 32px;
  padding: 0 0.7rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  font-size: 0.76rem;
  font-weight: 700;
}

.subscription-management-preview-chip.is-add {
  border-color: #86efac;
  background: #ecfdf5;
  color: #16a34a;
}

.subscription-management-preview-chip.is-remove {
  border-color: #fda4af;
  background: #fff1f2;
  color: #dc2626;
}

.subscription-management-preview-summary {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.subscription-management-apply-state {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.25rem 1rem 1rem;
  text-align: center;
}

.subscription-management-apply-shell {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.subscription-management-apply-progress-card,
.subscription-management-apply-rows-card,
.subscription-management-apply-success-card {
  border: 1px solid #e6ebf3;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05), 0 3px 10px rgba(15, 23, 42, 0.04);
}

.subscription-management-apply-progress-card {
  padding: 1rem 1.05rem 0.95rem;
}

.subscription-management-apply-progress-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.7rem;
}

.subscription-management-apply-progress-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.subscription-management-apply-progress-spinner {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.16);
  border-top-color: var(--bs-primary);
  animation: subscription-management-ring-spin 0.9s linear infinite;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.subscription-management-apply-progress-title {
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
}

.subscription-management-apply-progress-meta {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 600;
}

.subscription-management-apply-progress-percent {
  color: var(--bs-primary);
  font-size: 1.8rem;
  font-weight: 900;
  line-height: 1;
}

.subscription-management-apply-progress-bar {
  height: 0.55rem;
  border-radius: 999px;
  background: #edf2f7;
  overflow: hidden;
}

.subscription-management-apply-progress-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bs-primary);
}

.subscription-management-apply-rows-card {
  overflow: hidden;
  padding: 0;
}

.subscription-management-apply-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid #edf2f7;
}

.subscription-management-apply-row:first-child {
  border-top: 0;
}

.subscription-management-apply-row.is-processing {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.subscription-management-apply-row-main {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1 1 auto;
}

.subscription-management-apply-row-state {
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 999px;
  border: 1px solid #dbe2ea;
  color: #c0c8d8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.subscription-management-apply-row.is-complete .subscription-management-apply-row-state {
  border-color: #10b981;
  background: #10b981;
  color: #fff;
}

.subscription-management-apply-row-spinner {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 999px;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.16);
  border-top-color: var(--bs-primary);
  animation: subscription-management-ring-spin 0.9s linear infinite;
}

.subscription-management-apply-row-student {
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 800;
  white-space: nowrap;
}

.subscription-management-apply-row-action {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0 0.55rem;
  border-radius: 8px;
  background: #f8fafc;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.subscription-management-apply-row-action.is-remove {
  background: #fff1f2;
  color: #dc2626;
}

.subscription-management-apply-row-action.is-add {
  background: #ecfdf5;
  color: #059669;
}

.subscription-management-apply-row-status {
  color: #c0c8d8;
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.subscription-management-apply-row-status.is-processing {
  color: var(--bs-primary);
}

.subscription-management-apply-row-status.is-done {
  color: #047857;
}

.subscription-management-stage-title-success {
  color: #047857;
}

.subscription-management-apply-success-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 154px;
  padding: 1.8rem 1rem;
}

.subscription-management-apply-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.3rem;
}

.subscription-management-apply-footer-copy {
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 600;
}

.subscription-management-apply-progress {
  margin-bottom: 1rem;
}

.subscription-management-apply-ring,
.subscription-management-apply-success-icon {
  width: 5.25rem;
  height: 5.25rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.subscription-management-apply-ring {
  position: relative;
  border: 4px solid #d1fae5;
  color: #10b981;
  font-size: 1.1rem;
  font-weight: 900;
}

.subscription-management-apply-ring-spinner {
  position: absolute;
  inset: -4px;
  border-radius: 999px;
  border: 4px solid transparent;
  border-top-color: #10b981;
  border-left-color: #10b981;
  animation: subscription-management-ring-spin 0.9s linear infinite;
}

.subscription-management-apply-ring-count {
  position: relative;
  z-index: 1;
}

.subscription-management-apply-success-icon {
  background: #d1fae5;
  color: #059669;
  font-size: 2rem;
  margin-bottom: 1rem;
}

.subscription-management-apply-title {
  margin: 0 0 0.5rem;
  color: var(--bs-secondary);
  font-size: 1.1rem;
  font-weight: 800;
}

.subscription-management-apply-subtitle {
  margin: 0 0 1.5rem;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 600;
}

.subscription-management-apply-students {
  width: min(100%, 420px);
  display: grid;
  gap: 0.55rem;
}

.subscription-management-apply-student {
  min-height: 42px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
  color: #6b7280;
  padding: 0.75rem 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.82rem;
  font-weight: 700;
  text-align: left;
}

.subscription-management-apply-student.is-complete {
  border-color: #86efac;
  background: #dff7ef;
  color: #047857;
}

.subscription-management-apply-student-icon {
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #9ca3af;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  flex-shrink: 0;
}

.subscription-management-apply-student.is-complete .subscription-management-apply-student-icon {
  background: #10b981;
  color: #fff;
}

@keyframes subscription-management-ring-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.members-audit-summary-pill.is-missing {
  background: #1f2b58;
  border-color: #1f2b58;
  color: #fff;
}

.subscription-management-preview-card.is-remove {
  border-color: rgba(244, 63, 94, 0.2);
}

.subscription-management-preview-card.is-add {
  border-color: rgba(34, 197, 94, 0.2);
}

.subscription-management-preview-meta,
.subscription-management-empty {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
}

.subscription-management-empty {
  border: 1px dashed #dbe2ea;
  border-radius: 16px;
  background: #fff;
  padding: 1rem;
}

.subscription-management-success {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 1px solid #a7f3d0;
  border-radius: 18px;
  background: #ecfdf5;
  color: #047857;
  padding: 1rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.subscription-management-success-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.84rem;
  font-weight: 700;
}

.subscription-management-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #edf2f7;
  background: #fff;
  flex-shrink: 0;
}

.subscription-management-footer-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
}

.subscription-management-footer-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
}

.subscription-management-footer-actions .subscription-management-preview-summary {
  margin-right: 0.25rem;
}

.subscription-management-loading {
  margin-left: auto;
}

.subscription-management-stage-title {
  margin: 0 0 0.35rem;
  color: #059669;
  font-size: 1.15rem;
  font-weight: 800;
}

.subscription-management-stage-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 600;
}

.subscription-management-remove-stage {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.subscription-management-remove-panel,
.subscription-management-students-card {
  border: 1px solid #fbc8d0;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05), 0 3px 10px rgba(15, 23, 42, 0.04);
}

.subscription-management-add-panel {
  border: 1px solid #b7f1dc;
  border-radius: 18px;
  background: #fff;
  padding: 0.9rem;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05), 0 3px 10px rgba(15, 23, 42, 0.04);
}

.subscription-management-review-stage {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.subscription-management-remove-panel {
  padding: 0.9rem;
}

.subscription-management-remove-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.9rem;
}

.subscription-management-add-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.9rem;
}

.subscription-management-remove-panel-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
}

.subscription-management-add-panel-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
}

.subscription-management-remove-panel-icon {
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 999px;
  border: 1px solid #fda4af;
  background: #fff1f2;
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.7rem;
}

.subscription-management-add-panel-icon {
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 999px;
  border: 1px solid #86efac;
  background: #ecfdf5;
  color: #10b981;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.7rem;
}

.subscription-management-remove-panel-title {
  margin: 0 0 0.15rem;
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
}

.subscription-management-add-panel-title {
  margin: 0 0 0.15rem;
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
}

.subscription-management-remove-panel-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.73rem;
  font-weight: 600;
}

.subscription-management-add-panel-subtitle {
  margin: 0;
  color: #94a3b8;
  font-size: 0.73rem;
  font-weight: 600;
}

.subscription-management-remove-summary-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}

.subscription-management-add-summary-chip {
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}

.subscription-management-remove-summary-chip.is-active {
  background: #fff1f2;
  color: #ef4444;
}

.subscription-management-add-summary-chip.is-active {
  background: #ecfdf5;
  color: #10b981;
}

.subscription-management-remove-toolbar {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 0.9rem;
}

.subscription-management-add-toolbar {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 0.9rem;
}

.subscription-management-remove-selection-chip,
.subscription-management-remove-toggle {
  min-height: 2rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
}

.subscription-management-add-selection-chip,
.subscription-management-add-toggle {
  min-height: 2rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
}

.subscription-management-remove-selection-chip {
  border: 1px solid #fda4af;
  background: #fff1f2;
  color: #dc2626;
  padding: 0.3rem 0.55rem 0.3rem 0.65rem;
}

.subscription-management-remove-selection-chip i {
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.62rem;
}

.subscription-management-add-selection-chip {
  border: 1px solid #86efac;
  background: #ecfdf5;
  color: #059669;
  padding: 0.3rem 0.55rem 0.3rem 0.65rem;
}

.subscription-management-add-selection-chip i {
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  background: #10b981;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.62rem;
}

.subscription-management-remove-toggle {
  border: 1px dashed #fda4af;
  background: #fff;
  color: #ef4444;
  padding: 0 0.7rem;
}

.subscription-management-add-toggle {
  border: 1px dashed #86efac;
  background: #fff;
  color: #10b981;
  padding: 0 0.7rem;
}

.subscription-management-remove-toggle i:last-child {
  font-size: 0.66rem;
}

.subscription-management-add-toggle i:last-child {
  font-size: 0.66rem;
}

.subscription-management-catalogue {
  border: 1px solid #fca5a5;
  border-radius: 16px;
  background: linear-gradient(180deg, #fff 0%, #fffafa 100%);
  padding: 0.75rem;
}

.subscription-management-add-catalogue {
  border: 1px solid #bbf7d0;
  border-radius: 16px;
  background: linear-gradient(180deg, #fff 0%, #f7fffb 100%);
  padding: 0.75rem;
}

.subscription-management-catalogue-head {
  margin-bottom: 0.55rem;
}

.subscription-management-catalogue-title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.subscription-management-catalogue-list {
  display: grid;
  gap: 0.55rem;
}

.subscription-management-catalogue-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: center;
  border-radius: 14px;
  padding: 0.55rem 0.6rem;
}

.subscription-management-catalogue-row.is-selected {
  background: #fff1f2;
}

.subscription-management-catalogue-row.is-selected.is-add {
  background: #ecfdf5;
}

.subscription-management-catalogue-main {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.subscription-management-catalogue-checkbox {
  margin-top: 0;
  flex-shrink: 0;
  accent-color: var(--subscription-stage-accent);
}

.subscription-management-plan-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 1.8rem;
  padding: 0.18rem 0.65rem;
  border-radius: 10px;
  background: #f5f7fb;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 800;
}

.subscription-management-plan-pill span {
  color: #94a3b8;
  font-weight: 700;
}

.subscription-management-plan-pill.is-selected {
  background: #ffe4e6;
  color: #dc2626;
}

.subscription-management-plan-pill.is-selected span {
  color: #ef4444;
}

.subscription-management-plan-pill.is-selected.is-add {
  background: #d1fae5;
  color: #047857;
}

.subscription-management-plan-pill.is-selected.is-add span {
  color: #10b981;
}

.subscription-management-catalogue-side {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.subscription-management-catalogue-count {
  color: #94a3b8;
  font-size: 0.74rem;
  font-weight: 700;
  white-space: nowrap;
}

.subscription-management-catalogue-date-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.subscription-management-catalogue-date-label {
  color: #ef4444;
  font-size: 0.73rem;
  font-weight: 800;
  margin: 0;
}

.subscription-management-catalogue-date-label.is-add {
  color: #10b981;
}

.subscription-management-catalogue-date {
  min-width: 116px;
  min-height: 2rem;
  border: 1px solid #fca5a5;
  border-radius: 10px;
  background: #fff;
  color: #dc2626;
  padding: 0.3rem 0.6rem;
  font-size: 0.76rem;
  font-weight: 700;
}

.subscription-management-catalogue-date.is-add {
  border-color: #86efac;
  color: #047857;
}

.subscription-management-catalogue-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.7rem;
}

.subscription-management-catalogue-done {
  min-width: 88px;
}

.subscription-management-students-card {
  border-color: #e6ebf3;
  overflow: hidden;
  padding: 0;
}

.subscription-management-students-card.is-add-stage {
  border-color: #d8efe4;
}

.subscription-management-review-card {
  border: 1px solid #e6ebf3;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05), 0 3px 10px rgba(15, 23, 42, 0.04);
}

.subscription-management-review-head,
.subscription-management-review-row {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
}

.subscription-management-review-head {
  padding: 0.75rem 0.95rem;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.subscription-management-review-head .is-remove {
  color: #dc2626;
}

.subscription-management-review-head .is-add {
  color: #059669;
}

.subscription-management-review-list {
  display: grid;
}

.subscription-management-review-row {
  align-items: flex-start;
  padding: 0.9rem 0.95rem;
  border-top: 1px solid #edf2f7;
}

.subscription-management-review-student {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
}

.subscription-management-review-column {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-content: flex-start;
  min-height: 2rem;
}

.subscription-management-confirm-card {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  border: 1px solid #e6ebf3;
  border-radius: 16px;
  background: #fff;
  padding: 0.95rem 1rem;
  cursor: pointer;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05), 0 3px 10px rgba(15, 23, 42, 0.04);
}

.subscription-management-confirm-card .form-check-input {
  margin-top: 0.15rem;
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

.subscription-management-confirm-copy {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

.subscription-management-confirm-title {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.subscription-management-confirm-subtitle {
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 600;
}

.subscription-management-primary-apply {
  border-color: #10b981;
  background: #10b981;
}

.subscription-management-students-head,
.subscription-management-student-row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 1rem;
}

.subscription-management-students-head {
  padding: 0.75rem 0.95rem;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.subscription-management-students-list {
  display: grid;
}

.subscription-management-student-row {
  align-items: stretch;
  padding: 0.85rem 0.95rem;
  border-top: 1px solid #edf2f7;
}

.subscription-management-student-row.is-affected {
  background: #fff5f5;
}

.subscription-management-student-row.is-add-affected {
  background: #edfdf6;
}

.subscription-management-student-col {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
}

.subscription-management-student-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 800;
  flex-shrink: 0;
}

.subscription-management-student-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.subscription-management-student-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.subscription-management-student-copy {
  min-width: 0;
}

.subscription-management-student-name {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
  line-height: 1.2;
}

.subscription-management-student-meta {
  margin-top: 0.18rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 700;
}

.subscription-management-student-meta.is-remove {
  color: #ef4444;
}

.subscription-management-student-meta.is-add {
  color: #10b981;
}

.subscription-management-student-subscriptions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-content: center;
}

.subscription-management-audit-pair {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  border-radius: 10px;
  overflow: hidden;
  font-size: 0.74rem;
  font-weight: 800;
}

.subscription-management-audit-part {
  min-height: 1.8rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0 0.68rem;
  border: 1px solid transparent;
}

.subscription-management-audit-pair.is-due .subscription-management-audit-part {
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0369a1;
}

.subscription-management-audit-pair.is-paid .subscription-management-audit-part {
  background: #e8faf2;
  border-color: #86efac;
  color: #15803d;
}

.subscription-management-audit-pair.is-overdue .subscription-management-audit-part {
  background: #fff1f2;
  border-color: #fda4af;
  color: #dc2626;
}

.subscription-management-audit-pair .subscription-management-audit-part + .subscription-management-audit-part {
  border-left-width: 0;
}

.subscription-management-student-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  min-height: 1.8rem;
  padding: 0.18rem 0.55rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #334155;
  font-size: 0.75rem;
  font-weight: 700;
}

.subscription-management-student-chip.is-remove {
  border-color: #fda4af;
  background: #fff1f2;
  color: #dc2626;
}

.subscription-management-student-chip.is-remove > span:first-child {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.subscription-management-student-chip.is-add {
  border-color: #86efac;
  background: #ecfdf5;
  color: #047857;
}

.subscription-management-student-chip-date {
  display: inline-flex;
  align-items: center;
  min-height: 1.2rem;
  padding: 0 0.35rem;
  border-radius: 7px;
  background: #fff;
  color: #dc2626;
  font-size: 0.68rem;
  font-weight: 800;
}

.subscription-management-student-chip-date.is-add {
  color: #047857;
}

.subscription-management-student-empty {
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 700;
}

.credit-adjustment-modal {
  padding: 1.35rem 1.45rem 1.25rem;
  color: #233253;
}

.a2b-hidden {
  display: none !important;
}

.a2b-modal-card {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.a2b-modal-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.a2b-modal-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(var(--bs-primary-rgb), 0.09);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
}

.a2b-modal-title {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.a2b-modal-subtitle {
  margin: 0;
  color: #94a3c1;
  font-size: 0.98rem;
  line-height: 1.55;
}

.a2b-step-dots {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}

.a2b-dot {
  width: 11px;
  height: 11px;
  border-radius: 999px;
  border: 2px solid #d6deeb;
  background: #fff;
}

.a2b-dot--active,
.a2b-dot--done {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), 0.12);
}

.a2b-dot--pending {
  background: #f8fafc;
}

.a2b-close-btn {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 14px;
  background: #f5f7fb;
  color: #6b7a99;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.a2b-close-btn:hover {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  transform: translateY(-1px);
}

.a2b-modal-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.a2b-form-section {
  display: flex;
  flex-direction: column;
  gap: 0.72rem;
}

.a2b-label {
  color: #8a98b6;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.a2b-required-star {
  color: #ef4444;
}

.a2b-member-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.a2b-member-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.45rem 0.75rem 0.45rem 0.48rem;
  border: 1px solid #dce4f1;
  border-radius: 999px;
  background: #fbfdff;
  box-shadow: 0 10px 24px -22px rgba(15, 23, 42, 0.45);
}

.a2b-avatar {
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.a2b-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.a2b-avatar.is-female {
  background: #fce7f3;
  color: #db2777;
}

.a2b-avatar--sm {
  width: 34px;
  height: 34px;
  font-size: 0.86rem;
}

.a2b-avatar--md {
  width: 44px;
  height: 44px;
  font-size: 0.96rem;
}

.a2b-chip-name,
.a2b-member-card__name {
  color: #223154;
  font-size: 0.98rem;
  font-weight: 700;
}

.a2b-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.a2b-type-card {
  border: 1px solid #dde5f1;
  border-radius: 20px;
  background: #fff;
  padding: 1rem 1.05rem;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  box-shadow: 0 14px 34px -30px rgba(15, 23, 42, 0.55);
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.a2b-type-card:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--bs-primary-rgb), 0.38);
}

.a2b-type-card__icon-row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.a2b-type-card__icon,
.a2b-type-card__check {
  color: #b4bfd3;
  font-size: 1rem;
}

.a2b-type-card__label {
  color: #223154;
  font-size: 1rem;
  font-weight: 700;
}

.a2b-type-card__desc {
  color: #8fa0bd;
  font-size: 0.9rem;
  line-height: 1.45;
}

.a2b-type-card.credit--active {
  border-color: #86efac;
  background: #f0fdf4;
}

.a2b-type-card.credit--active .a2b-type-card__icon,
.a2b-type-card.credit--active .a2b-type-card__check,
.a2b-type-card.credit--active .a2b-type-card__label {
  color: #15803d;
}

.a2b-type-card.debit--active {
  border-color: #fda4af;
  background: #fff1f2;
}

.a2b-type-card.debit--active .a2b-type-card__icon,
.a2b-type-card.debit--active .a2b-type-card__check,
.a2b-type-card.debit--active .a2b-type-card__label {
  color: #be123c;
}

.a2b-amount-group {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  overflow: hidden;
  border: 1px solid #dce4f1;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 28px -24px rgba(15, 23, 42, 0.45);
}

.a2b-amount-group__addon,
.a2b-amount-group__input,
.a2b-select,
.a2b-textarea {
  color: #223154;
  font-size: 1rem;
}

.a2b-amount-group__addon {
  padding: 0.95rem 1rem;
  background: #f8fafc;
  color: #7d8aa7;
  font-weight: 700;
}

.a2b-amount-group__input,
.a2b-select,
.a2b-textarea {
  width: 100%;
  border: 1px solid #dce4f1;
  border-radius: 18px;
  background: #fff;
  padding: 0.95rem 1rem;
  outline: none;
  box-shadow: 0 12px 28px -24px rgba(15, 23, 42, 0.45);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.a2b-amount-group__input {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  min-width: 0;
}

.a2b-amount-group:focus-within,
.a2b-select-wrapper:focus-within .a2b-select,
.a2b-textarea:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.36);
  box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), 0.12);
}

.a2b-select-wrapper {
  position: relative;
}

.a2b-select {
  appearance: none;
  padding-right: 3rem;
}

.a2b-select-chevron {
  position: absolute;
  right: 1.05rem;
  top: 50%;
  transform: translateY(-50%);
  color: #97a3bc;
  pointer-events: none;
}

.a2b-note-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.a2b-char-counter {
  color: #9aa8c3;
  font-size: 0.82rem;
  font-weight: 700;
}

.a2b-char-counter--warn {
  color: #d97706;
}

.a2b-textarea {
  min-height: 112px;
  resize: vertical;
}

.a2b-note-hint {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  background: #f8fafc;
  color: #6f7f9d;
  font-size: 0.9rem;
  line-height: 1.55;
}

.a2b-note-hint strong {
  color: #223154;
}

.a2b-note-hint-icon {
  color: var(--bs-primary);
  margin-top: 0.1rem;
}

.a2b-modal-footer {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding-top: 0.2rem;
}

.a2b-modal-footer--end {
  justify-content: flex-end;
}

.a2b-modal-footer--split {
  justify-content: space-between;
}

.a2b-btn-cancel,
.a2b-btn-primary {
  border-radius: 16px;
  padding: 0.95rem 1.35rem;
  font-size: 0.98rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.a2b-btn-cancel {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #5f6f8f;
}

.a2b-btn-cancel:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(var(--bs-primary-rgb), 0.3);
  color: var(--bs-primary);
}

.a2b-btn-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 18px 36px -24px rgba(var(--bs-primary-rgb), 0.7);
}

.a2b-btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
}

.a2b-btn-primary:disabled,
.a2b-btn-cancel:disabled {
  opacity: 0.62;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.a2b-btn-primary.applied {
  border-color: #10b981;
  background: #10b981;
}

.a2b-inline-spinner {
  width: 13px;
  height: 13px;
  border-width: 2px;
}

.a2b-summary-strip {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid #dce4f1;
  border-radius: 22px;
}

.a2b-summary-strip.credit--strip {
  border-color: #a7f3d0;
  background: #ecfdf5;
}

.a2b-summary-strip.debit--strip {
  border-color: #fecdd3;
  background: #fff1f2;
}

.a2b-summary-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.credit--strip .a2b-summary-icon-wrap,
.credit--arrow-circle,
.credit--badge {
  background: #dcfce7;
  color: #15803d;
}

.debit--strip .a2b-summary-icon-wrap,
.debit--arrow-circle,
.debit--badge {
  background: #ffe4e6;
  color: #be123c;
}

.a2b-summary-title {
  color: #223154;
  font-size: 1.02rem;
  font-weight: 700;
}

.a2b-summary-reason {
  margin-top: 0.2rem;
  color: #7b8ba8;
  font-size: 0.9rem;
}

.a2b-type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.a2b-section-divider {
  color: #8b99b6;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.a2b-member-card {
  border: 1px solid #dce4f1;
  border-radius: 22px;
  background: #fff;
  padding: 1rem 1.1rem;
  box-shadow: 0 18px 42px -36px rgba(15, 23, 42, 0.6);
}

.a2b-member-card + .a2b-member-card {
  margin-top: 0.1rem;
}

.a2b-member-card__header {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.a2b-balance-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.a2b-balance-cell {
  padding: 0.95rem 1rem;
  border-radius: 18px;
  background: #f8fafc;
}

.a2b-balance-cell__label {
  color: #8d9ab7;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.a2b-balance-cell__value {
  margin-top: 0.35rem;
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.text-credit {
  color: #15803d;
}

.text-debit {
  color: #be123c;
}

.a2b-balance-arrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}

.a2b-balance-arrow__circle {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.a2b-balance-arrow__amount {
  font-size: 0.92rem;
  font-weight: 800;
}

.a2b-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.55rem;
  padding: 0.34rem 0.7rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 700;
}

.credit-status {
  background: #dcfce7;
  color: #166534;
}

.debit-status {
  background: #ffe4e6;
  color: #be123c;
}

.a2b-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px dashed #d8e1ef;
  border-radius: 18px;
  background: #fbfcfe;
}

.a2b-total-row__label {
  color: #6e7d9b;
  font-size: 0.92rem;
  font-weight: 600;
}

.a2b-total-row__value {
  font-size: 1.02rem;
  font-weight: 800;
}

.a2b-note-preview {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  border-radius: 18px;
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.a2b-note-preview__icon {
  color: var(--bs-primary);
  margin-top: 0.1rem;
}

.a2b-note-preview__label {
  color: #6b7a99;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.a2b-note-preview__text {
  margin-top: 0.2rem;
  color: #223154;
  font-size: 0.94rem;
  line-height: 1.55;
}

.a2b-error-alert {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.9rem 1rem;
  border: 1px solid #fecaca;
  border-radius: 16px;
  background: #fff1f2;
  color: #b91c1c;
  font-size: 0.84rem;
  font-weight: 600;
}

.class-invite-modal {
  padding: 1rem 1.15rem 1.1rem;
  color: #233253;
}

.class-invite-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.1rem;
}

.class-invite-header-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.class-invite-title {
  margin: 0;
  font-size: 1.95rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.class-invite-subtitle {
  margin: 0.3rem 0 0;
  color: #94a3c1;
  font-size: 0.96rem;
  line-height: 1.55;
}

.class-invite-section {
  margin-bottom: 1.15rem;
}

.class-invite-label {
  display: inline-block;
  margin-bottom: 0.6rem;
  color: #8a98b6;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.class-invite-input,
.class-invite-select,
.class-invite-textarea {
  width: 100%;
  border: 1px solid #dce4f1;
  border-radius: 18px;
  background: #fff;
  color: #223154;
  font-size: 0.98rem;
  padding: 0.52rem 1rem;
  outline: none;
  box-shadow: 0 12px 28px -24px rgba(15, 23, 42, 0.45);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.class-invite-input:focus,
.class-invite-select:focus,
.class-invite-textarea:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.36);
  box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), 0.12);
}

.class-invite-students {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.class-invite-student-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.44rem 0.72rem 0.44rem 0.48rem;
  border: 1px solid #dce4f1;
  border-radius: 999px;
  background: #fbfdff;
}

.class-invite-student-avatar {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.84rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.class-invite-student-name {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 700;
}

.class-invite-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.15rem;
}

.class-invite-panel {
  border: 1px solid #dce4f1;
  border-radius: 22px;
  background: #fff;
  padding: 1rem;
  box-shadow: 0 18px 40px -34px rgba(15, 23, 42, 0.5);
}

.class-invite-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

.class-invite-panel-title {
  margin: 0;
  color: #223154;
  font-size: 1.05rem;
  font-weight: 700;
}

.class-invite-count-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.34rem 0.7rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 0.76rem;
  font-weight: 700;
}

.class-invite-accordion {
  --bs-accordion-border-color: transparent;
  --bs-accordion-btn-bg: #f8fafc;
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-active-bg: #f8fafc;
  --bs-accordion-active-color: #223154;
}

.class-invite-accordion .accordion-item {
  border: 1px solid #e3eaf4;
  border-radius: 18px !important;
  overflow: hidden;
  background: #fff;
}

.class-invite-accordion .accordion-item + .accordion-item {
  margin-top: 0.8rem;
}

.class-invite-accordion .accordion-button {
  padding: 0.95rem 1rem;
  font-size: 1rem;
  font-weight: 700;
  color: #223154;
  box-shadow: none;
}

.class-invite-accordion .accordion-button:not(.collapsed) {
  background: #f8fafc;
}

.class-invite-accordion .accordion-body {
  padding: 0.85rem;
}

.class-invite-group-list {
  gap: 0.7rem;
}

.class-invite-group-list .list-group-item {
  border: 1px solid #e3eaf4;
  border-radius: 16px !important;
  margin-bottom: 0.7rem;
  overflow: hidden;
}

.class-invite-group-item {
  padding: 0;
  background: #fff;
}

.class-invite-group-item--selected {
  border-color: rgba(var(--bs-success-rgb), 0.35) !important;
  background: #f8fffb;
}

.class-invite-group-item--selected.is-join {
  border-color: rgba(var(--bs-primary-rgb), 0.24) !important;
  background: rgba(var(--bs-primary-rgb), 0.03);
}

.class-invite-group-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0.85rem 0.95rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  text-align: left;
}

.class-invite-group-name {
  color: #223154;
  font-size: 0.95rem;
  font-weight: 700;
}

.class-invite-group-badge,
.class-invite-meta-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.32rem 0.62rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.class-invite-group-badge {
  background: #f3f6fb;
  color: #7f8cab;
}

.class-invite-group-badge.is-leave {
  background: #dcfce7;
  color: #166534;
}

.class-invite-group-badge.is-join {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.class-invite-group-body {
  padding: 0 0.95rem 0.95rem;
}

.class-invite-field {
  margin-bottom: 0.85rem;
}

.class-invite-mini-label {
  display: inline-block;
  margin-bottom: 0.45rem;
  color: #8a98b6;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.class-invite-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding: 0 0.95rem 0.8rem;
}

.class-invite-meta-chip {
  background: #f3f6fb;
  color: #6d7d9c;
}

.class-invite-meta-chip.is-danger {
  background: #fff1f2;
  color: #dc2626;
}

.class-invite-meta-chip.is-neutral {
  background: #f8fafc;
  color: #64748b;
}

.class-invite-subscriptions {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.class-invite-textarea {
  min-height: 118px;
  resize: vertical;
}

.class-invite-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.4rem;
}

.class-invite-footer-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.class-invite-btn {
  border-radius: 16px;
  padding: 0.92rem 1.3rem;
  font-size: 0.96rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.class-invite-btn-secondary {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #607090;
}

.class-invite-btn-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 18px 36px -24px rgba(var(--bs-primary-rgb), 0.68);
}

.class-invite-btn:hover {
  transform: translateY(-1px);
}

.class-invite-tooltip {
  font-size: 1.2rem;
  color: var(--bs-primary);
}

@media (max-width: 767.98px) {
  .credit-adjustment-modal {
    padding: 1rem 0.95rem 0.95rem;
  }
  .a2b-modal-header,
  .a2b-balance-row,
  .a2b-modal-footer,
  .a2b-note-head {
    flex-direction: column;
    align-items: stretch;
  }
  .a2b-step-dots {
    margin-left: 0;
  }
  .a2b-modal-title {
    font-size: 1.55rem;
  }
  .a2b-type-grid,
  .a2b-balance-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .a2b-balance-arrow {
    flex-direction: row;
    justify-content: center;
  }
  .a2b-modal-footer--split,
  .a2b-modal-footer--end {
    justify-content: stretch;
  }
  .a2b-btn-cancel,
  .a2b-btn-primary {
    width: 100%;
  }
  .class-invite-modal {
    padding: 0.9rem;
  }
  .class-invite-header,
  .class-invite-panel-head,
  .class-invite-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .class-invite-title {
    font-size: 1.55rem;
  }
  .class-invite-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .class-invite-footer-actions {
    width: 100%;
    flex-direction: column-reverse;
  }
  .class-invite-btn {
    width: 100%;
  }
  .set-tags-modal {
    padding: 1rem;
  }
  .set-affiliation-modal {
    padding: 1rem;
  }
  .set-affiliation-header {
    margin-bottom: 1rem;
  }
  .set-affiliation-info {
    padding: 0.85rem;
  }
  .set-affiliation-info-copy h3 {
    font-size: 0.95rem;
  }
  .set-affiliation-info-copy p {
    font-size: 0.82rem;
    line-height: 1.65;
  }
  .set-affiliation-status-toggle {
    grid-template-columns: minmax(0, 1fr);
  }
  .set-affiliation-table-head {
    display: none;
  }
  .set-affiliation-table-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    padding: 1rem 0.85rem;
    align-items: start;
  }
  .set-affiliation-table-row > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
  }
  .set-affiliation-table-row > div:nth-child(1) {
    grid-column: 1/-1;
  }
  .set-affiliation-table-row > div::before {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .set-affiliation-table-row > div:nth-child(1)::before {
    content: "Member";
    color: #94a3b8;
  }
  .set-affiliation-table-row > div:nth-child(2)::before {
    content: "Current";
    color: #94a3b8;
  }
  .set-affiliation-table-row > div:nth-child(3)::before {
    content: "After Save";
    color: #14b8a6;
  }
  .set-affiliation-status-cell.is-after {
    align-items: flex-start;
  }
  .set-affiliation-status-arrow {
    display: none;
  }
  .set-affiliation-notify-card {
    align-items: flex-start;
  }
  .set-affiliation-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .set-affiliation-primary,
  .set-affiliation-secondary {
    width: 100%;
  }
  .set-affiliation-success {
    padding-top: 1.25rem;
  }
  .set-affiliation-success-icon {
    width: 4.5rem;
    height: 4.5rem;
    font-size: 1.7rem;
  }
  .set-affiliation-success-students {
    gap: 0.55rem;
  }
  .set-sub-group-modal {
    padding: 1rem;
  }
  .set-sub-group-info {
    padding: 0.85rem;
  }
  .set-sub-group-mode-toggle {
    grid-template-columns: minmax(0, 1fr);
  }
  .set-sub-group-existing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .set-sub-group-table-head {
    display: none;
  }
  .set-sub-group-table-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    padding: 1rem 0.85rem;
    align-items: start;
  }
  .set-sub-group-table-row > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
  }
  .set-sub-group-table-row > div:nth-child(1) {
    grid-column: 1/-1;
  }
  .set-sub-group-table-row > div::before {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .set-sub-group-table-row > div:nth-child(1)::before {
    content: "Member";
    color: #94a3b8;
  }
  .set-sub-group-table-row > div:nth-child(2)::before {
    content: "Current";
    color: #94a3b8;
  }
  .set-sub-group-table-row > div:nth-child(3)::before {
    content: "After Save";
    color: #ff7a1a;
  }
  .set-sub-group-status-cell.is-after {
    align-items: flex-start;
  }
  .set-sub-group-status-arrow {
    display: none;
  }
  .set-sub-group-notify-card {
    align-items: flex-start;
  }
  .set-sub-group-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .set-sub-group-primary,
  .set-sub-group-secondary {
    width: 100%;
  }
  .set-tags-add-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .set-tags-modal-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .set-tags-preview-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .set-tags-preview-head {
    display: none;
  }
  .set-tags-preview-row {
    gap: 0.85rem;
    padding: 1rem 0.1rem;
    border-top: 1px solid #eaf0f7;
    align-items: start;
  }
  .set-tags-preview-row > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
  }
  .set-tags-preview-row > div:nth-child(1) {
    grid-column: 1/-1;
  }
  .set-tags-preview-row > div:nth-child(2),
  .set-tags-preview-row > div:nth-child(3) {
    width: 100%;
  }
  .set-tags-preview-row > div::before {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .set-tags-preview-row > div:nth-child(1)::before {
    content: "Member";
    color: #94a3b8;
  }
  .set-tags-preview-row > div:nth-child(2)::before {
    content: "Current";
    color: #94a3b8;
  }
  .set-tags-preview-row > div:nth-child(3)::before {
    color: #16a34a;
    content: "Adding";
  }
  .set-tags-preview.is-danger .set-tags-preview-row > div:nth-child(3)::before {
    content: "Removing";
    color: #ef4444;
  }
  .set-tags-preview.is-danger .set-tags-preview-row > div:nth-child(3) .set-tags-preview-tag {
    color: #ef4444;
  }
  .set-tags-preview-member {
    gap: 0.7rem;
  }
  .set-tags-preview-avatar {
    width: 2rem;
    height: 2rem;
    font-size: 0.72rem;
  }
  .set-tags-preview-name {
    font-size: 0.92rem;
    line-height: 1.2;
  }
  .set-tags-preview-tags {
    gap: 0.45rem;
  }
  .set-tags-preview-tag {
    min-height: 1.85rem;
    padding: 0.2rem 0.58rem;
    font-size: 0.78rem;
  }
  .set-tags-preview-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .set-tags-primary,
  .set-tags-secondary,
  .set-tags-add-button,
  .set-tags-preview-apply {
    width: 100%;
  }
  .manage-awards-modal {
    padding: 1rem;
  }
  .manage-awards-info {
    padding: 0.85rem;
  }
  .manage-awards-info-copy h3 {
    font-size: 0.95rem;
  }
  .manage-awards-info-copy p {
    font-size: 0.82rem;
    line-height: 1.65;
  }
  .manage-awards-mode-toggle {
    grid-template-columns: minmax(0, 1fr);
  }
  .manage-awards-picker-head {
    flex-direction: column;
    align-items: flex-start;
  }
  .manage-awards-picker-meta {
    width: 100%;
    justify-content: space-between;
  }
  .manage-awards-track-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }
  .manage-awards-table-head {
    display: none;
  }
  .manage-awards-table-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    padding: 1rem 0.85rem;
    align-items: start;
  }
  .manage-awards-table-row > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
  }
  .manage-awards-table-row > div:nth-child(1) {
    grid-column: 1/-1;
  }
  .manage-awards-table-row > div::before {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .manage-awards-table-row > div:nth-child(1)::before {
    content: "Member";
    color: #94a3b8;
  }
  .manage-awards-table-row > div:nth-child(2)::before {
    content: "Current Awards";
    color: #94a3b8;
  }
  .manage-awards-table-row > div:nth-child(3)::before {
    content: "After Save";
    color: #ec4899;
  }
  .manage-awards-cell.is-after {
    align-items: flex-start;
  }
  .manage-awards-arrow {
    display: none;
  }
  .manage-awards-notify-card {
    align-items: flex-start;
  }
  .manage-awards-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .manage-awards-primary,
  .manage-awards-secondary {
    width: 100%;
  }
  .manage-awards-success {
    min-height: 360px;
    padding-top: 1.25rem;
  }
  .manage-awards-success-icon {
    width: 4.75rem;
    height: 4.75rem;
    font-size: 1.7rem;
    margin-bottom: 1.1rem;
  }
  .manage-awards-success-awards {
    margin-top: 1.1rem;
  }
  .subscription-management-modal {
    padding: 1rem;
    height: auto;
    max-height: calc(100vh - 1.5rem);
    overflow-y: auto;
  }
  .subscription-management-header {
    flex-direction: row;
    align-items: stretch;
  }
  .subscription-management-header-actions {
    justify-content: space-between;
  }
  .subscription-management-grid,
  .subscription-management-preview-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
    flex: 0 0 auto;
    min-height: auto;
  }
  .subscription-management-column,
  .subscription-management-preview-column {
    min-height: auto;
  }
  .subscription-management-list,
  .subscription-management-preview-list,
  .subscription-management-preview-students {
    overflow: visible;
    max-height: none;
    padding-right: 0;
  }
  .subscription-management-card,
  .subscription-management-preview-card {
    padding: 0.85rem;
    border-radius: 14px;
  }
  .subscription-management-stage-title {
    font-size: 1rem;
  }
  .subscription-management-stage-subtitle,
  .subscription-management-remove-panel-subtitle,
  .subscription-management-student-meta,
  .subscription-management-catalogue-count {
    font-size: 0.7rem;
  }
  .subscription-management-remove-panel,
  .subscription-management-add-panel,
  .subscription-management-students-card,
  .subscription-management-review-card,
  .subscription-management-catalogue {
    border-radius: 14px;
  }
  .subscription-management-remove-panel-head,
  .subscription-management-add-panel-head,
  .subscription-management-catalogue-row,
  .subscription-management-student-row,
  .subscription-management-students-head,
  .subscription-management-review-row,
  .subscription-management-review-head {
    grid-template-columns: minmax(0, 1fr);
  }
  .subscription-management-remove-panel-head,
  .subscription-management-add-panel-head,
  .subscription-management-catalogue-side {
    align-items: flex-start;
  }
  .subscription-management-remove-summary-chip {
    white-space: normal;
  }
  .subscription-management-add-summary-chip {
    white-space: normal;
  }
  .subscription-management-catalogue-side {
    width: 100%;
    flex-wrap: wrap;
    gap: 0.55rem;
  }
  .subscription-management-catalogue-date-wrap {
    width: 100%;
    justify-content: space-between;
  }
  .subscription-management-catalogue-date {
    min-width: 0;
    width: 100%;
  }
  .subscription-management-students-head {
    display: none;
  }
  .subscription-management-review-head {
    display: none;
  }
  .subscription-management-student-row {
    gap: 0.65rem;
  }
  .subscription-management-student-subscriptions {
    padding-left: 2.7rem;
  }
  .subscription-management-review-row {
    gap: 0.65rem;
  }
  .subscription-management-review-column {
    padding-left: 2.7rem;
  }
  .subscription-management-confirm-card {
    align-items: flex-start;
  }
  .subscription-management-card-head,
  .subscription-management-preview-head {
    margin-bottom: 0.7rem;
  }
  .subscription-management-card-title,
  .subscription-management-preview-title {
    font-size: 0.86rem;
  }
  .subscription-management-card-price,
  .subscription-management-preview-meta {
    font-size: 0.68rem;
  }
  .subscription-management-label,
  .subscription-management-help {
    font-size: 0.68rem;
  }
  .subscription-management-apply-state {
    padding: 1.5rem 0 0.5rem;
  }
  .subscription-management-apply-shell {
    gap: 0.75rem;
  }
  .subscription-management-apply-progress-card,
  .subscription-management-apply-rows-card,
  .subscription-management-apply-success-card {
    border-radius: 16px;
  }
  .subscription-management-apply-progress-card {
    padding: 0.85rem 0.85rem 0.8rem;
  }
  .subscription-management-apply-progress-head {
    gap: 0.6rem;
    margin-bottom: 0.55rem;
  }
  .subscription-management-apply-progress-copy {
    gap: 0.55rem;
    min-width: 0;
    flex: 1 1 auto;
  }
  .subscription-management-apply-progress-title {
    font-size: 0.84rem;
  }
  .subscription-management-apply-progress-meta {
    font-size: 0.68rem;
  }
  .subscription-management-apply-progress-percent {
    font-size: 1.15rem;
    flex-shrink: 0;
  }
  .subscription-management-apply-row {
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.7rem 0.8rem;
  }
  .subscription-management-apply-row-main {
    width: 100%;
    flex-wrap: wrap;
    gap: 0.45rem 0.55rem;
    align-items: center;
  }
  .subscription-management-apply-row-state {
    width: 1rem;
    height: 1rem;
    margin-top: 0.08rem;
  }
  .subscription-management-apply-row-spinner {
    width: 0.72rem;
    height: 0.72rem;
  }
  .subscription-management-apply-row .subscription-management-student-avatar {
    width: 2rem;
    height: 2rem;
    font-size: 0.72rem;
  }
  .subscription-management-apply-row-student {
    flex: 1 1 calc(100% - 3.2rem);
    min-width: 0;
    white-space: normal;
    font-size: 0.78rem;
    line-height: 1.2;
  }
  .subscription-management-apply-row-action {
    min-height: 1.35rem;
    padding: 0 0.45rem;
    font-size: 0.64rem;
  }
  .subscription-management-apply-row .subscription-management-student-chip {
    min-width: 0;
    max-width: 100%;
    padding: 0.26rem 0.45rem;
    font-size: 0.66rem;
    line-height: 1.15;
  }
  .subscription-management-apply-row .subscription-management-student-chip > span:first-child {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .subscription-management-apply-row-status {
    width: 100%;
    text-align: right;
    font-size: 0.72rem;
    line-height: 1.15;
  }
  .subscription-management-apply-success-card {
    min-height: 0;
    padding: 1.35rem 0.9rem;
  }
  .subscription-management-apply-success-icon {
    width: 4.15rem;
    height: 4.15rem;
    font-size: 1.6rem;
    margin-bottom: 0.8rem;
  }
  .subscription-management-apply-title {
    font-size: 0.95rem;
  }
  .subscription-management-apply-subtitle {
    margin-bottom: 0;
    font-size: 0.72rem;
    line-height: 1.35;
  }
  .subscription-management-apply-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .subscription-management-apply-footer-copy {
    font-size: 0.72rem;
    text-align: left;
  }
  .subscription-management-preview-summary {
    white-space: normal;
    width: 100%;
    text-align: center;
  }
  .subscription-management-success,
  .subscription-management-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .subscription-management-footer-actions {
    margin-left: 0;
    width: 100%;
    flex-direction: column-reverse;
  }
  .subscription-management-primary,
  .subscription-management-secondary,
  .subscription-management-secondary-action {
    width: 100%;
  }
}
.sending-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.7);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sending-dialog {
  background: #ffffff;
  padding: 1.5rem 2rem;
  border-radius: 0.75rem;
  text-align: center;
  min-width: 220px;
}

.register-table {
  border-collapse: separate;
  border-spacing: 0;
}
.register-table .register-photo-col {
  width: 4.5rem;
  min-width: 4.5rem;
}
.register-table .register-photo-col.register-sticky-col {
  left: 9.5rem !important;
  z-index: 11;
  background-color: #fff !important;
  isolation: isolate;
}
.register-table thead .register-photo-col.register-sticky-col {
  z-index: 16;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
}
.register-table .register-photo-thumb {
  width: 2.9rem;
  height: 2.9rem;
  border-radius: 999px;
  object-fit: cover;
  display: inline-block;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
}
.register-table .members-audit-avatar {
  width: 2.9rem;
  height: 2.9rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 900;
  flex-shrink: 0;
}
.register-table .members-audit-avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}
.register-table .members-audit-avatar.is-female {
  background: #fce7f3;
  color: #ec4899;
}
.register-table > tbody > tr.register-merged-section-label > td {
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  cursor: default;
}
.register-table > tbody > tr.register-merged-section-label > td.register-merged-section-label__sticky--with-photo {
  min-width: 14rem;
  width: 14rem;
  max-width: 14rem;
}
.register-table.table-hover > tbody > tr.register-merged-section-label:hover > *,
.register-table > tbody > tr.register-merged-section-label:hover > td {
  --bs-table-bg-state: var(--bs-table-bg, #f8f9fa);
  --bs-table-color-state: var(--bs-body-color, #212529);
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  color: var(--bs-body-color, #212529);
}
.register-table.table-hover > tbody > tr.register-merged-section-label:hover > td.register-merged-section-label__sticky {
  box-shadow: 10px 0 14px -14px rgba(15, 23, 42, 0.35);
}
.register-table > thead > tr > th:first-child,
.register-table > tbody > tr:not(.register-merged-section-label) > td:first-child,
.register-table > tbody > tr:not(.register-merged-section-label) .register-sticky-col {
  position: -webkit-sticky;
  position: sticky !important;
  left: 0 !important;
  z-index: 12;
  background-color: #fff !important;
  background-clip: padding-box;
  isolation: isolate;
}
.register-table > tbody > tr:not(.register-merged-section-label) .register-photo-col.register-sticky-col {
  left: 9.5rem !important;
  z-index: 11;
  background-color: #fff !important;
}
.register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td.register-sticky-col, .register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td.register-name-col, .register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td:first-child {
  background-color: #eef1f4 !important;
}
.register-table .register-sticky-col {
  position: -webkit-sticky;
  position: sticky !important;
  background-clip: padding-box;
}
.register-table > tbody > tr.register-merged-section-label > td.register-merged-section-label__sticky {
  position: -webkit-sticky;
  position: sticky !important;
  left: 0 !important;
  z-index: 11;
  box-shadow: 10px 0 14px -14px rgba(15, 23, 42, 0.35);
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  background-clip: padding-box;
  border-top: 1px solid var(--bs-border-color);
  border-bottom: 1px solid var(--bs-border-color);
  color: var(--bs-body-color, #212529);
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.55rem 0.75rem;
  vertical-align: middle;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.register-table > tbody > tr.register-merged-section-label > td.register-merged-section-label__rest {
  position: static !important;
  left: auto !important;
  z-index: auto;
  box-shadow: none !important;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  background-clip: padding-box;
  border-top: 1px solid var(--bs-border-color);
  border-bottom: 1px solid var(--bs-border-color);
  padding: 0.55rem 0.75rem;
  vertical-align: middle;
}
.register-table > tbody.register-merged-body:first-of-type > tr.register-merged-section-label > td.register-merged-section-label__sticky,
.register-table > tbody.register-merged-body:first-of-type > tr.register-merged-section-label > td.register-merged-section-label__rest {
  border-top: 0;
}
.register-table > thead > tr > th:first-child,
.register-table thead .register-sticky-col {
  z-index: 25;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  isolation: isolate;
}
.register-table thead th.register-photo-col.register-sticky-col {
  z-index: 24 !important;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  isolation: isolate;
}
.register-table thead th {
  position: sticky;
  top: 0;
  z-index: 8;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  background-clip: padding-box;
  overflow: hidden;
}
.register-table thead th:not(.register-sticky-col):not(.register-name-col) {
  z-index: 5;
}
.register-table > thead > tr > th:first-child,
.register-table > tbody > tr:not(.register-merged-section-label) > td:first-child,
.register-table .register-name-col {
  min-width: 9.5rem;
  width: 9.5rem;
}

.register-table .register-photo-col.register-sticky-col {
  left: 9.5rem !important;
  z-index: 11;
  background-color: #fff !important;
  background-clip: padding-box;
  isolation: isolate;
}

.register-table > thead .register-photo-col.register-sticky-col {
  z-index: 24 !important;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  isolation: isolate;
}

.register-table > thead > tr > th:first-child,
.register-table > thead .register-sticky-col.register-name-col,
.register-table > thead .register-name-col.register-sticky-col {
  z-index: 25 !important;
  background-color: var(--bs-table-bg, #f8f9fa) !important;
  isolation: isolate;
}

.register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td.register-sticky-col,
.register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td.register-name-col,
.register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td.register-photo-col.register-sticky-col,
.register-table.table-hover > tbody > tr:not(.register-merged-section-label):hover > td:first-child {
  background-color: #eef1f4 !important;
}

.register-table--merged-layout .register-photo-col.register-sticky-col {
  left: 10.5rem !important;
}

.daily-register-merged .register-table--merged-layout.register-table--with-photos:not(.register-table--mobile-details-expanded) th.register-date-col,
.daily-register-merged .register-table--merged-layout.register-table--with-photos:not(.register-table--mobile-details-expanded) td.register-date-col {
  left: calc(var(--register-daily-name-width) + var(--register-daily-photo-width));
}

.table-responsive .register-table .register-photo-col.register-sticky-col,
.register-table-scroll .register-table .register-photo-col.register-sticky-col {
  box-shadow: 10px 0 14px -14px rgba(15, 23, 42, 0.35);
}

.register-table-scroll {
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

.table-responsive .register-table .register-sticky-col {
  box-shadow: 10px 0 14px -14px rgba(15, 23, 42, 0.35);
}

.register-mobile-details-toggle {
  display: none;
}

.register-medical-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  line-height: 1;
  vertical-align: baseline;
  cursor: pointer;
}

.register-medical-icon-btn:hover {
  opacity: 0.85;
}

.register-cell-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.125rem;
  justify-content: center;
  align-items: center;
  max-width: 100%;
}

.register-cell-actions .btn {
  line-height: 1;
}

.register-cell-actions__back {
  margin-top: 0.1rem;
}

.register-cell-actions__back .fa-arrow-left {
  font-size: 0.9rem;
}

.register-trial-not-signedup-icon[data-tooltip],
.register-future-first-lesson-icon[data-tooltip] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: help;
  vertical-align: middle;
}

.register-table [data-tooltip] {
  position: relative;
}

.register-table [data-tooltip]:hover,
.register-table [data-tooltip]:focus-visible {
  z-index: 1101;
}

.register-table thead th[data-tooltip]:hover,
.register-table thead th[data-tooltip]:focus-visible,
.register-table tbody td[data-tooltip]:hover,
.register-table tbody td[data-tooltip]:focus-visible,
.register-table thead th:has([data-tooltip]:hover),
.register-table thead th:has([data-tooltip]:focus-visible),
.register-table tbody td:has([data-tooltip]:hover),
.register-table tbody td:has([data-tooltip]:focus-visible) {
  z-index: 1100 !important;
  overflow: visible;
}

.register-table [data-tooltip]:hover::after,
.register-table [data-tooltip]:focus-visible::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  top: calc(100% + 4px);
  transform: translateX(-50%);
  width: max-content;
  min-width: max-content;
  max-width: none;
  padding: 0.35rem 0.55rem;
  border-radius: 0.4rem;
  background: #6b7280;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-transform: none;
  letter-spacing: normal;
  pointer-events: none;
  z-index: 1102;
}

.register-table th.register-col-detail,
.register-table td.register-col-detail {
  overflow: visible;
}

.register-table .register-col-photo [data-tooltip]:hover::after,
.register-table .register-col-photo [data-tooltip]:focus-visible::after {
  left: auto;
  right: 0;
  transform: none;
}

.register-table td.register-date-col:has(.register-trial-not-signedup-icon),
.register-table td.register-date-col:has(.register-future-first-lesson-icon) {
  overflow: visible;
}

.medical-student-highlight .accordion-button,
.medical-student-highlight.list-group-item {
  animation: medical-student-highlight-fade 2.5s ease-out forwards;
}

@keyframes medical-student-highlight-fade {
  0%, 40% {
    background-color: rgba(var(--bs-warning-rgb), 0.35) !important;
    box-shadow: inset 0 0 0 2px rgba(var(--bs-warning-rgb), 0.45);
  }
  100% {
    background-color: var(--bs-accordion-active-bg, var(--bs-body-bg));
    box-shadow: none;
  }
}
@media (max-width: 767.98px) {
  .register-table td.register-date-col:has(.register-cell-actions) {
    overflow: visible;
    vertical-align: top;
  }
  .register-table .register-date-col .register-cell-actions {
    flex-direction: column;
    flex-wrap: nowrap;
    width: 100%;
    gap: 0.15rem;
  }
  .register-table-scroll {
    max-height: calc(100dvh - 17.5rem);
    overflow-y: auto;
  }
  .register-table:not(.register-table--mobile-details-expanded) th.register-col-detail,
  .register-table:not(.register-table--mobile-details-expanded) td.register-col-detail {
    display: none;
  }
  .register-name-col--with-mobile-toggle {
    padding-right: 0.35rem;
  }
  .register-name-header-inner {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
  }
  .register-name-header-inner > button:first-child {
    min-width: 0;
    flex: 1 1 auto;
  }
  .register-mobile-details-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1.85rem;
    height: 1.85rem;
    margin: 0;
    padding: 0;
    border: 1px solid #d9e0ec;
    border-radius: 0.45rem;
    background: #fff;
    color: #56657e;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    cursor: pointer;
  }
  .register-mobile-details-toggle:hover {
    color: var(--bs-primary);
    border-color: rgba(var(--bs-primary-rgb), 0.35);
  }
  .register-mobile-details-toggle .fa-solid {
    font-size: 0.72rem;
  }
  .daily-register-merged__table {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    max-height: none;
    max-width: 100%;
  }
  .daily-register-merged .register-table .register-photo-col {
    width: var(--register-daily-photo-width);
    min-width: var(--register-daily-photo-width);
  }
  .daily-register-merged .register-table > tbody > tr.register-merged-section-label > td.register-merged-section-label__sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    left: 0 !important;
    z-index: 11;
  }
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) col.register-col-detail {
    width: 0 !important;
    min-width: 0 !important;
  }
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) th.register-col-detail,
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) td.register-col-detail {
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border-width: 0 !important;
    overflow: hidden;
  }
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) th.register-date-col,
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) td.register-date-col {
    position: -webkit-sticky;
    position: sticky;
    left: var(--register-daily-name-width);
    z-index: 10;
    background: #fff;
    box-shadow: -8px 0 10px -10px rgba(15, 23, 42, 0.18);
  }
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) thead th.register-date-col {
    z-index: 12;
    background: var(--bs-table-bg, #f8f9fa);
  }
}
.register-guest-panel {
  position: relative;
  z-index: 1020;
}

.register-guest-search {
  position: relative;
}

.register-guest-results {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  right: 0;
  z-index: 25;
  max-height: 16rem;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
}

.register-guest-panel--modal {
  position: relative;
  z-index: 1;
}

.register-guest-modal__dialog .modal-content,
.register-guest-modal__dialog .modal-body,
.register-guest-modal__dialog .modal-dialog {
  overflow: visible;
}

.register-guest-modal__dialog .modal-body {
  position: relative;
  z-index: 2;
}

.register-guest-modal__dialog .modal-footer {
  position: relative;
  z-index: 1;
}

.register-guest-panel--modal .register-guest-search {
  position: relative;
  z-index: 3;
}

.register-guest-panel--modal .register-guest-results {
  z-index: 30;
}

.register-actions__merge-btn {
  min-width: 5.5rem;
}

.register-actions__dropdown {
  min-width: 10rem;
}

.register-actions__trigger {
  min-width: 9rem;
  gap: 0.65rem;
}

.register-actions__trigger::after {
  margin-left: 0.5rem;
}

.register-actions__menu {
  min-width: 14rem;
}

.daily-register-selector__menu {
  display: flex;
  flex-direction: column;
  max-height: min(36rem, 100dvh - 8rem);
  overflow: hidden;
  min-height: 0;
}

.daily-register-selector__menu .class-session-selector__search-wrap,
.daily-register-selector__menu .class-session-selector__bulk,
.daily-register-selector__menu .daily-register-selector__time-wrap {
  flex-shrink: 0;
}

.daily-register-selector__menu .daily-register-selector__footer {
  flex: 0 0 auto;
  flex-shrink: 0;
  margin-top: auto;
}

.daily-register-selector__menu .class-session-selector__list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.daily-register-selector__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
}

.daily-register-selector__toolbar-primary {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  flex: 1 1 auto;
}

.daily-register-selector__view-segment {
  display: inline-flex;
  align-items: stretch;
  flex-shrink: 0;
  padding: 0.2rem;
  border: 1px solid #d9e0ec;
  border-radius: 999px;
  background: #f3f6fb;
}

.daily-register-selector__view-btn {
  appearance: none;
  -webkit-appearance: none;
  min-height: 2rem;
  margin: 0;
  padding: 0.35rem 0.9rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #56657e;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.daily-register-selector__view-btn:hover {
  color: var(--bs-primary);
}

.daily-register-selector__view-btn.is-active {
  background: #fff;
  color: var(--bs-primary);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1);
}

.daily-register-selector__view-btn:disabled {
  opacity: 1;
  color: #56657e;
  cursor: not-allowed;
}

.daily-register-selector__view-btn:disabled:hover {
  color: #56657e;
}

.class-detail-view-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-width: 0;
}

.class-detail-view-content {
  scroll-margin-top: 1rem;
}

@media (max-width: 1199.98px) {
  .class-detail-view-toolbar {
    flex-direction: column;
    align-items: flex-start;
  }
  .class-detail-view-toolbar .daily-register-toolbar__views,
  .class-detail-view-toolbar .daily-register-selector__view-segment {
    width: fit-content;
    max-width: 100%;
  }
  .register-view-segment__dropdown {
    width: fit-content;
    max-width: 100%;
  }
  .register-view-segment__dropdown-trigger {
    width: auto;
  }
  .register-view-segment__dropdown-label {
    flex: 0 1 auto;
  }
}
.register-view-segment {
  position: relative;
  min-width: 0;
}

.register-view-segment__pills {
  display: inline-flex;
}

.register-view-segment__dropdown {
  display: none;
  position: relative;
  width: 100%;
}

.register-view-segment__dropdown-trigger {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  min-height: 2.125rem;
  margin: 0;
  padding: 0.35rem 0.9rem;
  border: 1px solid #d9e0ec;
  border-radius: 999px;
  background: #f3f6fb;
  color: #56657e;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.register-view-segment__dropdown-trigger.is-open,
.register-view-segment__dropdown-trigger:hover {
  color: var(--bs-primary);
  border-color: rgba(var(--bs-primary-rgb), 0.24);
}

.register-view-segment__dropdown-icon {
  color: var(--bs-primary);
  font-size: 0.95rem;
  flex-shrink: 0;
}

.register-view-segment__dropdown-label {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.register-view-segment__dropdown-chevron {
  font-size: 0.7rem;
  flex-shrink: 0;
}

.register-view-segment__backdrop {
  position: fixed;
  inset: 0;
  z-index: 19;
  border: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  cursor: default;
}

.register-view-segment__dropdown-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.35rem;
  border: 1px solid #d9e0ec;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}

.register-view-segment__dropdown-option {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  margin: 0;
  padding: 0.65rem 0.75rem;
  border: 0;
  border-radius: 0.75rem;
  background: transparent;
  color: #56657e;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}

.register-view-segment__dropdown-option:hover,
.register-view-segment__dropdown-option.is-active {
  background: #f3f6fb;
  color: var(--bs-primary);
}

.register-view-segment__dropdown-option-tick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.9rem;
  flex-shrink: 0;
  font-size: 0.75rem;
}

.register-view-segment__dropdown-divider {
  height: 1px;
  margin: 0.25rem 0.35rem;
  background: #e8edf6;
}

.register-view-segment__dropdown-option.is-action {
  font-weight: 700;
}

@media (max-width: 1199.98px) {
  .register-view-segment--mobile-dropdown .register-view-segment__pills {
    display: none;
  }
  .register-view-segment--mobile-dropdown .register-view-segment__dropdown {
    display: block;
  }
}

@media (min-width: 1200px) {
  .class-detail-view-toolbar {
    flex-wrap: nowrap;
  }

  .class-detail-view-toolbar .daily-register-toolbar__views {
    flex: 0 1 auto;
  }

  .class-detail-view-toolbar .register-view-segment__pills {
    flex-wrap: nowrap;
  }
}
.daily-register-selector__toolbar-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-left: auto;
}

.daily-register-selector__text-btn {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bs-primary);
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
}

.daily-register-selector__text-btn:hover {
  color: rgba(var(--bs-primary-rgb), 0.82);
  text-decoration: underline;
}

.daily-register-selector__time-wrap {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e9eef5;
}

.daily-register-selector__location-dropdown {
  position: relative;
  flex-shrink: 0;
}

.daily-register-selector__location-trigger {
  width: auto;
  max-width: 7.5rem;
  min-width: 4.75rem;
  min-height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  padding: 0.35rem 0.55rem;
  border: 1px solid #d8e0ec;
  border-radius: 999px;
  background: #fff;
  color: #56657e;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.daily-register-selector__location-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  flex: 1 1 auto;
}

.daily-register-selector__location-trigger.is-open,
.daily-register-selector__location-trigger:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
}

.daily-register-selector__location-trigger.has-filter {
  color: var(--bs-primary);
}

.daily-register-selector__location-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: auto;
  min-width: 10rem;
  width: max-content;
  max-width: min(14rem, 100vw - 2rem);
  z-index: 3;
  max-height: 12rem;
  overflow-y: auto;
  border: 1px solid #dde4ef;
  border-radius: 0.85rem;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
}

.daily-register-selector__location-menu .class-session-selector__check-row {
  display: flex;
  width: 100%;
}

.daily-register-selector__location-clear {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.7rem 1rem;
  border: 0;
  border-top: 1px solid #eef2f7;
  background: #fbfcfe;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.daily-register-selector__time-label {
  margin-bottom: 0.55rem;
  color: #71839d;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.daily-register-selector__time-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.daily-register-selector__time-chip {
  appearance: none;
  -webkit-appearance: none;
  min-height: 2rem;
  margin: 0;
  padding: 0.35rem 0.85rem;
  border: 1px solid #d9e0ec;
  border-radius: 999px;
  background: #fff;
  color: #56657e;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.daily-register-selector__time-chip:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  color: var(--bs-primary);
}

.daily-register-selector__time-chip.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: var(--bs-primary-foreground);
  font-weight: 700;
}

.daily-register-selector__menu .class-session-selector__group-label {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
}

.daily-register-selector__menu .class-session-selector__check-row.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.1);
}

.daily-register-selector__menu .class-session-selector__check-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.daily-register-selector__row-labels {
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.daily-register-selector__row-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #212529;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: normal;
  word-spacing: normal;
}

.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__row-title {
  color: var(--bs-primary);
}

.daily-register-selector__label-separator {
  color: #94a3b8;
  font-weight: 400;
  flex-shrink: 0;
}

.daily-register-selector__menu .class-session-selector__check-row {
  width: 100%;
}

.daily-register-selector__times {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: auto;
  flex-shrink: 0;
}

.daily-register-selector__time-part {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  min-width: 2.5rem;
}

.daily-register-selector__time-part-label {
  color: #94a3b8;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.daily-register-selector__time-part-separator {
  align-self: center;
  color: #cbd5e1;
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1;
}

.daily-register-selector__class-name {
  min-width: 0;
  color: #212529;
  font-size: 0.95rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-register-selector__group-name {
  min-width: 0;
  color: #495057;
  font-size: 0.92rem;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-register-selector__capacity {
  flex-shrink: 0;
  color: #71839d;
  font-size: 0.88rem;
  font-weight: 600;
  white-space: nowrap;
}

.daily-register-selector__start-time,
.daily-register-selector__end-time {
  color: #71839d;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.1;
  white-space: nowrap;
}

.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__class-name,
.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__group-name,
.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__start-time,
.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__end-time,
.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__capacity {
  color: var(--bs-primary);
}

.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__time-part-label {
  color: rgba(var(--bs-primary-rgb), 0.72);
}

.daily-register-selector__footer {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: auto;
  border-top: 1px solid #e9eef5;
}

.daily-register-selector__footer-summary {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #71839d;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
}

.daily-register-selector__footer-actions {
  display: flex;
  flex-shrink: 0;
  justify-content: flex-end;
  gap: 0.5rem;
}

.daily-register-date-nav__btn {
  text-decoration: none;
}

.daily-register-toolbar {
  --daily-register-toolbar-control-height: 2.125rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.daily-register-toolbar__views {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
}

.daily-register-toolbar__view-segment {
  max-width: 100%;
}

.daily-register-toolbar .daily-register-selector__view-segment {
  align-items: center;
  padding: 0 0.125rem;
  box-sizing: border-box;
}

.daily-register-toolbar .daily-register-selector__view-btn {
  min-height: var(--daily-register-toolbar-control-height);
  height: var(--daily-register-toolbar-control-height);
  padding: 0 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

@media (max-width: 767.98px) {
  .daily-register-toolbar__view-segment {
    flex-wrap: nowrap;
    width: 100%;
  }
  .daily-register-toolbar .daily-register-selector__view-segment {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    padding: 0.1rem;
  }
  .daily-register-toolbar .daily-register-selector__view-btn {
    min-height: 1.75rem;
    height: 1.75rem;
    padding: 0 0.28rem;
    font-size: 0.62rem;
    flex: 1 1 0;
    min-width: 0;
  }
}
@media (max-width: 374.98px) {
  .daily-register-toolbar .daily-register-selector__view-btn {
    padding: 0 0.15rem;
    font-size: 0.58rem;
  }
}
.daily-register-toolbar .register-actions {
  flex: 0 0 auto;
  margin-bottom: 0;
  display: flex;
  align-items: center;
}

.daily-register-toolbar .register-actions > .d-flex {
  align-items: center;
  justify-content: flex-end;
}

.daily-register-toolbar .register-actions__dropdown {
  display: flex;
  align-items: center;
}

.daily-register-toolbar .register-actions__merge-btn,
.daily-register-toolbar .register-actions__trigger.members-action-select {
  height: var(--daily-register-toolbar-control-height);
  min-height: var(--daily-register-toolbar-control-height);
  padding: 0 0.95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-sizing: border-box;
}

.daily-register-toolbar .register-actions__trigger.members-action-select {
  min-width: 7.5rem;
  border: 1px solid #e3e8f2;
  border-radius: var(--bs-border-radius);
  background: #fff;
  box-shadow: none;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e2a4a;
}

.daily-register-toolbar .register-actions__trigger.members-action-select:hover,
.daily-register-toolbar .register-actions__trigger.members-action-select:focus,
.daily-register-toolbar .register-actions__trigger.members-action-select:focus-visible,
.daily-register-toolbar .register-actions__trigger.members-action-select.show {
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  background: #fff;
  box-shadow: none;
}

.daily-register-toolbar .register-actions__trigger.members-action-select::after {
  margin-left: 0.5rem;
}

.daily-register-alternate-section-label {
  font-size: 0.95rem;
  font-weight: 800;
  color: #1e2a4a;
  padding: 0.65rem 0.85rem;
  border: 1px solid #e8edf5;
  border-radius: 10px;
  background: #f8fafc;
}

.members-audit-col-group {
  min-width: 10rem;
  max-width: 16rem;
}

.members-audit-group-label {
  display: block;
  color: #56657e;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
}

@media (max-width: 767.98px) {
  .daily-register-toolbar {
    align-items: stretch;
  }
  .daily-register-toolbar__views {
    width: 100%;
  }
  .daily-register-toolbar .register-actions > .d-flex {
    justify-content: flex-end;
  }
}
.register-table-toolbar__quick {
  margin-bottom: 0.75rem;
}

.register-table-toolbar__date-card .card-body {
  padding: 0.75rem 1rem;
}

.register-table-toolbar__date-toggle-label {
  font-size: 0.95rem;
}

.register-table-toolbar__date-summary {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 575.98px) {
  .register-table-toolbar__date-summary {
    display: none;
  }
}
.daily-register-section {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.daily-register-section__header {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 2.2rem;
  padding: 0.35rem 1.1rem 0.35rem 0.95rem;
  text-align: left;
}

.daily-register-section__header:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.25);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.daily-register-section__title {
  flex: 1;
  min-width: 0;
  font-size: 0.82rem;
  font-weight: 600;
}

.daily-register-section__chevron {
  color: var(--bs-primary);
  flex-shrink: 0;
  font-size: 0.75rem;
  margin-left: 0.65rem;
}

.daily-register-section__body {
  padding: 0 0.15rem;
}

.daily-register-section__state {
  min-height: 4rem;
}

.daily-register-merged {
  --register-daily-name-width: 10.5rem;
  --register-daily-photo-width: 4.5rem;
  --register-daily-date-width: 4.25rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius-lg);
  padding: 1rem;
  background: var(--bs-body-bg);
}
@media (max-width: 767.98px) {
  .daily-register-merged {
    --register-daily-name-width: 10rem;
    --register-daily-photo-width: 4rem;
    --register-daily-date-width: 3.75rem;
  }
}
@media (max-width: 374.98px) {
  .daily-register-merged {
    --register-daily-photo-width: 0;
  }
}

.daily-register-merged__table {
  overflow-x: auto;
  overflow-y: visible;
  max-width: 100%;
}

.daily-register-merged .register-table--merged-layout {
  table-layout: fixed;
  width: 100%;
  min-width: calc(38rem + var(--register-merged-date-cols, 10) * var(--register-daily-date-width));
  margin-bottom: 0;
}
@media (max-width: 767.98px) {
  .daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) {
    min-width: calc(var(--register-daily-name-width) + var(--register-daily-photo-width) + var(--register-merged-date-cols, 1) * var(--register-daily-date-width));
  }
}

.daily-register-merged .register-table--merged-layout .register-name-col {
  white-space: normal !important;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.daily-register-merged .register-table--merged-layout .register-photo-col.register-sticky-col {
  left: var(--register-daily-name-width) !important;
}

.daily-register-merged col.register-col-name {
  width: var(--register-daily-name-width);
}

.daily-register-merged col.register-col-walk {
  width: 4.75rem;
}

.daily-register-merged col.register-col-att {
  width: 4rem;
}

.daily-register-merged col.register-col-group {
  width: 5.5rem;
}

.daily-register-merged col.register-col-dob {
  width: 6.25rem;
}

.daily-register-merged col.register-col-age {
  width: 3.25rem;
}

.daily-register-merged col.register-col-photo {
  width: 3.75rem;
}

.daily-register-merged col.register-col-photo-image {
  width: var(--register-daily-photo-width);
}

.daily-register-merged col.register-col-date {
  width: var(--register-daily-date-width);
}

.daily-register-merged .register-table--merged-layout th.register-date-col,
.daily-register-merged .register-table--merged-layout td.register-date-col {
  min-width: var(--register-daily-date-width);
  width: var(--register-daily-date-width);
}

.daily-register-merged .register-table--merged-layout .register-col-group {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.daily-register-merged .register-merged-section-label__sticky {
  min-width: var(--register-daily-name-width);
  width: var(--register-daily-name-width);
  max-width: var(--register-daily-name-width);
}

.daily-register-merged .register-merged-section-label__sticky.register-merged-section-label__sticky--with-photo {
  min-width: calc(var(--register-daily-name-width) + var(--register-daily-photo-width));
  width: calc(var(--register-daily-name-width) + var(--register-daily-photo-width));
  max-width: calc(var(--register-daily-name-width) + var(--register-daily-photo-width));
}

.daily-register-merged .register-merged-section-loading td {
  padding-top: 0.5rem;
  padding-bottom: 0.75rem;
  background: rgba(var(--bs-primary-rgb), 0.03);
}

@media (max-width: 374.98px) {
  .daily-register-merged .register-table--merged-layout.register-table--with-photos:not(.register-table--mobile-details-expanded) col.register-col-photo-image {
    width: 0 !important;
    min-width: 0 !important;
  }
  .daily-register-merged .register-table--merged-layout.register-table--with-photos:not(.register-table--mobile-details-expanded) th.register-photo-col,
  .daily-register-merged .register-table--merged-layout.register-table--with-photos:not(.register-table--mobile-details-expanded) td.register-photo-col {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    padding: 0 !important;
    border-width: 0 !important;
    overflow: hidden;
  }
}
@media (max-width: 767.98px) {
  .daily-register-selector.is-open {
    z-index: 1050;
  }
  .daily-register-selector.is-open .class-session-selector__backdrop {
    z-index: 1050;
    background: rgba(15, 23, 42, 0.45);
    cursor: pointer;
  }
  .daily-register-selector.is-open .daily-register-selector__menu {
    position: fixed;
    top: calc(max(0.75rem, env(safe-area-inset-top, 0px)) + 4.25rem);
    bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
    left: max(0.75rem, env(safe-area-inset-left, 0px));
    right: max(0.75rem, env(safe-area-inset-right, 0px));
    width: auto;
    height: calc(100dvh - max(0.75rem, env(safe-area-inset-top, 0px)) - max(0.75rem, env(safe-area-inset-bottom, 0px)) - 4.25rem);
    max-height: calc(100dvh - max(0.75rem, env(safe-area-inset-top, 0px)) - max(0.75rem, env(safe-area-inset-bottom, 0px)) - 4.25rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
    touch-action: pan-y;
    z-index: 1051;
  }
  .daily-register-selector.is-open .daily-register-selector__menu .class-session-selector__search-wrap,
  .daily-register-selector.is-open .daily-register-selector__menu .class-session-selector__bulk,
  .daily-register-selector.is-open .daily-register-selector__menu .daily-register-selector__time-wrap,
  .daily-register-selector.is-open .daily-register-selector__menu .daily-register-selector__footer {
    flex-shrink: 0;
  }
  .daily-register-selector.is-open .daily-register-selector__menu .class-session-selector__list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }
  .daily-register-selector.is-open .daily-register-selector__menu .daily-register-selector__footer {
    flex: 0 0 auto;
  }
  .daily-register-selector__time-chips {
    max-height: 7rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .daily-register-selector__toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .daily-register-selector__toolbar-primary {
    width: 100%;
  }
  .daily-register-selector__view-segment {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    justify-content: stretch;
  }
  .daily-register-selector__location-dropdown {
    flex: 0 0 5.5rem;
    max-width: 5.5rem;
  }
  .daily-register-selector__location-trigger {
    max-width: 100%;
    min-width: 0;
    padding: 0.35rem 0.45rem;
  }
  .daily-register-selector__location-menu {
    left: auto;
    right: 0;
    min-width: 11rem;
    max-width: min(16rem, 100vw - 2rem);
    z-index: 4;
  }
  .daily-register-selector__view-btn {
    flex: 1 1 0;
    text-align: center;
  }
  .daily-register-selector__toolbar-actions {
    margin-left: 0;
    justify-content: flex-end;
  }
  .daily-register-selector__footer {
    flex-direction: column;
    align-items: stretch;
    padding-bottom: max(0.85rem, 0.35rem + env(safe-area-inset-bottom, 0px));
  }
  .daily-register-selector__footer-summary {
    white-space: normal;
  }
  .daily-register-selector__footer-actions {
    flex-direction: column;
    gap: 0.5rem;
  }
  .daily-register-selector__footer-actions .class-session-selector__footer-btn {
    width: 100%;
  }
  .daily-register-selector__menu .class-session-selector__check-time,
  .daily-register-selector__times {
    margin-left: auto;
    width: auto;
    text-align: right;
  }
  .daily-register-selector__class-name {
    font-size: 0.88rem;
  }
  .daily-register-selector__group-name {
    font-size: 0.85rem;
  }
  .daily-register-selector__start-time,
  .daily-register-selector__end-time {
    font-size: 0.8rem;
  }
  .daily-register-section__title {
    font-size: 0.92rem;
  }
  html.daily-register-selector-open,
  body.daily-register-selector-open {
    overflow: hidden;
    overscroll-behavior: none;
  }
  main.authorized-layout__main.daily-register-selector-scroll-lock {
    overflow: hidden !important;
    overscroll-behavior: none;
  }
}
@media (max-width: 991.98px) {
  .members-action-grid {
    grid-template-columns: 1fr;
  }
  .members-card-tools {
    width: 100%;
    justify-content: space-between;
  }
  .members-filter-actions {
    flex-direction: column-reverse;
  }
  .members-filter-reset,
  .members-filter-submit,
  .members-action-clear {
    width: 100%;
  }
  .members-audit-view .members-audit-selection-bar,
  .members-audit-view .members-audit-summary-bar,
  .subscription-audit .members-audit-selection-bar,
  .subscription-audit .members-audit-summary-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .members-audit-view .members-audit-summary-right,
  .subscription-audit .members-audit-summary-right {
    margin-left: 0;
    justify-content: flex-start;
    text-align: left;
  }
}
@media (max-width: 767.98px) {
  .members-card,
  .members-audit-view,
  .subscription-audit,
  .members-modal-content,
  .send-email-modal,
  .set-tags-modal,
  .manage-awards-modal,
  .set-affiliation-modal,
  .set-sub-group-modal,
  .subscription-management-modal,
  .bulk-charge-modal,
  .export-members-modal,
  .credit-adjustment-modal,
  .class-invite-modal {
    font-size: 0.92rem;
  }
  .members-card-header,
  .members-card-footer,
  .members-audit-view,
  .subscription-audit,
  .send-email-modal,
  .set-tags-modal,
  .manage-awards-modal,
  .set-affiliation-modal,
  .set-sub-group-modal,
  .subscription-management-modal,
  .bulk-charge-modal,
  .export-members-modal,
  .credit-adjustment-modal,
  .class-invite-modal {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .members-card-columns,
  .members-action-apply,
  .members-action-clear,
  .members-filter-reset,
  .members-filter-submit,
  .members-audit-selection-button,
  .send-email-recipient-action,
  .set-tags-add-button,
  .set-tags-primary,
  .set-tags-secondary,
  .set-tags-preview-apply,
  .manage-awards-primary,
  .manage-awards-secondary,
  .set-affiliation-primary,
  .set-affiliation-secondary,
  .set-sub-group-primary,
  .set-sub-group-secondary,
  .subscription-management-primary,
  .subscription-management-secondary,
  .subscription-management-secondary-action,
  .export-members-primary,
  .export-members-secondary,
  .a2b-btn-primary,
  .a2b-btn-cancel,
  .class-invite-btn {
    min-height: 42px;
    border-radius: 12px;
    font-size: 0.78rem;
    padding-left: 0.9rem;
    padding-right: 0.9rem;
  }
  .members-filter-input,
  .members-filter-search-input,
  .members-action-select,
  .send-email-input,
  .set-tags-input,
  .class-invite-input,
  .class-invite-select,
  .class-invite-textarea,
  .a2b-input,
  .a2b-select,
  .a2b-textarea {
    min-height: 42px;
    border-radius: 12px;
    font-size: 0.8rem;
    padding: 0.72rem 0.85rem;
  }
  .members-filter-search-icon {
    left: 0.85rem;
    font-size: 0.88rem;
  }
  .members-filter-search-input {
    padding-left: 2.4rem;
  }
  .members-card-header {
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.65rem;
  }
  .view-switcher {
    width: 100%;
    max-width: none;
    gap: 0.15rem;
    padding: 0.22rem;
  }
  .members-card-tools {
    width: 100%;
    min-width: 0;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 0.45rem;
  }
  .members-card-sort-note {
    display: none;
  }
  .members-per-page {
    min-height: 36px;
    padding: 0 0.45rem;
    gap: 0.25rem;
    flex-shrink: 1;
    min-width: 0;
  }
  .members-per-page__label {
    display: none;
  }
  .members-per-page__value {
    font-size: 0.74rem;
    padding-right: 0.85rem;
  }
  .members-columns-wrap {
    position: relative;
    flex-shrink: 0;
  }
  .members-card-columns {
    min-height: 36px;
    padding: 0 0.65rem;
    gap: 0.35rem;
  }
  .members-card-columns-count {
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    font-size: 0.66rem;
  }
  .members-columns-panel {
    top: calc(100% + 0.45rem);
    right: 0;
    left: auto;
    width: min(260px, 100vw - 2rem);
    max-width: calc(100vw - 2rem);
    max-height: min(65vh, 24rem);
    overflow-y: auto;
  }
  .view-btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 38px;
    padding: 0 0.8rem;
    font-size: 0.76rem;
  }
  .members-filter-layout-row,
  .members-filter-date-row,
  .members-filter-compact-row {
    --bs-gutter-x: 0.6rem;
    margin-left: 0;
    margin-right: 0;
  }
  .members-filter-layout-row > [class*=col-],
  .members-filter-date-row > [class*=col-],
  .members-filter-compact-row > [class*=col-] {
    min-width: 0;
    padding-left: 0.3rem;
    padding-right: 0.3rem;
  }
  .members-filter-layout-row > [class*=col-]:first-child,
  .members-filter-date-row > [class*=col-]:first-child,
  .members-filter-compact-row > [class*=col-]:first-child {
    padding-left: 0;
  }
  .members-filter-layout-row > [class*=col-]:last-child,
  .members-filter-date-row > [class*=col-]:last-child,
  .members-filter-compact-row > [class*=col-]:last-child {
    padding-right: 0;
  }
  .members-filter-input[type=datetime-local] {
    min-width: 0;
    max-width: 100%;
    padding-left: 0.72rem;
    padding-right: 0.72rem;
    font-size: 0.76rem;
  }
  .members-filter-date-row .members-filter-input[type=datetime-local],
  .members-filter-compact-row .members-filter-input[type=datetime-local] {
    padding-left: 0.62rem;
    padding-right: 0.62rem;
    font-size: 0.74rem;
  }
  .members-filter-date-row .col-6,
  .members-filter-compact-row .col-6 {
    flex: 0 0 calc(50% - 0.3rem);
    max-width: calc(50% - 0.3rem);
  }
  .members-table-pill,
  .members-table-sex,
  .badge-tag,
  .members-audit-summary-pill,
  .members-audit-subscription-chip,
  .members-audit-subscription-part,
  .send-email-chip,
  .set-tags-chip,
  .set-tags-preview-tag,
  .set-tags-success-tag,
  .manage-awards-badge,
  .manage-awards-success-badge,
  .set-affiliation-badge,
  .set-affiliation-success-student,
  .set-sub-group-badge,
  .set-sub-group-success-student {
    font-size: 0.74rem;
  }
  .members-audit-view .members-audit-summary-label,
  .members-audit-view .members-audit-meta-line,
  .subscription-audit .members-audit-summary-label,
  .subscription-audit .members-audit-meta-line,
  .members-card-range,
  .members-card-sort-note,
  .send-email-modal-subtitle,
  .set-tags-modal-subtitle,
  .set-tags-preview-subtitle,
  .manage-awards-subtitle,
  .set-affiliation-subtitle,
  .set-sub-group-subtitle,
  .subscription-management-subtitle,
  .subscription-management-preview-summary,
  .export-members-modal-subtitle,
  .class-invite-subtitle {
    font-size: 0.76rem;
  }
  .send-email-modal-title,
  .bulk-charge-modal-title,
  .set-tags-modal-title,
  .manage-awards-title,
  .set-affiliation-title,
  .set-sub-group-title,
  .subscription-management-title,
  .export-members-modal-title,
  .class-invite-title {
    font-size: 1rem;
  }
  .manage-awards-success-title,
  .set-tags-preview-title,
  .set-tags-success-title,
  .set-affiliation-success-title,
  .set-sub-group-success-title {
    font-size: 1.15rem;
  }
  .members-table-bool,
  .members-audit-status {
    width: 30px;
    height: 30px;
    font-size: 0.8rem;
  }
  .members-table-check-toggle,
  .members-table-row-check,
  .members-audit-checkbox {
    width: 16px;
    height: 16px;
  }
  .send-email-modal {
    padding: 1rem;
  }
  .send-email-modal-header {
    align-items: flex-start;
    gap: 0.75rem;
  }
  .send-email-modal-header-copy {
    min-width: 0;
  }
  .send-email-modal-title {
    font-size: 1.05rem;
  }
  .send-email-recipient-panel {
    padding: 0.8rem;
  }
  .send-email-recipient-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
  }
  .send-email-recipient-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    width: 100%;
  }
  .send-email-recipient-search {
    grid-column: 1/-1;
  }
  .send-email-recipient-action {
    justify-content: center;
    width: 100%;
    padding: 0 0.8rem;
    font-size: 0.76rem;
  }
  .send-email-chip {
    width: 100%;
    justify-content: flex-start;
  }
  .send-email-chip-label {
    max-width: none;
    min-width: 0;
    flex: 1;
  }
  .send-email-form-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem;
  }
  .send-email-input {
    min-height: 46px;
    font-size: 0.8rem;
    padding: 0.75rem 0.9rem;
  }
  .send-email-upload-wrap .input-group {
    grid-template-columns: minmax(0, 1fr);
  }
  .send-email-editor-shell .d-flex.align-items-center.gap-2 {
    flex-direction: column-reverse;
    align-items: stretch !important;
  }
  .send-email-editor-shell .btn.btn-sm.btn-primary {
    width: 100%;
  }
  .members-page-shell {
    padding-left: 0.4rem;
    padding-right: 0.4rem;
  }
  .members-search-modal__content {
    max-height: 100dvh;
    border-radius: 0;
  }
  .members-search-modal__header {
    padding: 1rem 1rem 0.85rem;
  }
  .members-search-modal__body {
    padding: 0.9rem 1rem;
  }
  .members-search-modal__footer {
    padding: 0.85rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
  }
  .members-search-modal__footer .members-filter-reset,
  .members-search-modal__footer .members-filter-submit {
    min-height: 44px;
  }
  .filter-panel,
  .action-bar,
  .members-card {
    border-radius: 18px;
  }
  .members-table th,
  .members-table td {
    padding: 0.78rem 0.55rem;
    font-size: 0.84rem;
  }
  .members-table {
    border-collapse: separate;
    border-spacing: 0;
  }
  .members-table .members-table-check {
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    position: sticky;
    left: 0;
    z-index: 4;
    background: inherit;
    background-clip: padding-box;
    overflow: hidden;
  }
  .members-table .members-sticky-name-col {
    position: sticky;
    left: 44px;
    z-index: 3;
    background: inherit;
    background-clip: padding-box;
    width: 148px;
    min-width: 148px;
    max-width: 148px;
    border-right: 1px solid #eef2f7;
    box-shadow: 8px 0 12px -12px rgba(15, 23, 42, 0.24);
    overflow: hidden;
  }
  .members-table thead .members-table-check {
    z-index: 6;
    background: #fff;
  }
  .members-table thead .members-sticky-name-col {
    z-index: 5;
    background: #fff;
  }
  .members-table tbody tr:nth-child(odd) .members-table-check,
  .members-table tbody tr:nth-child(odd) .members-sticky-name-col {
    background: #fcfdff;
  }
  .members-table tbody tr:nth-child(even) .members-table-check,
  .members-table tbody tr:nth-child(even) .members-sticky-name-col {
    background: #f7f9fc;
  }
  .members-table tbody tr.is-selected .members-table-check,
  .members-table tbody tr.is-selected .members-sticky-name-col {
    background: #f3edff;
  }
  .members-table .members-table-name-link {
    gap: 0.55rem;
    width: 100%;
    min-width: 0;
  }
  .members-table .members-table-avatar {
    width: 2rem;
    height: 2rem;
    font-size: 0.68rem;
  }
  .members-table .members-table-name-wrap {
    min-width: 0;
  }
  .members-table .members-table-name {
    font-size: 0.82rem;
    line-height: 1.15;
  }
  .members-table .members-table-pill {
    min-height: 1.65rem;
    padding: 0 0.5rem;
    font-size: 0.68rem;
  }
  .members-table .members-col-class,
  .members-table .members-col-group,
  .members-table .members-col-subgroup,
  .members-table .members-col-award {
    width: 112px;
    min-width: 112px;
  }
  .members-table .members-col-tags {
    width: 78px;
    min-width: 78px;
  }
  .members-table .members-col-dob {
    width: 84px;
    min-width: 84px;
  }
  .members-table .members-col-age {
    width: 44px;
    min-width: 44px;
  }
  .members-table .members-col-sex {
    width: 68px;
    min-width: 68px;
  }
  .members-table .members-col-photo,
  .members-table .members-col-insurance {
    width: 54px;
    min-width: 54px;
  }
  .members-audit-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .members-audit-table {
    border-collapse: separate;
    border-spacing: 0;
  }
  .members-audit-table th {
    padding: 0.72rem 0.28rem;
    font-size: 0.59rem;
  }
  .members-audit-table td {
    padding: 0.78rem 0.35rem;
  }
  .members-audit-table .members-audit-sticky-name-col {
    position: sticky;
    background: inherit;
    background-clip: padding-box;
    overflow: hidden;
  }
  .members-audit-table .members-audit-sticky-status-col {
    position: sticky;
    left: 0;
    z-index: 4;
    background: inherit;
    background-clip: padding-box;
    overflow: hidden;
    width: 64px;
    min-width: 64px;
    max-width: 64px;
    text-align: center;
  }
  .members-audit-table .members-audit-sticky-name-col {
    left: 64px;
    z-index: 3;
    width: 98px;
    min-width: 98px;
    max-width: 98px;
    border-right: 1px solid #eef2f7;
    box-shadow: 6px 0 10px -10px rgba(15, 23, 42, 0.18);
  }
  .members-audit-table thead .members-audit-sticky-status-col,
  .members-audit-table thead .members-audit-sticky-name-col {
    background: #fff;
  }
  .members-audit-table thead .members-audit-sticky-status-col {
    z-index: 6;
  }
  .members-audit-table thead .members-audit-sticky-name-col {
    z-index: 5;
  }
  .members-audit-table tbody tr:nth-child(odd) .members-audit-sticky-status-col,
  .members-audit-table tbody tr:nth-child(odd) .members-audit-sticky-name-col {
    background: #fcfdff;
  }
  .members-audit-table tbody tr:nth-child(even) .members-audit-sticky-status-col,
  .members-audit-table tbody tr:nth-child(even) .members-audit-sticky-name-col {
    background: #f7f9fc;
  }
  .members-audit-table tbody tr.is-selected .members-audit-sticky-status-col,
  .members-audit-table tbody tr.is-selected .members-audit-sticky-name-col {
    background: #effcf8;
  }
  .members-audit-table .members-audit-col-check {
    width: 28px;
    min-width: 28px;
    max-width: 28px;
  }
  .members-audit-table .members-audit-name-cell {
    gap: 0.32rem;
    min-width: 0;
  }
  .members-audit-table .members-audit-avatar {
    width: 1.55rem;
    height: 1.55rem;
    font-size: 0.56rem;
  }
  .members-audit-table .members-audit-name-copy {
    min-width: 0;
    font-size: 0.72rem;
    line-height: 1.08;
    word-break: break-word;
  }
  .members-audit-table .members-audit-status {
    width: 28px;
    height: 28px;
    font-size: 0.72rem;
  }
  .members-audit-table .members-audit-col-subscriptions {
    min-width: 210px;
  }
  .members-audit-table .members-audit-col-total {
    width: 70px;
    min-width: 70px;
    max-width: 70px;
  }
  .members-audit-table .members-audit-total-chip {
    min-width: 1.55rem;
    min-height: 1.55rem;
    padding: 0 0.35rem;
    font-size: 0.68rem;
  }
  .members-audit-table .members-audit-col-check,
  .members-audit-table th.members-audit-col-check,
  .members-audit-table .members-audit-col-status,
  .members-audit-table th.members-audit-col-status,
  .members-audit-table .members-audit-col-total,
  .members-audit-table th.members-audit-col-total,
  .members-audit-table .members-audit-col-group,
  .members-audit-table th.members-audit-col-group {
    display: none !important;
  }
  .members-audit-table-wrap {
    overflow-x: visible;
  }
  .members-audit-table {
    table-layout: fixed;
    width: 100%;
  }
  .members-audit-table .members-audit-sticky-name-col,
  .members-audit-table thead .members-audit-sticky-name-col,
  .members-audit-table tbody .members-audit-sticky-name-col {
    position: static !important;
    left: auto !important;
    z-index: auto !important;
    width: 42% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-shadow: none !important;
    border-right: 1px solid #eef2f7;
  }
  .members-audit-table .members-audit-col-subscriptions,
  .members-audit-table th.members-audit-col-subscriptions {
    width: 58% !important;
    min-width: 0 !important;
  }
  .members-card-sort-note {
    display: none;
  }
}
.class-invite-flow__title {
  font-size: 1.55rem;
}

.class-invite-flow__subtitle {
  font-size: 0.84rem;
}

.class-invite-flow__step-dot {
  width: 32px;
  height: 32px;
  font-size: 1rem;
}

.class-invite-flow__step-label {
  font-size: 0.88rem;
}

.class-invite-flow__stage-title {
  font-size: 1.25rem;
}

.class-invite-flow__stage-subtitle {
  font-size: 0.88rem;
}

.class-invite-flow__card-title,
.class-invite-flow__cancel-title {
  font-size: 1rem;
}

.class-invite-flow__card-subtitle,
.class-invite-flow__cancel-source,
.class-invite-flow__join-subtitle,
.class-invite-flow__review-copy span {
  font-size: 0.82rem;
}

.class-invite-flow__student-count,
.class-invite-flow__capacity-pill,
.class-invite-flow__invite-option-date,
.class-invite-flow__preview-class-date {
  font-size: 0.76rem;
}

.class-invite-flow__pill,
.class-invite-flow__preview-sub,
.class-invite-flow__review-chip,
.class-invite-flow__invite-chip {
  padding: 0.36rem 0.68rem;
  font-size: 0.82rem;
}

.class-invite-flow__date-label,
.class-invite-flow__row-date-label,
.class-invite-flow__invite-week-title,
.class-invite-flow__catalogue-title,
.class-invite-flow__catalogue-group-title {
  font-size: 0.82rem;
}

.class-invite-flow__date-select,
.class-invite-flow__row-date-select,
.class-invite-flow__search-input,
.class-invite-flow__invite-date-select {
  min-height: 36px;
  padding: 0.32rem 0.65rem;
  font-size: 0.82rem;
}

.class-invite-flow__cancel-count,
.class-invite-flow__add-more-subtitle,
.class-invite-flow__invite-week-copy,
.class-invite-flow__catalogue-group-count,
.class-invite-flow__preview-meta {
  font-size: 0.76rem;
}

.class-invite-flow__add-more-title,
.class-invite-flow__catalogue-group-name,
.class-invite-flow__invite-option-name,
.class-invite-flow__preview-name,
.class-invite-flow__join-title,
.class-invite-flow__review-title {
  font-size: 0.9rem;
}

.class-invite-flow__library-cancel,
.class-invite-flow__secondary-btn,
.class-invite-flow__primary-btn {
  min-height: 40px;
  padding: 0.62rem 0.95rem;
  font-size: 0.86rem;
}

.class-invite-flow__library-add,
.class-invite-flow__invite-option-group,
.class-invite-flow__preview-class-name {
  font-size: 0.8rem;
}

.class-invite-flow__preview-head {
  font-size: 0.72rem;
}

.class-invite-flow__info-banner,
.class-invite-flow__subscription-group-subtitle {
  font-size: 0.78rem;
}

.class-invite-flow__subscription-group-title {
  font-size: 0.9rem;
}

.class-invite-flow__subscription-group-count,
.class-invite-flow__invite-start-label {
  font-size: 0.74rem;
}

.class-invite-flow {
  min-height: 70vh;
}

.class-invite-flow__header {
  padding: 0.85rem 0rem 0.8rem;
  gap: 0.75rem;
}

.class-invite-flow__header-copy,
.class-invite-flow__card-copy,
.class-invite-flow__subscription-group-copy {
  gap: 0.65rem;
}

.class-invite-flow__header-icon,
.class-invite-flow__card-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  font-size: 1rem;
}

.class-invite-flow__subscription-group-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  font-size: 0.88rem;
}

.class-invite-flow__close {
  width: 38px;
  height: 38px;
  font-size: 1.15rem;
}

.class-invite-flow__title {
  font-size: 1.32rem;
}

.class-invite-flow__subtitle {
  font-size: 0.76rem;
}

.class-invite-flow__stage-bar {
  padding: 0.9rem 0rem 0.8rem;
}

.class-invite-flow__steps {
  gap: 0.65rem;
  margin-bottom: 0.8rem;
}

.class-invite-flow__step {
  gap: 0.45rem;
}

.class-invite-flow__step-dot {
  width: 28px;
  height: 28px;
  font-size: 0.88rem;
  border-width: 1.5px;
}

.class-invite-flow__step-label {
  font-size: 0.8rem;
}

.class-invite-flow__stage-title {
  font-size: 1.08rem;
}

.class-invite-flow__stage-subtitle {
  font-size: 0.8rem;
}

.class-invite-flow__body {
  padding: 0.95rem 0rem;
  gap: 0.75rem;
}

.class-invite-flow__card,
.class-invite-flow__preview,
.class-invite-flow__subscription-group-card,
.class-invite-flow__catalogue,
.class-invite-flow__invite-week-card {
  border-radius: 16px;
}

.class-invite-flow__card.is-leave-card,
.class-invite-flow__catalogue,
.class-invite-flow__library,
.class-invite-flow__subscription-group-head {
  padding: 0.8rem;
}

.class-invite-flow__card-head,
.class-invite-flow__leave-summary,
.class-invite-flow__cancel-head,
.class-invite-flow__invite-week-head,
.class-invite-flow__catalogue-head,
.class-invite-flow__catalogue-group-head,
.class-invite-flow__subscription-group-head,
.class-invite-flow__footer {
  gap: 0.75rem;
}

.class-invite-flow__card-title,
.class-invite-flow__cancel-title,
.class-invite-flow__subscription-group-title {
  font-size: 0.92rem;
}

.class-invite-flow__card-subtitle,
.class-invite-flow__cancel-source,
.class-invite-flow__join-subtitle,
.class-invite-flow__review-copy span,
.class-invite-flow__subscription-group-subtitle,
.class-invite-flow__info-banner {
  font-size: 0.74rem;
}

.class-invite-flow__student-count,
.class-invite-flow__capacity-pill,
.class-invite-flow__invite-option-date,
.class-invite-flow__preview-class-date,
.class-invite-flow__subscription-group-count {
  padding: 0.28rem 0.55rem;
  font-size: 0.7rem;
}

.class-invite-flow__pill,
.class-invite-flow__preview-sub,
.class-invite-flow__review-chip,
.class-invite-flow__invite-chip {
  padding: 0.28rem 0.52rem;
  border-radius: 10px;
  font-size: 0.76rem;
}

.class-invite-flow__custom-badge {
  padding: 0.22rem 0.42rem;
  font-size: 0.66rem;
}

.class-invite-flow__date-box,
.class-invite-flow__row-date-box,
.class-invite-flow__invite-date-box.is-subscription-start,
.class-invite-flow__invite-date-box {
  gap: 0.4rem;
  border-radius: 12px;
  padding: 0.26rem 0.38rem 0.26rem 0.58rem;
}

.class-invite-flow__date-label,
.class-invite-flow__row-date-label,
.class-invite-flow__invite-week-title,
.class-invite-flow__catalogue-title,
.class-invite-flow__catalogue-group-title,
.class-invite-flow__invite-start-label {
  font-size: 0.74rem;
}

.class-invite-flow__date-select,
.class-invite-flow__row-date-select,
.class-invite-flow__search-input,
.class-invite-flow__invite-date-select {
  min-height: 32px;
  padding: 0.24rem 0.5rem;
  font-size: 0.76rem;
  border-radius: 8px;
}

.class-invite-flow__cancel-row,
.class-invite-flow__subscription-row,
.class-invite-flow__library-row {
  padding: 0.65rem 0.8rem;
  gap: 0.7rem;
}

.class-invite-flow__cancel-checkbox,
.class-invite-flow__catalogue-checkbox,
.class-invite-flow__subscription-checkbox {
  width: 16px;
  height: 16px;
}

.class-invite-flow__cancel-count,
.class-invite-flow__add-more-subtitle,
.class-invite-flow__invite-week-copy,
.class-invite-flow__catalogue-group-count,
.class-invite-flow__preview-meta {
  font-size: 0.7rem;
}

.class-invite-flow__add-more {
  gap: 0.65rem;
  padding: 0.8rem;
}

.class-invite-flow__add-more-icon {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  font-size: 0.74rem;
}

.class-invite-flow__add-more-title,
.class-invite-flow__catalogue-group-name,
.class-invite-flow__invite-option-name,
.class-invite-flow__preview-name,
.class-invite-flow__join-title,
.class-invite-flow__review-title {
  font-size: 0.82rem;
}

.class-invite-flow__library-search {
  padding: 0.65rem 0 0.45rem;
  gap: 0.55rem;
}

.class-invite-flow__library-list {
  max-height: 160px;
  border-radius: 12px;
}

.class-invite-flow__library-cancel,
.class-invite-flow__secondary-btn,
.class-invite-flow__primary-btn {
  min-height: 36px;
  padding: 0.5rem 0.8rem;
  border-radius: 12px;
  font-size: 0.8rem;
}

.class-invite-flow__library-add,
.class-invite-flow__invite-option-group,
.class-invite-flow__preview-class-name {
  font-size: 0.74rem;
}

.class-invite-flow__preview-head {
  padding: 0.7rem 0.8rem;
  font-size: 0.66rem;
}

.class-invite-flow__preview-row {
  padding: 0.75rem 0.8rem;
  gap: 0.75rem;
}

.class-invite-flow__catalogue-row-side {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.class-invite-flow__preview-avatar,
.class-invite-flow__invite-option-index {
  width: 30px;
  height: 30px;
  font-size: 0.72rem;
}

.class-invite-flow__preview-meta {
  margin-top: 0.12rem;
}

.class-invite-flow__preview-class-name {
  padding: 0.5rem 0.58rem;
}

.class-invite-flow__preview-class-card {
  padding: 0.5rem 0.58rem;
}

.class-invite-flow__invite-chip-row,
.class-invite-flow__preview-subs,
.class-invite-flow__review-chips,
.class-invite-flow__join-list {
  gap: 0.45rem;
}

.class-invite-flow__invite-week-card {
  padding: 0.75rem;
}

.class-invite-flow__invite-week-nav {
  gap: 0.45rem;
  margin-top: 0.55rem;
}

.class-invite-flow__invite-week-list {
  gap: 0.5rem;
}

.class-invite-flow__invite-week {
  min-width: 118px;
  border-radius: 12px;
  padding: 0.56rem 0.68rem;
}

.class-invite-flow__invite-week-arrow {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.class-invite-flow__invite-week-label {
  font-size: 0.62rem;
}

.class-invite-flow__invite-week-range {
  font-size: 0.76rem;
}

.class-invite-flow__catalogue-groups,
.class-invite-flow__subscriptions-stage {
  gap: 0.75rem;
}

.class-invite-flow__catalogue-group-head {
  padding: 0.65rem 0.8rem;
}

.class-invite-flow__catalogue-group-list {
  gap: 0.5rem;
  padding: 0.65rem;
}

.class-invite-flow__catalogue-row,
.class-invite-flow__invite-option {
  border-radius: 12px;
  padding: 0.62rem 0.7rem;
}

.class-invite-flow__invite-date-select {
  min-width: 92px;
}

.class-invite-flow__form-grid {
  gap: 0.8rem;
}

.class-invite-flow__info-banner {
  padding: 0.65rem 0.8rem;
}

.class-invite-flow__footer {
  padding: 0.85rem 1rem 1rem;
}

.class-invite-flow__step.is-complete {
  color: #10b981;
}

.class-invite-flow__step.is-complete .class-invite-flow__step-dot {
  border-color: #10b981;
  background: #fff;
  color: #10b981;
}

.class-invite-flow__step.is-active.is-invite,
.class-invite-flow__step.is-active.is-subscriptions {
  color: #10b981;
}

.class-invite-flow__step.is-active.is-invite .class-invite-flow__step-dot,
.class-invite-flow__step.is-active.is-subscriptions .class-invite-flow__step-dot {
  border-color: #10b981;
  background: #10b981;
  color: #fff;
}

.class-invite-flow__step.is-active.is-apply {
  color: var(--bs-primary);
}

.class-invite-flow__step.is-active.is-apply .class-invite-flow__step-dot {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.class-invite-flow__step-line.is-complete {
  background: #10b981;
}

.class-invite-flow__field-hint {
  margin-top: 0.3rem;
  color: #97a4c3;
  font-size: 0.7rem;
}

.class-invite-flow__apply-form-card {
  padding: 1rem;
  border-color: #e3eaf4;
  border-radius: 18px;
}

.class-invite-flow__card.is-apply-form-card {
  border-color: #e3eaf4;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.class-invite-flow__apply-preview {
  border: 1px solid #e3eaf4;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}

.class-invite-flow__apply-preview-head,
.class-invite-flow__apply-preview-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.45fr);
  gap: 0.7rem;
  align-items: start;
}

.class-invite-flow__apply-preview-head {
  padding: 0.7rem 0.8rem;
  border-bottom: 1px solid #edf1f7;
  color: #94a3b8;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.class-invite-flow__apply-preview-head span:nth-child(2) {
  color: #dc3c3c;
}

.class-invite-flow__apply-preview-head span:nth-child(3) {
  color: #0f9f73;
}

.class-invite-flow__apply-preview-row {
  padding: 0.95rem 0.9rem;
  border-bottom: 1px solid #edf1f7;
}

.class-invite-flow__apply-preview-row:last-child {
  border-bottom: 0;
}

.class-invite-flow__apply-student,
.class-invite-flow__apply-option {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  flex-direction: row;
}

.class-invite-flow__apply-inviting {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.class-invite-flow__apply-leaving {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.class-invite-flow__apply-inviting-label {
  color: #13795b;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.class-invite-flow__apply-option {
  align-items: stretch;
}

.class-invite-flow__apply-option-card {
  flex: 1;
  border: 1px solid rgba(16, 185, 129, 0.28);
  border-radius: 12px;
  background: #f4fffa;
  padding: 0.5rem 0.58rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.42rem;
}

.class-invite-flow__apply-option-main {
  display: flex;
  flex-direction: column;
  gap: 0.14rem;
}

.class-invite-flow__apply-option-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
}

.class-invite-flow__apply-option-subs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.1rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(16, 185, 129, 0.16);
}

.class-invite-flow__apply-option-subs.is-leaving-subs {
  margin-left: 0;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.class-invite-flow__apply-option-subs .class-invite-flow__review-chip.is-add {
  font-size: 0.7rem;
}

.class-invite-flow__apply-option-subs .class-invite-flow__review-chip.is-remove {
  font-size: 0.7rem;
}

.class-invite-flow__apply-added-sub {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  border: 1px solid rgba(16, 185, 129, 0.32);
  background: #ecfdf5;
  border-radius: 10px;
  padding: 0.22rem 0.34rem 0.22rem 0.52rem;
  color: #0f766e;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.2;
}

.class-invite-flow__apply-added-sub-name {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  color: #0f766e;
}

.class-invite-flow__apply-added-sub-name span {
  color: #42998c;
  font-weight: 600;
}

.class-invite-flow__apply-added-sub-date {
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  border: 1px solid rgba(16, 185, 129, 0.3);
  background: #ffffff;
  padding: 0.18rem 0.42rem;
  color: #0f766e;
  font-size: 0.72rem;
  font-weight: 700;
}

.class-invite-flow__email-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid #e3eaf4;
  border-radius: 18px;
  background: #fff;
  padding: 0.9rem 1rem;
}

.class-invite-flow__email-card .form-check-input {
  margin: 0;
  width: 16px;
  height: 16px;
  accent-color: #6366f1;
}

.class-invite-flow__email-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.class-invite-flow__apply-state {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.class-invite-flow__apply-shell {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.class-invite-flow__apply-progress-card,
.class-invite-flow__apply-rows-card,
.class-invite-flow__success-help-card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 16px;
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.class-invite-flow__apply-success-card {
  border: rgba(255, 255, 255, 0.24);
  border-radius: 16px;
  background: rgba(158, 147, 149, 0.08);
}

.class-invite-flow__apply-progress-card {
  padding: 0.8rem 0.9rem 0.75rem;
}

.class-invite-flow__apply-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  margin-bottom: 0.55rem;
}

.class-invite-flow__apply-progress-copy {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.class-invite-flow__apply-progress-spinner,
.class-invite-flow__apply-row-spinner {
  display: inline-flex;
  width: 0.85rem;
  height: 0.85rem;
  border: 2px solid #d8def5;
  border-top-color: var(--bs-primary);
  border-radius: 999px;
  animation: class-invite-spin 0.8s linear infinite;
}

.class-invite-flow__apply-progress-title {
  color: var(--bs-secondary);
  font-size: 0.84rem;
  font-weight: 800;
}

.class-invite-flow__apply-progress-meta,
.class-invite-flow__footer-copy {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 700;
}

.class-invite-flow__apply-progress-percent {
  color: var(--bs-primary);
  font-size: 1.1rem;
  font-weight: 800;
}

.class-invite-flow__apply-progress-bar {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: #eef2ff;
  overflow: hidden;
}

.class-invite-flow__apply-progress-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bs-primary);
}

.class-invite-flow__apply-rows-card {
  overflow: hidden;
}

.class-invite-flow__apply-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.78rem 0.9rem;
  border-top: 1px solid #edf1f7;
  background: #fff;
}

.class-invite-flow__apply-row:first-child {
  border-top: 0;
}

.class-invite-flow__apply-row.is-processing {
  background: #f5f3ff;
}

.class-invite-flow__apply-row.is-error {
  background: #fff5f5;
}

.class-invite-flow__apply-row-main {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  flex: 1 1 auto;
}

.class-invite-flow__apply-row-state {
  width: 0.95rem;
  height: 0.95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #10b981;
}

.class-invite-flow__apply-row-avatar {
  flex-shrink: 0;
}

.class-invite-flow__apply-row-student {
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 800;
  min-width: 0;
  white-space: nowrap;
}

.class-invite-flow__apply-row-action {
  display: inline-flex;
  align-items: center;
  min-height: 1.35rem;
  padding: 0 0.42rem;
  border-radius: 7px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.class-invite-flow__apply-row-status {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}

.class-invite-flow__apply-row-status.is-done {
  color: #0f766e;
}

.class-invite-flow__apply-row-status.is-processing {
  color: var(--bs-primary);
}

.class-invite-flow__apply-row-status.is-error {
  color: #dc2626;
}

.class-invite-flow__apply-success-card {
  min-height: 170px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.4rem 1rem;
}

.class-invite-flow__apply-success-icon {
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 999px;
  background: #ecfdf5;
  color: #10b981;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  margin-bottom: 0.85rem;
}

.class-invite-flow__apply-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 0.98rem;
  font-weight: 800;
}

.class-invite-flow__apply-subtitle {
  margin: 0.45rem 0 0;
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
}

.class-invite-flow__success-help-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.95rem;
  background: rgba(var(--bs-primary-rgb), 0.08);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
}

.class-invite-flow__success-help-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.class-invite-flow__success-help-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 10px;
  background: #ffffff;
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.class-invite-flow__success-help-title {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 800;
}

.class-invite-flow__success-help-subtitle {
  margin-top: 0.16rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
}

.class-invite-flow__success-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  border-radius: 10px;
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.74rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.class-invite-flow__footer.is-apply-state {
  align-items: center;
}

.class-invite-flow__primary-btn.is-success {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.18);
}

@keyframes class-invite-spin {
  to {
    transform: rotate(360deg);
  }
}
.class-invite-flow__email-title {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 800;
}

.class-invite-flow__email-subtitle {
  color: #97a4c3;
  font-size: 0.7rem;
}

.class-invite-flow__primary-btn.is-apply {
  background: var(--bs-primary);
}

.members-modal-body:has(> .member-transfer-modal) {
  display: flex;
  flex-direction: column;
  max-height: min(calc(100vh - 5rem), 920px);
  overflow: hidden;
}

.members-modal-body:has(> .member-transfer-modal) > .member-transfer-modal {
  flex: 1 1 auto;
  min-height: 0;
}

.member-transfer-modal {
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 860px);
  min-height: 0;
  background: #fff;
  overflow: hidden;
}

.member-transfer-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.5rem 1rem;
  border-bottom: 1px solid #edf1f7;
  flex-shrink: 0;
}

.member-transfer-modal__header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.member-transfer-modal__header-icon {
  width: 50px;
  height: 50px;
  border-radius: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 1.15rem;
}

.member-transfer-modal__title {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.member-transfer-modal__subtitle {
  margin: 0.2rem 0 0;
  color: #93a2c2;
  font-size: 0.82rem;
  font-weight: 700;
}

.member-transfer-modal__close {
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: #f7f9fd;
  color: #9aa6c1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.member-transfer-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 1.35rem 1.5rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.member-transfer-modal__body::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.member-transfer-modal__section {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.member-transfer-modal__section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.member-transfer-modal__section-label {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.member-transfer-modal__clear-btn {
  border: 0;
  background: transparent;
  color: var(--bs-primary);
  font-size: 0.8rem;
  font-weight: 800;
  padding: 0;
}

.member-transfer-modal__info-card,
.member-transfer-modal__summary-card,
.member-transfer-modal__email-card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 18px;
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.member-transfer-modal__info-card {
  display: flex;
  align-items: flex-start;
  gap: 0.95rem;
  padding: 1rem 1.1rem;
}

.member-transfer-modal__info-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.member-transfer-modal__info-copy h3 {
  margin: 0;
  color: var(--bs-primary);
  font-size: 0.92rem;
  font-weight: 800;
}

.member-transfer-modal__info-copy p {
  margin: 0.35rem 0 0;
  color: #93a2c2;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.55;
}

.member-transfer-modal__select-shell {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.member-transfer-modal__select-btn {
  width: 100%;
  border: 1px solid #e2e8f3;
  border-radius: 16px;
  background: #fff;
  color: #31405f;
  min-height: 46px;
  padding: 0.7rem 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  font-size: 0.9rem;
  font-weight: 800;
}

.member-transfer-modal__select-btn.is-static {
  position: relative;
  cursor: default;
}

.member-transfer-modal__select-copy {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: #64748b;
}

.member-transfer-modal__select-copy i {
  color: var(--bs-primary);
}

.member-transfer-modal__date-select {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.member-transfer-modal__hint {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
}

.member-transfer-modal__hint strong,
.member-transfer-modal__summary-copy strong,
.member-transfer-modal__success-copy strong {
  color: var(--bs-secondary);
  font-weight: 800;
}

.member-transfer-modal__summary-copy span,
.member-transfer-modal__success-copy span {
  color: var(--bs-primary);
  font-weight: 800;
}

.member-transfer-modal__date-panel,
.member-transfer-modal__destination-list {
  border: 1px solid #e2e8f3;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}

.member-transfer-modal__date-panel {
  max-height: 360px;
  overflow-y: auto;
  padding: 0.7rem 0;
}

.member-transfer-modal__date-option {
  width: 100%;
  border: 0;
  background: #fff;
  padding: 0.75rem 0.9rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  color: #31405f;
  font-size: 0.9rem;
  font-weight: 800;
  text-align: left;
}

.member-transfer-modal__date-option.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.member-transfer-modal__date-subheading {
  padding: 0.7rem 1rem 0.45rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.member-transfer-modal__radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid #d5dfec;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.member-transfer-modal__radio.is-selected,
.member-transfer-modal__date-option.is-selected .member-transfer-modal__radio,
.member-transfer-modal__destination-option.is-selected .member-transfer-modal__radio {
  border-color: var(--bs-primary);
}

.member-transfer-modal__radio.is-selected::after,
.member-transfer-modal__date-option.is-selected .member-transfer-modal__radio::after,
.member-transfer-modal__destination-option.is-selected .member-transfer-modal__radio::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bs-primary);
}

.member-transfer-modal__destination-card {
  border-top: 1px solid #edf1f7;
}

.member-transfer-modal__destination-card:first-child {
  border-top: 0;
}

.member-transfer-modal__destination-head {
  width: 100%;
  border: 0;
  background: rgba(var(--bs-primary-rgb), 0.06);
  padding: 0.8rem 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  color: #31405f;
  font-size: 0.9rem;
  font-weight: 800;
  text-align: left;
}

.member-transfer-modal__destination-title {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.member-transfer-modal__destination-count {
  min-width: 1.6rem;
  height: 1.6rem;
  border-radius: 999px;
  background: #fff;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
}

.member-transfer-modal__destination-selected {
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  padding: 0.26rem 0.6rem;
  font-size: 0.68rem;
  font-weight: 800;
}

.member-transfer-modal__destination-options {
  max-height: 320px;
  overflow-y: auto;
}

.member-transfer-modal__destination-option {
  width: 100%;
  border: 0;
  border-top: 1px solid #edf1f7;
  background: #fff;
  padding: 0.75rem 0.9rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem 1rem;
  text-align: left;
}

.member-transfer-modal__destination-option.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.member-transfer-modal__destination-option-main {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  min-width: 0;
}

.member-transfer-modal__destination-name {
  color: #31405f;
  font-size: 0.88rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.member-transfer-modal__destination-occupancy {
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.member-transfer-modal__destination-session-group {
  border-top: 1px solid #edf1f7;
}

.member-transfer-modal__destination-session-head {
  width: 100%;
  border: 0;
  background: #fff;
  padding: 0.75rem 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  color: #31405f;
  font-size: 0.88rem;
  font-weight: 800;
  text-align: left;
}

.member-transfer-modal__destination-session-group.is-selected .member-transfer-modal__destination-session-head {
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.member-transfer-modal__destination-session-list {
  border-top: 1px solid #edf1f7;
}

.member-transfer-modal__destination-occupancy.is-open {
  color: var(--bs-success);
}

.member-transfer-modal__destination-occupancy.is-near-full {
  color: var(--bs-warning);
}

.member-transfer-modal__destination-occupancy.is-full {
  color: var(--bs-danger);
}

.member-transfer-modal__destination-track {
  grid-column: 1/-1;
  height: 5px;
  border-radius: 999px;
  background: #edf1f7;
  overflow: hidden;
}

.member-transfer-modal__destination-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.member-transfer-modal__destination-bar.is-open {
  background: var(--bs-success);
}

.member-transfer-modal__destination-bar.is-near-full {
  background: var(--bs-warning);
}

.member-transfer-modal__destination-bar.is-full {
  background: var(--bs-danger);
}

.member-transfer-modal__summary-card,
.member-transfer-modal__email-card {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
}

.member-transfer-modal__summary-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.member-transfer-modal__summary-copy,
.member-transfer-modal__email-copy {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

.member-transfer-modal__summary-copy {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.55;
}

.member-transfer-modal__email-card {
  align-items: center;
}

.member-transfer-modal__email-toggle {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}

.member-transfer-modal__email-toggle input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.member-transfer-modal__email-toggle-ui {
  width: 44px;
  height: 26px;
  border-radius: 999px;
  background: #e2e8f3;
  position: relative;
  transition: background-color 0.2s ease;
}

.member-transfer-modal__email-toggle-ui::after {
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  top: 3px;
  left: 3px;
  transition: transform 0.2s ease;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.12);
}

.member-transfer-modal__email-toggle input:checked + .member-transfer-modal__email-toggle-ui {
  background: var(--bs-primary);
}

.member-transfer-modal__email-toggle input:checked + .member-transfer-modal__email-toggle-ui::after {
  transform: translateX(18px);
}

.member-transfer-modal__email-title {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.member-transfer-modal__email-subtitle {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
}

.member-transfer-modal__error {
  border-radius: 14px;
  background: rgba(var(--bs-danger-rgb), 0.08);
  color: var(--bs-danger);
  padding: 0.85rem 1rem;
  font-size: 0.8rem;
  font-weight: 700;
}

.member-transfer-modal__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem 1.3rem;
  border-top: 1px solid #edf1f7;
  background: #fff;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 2;
  box-shadow: 0 -8px 20px rgba(15, 23, 42, 0.06);
}

.member-transfer-modal__secondary-btn,
.member-transfer-modal__primary-btn {
  min-height: 42px;
  border-radius: 14px;
  padding: 0.65rem 1rem;
  font-size: 0.88rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}

.member-transfer-modal__secondary-btn {
  border: 1px solid #e2e8f3;
  background: #fff;
  color: #94a3b8;
}

.member-transfer-modal__primary-btn {
  min-width: 210px;
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.2);
}

.member-transfer-modal__primary-btn:disabled {
  border-color: #eef2f7;
  background: #f8fafc;
  color: #c1cbe0;
  box-shadow: none;
}

.member-transfer-modal__btn-spinner {
  display: inline-flex;
  width: 0.95rem;
  height: 0.95rem;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 999px;
  animation: class-invite-spin 0.8s linear infinite;
}

.member-transfer-modal__success-shell {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 2rem 1.5rem 2.4rem;
  text-align: center;
}

.member-transfer-modal__success-icon {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.32);
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
}

.member-transfer-modal__success-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.member-transfer-modal__success-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 700;
}

.member-transfer-modal__success-students {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
}

.member-transfer-modal__success-student {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  padding: 0.38rem 0.7rem;
  font-size: 0.8rem;
  font-weight: 800;
}

.member-transfer-modal__student-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), 0.18);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 800;
  flex-shrink: 0;
}

.member-transfer-modal__student-avatar.is-male {
  background: #eef7ff;
  color: #0ea5e9;
}

.member-transfer-modal__student-avatar.is-female {
  background: #fff1f7;
  color: #d63384;
}

.remove-from-class-modal {
  max-height: min(88vh, 860px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  color: #1e293b;
}

.remove-from-class-modal__header,
.remove-from-class-modal__footer {
  padding: 1rem 1.5rem;
  flex-shrink: 0;
}

.remove-from-class-modal__header {
  border-bottom: 1px solid #eef2f7;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.remove-from-class-modal__header-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.remove-from-class-modal__header-icon {
  width: 42px;
  height: 42px;
  border-radius: 13px;
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}

.remove-from-class-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
}

.remove-from-class-modal__subtitle {
  margin: 0.18rem 0 0;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 700;
}

.remove-from-class-modal__close {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: #f8fafc;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  transition: background-color 0.16s ease, color 0.16s ease;
}

.remove-from-class-modal__close:hover,
.remove-from-class-modal__close:focus-visible {
  background: #fee2e2;
  color: #ef4444;
}

.remove-from-class-modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 1.2rem 1.5rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.remove-from-class-modal__body::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.remove-from-class-modal__section {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.remove-from-class-modal__section-label {
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.remove-from-class-modal__section-label span {
  text-transform: none;
  letter-spacing: 0;
}

.remove-from-class-modal__info-card,
.remove-from-class-modal__email-card.is-on {
  border: 1px solid rgba(239, 68, 68, 0.28);
  background: rgba(239, 68, 68, 0.06);
}

.remove-from-class-modal__info-card {
  border-radius: 18px;
  padding: 1rem 1.05rem;
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.remove-from-class-modal__info-icon {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  border: 1px solid rgba(239, 68, 68, 0.28);
  color: #ef4444;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.92rem;
}

.remove-from-class-modal__info-copy h3 {
  margin: 0 0 0.35rem;
  color: #dc2626;
  font-size: 0.98rem;
  font-weight: 800;
}

.remove-from-class-modal__info-copy p {
  margin: 0;
  color: #94a3b8;
  font-size: 0.84rem;
  line-height: 1.6;
}

.remove-from-class-modal__info-copy strong {
  color: var(--bs-secondary);
  font-weight: 800;
}

.remove-from-class-modal__pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.remove-from-class-modal__class-pill {
  min-height: 2.4rem;
  border-radius: 14px;
  border: 1px solid rgba(239, 68, 68, 0.3);
  background: rgba(239, 68, 68, 0.05);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.75rem;
  font-size: 0.82rem;
  font-weight: 800;
}

.remove-from-class-modal__class-pill-icon {
  font-size: 0.78rem;
}

.remove-from-class-modal__class-pill-name {
  color: #334155;
}

.remove-from-class-modal__class-pill-price {
  color: #94a3b8;
}

.remove-from-class-modal__class-pill-count,
.remove-from-class-modal__option-count {
  min-width: 24px;
  height: 24px;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: #f8fafc;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
}

.remove-from-class-modal__empty-card {
  border: 1px dashed #e2e8f0;
  background: #f8fafc;
  border-radius: 16px;
  color: #94a3b8;
  padding: 0.95rem 1rem;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.6;
}

.remove-from-class-modal__select-shell {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.remove-from-class-modal__select-btn {
  width: 100%;
  min-height: 3.1rem;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  color: #64748b;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.78rem 0.95rem;
  font-size: 0.9rem;
  font-weight: 800;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.remove-from-class-modal__select-btn.is-open {
  border-color: rgba(239, 68, 68, 0.75);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.08);
}

.remove-from-class-modal__select-copy,
.remove-from-class-modal__select-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
}

.remove-from-class-modal__select-copy i,
.remove-from-class-modal__select-actions i {
  color: #ef4444;
}

.remove-from-class-modal__clear-link {
  border: 0;
  background: transparent;
  color: #ef4444;
  font-size: 0.8rem;
  font-weight: 800;
}

.remove-from-class-modal__option-panel,
.remove-from-class-modal__date-panel {
  border: 1px solid #eef2f7;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08);
  overflow-y: auto;
}

.remove-from-class-modal__option-panel {
  max-height: 13.5rem;
}

.remove-from-class-modal__date-panel {
  max-height: 18rem;
  padding: 0.3rem 0;
}

.remove-from-class-modal__subscription-option,
.remove-from-class-modal__date-option {
  width: 100%;
  border: 0;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.95rem 1rem;
  text-align: left;
}

.remove-from-class-modal__subscription-option + .remove-from-class-modal__subscription-option,
.remove-from-class-modal__date-option + .remove-from-class-modal__date-option {
  border-top: 1px solid #f1f5f9;
}

.remove-from-class-modal__subscription-option.is-selected {
  background: rgba(239, 68, 68, 0.08);
}

.remove-from-class-modal__option-check {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.68rem;
}

.remove-from-class-modal__option-check.is-selected {
  border-color: #ef4444;
  background: #ef4444;
}

.remove-from-class-modal__option-name,
.remove-from-class-modal__date-text {
  color: #334155;
  font-size: 0.92rem;
  font-weight: 800;
}

.remove-from-class-modal__option-price {
  margin-left: auto;
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 800;
}

.remove-from-class-modal__date-subheading {
  padding: 0.8rem 1rem 0.3rem;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.remove-from-class-modal__date-empty {
  padding: 1rem;
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 700;
}

.remove-from-class-modal__date-option {
  position: relative;
}

.remove-from-class-modal__radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.remove-from-class-modal__radio.is-selected {
  border-color: #ef4444;
}

.remove-from-class-modal__radio.is-selected::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ef4444;
}

.remove-from-class-modal__today-pill {
  margin-left: auto;
  padding: 0.2rem 0.42rem;
  border-radius: 8px;
  border: 1px solid rgba(239, 68, 68, 0.25);
  background: rgba(239, 68, 68, 0.06);
  color: #ef4444;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.remove-from-class-modal__hint {
  color: #94a3b8;
  font-size: 0.8rem;
  line-height: 1.55;
}

.remove-from-class-modal__hint strong {
  color: var(--bs-secondary);
}

.remove-from-class-modal__preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.remove-from-class-modal__preview-count {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 800;
}

.remove-from-class-modal__preview-card,
.remove-from-class-modal__success-card {
  border: 1px solid #eef2f7;
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}

.remove-from-class-modal__preview-table-head {
  padding: 0.8rem 1rem;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: grid;
  grid-template-columns: minmax(180px, 1.1fr) minmax(0, 2fr);
  gap: 1rem;
}

.remove-from-class-modal__preview-row,
.remove-from-class-modal__success-row {
  padding: 0.95rem 1rem;
  display: grid;
  gap: 1rem;
  align-items: start;
}

.remove-from-class-modal__preview-row {
  grid-template-columns: minmax(180px, 1.1fr) minmax(0, 2fr);
}

.remove-from-class-modal__success-row {
  grid-template-columns: 1fr;
}

.remove-from-class-modal__preview-row + .remove-from-class-modal__preview-row,
.remove-from-class-modal__success-row + .remove-from-class-modal__success-row {
  border-top: 1px solid #f1f5f9;
}

.remove-from-class-modal__student-main {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.remove-from-class-modal__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 800;
  flex-shrink: 0;
}

.remove-from-class-modal__avatar.is-male {
  background: #eef7ff;
  color: #0ea5e9;
}

.remove-from-class-modal__avatar.is-female {
  background: #fff1f7;
  color: #d63384;
}

.remove-from-class-modal__student-copy {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.remove-from-class-modal__student-copy strong,
.remove-from-class-modal__student-name-line strong {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 800;
}

.remove-from-class-modal__student-copy span,
.remove-from-class-modal__student-name-line span {
  color: #ef4444;
  font-size: 0.78rem;
  font-weight: 800;
}

.remove-from-class-modal__student-name-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.remove-from-class-modal__student-name-line span {
  color: #64748b;
}

.remove-from-class-modal__subscription-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  min-width: 0;
  align-content: flex-start;
}

.remove-from-class-modal__subscription-chip {
  min-height: 2rem;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 800;
}

.remove-from-class-modal__subscription-chip.is-ending {
  border-color: rgba(239, 68, 68, 0.3);
  background: rgba(239, 68, 68, 0.05);
  color: #ef4444;
}

.remove-from-class-modal__subscription-chip.is-ending span {
  text-decoration: line-through;
}

.remove-from-class-modal__email-card {
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.9rem 1rem;
}

.remove-from-class-modal__email-toggle-ui {
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: #e2e8f0;
  padding: 2px;
  display: inline-flex;
  align-items: center;
  transition: background-color 0.16s ease;
}

.remove-from-class-modal__email-toggle-ui.is-on {
  background: #ef4444;
}

.remove-from-class-modal__email-toggle-knob {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
  transition: transform 0.16s ease;
}

.remove-from-class-modal__email-toggle-ui.is-on .remove-from-class-modal__email-toggle-knob {
  transform: translateX(18px);
}

.remove-from-class-modal__email-copy {
  display: grid;
  gap: 0.15rem;
  text-align: left;
}

.remove-from-class-modal__email-title {
  color: var(--bs-secondary);
  font-size: 0.96rem;
  font-weight: 800;
}

.remove-from-class-modal__email-description {
  color: #94a3b8;
  font-size: 0.8rem;
  line-height: 1.45;
}

.remove-from-class-modal__cancellation-card {
  border: 1px solid rgba(239, 68, 68, 0.18);
  border-radius: 16px;
  background: #fff;
  display: grid;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
}

.remove-from-class-modal__cancellation-field {
  display: grid;
  gap: 0.45rem;
}

.remove-from-class-modal__cancellation-label {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 800;
}

.remove-from-class-modal__rating-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.remove-from-class-modal__rating-star {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 10px;
  background: rgba(239, 68, 68, 0.06);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.92rem;
}

.remove-from-class-modal__rating-label {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
  margin-left: 0.2rem;
}

.remove-from-class-modal__cancellation-select,
.remove-from-class-modal__cancellation-textarea {
  width: 100%;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  color: #334155;
  font-size: 0.84rem;
  font-weight: 700;
  padding: 0.75rem 0.9rem;
  outline: 0;
}

.remove-from-class-modal__cancellation-select:focus,
.remove-from-class-modal__cancellation-textarea:focus {
  border-color: rgba(239, 68, 68, 0.75);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.08);
}

.remove-from-class-modal__cancellation-textarea {
  resize: vertical;
  min-height: 88px;
  line-height: 1.5;
}

.remove-from-class-modal__error {
  color: #dc2626;
  font-size: 0.82rem;
  font-weight: 700;
}

.remove-from-class-modal__footer {
  border-top: 1px solid #eef2f7;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
}

.remove-from-class-modal__secondary-btn,
.remove-from-class-modal__primary-btn {
  min-height: 2.8rem;
  border-radius: 14px;
  padding: 0.7rem 1rem;
  font-size: 0.92rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.remove-from-class-modal__secondary-btn {
  min-width: 76px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #94a3b8;
}

.remove-from-class-modal__primary-btn {
  min-width: 178px;
  border: 1px solid #ef4444;
  background: #ef4444;
  color: #fff;
}

.remove-from-class-modal__secondary-btn:hover,
.remove-from-class-modal__secondary-btn:focus-visible {
  border-color: #cbd5e1;
  color: #64748b;
}

.remove-from-class-modal__primary-btn:hover,
.remove-from-class-modal__primary-btn:focus-visible {
  background: #dc2626;
  border-color: #dc2626;
}

.remove-from-class-modal__primary-btn:disabled,
.remove-from-class-modal__secondary-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.remove-from-class-modal__success-shell {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: 1.35rem 1.5rem 2rem;
  text-align: center;
  overflow: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.remove-from-class-modal__success-shell::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.remove-from-class-modal__success-icon {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border: 2px solid rgba(239, 68, 68, 0.28);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  font-size: 1.85rem;
  line-height: 1;
  flex-shrink: 0;
}

.remove-from-class-modal__success-icon i {
  line-height: 1;
}

.remove-from-class-modal__success-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.85rem;
  font-weight: 900;
}

.remove-from-class-modal__success-copy {
  display: grid;
  gap: 0.28rem;
  color: #94a3b8;
  font-size: 0.96rem;
  line-height: 1.5;
}

.remove-from-class-modal__success-copy strong,
.remove-from-class-modal__success-copy span {
  color: var(--bs-secondary);
  font-weight: 800;
}

.remove-from-class-modal__success-card {
  width: min(100%, 700px);
  text-align: left;
  padding: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.remove-from-class-modal__success-card-head {
  padding: 0.85rem 1rem;
  background: #f8fafc;
  border-bottom: 1px solid #eef2f7;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.remove-from-class-modal__success-card-body {
  height: 21rem;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.remove-from-class-modal__success-card-body::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.remove-from-class-modal__success-list {
  display: grid;
}

.remove-from-class-modal__success-row {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
}

.remove-from-class-modal__success-student-copy {
  min-width: 0;
  display: grid;
  gap: 0.45rem;
}

.remove-from-class-modal__success-student-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: baseline;
}

.remove-from-class-modal__success-student-line strong {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 800;
}

.remove-from-class-modal__success-student-line span {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 800;
}

.remove-from-class-modal__success-empty {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
  font-style: italic;
  white-space: normal;
}

@media (max-width: 991.98px) {
  .remove-from-class-modal {
    width: 100%;
    max-height: 90vh;
    border-radius: 20px;
  }
  .remove-from-class-modal__header,
  .remove-from-class-modal__footer {
    padding-inline: 1rem;
  }
  .remove-from-class-modal__body {
    padding-inline: 1rem;
  }
  .remove-from-class-modal__preview-table-head,
  .remove-from-class-modal__preview-row,
  .remove-from-class-modal__success-row {
    grid-template-columns: 1fr;
  }
  .remove-from-class-modal__preview-row {
    gap: 0.8rem;
  }
}
@media (max-width: 767.98px) {
  .remove-from-class-modal__preview-table-head {
    display: none;
  }
  .remove-from-class-modal__preview-card {
    overflow: visible;
  }
  .remove-from-class-modal__success-shell {
    gap: 0.6rem;
    padding: 0.85rem 0.85rem 1rem;
  }
  .remove-from-class-modal__success-icon {
    width: 52px;
    height: 52px;
    font-size: 1.25rem;
  }
  .remove-from-class-modal__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .remove-from-class-modal__primary-btn,
  .remove-from-class-modal__secondary-btn {
    width: 100%;
  }
  .remove-from-class-modal__email-card,
  .remove-from-class-modal__info-card {
    align-items: flex-start;
  }
  .remove-from-class-modal__cancellation-card {
    padding: 0.85rem 0.9rem;
  }
  .remove-from-class-modal__rating-star {
    width: 30px;
    height: 30px;
    font-size: 0.88rem;
  }
  .remove-from-class-modal__rating-label,
  .remove-from-class-modal__cancellation-label,
  .remove-from-class-modal__cancellation-select,
  .remove-from-class-modal__cancellation-textarea {
    font-size: 0.78rem;
  }
  .remove-from-class-modal__success-title {
    font-size: 0.95rem;
    line-height: 1.3;
  }
  .remove-from-class-modal__success-copy {
    font-size: 0.76rem;
    line-height: 1.45;
  }
  .remove-from-class-modal__success-card {
    width: 100%;
  }
  .remove-from-class-modal__success-card-head {
    padding: 0.65rem 0.75rem;
  }
  .remove-from-class-modal__success-card-body {
    height: 16rem;
  }
  .remove-from-class-modal__success-row {
    padding: 0.65rem 0.75rem;
  }
  .remove-from-class-modal__student-main {
    align-items: flex-start;
    gap: 0.6rem;
    min-width: 0;
  }
  .remove-from-class-modal__preview-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  .remove-from-class-modal__avatar {
    width: 28px;
    height: 28px;
    font-size: 0.72rem;
  }
  .remove-from-class-modal__student-copy {
    min-width: 0;
  }
  .remove-from-class-modal__student-copy strong,
  .remove-from-class-modal__student-copy span {
    display: block;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .remove-from-class-modal__success-student-copy {
    width: 100%;
    gap: 0.3rem;
    min-width: 0;
  }
  .remove-from-class-modal__success-student-line {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
    width: 100%;
  }
  .remove-from-class-modal__success-student-line strong {
    font-size: 0.84rem;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .remove-from-class-modal__success-student-line span {
    font-size: 0.76rem;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .remove-from-class-modal__subscription-chips {
    gap: 0.4rem;
    width: 100%;
    align-items: flex-start;
    justify-content: flex-start;
  }
  .remove-from-class-modal__subscription-chip {
    min-height: 1.8rem;
    padding: 0.24rem 0.55rem;
    font-size: 0.72rem;
    line-height: 1.25;
    white-space: normal;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .remove-from-class-modal__success-empty {
    font-size: 0.74rem;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}
@media (max-width: 991.98px) {
  .member-transfer-modal__body,
  .member-transfer-modal__footer,
  .member-transfer-modal__header {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .member-transfer-modal__destination-option {
    grid-template-columns: 1fr;
  }
  .member-transfer-modal__destination-occupancy {
    justify-self: start;
  }
  .member-transfer-modal__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .member-transfer-modal__primary-btn,
  .member-transfer-modal__secondary-btn {
    width: 100%;
  }
}
@media (max-width: 575.98px) {
  .member-transfer-modal {
    max-height: min(92vh, 860px);
  }
  .member-transfer-modal__header-copy,
  .member-transfer-modal__info-card,
  .member-transfer-modal__summary-card,
  .member-transfer-modal__email-card {
    align-items: flex-start;
  }
  .member-transfer-modal__header-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
  }
  .member-transfer-modal__title {
    font-size: 1.2rem;
  }
  .member-transfer-modal__date-option,
  .member-transfer-modal__destination-head,
  .member-transfer-modal__destination-option {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .member-transfer-modal__success-shell {
    padding: 1.6rem 1rem 2rem;
  }
  .member-transfer-modal__success-title {
    font-size: 1.6rem;
  }
  .member-transfer-modal__success-copy {
    font-size: 0.92rem;
  }
}
@media (max-width: 991.98px) {
  .class-invite-flow__apply-preview-head {
    display: none;
  }
  .class-invite-flow__apply-preview-row {
    grid-template-columns: 1fr;
    gap: 0.7rem;
  }
  .class-invite-flow__email-card,
  .class-invite-flow__apply-option-card {
    flex-direction: column;
    align-items: stretch;
  }
  .class-invite-flow__apply-option-subs {
    margin-left: 0;
  }
  .class-invite-flow__apply-form-card {
    padding: 0.85rem;
  }
  .class-invite-flow__apply-progress-head,
  .class-invite-flow__success-help-card,
  .class-invite-flow__apply-row,
  .class-invite-flow__footer.is-apply-state {
    flex-direction: column;
    align-items: flex-start;
  }
  .class-invite-flow__apply-row-main {
    width: 100%;
    flex-wrap: wrap;
  }
  .class-invite-flow__apply-row-status,
  .class-invite-flow__success-link {
    width: 100%;
  }
  .class-invite-flow__apply-row-student {
    white-space: normal;
  }
  .class-invite-flow__success-help-copy {
    width: 100%;
  }
}
@media (max-width: 575.98px) {
  .class-invite-flow__stage-bar {
    overflow-x: hidden;
  }
  .class-invite-flow__steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 0;
    margin-bottom: 0.9rem;
  }
  .class-invite-flow__steps::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 16.5%;
    right: 16.5%;
    height: 2px;
    background: #e7ecf5;
    z-index: 0;
  }
  .class-invite-flow__step {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    gap: 0;
    min-width: 0;
  }
  .class-invite-flow__step-line {
    display: none;
  }
  .class-invite-flow__step-dot {
    width: 28px;
    height: 28px;
    font-size: 0.9rem;
    background: #fff;
  }
  .class-invite-flow__step-label {
    display: none;
  }
  .class-invite-flow__step-dot {
    width: 30px;
    height: 30px;
    font-size: 0.95rem;
  }
  .class-invite-flow__library-search {
    flex-direction: column;
    align-items: stretch;
  }
  .class-invite-flow__library-cancel {
    width: 100%;
  }
  .class-invite-flow__library-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }
  .class-invite-flow__library-row .class-invite-flow__pill {
    max-width: 100%;
    width: fit-content;
  }
  .class-invite-flow__library-add {
    width: 100%;
    justify-content: center;
    text-align: center;
    white-space: normal;
    line-height: 1.25;
    padding: 0.2rem 0;
  }
  .class-invite-flow__preview-head.is-invite-preview {
    display: none;
  }
  .class-invite-flow__preview-row.is-invite-preview {
    grid-template-columns: 1fr;
    gap: 0.8rem;
    padding: 0.9rem;
  }
  .class-invite-flow__preview-student,
  .class-invite-flow__preview-class,
  .class-invite-flow__invite-options,
  .class-invite-flow__apply-student,
  .class-invite-flow__apply-leaving,
  .class-invite-flow__apply-inviting {
    min-width: 0;
  }
  .class-invite-flow__preview-class-card,
  .class-invite-flow__apply-option-card {
    width: 100%;
  }
  .class-invite-flow__preview-class-name,
  .class-invite-flow__preview-name,
  .class-invite-flow__invite-option-name,
  .class-invite-flow__invite-option-group {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .class-invite-flow__move-class-trigger {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .class-invite-flow__move-class-copy {
    flex: 1 1 calc(100% - 2.4rem);
    min-width: 0;
  }
  .class-invite-flow__move-class-copy strong,
  .class-invite-flow__move-class-copy span,
  .class-invite-flow__move-class-selected span {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .class-invite-flow__move-class-selected {
    order: 3;
    margin-left: 2.4rem;
    max-width: calc(100% - 2.4rem);
    white-space: normal;
  }
  .class-invite-flow__move-class-chevron {
    margin-left: auto;
    align-self: center;
  }
  .class-invite-flow__move-month-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
  }
  .class-invite-flow__move-month {
    width: 71.9px;
    padding: 0.38rem 0.45rem;
    min-height: 2rem;
    text-align: center;
  }
  .class-invite-flow__sub-review-student-top {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }
  .class-invite-flow__sub-review-student-main,
  .class-invite-flow__sub-review-copy {
    width: 100%;
  }
  .class-invite-flow__sub-review-copy strong,
  .class-invite-flow__sub-review-copy span {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .class-invite-flow__sub-review-status {
    align-self: flex-start;
    white-space: normal;
  }
  .class-invite-flow__apply-preview-row {
    gap: 0.85rem;
    padding: 0.9rem;
  }
  .class-invite-flow__apply-option {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }
  .class-invite-flow__invite-option-index {
    align-self: flex-start;
  }
  .class-invite-flow__apply-option-top {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }
  .class-invite-flow__invite-option-date,
  .class-invite-flow__apply-added-sub-date {
    align-self: flex-start;
  }
  .class-invite-flow__apply-option-subs {
    margin-top: 0.3rem;
  }
  .class-invite-flow__footer.is-leave-step,
  .class-invite-flow__footer.is-invite-step,
  .class-invite-flow__footer.is-review-step {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .class-invite-flow__footer.is-leave-step .class-invite-flow__footer-left,
  .class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right,
  .class-invite-flow__footer.is-invite-step .class-invite-flow__footer-left,
  .class-invite-flow__footer.is-invite-step .class-invite-flow__footer-right,
  .class-invite-flow__footer.is-review-step .class-invite-flow__footer-left,
  .class-invite-flow__footer.is-review-step .class-invite-flow__footer-right {
    width: auto;
    min-width: 0;
  }
  .class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right,
  .class-invite-flow__footer.is-invite-step .class-invite-flow__footer-right,
  .class-invite-flow__footer.is-review-step .class-invite-flow__footer-right {
    flex: 1 1 auto;
    justify-content: flex-end;
  }
  .class-invite-flow__footer.is-leave-step .class-invite-flow__primary-btn,
  .class-invite-flow__footer.is-leave-step .class-invite-flow__secondary-btn,
  .class-invite-flow__footer.is-invite-step .class-invite-flow__primary-btn,
  .class-invite-flow__footer.is-invite-step .class-invite-flow__secondary-btn,
  .class-invite-flow__footer.is-review-step .class-invite-flow__primary-btn,
  .class-invite-flow__footer.is-review-step .class-invite-flow__secondary-btn {
    width: auto;
  }
  .class-invite-flow__footer.is-leave-step .class-invite-flow__primary-btn,
  .class-invite-flow__footer.is-invite-step .class-invite-flow__primary-btn,
  .class-invite-flow__footer.is-review-step .class-invite-flow__primary-btn {
    max-width: min(100%, 17rem);
  }
  .class-invite-flow__footer.is-review-step .class-invite-flow__footer-left,
  .class-invite-flow__footer.is-review-step .class-invite-flow__footer-right {
    flex: 1 1 0;
  }
  .class-invite-flow__footer.is-review-step .class-invite-flow__primary-btn,
  .class-invite-flow__footer.is-review-step .class-invite-flow__secondary-btn {
    width: 100%;
    max-width: none;
  }
}
.cancellation-admin {
  background: #f4f6fb;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding-bottom: 0;
}

.cancellation-admin__header-wrap {
  padding-top: 4px;
  padding-bottom: 4px;
}

.cancellation-admin__header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.cancellation-admin__count-pills {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.cancellation-admin__mobile-summary,
.cancellation-admin__mobile-actions,
.cancellation-admin__mobile-sheet-backdrop,
.cancellation-admin__mobile-sheet-head,
.cancellation-admin__mobile-list {
  display: none;
}

.cancellation-admin__desktop-table {
  display: block;
}

.cancellation-admin__count-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #475569;
}

.cancellation-admin__count-pill.is-pending {
  background: #fffbeb;
  border-color: #fde68a;
  color: #b45309;
}

.cancellation-admin__count-pill.is-accepted {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #15803d;
}

.cancellation-admin__count-pill.is-rejected {
  background: #fef2f2;
  border-color: #fecaca;
  color: #dc2626;
}

.cancellation-admin__count-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.cancellation-admin__body {
  flex: 1 0 auto;
  padding-top: 24px;
  padding-bottom: 24px;
}

.cancellation-admin__loading {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  padding: 32px;
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cancellation-admin__loading-state {
  max-width: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
}

.cancellation-admin__loading-state h5 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 800;
  color: #0f172a;
}

.cancellation-admin__loading-state p {
  margin: 0;
  color: #64748b;
  line-height: 1.65;
}

.cancellation-admin__insights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.cancellation-admin__insight-card {
  background: #fff;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.cancellation-admin__insight-card:hover,
.cancellation-admin__insight-card:focus-visible {
  border-color: rgba(var(--bs-primary-rgb), 0.44);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  transform: translateY(-1px);
  outline: none;
}

.cancellation-admin__insight-head,
.cancellation-admin__insight-title-wrap,
.cancellation-admin__toolbar,
.cancellation-admin__toolbar-main,
.cancellation-admin__table-controls,
.cancellation-admin__table-meta,
.cancellation-admin__student-cell,
.cancellation-admin__row-actions,
.cancellation-admin__accept-head,
.cancellation-admin__accept-actions,
.cancellation-admin__panel-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.cancellation-admin__insight-head,
.cancellation-admin__toolbar,
.cancellation-admin__table-controls,
.cancellation-admin__accept-head,
.cancellation-admin__panel-actions {
  justify-content: space-between;
}

.cancellation-admin__insight-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.92rem;
  flex-shrink: 0;
}

.cancellation-admin__insight-icon.is-reason {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.cancellation-admin__insight-icon.is-rating {
  background: #fff7d6;
  color: #d97706;
}

.cancellation-admin__insight-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
}

.cancellation-admin__scope-pill {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.75);
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.cancellation-admin__reasons {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.cancellation-admin__reason-row {
  display: grid;
  gap: 6px;
}

.cancellation-admin__reason-meta {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
}

.cancellation-admin__reason-rank {
  font-size: 0.92rem;
  font-weight: 800;
  color: #94a3b8;
}

.cancellation-admin__reason-name {
  font-size: 0.82rem;
  font-weight: 700;
  color: #1e2a4a;
}

.cancellation-admin__reason-count {
  font-size: 0.86rem;
  font-weight: 800;
  color: #334155;
}

.cancellation-admin__reason-bar {
  height: 6px;
  border-radius: 999px;
  background: #eef2ff;
  overflow: hidden;
}

.cancellation-admin__reason-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.cancellation-admin__reason-bar.is-first span {
  background: #7c3aed;
}

.cancellation-admin__reason-bar.is-second span {
  background: #0f766e;
}

.cancellation-admin__reason-bar.is-third span {
  background: #b45309;
}

.cancellation-admin__rating-summary {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 12px;
}

.cancellation-admin__rating-score {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
  color: #1e2a4a;
}

.cancellation-admin__rating-copy {
  display: grid;
  gap: 8px;
}

.cancellation-admin__stars,
.cancellation-admin__rating-stars {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.cancellation-admin__stars i,
.cancellation-admin__rating-stars i {
  color: #f59e0b;
}

.cancellation-admin__stars i:not(.is-filled) {
  color: #d7dde8;
}

.cancellation-admin__rating-meta {
  display: grid;
  gap: 2px;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #94a3b8;
}

.cancellation-admin__rating-meta span {
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0;
}

.cancellation-admin__insight-foot,
.cancellation-admin__insight-empty {
  margin-top: 16px;
  font-size: 0.82rem;
  color: #94a3b8;
}

.cancellation-admin__reject-success {
  margin-bottom: 16px;
  padding: 16px 18px;
  border: 1px solid #fcb7b7;
  border-radius: 18px;
  background: #fff4f4;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.cancellation-admin__reject-success-icon {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: #ffe4e6;
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.cancellation-admin__reject-success-main {
  min-width: 0;
  flex: 1 1 auto;
}

.cancellation-admin__reject-success-title {
  color: #dc2626;
  font-size: 0.82rem;
  font-weight: 800;
  margin-bottom: 8px;
}

.cancellation-admin__reject-success-meta {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  flex-wrap: wrap;
}

.cancellation-admin__reject-success-item {
  display: grid;
  gap: 3px;
}

.cancellation-admin__reject-success-item span {
  color: #ef4444;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cancellation-admin__reject-success-item strong {
  color: #b91c1c;
  font-size: 0.82rem;
  font-weight: 800;
}

.cancellation-admin__reject-success-item.is-subscriptions {
  min-width: min(100%, 420px);
}

.cancellation-admin__reject-success-chips {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.cancellation-admin__reject-success-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid #fda4af;
  background: #fff1f2;
  color: #ef4444;
  font-size: 0.76rem;
  font-weight: 700;
}

.cancellation-admin__reject-success-chip.is-empty {
  border-color: #fecdd3;
  color: #fb7185;
}

.cancellation-admin__reject-success-close {
  border: 0;
  background: transparent;
  color: #ef4444;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-shrink: 0;
}

.cancellation-admin__toolbar {
  margin-bottom: 18px;
  gap: 14px;
  flex-wrap: wrap;
}

.cancellation-admin__toolbar-main {
  flex: 1 1 760px;
  gap: 12px;
  flex-wrap: wrap;
}

.cancellation-admin__toolbar-actions {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
}

.cancellation-admin__toolbar-dropdown {
  position: relative;
}

.cancellation-admin__search-wrap {
  position: relative;
  flex: 1 1 340px;
}

.cancellation-admin__search-wrap i {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  font-size: 0.82rem;
}

.cancellation-admin__search-input,
.cancellation-admin__date-select {
  width: 100%;
  border: 1px solid #dfe5ef;
  background: #fff;
  border-radius: 12px;
  color: #1e293b;
  font-size: 0.82rem;
  min-height: 40px;
}

.cancellation-admin__search-input {
  padding: 9px 12px 9px 34px;
}

.cancellation-admin__search-input:focus,
.cancellation-admin__date-select:focus,
.cancellation-admin__per-page select:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.65);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.12);
}

.cancellation-admin__status-tabs {
  display: flex;
  align-items: stretch;
  border: 1px solid #dfe5ef;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.cancellation-admin__status-tab {
  border: 0;
  border-right: 1px solid #e5e7eb;
  background: transparent;
  padding: 10px 16px;
  font-size: 0.82rem;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
}

.cancellation-admin__status-tab:last-child {
  border-right: 0;
}

.cancellation-admin__status-tab.is-active {
  background: var(--bs-primary);
  color: #fff;
}

.cancellation-admin__toolbar-btn,
.cancellation-admin__primary-btn,
.cancellation-admin__secondary-btn,
.cancellation-admin__subscription-row {
  transition: 0.18s ease;
}

.cancellation-admin__toolbar-btn {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.55);
  background: #fff;
  color: var(--bs-primary);
  border-radius: 12px;
  min-height: 40px;
  padding: 8px 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  font-weight: 700;
}

.cancellation-admin__toolbar-btn.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.cancellation-admin__toolbar-btn strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.72rem;
}

.cancellation-admin__toolbar-btn.is-active strong {
  background: rgba(255, 255, 255, 0.24);
  color: #fff;
}

.cancellation-admin__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 280px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
  z-index: 6;
}

.cancellation-admin__panel-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.86rem;
  color: #334155;
  font-weight: 600;
  padding: 7px 0;
}

.cancellation-admin__panel-check input {
  width: 16px;
  height: 16px;
}

.cancellation-admin__panel-link {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 700;
}

.cancellation-admin__panel-link:disabled {
  color: #cbd5e1;
}

.cancellation-admin__table-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.04);
  overflow: visible;
}

.cancellation-admin__filters-card {
  margin-bottom: 14px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.04);
}

.cancellation-admin__filters-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.95fr);
  gap: 18px 24px;
}

.cancellation-admin__filters-col {
  display: grid;
  gap: 18px;
}

.cancellation-admin__filter-group {
  display: grid;
  gap: 10px;
}

.cancellation-admin__filter-title {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cancellation-admin__filter-chip {
  border: 1px solid #dfe5ef;
  background: #fff;
  color: #64748b;
  border-radius: 12px;
  min-height: 34px;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  font-weight: 600;
}

.cancellation-admin__filter-chip.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.6);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.cancellation-admin__filter-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.32;
}

.cancellation-admin__filter-chip.is-active .cancellation-admin__filter-dot {
  opacity: 1;
}

.cancellation-admin__filters-foot {
  margin-top: 18px;
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

.cancellation-admin__filters-apply {
  display: none;
  border: 0;
  border-radius: 12px;
  min-height: 36px;
  padding: 8px 16px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
}

.cancellation-admin__day-label-short {
  display: none;
}

.cancellation-admin__filter-layout-row {
  margin-top: 2px;
}

.cancellation-admin__filter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.cancellation-admin__filter-head .filter-label {
  margin-bottom: 0;
}

.cancellation-admin__filter-clear {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--bs-primary);
  font-size: 0.78rem;
  font-weight: 700;
}

.cancellation-admin__filter-accordion {
  max-height: 320px;
  overflow-y: auto;
}

.cancellation-admin__filters-reset {
  border: 1px solid #dfe5ef;
  background: #fff;
  color: #64748b;
  border-radius: 12px;
  min-height: 36px;
  padding: 8px 14px;
  font-size: 0.8rem;
  font-weight: 700;
}

.cancellation-admin__filters-reset:disabled {
  opacity: 0.5;
}

.cancellation-admin__table-controls {
  padding: 12px 16px;
  border-bottom: 1px solid #eef2f7;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.cancellation-admin__table-meta {
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.cancellation-admin__per-page {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: #94a3b8;
  font-weight: 700;
}

.cancellation-admin__per-page select {
  min-width: 62px;
  min-height: 34px;
  border: 1px solid #dfe5ef;
  border-radius: 10px;
  padding: 0 10px;
  background: #fff;
  color: #1e293b;
  font-weight: 700;
  font-size: 0.8rem;
}

.cancellation-admin__request-count {
  font-size: 0.8rem;
  color: #94a3b8;
  font-weight: 700;
}

.cancellation-admin__columns-wrap {
  position: relative;
}

.cancellation-admin__columns-wrap .members-card-columns {
  min-height: 42px;
  padding: 0 1rem;
  font-size: 0.82rem;
}

.cancellation-admin__columns-wrap .members-card-columns-count {
  font-size: 0.72rem;
}

.cancellation-admin__columns-panel {
  right: 0;
  left: auto;
  width: 320px;
  max-height: none;
  overflow: visible;
  z-index: 1100;
  padding: 1rem !important;
}

.cancellation-admin__columns-panel .members-columns-toggle {
  gap: 0.9rem;
  min-height: 52px;
}

.cancellation-admin__columns-panel .members-columns-toggle span:last-child {
  color: #1e2a4a;
  font-size: 0.84rem;
  font-weight: 700;
}

.cancellation-admin__table-scroll {
  overflow-x: auto;
  overflow-y: visible;
  border-radius: 0 0 20px 20px;
}

.cancellation-admin__table {
  width: max-content;
  border-collapse: separate;
  border-spacing: 0;
}

.cancellation-admin__table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fff;
  text-align: left;
  padding: 12px 14px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
  border-bottom: 1px solid #eef2f7;
  white-space: nowrap;
}

.cancellation-admin__table thead th.is-sticky {
  left: 0;
  z-index: 4;
  width: 360px;
  min-width: 360px;
  max-width: 360px;
}

.cancellation-admin__head-sticky {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cancellation-admin__section-row td {
  position: relative;
  z-index: 5;
  padding: 12px 16px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__section-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  position: sticky;
  left: 12px;
  z-index: 6;
}

.cancellation-admin__section-row.is-pending td {
  background: #fffbeb;
  color: #b45309;
}

.cancellation-admin__section-row.is-accepted td {
  background: #ecfdf5;
  color: #15803d;
}

.cancellation-admin__section-row.is-rejected td {
  background: #fef2f2;
  color: #dc2626;
}

.cancellation-admin__table-row td {
  padding: 12px 14px;
  font-size: 0.84rem;
  color: #1e293b;
  border-bottom: 1px solid #eef2f7;
  vertical-align: middle;
  background: #fff;
}

.cancellation-admin__table-row.is-alt td {
  background: #fbfcfe;
}

.cancellation-admin__table-row td.is-sticky {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 360px;
  min-width: 360px;
  max-width: 360px;
  box-shadow: 10px 0 18px rgba(15, 23, 42, 0.05);
}

.cancellation-admin__table-row.is-alt td.is-sticky {
  background: #fbfcfe;
}

.cancellation-admin__table-row.is-expanded td {
  background: #f8fffe;
}

.cancellation-admin__table-row.is-expanded td.is-sticky {
  background: #f8fffe;
}

.cancellation-admin__table-row.is-selected td {
  background: #eef8f8;
}

.cancellation-admin__table-row.is-selected td.is-sticky {
  background: #eef8f8;
}

.cancellation-admin__table-footer {
  border-top: 1px solid #eef2f7;
}

.cancellation-admin__student-cell {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cancellation-admin__head-sticky .members-table-check-toggle,
.cancellation-admin__student-cell .members-table-row-check {
  flex-shrink: 0;
}

.cancellation-admin__head-sticky .members-table-check-toggle i,
.cancellation-admin__student-cell .members-table-row-check i {
  font-size: 0.65rem;
}

.cancellation-admin__avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  flex-shrink: 0;
}

.cancellation-admin__avatar.is-male {
  background: #e0f2fe;
  color: #0ea5e9;
}

.cancellation-admin__avatar.is-female {
  background: #fce7f3;
  color: #ec4899;
}

.cancellation-admin__student-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.cancellation-admin__student-name {
  display: block;
  color: #1e2a4a;
  font-size: 0.84rem;
  font-weight: 800;
  text-decoration: none;
  line-height: 1.25;
}

.cancellation-admin__student-parent {
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 600;
}

.cancellation-admin__row-actions {
  gap: 6px;
  flex-shrink: 0;
}

.cancellation-admin__action-btn {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  border: 1px solid #e5e7eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  font-size: 0.8rem;
}

.cancellation-admin__action-btn.is-accept {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #16a34a;
}

.cancellation-admin__action-btn.is-reject {
  border-color: #fecaca;
  background: #fef2f2;
  color: #dc2626;
}

.cancellation-admin__class-name {
  color: #1e2a4a;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.35;
}

.cancellation-admin__class-session-date {
  margin-top: 2px;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.3;
}

.cancellation-admin__sub-pill,
.cancellation-admin__reason-pill,
.cancellation-admin__subscription-pill,
.cancellation-admin__status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.cancellation-admin__sub-pill {
  margin-top: 6px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.cancellation-admin__sub-pill.is-subgroup {
  margin-top: 0;
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #475569;
}

.cancellation-admin__reason-pill.is-primary {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border-color: rgba(var(--bs-primary-rgb), 0.2);
  color: var(--bs-primary);
}

.cancellation-admin__reason-pill.is-blue {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #2563eb;
}

.cancellation-admin__reason-pill.is-purple {
  background: #f5f3ff;
  border-color: #ddd6fe;
  color: #7c3aed;
}

.cancellation-admin__reason-pill.is-green {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #16a34a;
}

.cancellation-admin__reason-pill.is-amber {
  background: #fffbeb;
  border-color: #fde68a;
  color: #b45309;
}

.cancellation-admin__reason-pill.is-rose {
  background: #fff1f2;
  border-color: #fecdd3;
  color: #e11d48;
}

.cancellation-admin__reason-pill.is-pink {
  background: #fdf2f8;
  border-color: #fbcfe8;
  color: #db2777;
}

.cancellation-admin__subscription-pill.is-active {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #ea580c;
}

.cancellation-admin__subscription-pill.is-empty {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
}

.cancellation-admin__status-pill {
  gap: 6px;
}

.cancellation-admin__status-pill::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.cancellation-admin__status-pill.is-pending {
  background: #fffbeb;
  border-color: #fde68a;
  color: #b45309;
}

.cancellation-admin__status-pill.is-accepted {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #15803d;
}

.cancellation-admin__status-pill.is-rejected {
  background: #fef2f2;
  border-color: #fecaca;
  color: #dc2626;
}

.cancellation-admin__date-cell {
  white-space: nowrap;
  color: #334155;
  font-size: 0.8rem;
}

.cancellation-admin__comments-cell {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #64748b;
  font-style: italic;
  font-size: 0.8rem;
  word-break: normal;
  overflow-wrap: normal;
}

.cancellation-admin__cell-dash {
  color: #94a3b8;
  font-weight: 700;
}

.cancellation-admin__expand-row td {
  padding: 0;
  background: #f8fffe;
  border-bottom: 1px solid #d9f2ef;
}

.cancellation-admin__reject-row td {
  padding: 0;
  background: #fff;
  border-top: 0;
  border-bottom: 1px solid #fecaca;
}

.cancellation-admin__reject-banner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 12px 16px;
  background: #fff5f5;
  border-top: 1px solid #fecaca;
}

.cancellation-admin__reject-copy {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #b91c1c;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.45;
}

.cancellation-admin__reject-copy i {
  color: #ef4444;
  font-size: 0.95rem;
  flex-shrink: 0;
}

.cancellation-admin__reject-copy strong {
  color: #7f1d1d;
  font-weight: 800;
}

.cancellation-admin__reject-banner .cancellation-admin__reject-copy,
.cancellation-admin__reject-banner .cancellation-admin__reject-reason-field {
  width: 100%;
}

.cancellation-admin__reject-banner .cancellation-admin__reject-reason-field {
  margin-top: 0;
}

.cancellation-admin__reject-reason-field {
  display: grid;
  gap: 5px;
  margin-top: 10px;
}

.cancellation-admin__reject-reason-field label {
  color: #7f1d1d;
  font-size: 0.76rem;
  font-weight: 800;
}

.cancellation-admin__reject-reason-field label span {
  color: #ef4444;
}

.cancellation-admin__reject-reason-field textarea {
  width: 36rem;
  min-height: 72px;
  resize: vertical;
  border: 1px solid #fbcaca;
  border-radius: 10px;
  background: #fff;
  padding: 9px 10px;
  color: #4b5563;
  font-size: 0.8rem;
  line-height: 1.4;
}

.cancellation-admin__reject-reason-field textarea:focus {
  border-color: #ef4444;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
}

.cancellation-admin__reject-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.cancellation-admin__reject-cancel,
.cancellation-admin__reject-confirm {
  border-radius: 12px;
  min-height: 38px;
  padding: 8px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 0.8rem;
  font-weight: 800;
}

.cancellation-admin__reject-cancel {
  border: 1px solid #fbcaca;
  background: #fff;
  color: #b45353;
}

.cancellation-admin__reject-confirm {
  border: 1px solid #ef4444;
  background: #ef4444;
  color: #fff;
}

.cancellation-admin__reject-confirm:disabled {
  opacity: 0.72;
}

.cancellation-admin__accept-panel {
  padding: 14px;
  border-top: 1px solid rgba(var(--bs-primary-rgb), 0.15);
}

.cancellation-admin__accept-head {
  align-items: flex-start;
  margin-bottom: 14px;
}

.cancellation-admin__accept-title {
  color: var(--bs-primary);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__accept-subtitle {
  margin-top: 4px;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 600;
}

.cancellation-admin__warning,
.cancellation-admin__subscription-empty {
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 0.78rem;
  font-weight: 600;
}

.cancellation-admin__warning {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  margin-bottom: 14px;
}

.cancellation-admin__accept-grid {
  display: grid;
  grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.1fr);
  gap: 14px;
}

.cancellation-admin__accept-grid.is-multi-event {
  grid-template-columns: 1fr;
}

.cancellation-admin__field-label {
  margin-bottom: 8px;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__choice-list,
.cancellation-admin__subscription-list {
  display: grid;
  gap: 10px;
}

.student-subscription-list__selector {
  position: relative;
  margin-bottom: 1rem;
}

.student-subscription-list__selector-trigger {
  width: 100%;
  min-height: 52px;
  padding: 0.9rem 1rem;
  border: 1px solid #d7deef;
  border-radius: 14px;
  background: #fff;
  color: #1f2a44;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-weight: 600;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.student-subscription-list__selector-trigger:hover:not(:disabled) {
  border-color: #9bb4ff;
  box-shadow: 0 10px 24px rgba(31, 42, 68, 0.08);
}

.student-subscription-list__selector-trigger:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.student-subscription-list__selector-menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  right: 0;
  z-index: 2000;
  width: 100%;
  max-height: 320px;
  margin-top: 0;
  border: 1px solid #d7deef;
  border-radius: 16px;
  background: #fff;
  overflow-y: auto;
  box-shadow: 0 16px 36px rgba(31, 42, 68, 0.12);
}

.student-subscription-list__selector--class-form .student-subscription-list__selector-menu {
  left: 0;
  right: auto;
  width: min(320px, 100%);
  font-size: 0.84rem;
}

.student-subscription-list__selector--class-form .student-subscription-list__selector-trigger {
  min-height: calc(3.5rem + 2px);
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 500;
}

.student-subscription-list__selector--class-form .student-subscription-list__selector-option {
  padding: 0.7rem 0.85rem;
}

.student-subscription-list__selector--class-form .student-subscription-list__selector-copy strong {
  font-size: 0.84rem;
  font-weight: 600;
}

.student-subscription-list__selector--class-form .student-subscription-list__selector-copy small {
  font-size: 0.74rem;
}

.student-subscription-list__selector--class-form .student-subscription-list__selector-price {
  font-size: 0.84rem;
}

.student-subscription-list__selector--modal .student-subscription-list__selector-menu--modal {
  position: relative;
  z-index: 2;
  max-height: min(50vh, 420px);
  margin-bottom: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.student-subscription-add-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow: hidden;
}

.student-subscription-add-modal-backdrop {
  z-index: 1190;
}

.student-subscription-add-modal__dialog {
  display: flex;
  flex-direction: column;
  width: min(800px, 100vw - 2rem);
  height: min(36rem, 100dvh - 4rem);
  max-height: min(36rem, 100dvh - 4rem);
  margin: 0;
  min-height: 0;
}

.student-subscription-add-modal__content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
}

.student-subscription-add-modal__content .modal-header {
  flex-shrink: 0;
}

.student-subscription-add-modal__search {
  flex-shrink: 0;
  padding: 0 1rem 0.85rem;
  border-bottom: 1px solid #e9eef5;
}

.student-subscription-add-modal__body.modal-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  gap: 0;
}

.student-subscription-add-modal__hint {
  flex-shrink: 0;
  margin-bottom: 0.75rem;
  color: #71839d;
  font-size: 0.82rem;
  line-height: 1.4;
}

.student-subscription-add-modal__list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px solid #dde4ef;
  border-radius: 1rem;
  background: #fff;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.student-subscription-add-modal__list--dates {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.75rem;
  border: 0;
  background: transparent;
}

.student-subscription-add-modal__list--dates .student-subscription-list__selected-item {
  flex-shrink: 0;
}

.student-subscription-add-modal__empty {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  border: 1px solid #dde4ef;
  border-radius: 1rem;
  color: #71839d;
  font-size: 0.875rem;
  text-align: center;
}

.student-subscription-add-modal__footer.modal-footer {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-shrink: 0;
  margin-top: auto;
  padding: 0.85rem 1rem;
  border-top: 1px solid #e9eef5;
}

.student-subscription-add-modal__summary {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #71839d;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
}

.student-subscription-add-modal__footer-actions {
  display: flex;
  flex-shrink: 0;
  justify-content: flex-end;
  gap: 0.5rem;
}

.student-subscription-list__selector--modal {
  display: flex;
  flex-direction: column;
  min-height: 0;
  position: relative;
  z-index: 1;
  overflow: visible;
}

.student-subscription-list__selected-list--modal {
  max-height: min(55vh, 480px);
  overflow-y: auto;
  margin-bottom: 0;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.student-subscription-list__selector-option {
  width: 100%;
  padding: 0.9rem 1rem;
  border: 0;
  border-bottom: 1px solid #edf1f7;
  background: #fff;
  color: #1f2a44;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.student-subscription-list__selector-option:last-child {
  border-bottom: 0;
}

.student-subscription-list__selector-option:hover:not(:disabled),
.student-subscription-list__selector-option.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.student-subscription-list__selector-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.student-subscription-list__selector-copy strong {
  color: #1f2a44;
  font-size: 0.95rem;
  font-weight: 700;
}

.student-subscription-list__selector-copy small {
  color: #6f7f9c;
  font-size: 0.8rem;
  text-transform: capitalize;
}

.student-subscription-list__selector-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.student-subscription-list__selector-price {
  color: #1f2a44;
  font-weight: 700;
  white-space: nowrap;
}

.student-subscription-list__selector-check {
  color: var(--bs-primary);
  font-size: 1rem;
  line-height: 1;
}

.student-subscription-list__selected-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.student-subscription-list__selected-item {
  padding: 0.9rem 1rem 1rem;
  border: 1px solid #dfe6f5;
  border-radius: 16px;
  background: #fff;
}

.student-subscription-list__selected-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.student-subscription-list__selected-title {
  color: #1f2a44;
  font-size: 0.95rem;
  font-weight: 700;
}

.student-subscription-list__selected-subtitle {
  color: #6f7f9c;
  font-size: 0.8rem;
  text-transform: capitalize;
}

.student-subscription-list__selected-price {
  color: #1f2a44;
  font-weight: 700;
  white-space: nowrap;
}

.student-subscription-list__edit-panel {
  margin-top: 0.85rem;
  padding: 0.95rem 1rem 1rem;
  border: 1px solid #dfe6f5;
  border-radius: 16px;
  background: #f8fbff;
  cursor: default;
}

.student-subscription-list__edit-title {
  color: #1f2a44;
  font-size: 0.92rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.student-subscription-list__edit-empty {
  color: #6f7f9c;
  font-size: 0.86rem;
}

.student-subscription-list__edit-options {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.student-subscription-list__edit-option {
  width: 100%;
  padding: 0.8rem 0.95rem;
  border: 1px solid #d7deef;
  border-radius: 12px;
  background: #fff;
  color: #1f2a44;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  text-align: left;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.student-subscription-list__edit-option:hover:not(:disabled),
.student-subscription-list__edit-option.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.student-subscription-list__edit-option:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.student-subscription-list__edit-option i {
  color: var(--bs-primary);
  font-size: 1rem;
  line-height: 1;
}

.student-subscription-list__edit-option-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.student-subscription-list__edit-option-copy strong {
  color: #1f2a44;
  font-size: 0.92rem;
  font-weight: 700;
}

.student-subscription-list__edit-option-copy small {
  color: #6f7f9c;
  font-size: 0.8rem;
}

.student-subscription-list__edit-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
  margin-top: 0.9rem;
}

@media (max-width: 575.98px) {
  .student-subscription-list__selector-trigger,
  .student-subscription-list__selector-option,
  .student-subscription-list__selected-head {
    gap: 0.75rem;
  }
  .student-subscription-list__selector-option,
  .student-subscription-list__selected-head {
    align-items: flex-start;
  }
  .student-subscription-list__edit-option {
    align-items: flex-start;
  }
  .student-subscription-list__edit-actions {
    justify-content: stretch;
    flex-direction: column;
  }
}
.cancellation-admin__choice-row {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 9px 11px;
  background: #fff;
  color: #334155;
  font-size: 0.82rem;
  font-weight: 600;
}

.cancellation-admin__subscription-row {
  width: 100%;
  justify-content: space-between;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #334155;
  padding: 9px 11px;
  font-size: 0.8rem;
  font-weight: 700;
}

.cancellation-admin__subscription-row.is-selected {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.cancellation-admin__subscription-empty {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #64748b;
}

.cancellation-admin__accept-actions {
  margin-top: 14px;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: wrap;
}

.cancellation-admin__modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.36);
}

.cancellation-admin__action-modal-dialog {
  max-height: calc(100vh - 1rem);
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.cancellation-admin__action-modal-content {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  overscroll-behavior: contain;
}

.cancellation-admin__action-modal-content > .send-email-modal,
.cancellation-admin__action-modal-content > .bulk-charge-modal,
.cancellation-admin__action-modal-content > .credit-adjustment-modal,
.cancellation-admin__action-modal-content > .class-invite-modal,
.cancellation-admin__action-modal-content > .set-tags-modal,
.cancellation-admin__action-modal-content > .set-affiliation-modal,
.cancellation-admin__action-modal-content > .set-sub-group-modal,
.cancellation-admin__action-modal-content > .manage-awards-modal,
.cancellation-admin__action-modal-content > .subscription-management-modal {
  flex: 1 1 auto;
  min-height: 0;
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.cancellation-admin__action-modal-content > .send-email-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .bulk-charge-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .credit-adjustment-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .class-invite-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .set-tags-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .set-affiliation-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .set-sub-group-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .manage-awards-modal::-webkit-scrollbar,
.cancellation-admin__action-modal-content > .subscription-management-modal::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.cancellation-admin__modal {
  width: min(100%, 760px);
  max-height: calc(100vh - 40px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.22);
}

.cancellation-admin__modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px 16px;
  border-bottom: 1px solid #eef2f7;
  flex-shrink: 0;
}

.cancellation-admin__modal-kicker {
  color: var(--bs-primary);
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__modal-student {
  margin-top: 4px;
  color: #1e2a4a;
  font-size: 1.15rem;
  font-weight: 800;
}

.cancellation-admin__modal-class {
  margin-top: 2px;
  color: #64748b;
  font-size: 0.9rem;
  font-weight: 600;
}

.cancellation-admin__modal-close {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cancellation-admin__modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 18px 22px 22px;
}

.cancellation-admin__steps {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #f8fafc;
}

.cancellation-admin__step {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 700;
}

.cancellation-admin__step-index {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
  flex-shrink: 0;
}

.cancellation-admin__step.is-active {
  color: #1e2a4a;
}

.cancellation-admin__step.is-active .cancellation-admin__step-index {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.cancellation-admin__step.is-complete {
  color: #334155;
}

.cancellation-admin__step.is-complete .cancellation-admin__step-index {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.cancellation-admin__step-divider {
  flex: 1 1 auto;
  height: 1px;
  background: #dbe3ef;
  min-width: 16px;
}

.cancellation-admin__step-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cancellation-admin__method-summary {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #fff;
}

.cancellation-admin__method-summary-label {
  display: block;
  margin-bottom: 2px;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.cancellation-admin__method-summary strong {
  color: #1e2a4a;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.35;
}

.cancellation-admin__modal-section + .cancellation-admin__modal-section {
  margin-top: 18px;
}

.cancellation-admin__modal-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 18px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #b45309;
  font-size: 0.92rem;
  font-weight: 600;
}

.cancellation-admin__modal-label {
  display: block;
  margin-bottom: 8px;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__modal-label span {
  color: #ef4444;
}

.cancellation-admin__modal-help {
  margin-top: 8px;
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 500;
}

.cancellation-admin__date-picker {
  position: relative;
}

.cancellation-admin__date-trigger {
  width: 100%;
  min-height: 44px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #fff;
  color: #1e2a4a;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.95rem;
  font-weight: 700;
}

.cancellation-admin__date-menu {
  margin-top: 8px;
  border: 1px solid #dfe5ef;
  border-radius: 16px;
  background: #fff;
  max-height: 290px;
  overflow-y: auto;
}

.cancellation-admin__date-option {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  background: #fff;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #64748b;
  font-size: 0.92rem;
  font-weight: 600;
  text-align: left;
}

.cancellation-admin__date-option:last-child {
  border-bottom: 0;
}

.cancellation-admin__date-option.is-selected {
  background: #f0fdff;
  color: #1e2a4a;
}

.cancellation-admin__date-option-radio {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid #d5dbe7;
  flex-shrink: 0;
}

.cancellation-admin__date-option.is-selected .cancellation-admin__date-option-radio {
  border-color: var(--bs-primary);
  box-shadow: inset 0 0 0 4px var(--bs-primary);
}

.cancellation-admin__date-badge {
  margin-left: auto;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.cancellation-admin__date-badge.is-today {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.cancellation-admin__date-badge.is-closed {
  background: #fff7ed;
  color: #c2410c;
}

.cancellation-admin__date-badge.is-before-start {
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
}

.cancellation-admin__modal-subscriptions {
  display: grid;
  gap: 10px;
}

.cancellation-admin__modal-subscription-toggle {
  width: 100%;
  margin-bottom: 10px;
  padding: 10px 14px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}

.cancellation-admin__modal-subscription-toggle.is-selected {
  border-color: #fecaca;
  background: #fff5f5;
}

.cancellation-admin__modal-subscription-toggle-check {
  width: 20px;
  height: 20px;
  border-radius: 7px;
  border: 1px solid #dfe5ef;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: transparent;
  flex-shrink: 0;
}

.cancellation-admin__modal-subscription-toggle.is-selected .cancellation-admin__modal-subscription-toggle-check {
  background: #ef4444;
  border-color: #ef4444;
  color: #fff;
}

.cancellation-admin__modal-subscription-toggle-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.cancellation-admin__modal-subscription-toggle-copy strong {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 800;
}

.cancellation-admin__modal-subscription-toggle-copy small {
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 600;
}

.cancellation-admin__modal-subscription {
  width: 100%;
  border: 1px solid #fecaca;
  border-radius: 16px;
  background: #fff;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}

.cancellation-admin__modal-subscription.is-selected {
  background: #fff5f5;
}

.cancellation-admin__modal-subscription-check {
  width: 20px;
  height: 20px;
  border-radius: 7px;
  border: 1px solid #fecaca;
  background: #fff;
  color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cancellation-admin__modal-subscription.is-selected .cancellation-admin__modal-subscription-check {
  background: #ef4444;
  border-color: #ef4444;
  color: #fff;
}

.cancellation-admin__modal-subscription-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.cancellation-admin__modal-subscription-copy strong {
  color: var(--bs-secondary);
  font-size: 0.96rem;
  font-weight: 800;
}

.cancellation-admin__modal-subscription-copy small {
  color: #dc2626;
  font-size: 0.85rem;
  font-weight: 600;
}

.cancellation-admin__modal-subscription-state {
  margin-left: auto;
  color: #ef4444;
  font-size: 0.84rem;
  font-weight: 700;
  white-space: nowrap;
}

.cancellation-admin__modal-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #16a34a;
  font-size: 0.95rem;
  font-weight: 700;
}

.cancellation-admin__subscription-end {
  margin-top: 18px;
}

.cancellation-admin__subscription-end-list {
  margin-top: 18px;
}

.cancellation-admin__method-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}

.cancellation-admin__method-options.is-compact {
  gap: 6px;
}

.cancellation-admin__method-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 12px 14px;
  text-align: left;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  color: #1e293b;
}

.cancellation-admin__method-option:hover:not(:disabled) {
  border-color: #cbd5e1;
}

.cancellation-admin__method-option.is-selected {
  border-color: #f97316;
  box-shadow: inset 0 0 0 1px #f97316;
  background: #fff7ed;
}

.cancellation-admin__method-option:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.cancellation-admin__method-option i {
  margin-top: 2px;
  color: #94a3b8;
}

.cancellation-admin__method-option.is-selected i {
  color: #ea580c;
}

.cancellation-admin__method-option-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.cancellation-admin__method-option-copy strong {
  font-size: 0.88rem;
  font-weight: 800;
}

.cancellation-admin__method-option-copy small {
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.35;
}

.cancellation-admin__method-detail {
  margin: 0 0 4px 34px;
  display: grid;
  gap: 8px;
}

.cancellation-admin__method-note {
  color: #475569;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.4;
}

.cancellation-admin__method-hint {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.4;
}

.cancellation-admin__method-hint.is-error {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.cancellation-admin__refund-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #fff;
}

.cancellation-admin__refund-row-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.cancellation-admin__refund-row-copy strong {
  color: #1e2a4a;
  font-size: 0.9rem;
  font-weight: 800;
}

.cancellation-admin__refund-row-copy small {
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.35;
}

.cancellation-admin__refund-amount {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 150px;
  padding: 6px 8px;
  border: 1px solid #dbe3f1;
  border-radius: 12px;
  background: #f8fafc;
}

.cancellation-admin__refund-amount.is-disabled {
  opacity: 0.55;
}

.cancellation-admin__refund-amount span {
  color: #64748b;
  font-size: 0.9rem;
  font-weight: 800;
}

.cancellation-admin__refund-amount input {
  width: 72px;
  border: 0;
  background: transparent;
  color: #1e2a4a;
  font-size: 0.92rem;
  font-weight: 800;
  outline: none;
}

.cancellation-admin__refund-amount button {
  border: 0;
  border-radius: 8px;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 4px 8px;
}

.cancellation-admin__refund-amount button:disabled {
  opacity: 0.6;
}

.cancellation-admin__basis-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
}

.cancellation-admin__basis-option {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #1e2a4a;
  text-align: left;
}

.cancellation-admin__basis-option:hover:not(:disabled) {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.cancellation-admin__basis-option.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  background: rgba(var(--bs-primary-rgb), 0.08);
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), 0.18);
}

.cancellation-admin__basis-option:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.cancellation-admin__basis-option strong {
  font-size: 0.88rem;
  font-weight: 800;
}

.cancellation-admin__basis-option small {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.35;
}

.cancellation-admin__per-sub-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
}

.cancellation-admin__per-sub-toggle.is-active {
  border-color: #fdba74;
  background: #fff7ed;
  color: #c2410c;
}

.cancellation-admin__per-sub-list {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.cancellation-admin__per-sub-card {
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fbfcfe;
}

.cancellation-admin__plan-preview {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.cancellation-admin__plan-preview-row {
  display: grid;
  gap: 2px;
}

.cancellation-admin__plan-preview-row strong {
  font-size: 0.8rem;
  font-weight: 800;
  color: #1e293b;
}

.cancellation-admin__plan-preview-row span {
  font-size: 0.76rem;
  font-weight: 600;
  color: #64748b;
  line-height: 1.4;
}

.cancellation-admin__plan-summary {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f1f5f9;
  color: #334155;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.4;
}

.cancellation-admin__plan-summary.is-error {
  background: #fef2f2;
  color: #b91c1c;
}

.cancellation-admin__subscription-end-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.cancellation-admin__subscription-end-heading strong {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.cancellation-admin__subscription-end-heading small {
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 700;
}

.cancellation-admin__subscription-payment-dates {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid #e6ebf3;
  border-radius: 14px;
  background: #fbfcff;
}

.cancellation-admin__subscription-payment-dates-help {
  margin: -4px 0 10px;
  color: #8a98b6;
  font-size: 0.76rem;
  font-weight: 600;
}

.cancellation-admin__subscription-payment-date-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid #edf1f7;
}

.cancellation-admin__subscription-payment-date-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.cancellation-admin__subscription-payment-date-copy strong {
  color: var(--bs-secondary);
  font-size: 0.86rem;
  font-weight: 800;
}

.cancellation-admin__subscription-payment-date-copy small {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 600;
}

.cancellation-admin__subscription-payment-date-input {
  min-width: 148px;
  border: 1px solid #cfd9e8;
  border-radius: 10px;
  background: #fff;
  padding: 8px 10px;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
}

.cancellation-admin__subscription-payment-date-input:focus {
  border-color: var(--bs-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.12);
}

.cancellation-admin__subscription-end-options {
  display: grid;
  gap: 10px;
}

.cancellation-admin__subscription-end-option {
  width: 100%;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #fff;
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
}

.cancellation-admin__subscription-end-option.is-selected {
  border-color: var(--bs-primary);
  background: #f0fdff;
}

.cancellation-admin__subscription-end-option:disabled {
  opacity: 0.55;
}

.cancellation-admin__subscription-end-radio {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  border: 1.5px solid #d5dbe7;
  border-radius: 50%;
  flex-shrink: 0;
}

.cancellation-admin__subscription-end-option.is-selected .cancellation-admin__subscription-end-radio {
  border-color: var(--bs-primary);
  box-shadow: inset 0 0 0 4px var(--bs-primary);
}

.cancellation-admin__subscription-end-option strong,
.cancellation-admin__subscription-end-option small {
  display: block;
}

.cancellation-admin__subscription-end-option strong {
  color: #1e2a4a;
  font-size: 0.9rem;
  font-weight: 800;
}

.cancellation-admin__subscription-end-option small {
  margin-top: 2px;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 600;
}

.cancellation-admin__modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 14px 22px 22px;
  border-top: 1px solid #eef2f7;
  background: #fff;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 2;
}

.cancellation-admin__modal-primary,
.cancellation-admin__modal-secondary {
  min-height: 42px;
  border-radius: 14px;
  padding: 10px 18px;
  font-size: 0.96rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.cancellation-admin__modal-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.cancellation-admin__modal-primary:disabled {
  border-color: #d8dee8;
  background: #e5e7eb;
  color: #94a3b8;
}

.cancellation-admin__modal-primary.is-success {
  min-width: 120px;
}

.cancellation-admin__modal-secondary {
  border: 1px solid #dfe5ef;
  background: #fff;
  color: #64748b;
}

.cancellation-admin__apply-progress-card {
  border: 1px solid #d8eff1;
  border-radius: 18px;
  background: #f8fffe;
  padding: 16px;
}

.cancellation-admin__apply-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.cancellation-admin__apply-progress-copy {
  display: flex;
  align-items: center;
  gap: 12px;
}

.cancellation-admin__apply-progress-spinner,
.cancellation-admin__apply-row-spinner {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.2);
  border-top-color: var(--bs-primary);
  animation: cancellation-admin-spin 0.8s linear infinite;
}

.cancellation-admin__apply-progress-title {
  color: var(--bs-secondary);
  font-size: 0.96rem;
  font-weight: 800;
}

.cancellation-admin__apply-progress-meta {
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 600;
}

.cancellation-admin__apply-progress-percent {
  color: var(--bs-primary);
  font-size: 1rem;
  font-weight: 800;
}

.cancellation-admin__apply-progress-bar {
  margin-top: 12px;
  height: 8px;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  overflow: hidden;
}

.cancellation-admin__apply-progress-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bs-primary);
}

.cancellation-admin__apply-list {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.cancellation-admin__apply-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 16px;
  border: 1px solid #e5e7eb;
  background: #fff;
}

.cancellation-admin__apply-row.is-complete {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.cancellation-admin__apply-row.is-processing {
  border-color: #bae6fd;
  background: #f8fdff;
}

.cancellation-admin__apply-row.is-error {
  border-color: #fecaca;
  background: #fef2f2;
}

.cancellation-admin__apply-row-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.cancellation-admin__apply-row-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid #dfe5ef;
  background: #fff;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.82rem;
  font-weight: 800;
}

.cancellation-admin__apply-row.is-complete .cancellation-admin__apply-row-icon {
  border-color: #16a34a;
  background: #16a34a;
  color: #fff;
}

.cancellation-admin__apply-row.is-processing .cancellation-admin__apply-row-icon {
  border-color: #67e8f9;
  color: var(--bs-primary);
}

.cancellation-admin__apply-row-copy {
  min-width: 0;
}

.cancellation-admin__apply-row-title {
  color: #1e2a4a;
  font-size: 0.96rem;
  font-weight: 800;
}

.cancellation-admin__apply-row-meta {
  margin-top: 2px;
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.4;
}

.cancellation-admin__apply-row-status {
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 700;
  white-space: nowrap;
}

.cancellation-admin__apply-row-status.is-done {
  color: #16a34a;
}

.cancellation-admin__apply-row-status.is-processing {
  color: var(--bs-primary);
}

.cancellation-admin__apply-row-status.is-error {
  color: #dc2626;
}

.cancellation-admin__modal-body--success {
  text-align: center;
}

.cancellation-admin__success-icon {
  width: 74px;
  height: 74px;
  margin: 8px auto 18px;
  border-radius: 50%;
  border: 2px solid #bbf7d0;
  color: #16a34a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
}

.cancellation-admin__success-title {
  color: #1e2a4a;
  font-size: 1.8rem;
  font-weight: 800;
}

.cancellation-admin__success-copy {
  max-width: 520px;
  margin: 10px auto 18px;
  color: #64748b;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
}

.cancellation-admin__success-card {
  max-width: 560px;
  margin: 0 auto;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #f8fafc;
  padding: 16px 18px;
  text-align: left;
}

.cancellation-admin__success-card-title {
  margin-bottom: 10px;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cancellation-admin__success-row {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #1e2a4a;
  font-size: 0.95rem;
  font-weight: 700;
}

.cancellation-admin__success-row + .cancellation-admin__success-row {
  margin-top: 8px;
}

.cancellation-admin__success-row i {
  color: #16a34a;
}

.cancellation-admin__success-settlement {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e5e7eb;
  color: #1e2a4a;
}

.cancellation-admin__success-settlement + .cancellation-admin__success-settlement {
  margin-top: 8px;
}

.cancellation-admin__success-settlement i {
  margin-top: 2px;
  color: #16a34a;
  flex-shrink: 0;
}

.cancellation-admin__success-settlement.is-money {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.cancellation-admin__success-settlement.is-money i {
  color: #2563eb;
}

.cancellation-admin__success-settlement.is-warning {
  border-color: #fde68a;
  background: #fffbeb;
}

.cancellation-admin__success-settlement.is-warning i {
  color: #d97706;
}

.cancellation-admin__success-settlement-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.cancellation-admin__success-settlement-copy strong {
  font-size: 0.92rem;
  font-weight: 800;
}

.cancellation-admin__success-settlement-copy span {
  color: #475569;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.45;
}

@keyframes cancellation-admin-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Desktop-only: match Members/Trials width and fit table without horizontal scroll. */
@media (min-width: 992px) {
  .cancellation-admin .cancellation-admin__header-wrap.container,
  .cancellation-admin .cancellation-admin__body.container {
    max-width: 1540px;
  }

  .cancellation-admin__table-scroll {
    overflow: visible;
  }

  .cancellation-admin__table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }

  /* Percentages sum to 100% so the table fills edge-to-edge with no trailing gap. */
  .cancellation-admin__col--student {
    width: 19%;
  }

  .cancellation-admin__col--class {
    width: 20%;
  }

  .cancellation-admin__col--subgroup {
    width: 9%;
  }

  .cancellation-admin__col--reason {
    width: 10%;
  }

  .cancellation-admin__col--requested {
    width: 8%;
  }

  .cancellation-admin__col--subscriptions {
    width: 6%;
  }

  .cancellation-admin__col--status {
    width: 7%;
  }

  .cancellation-admin__col--rating {
    width: 10%;
  }

  .cancellation-admin__col--comments {
    width: 11%;
  }

  .cancellation-admin__table thead th.is-sticky,
  .cancellation-admin__table-row td.is-sticky {
    width: 19%;
    min-width: 0;
    max-width: none;
  }

  .cancellation-admin__table thead th,
  .cancellation-admin__table-row td {
    vertical-align: middle;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  /* Headers: wrap on spaces only, never mid-word. */
  .cancellation-admin__table thead th {
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    line-height: 1.2;
    letter-spacing: 0.04em;
  }

  .cancellation-admin__student-name,
  .cancellation-admin__student-parent {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
  }

  /* Longer text columns: wrap cleanly inside the cell. */
  .cancellation-admin__class-cell,
  .cancellation-admin__class-name,
  .cancellation-admin__subgroup-cell,
  .cancellation-admin__reason-cell {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    line-height: 1.35;
  }

  .cancellation-admin__sub-pill.is-subgroup,
  .cancellation-admin__reason-pill {
    display: inline-flex;
    white-space: normal;
    height: auto;
    max-width: 100%;
    line-height: 1.3;
    text-align: left;
    justify-content: flex-start;
    overflow-wrap: break-word;
    word-break: normal;
  }

  /* Short badge columns: stay on one line and ellipsis if needed. */
  .cancellation-admin__subscription-pill,
  .cancellation-admin__status-pill {
    white-space: nowrap;
    height: auto;
    max-width: 100%;
    line-height: 1.3;
    text-align: center;
    justify-content: center;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .cancellation-admin__date-cell {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    line-height: 1.35;
  }

  .cancellation-admin__rating-cell {
    overflow: hidden;
  }

  .cancellation-admin__rating-stars {
    display: inline-flex;
    flex-wrap: nowrap;
    max-width: 100%;
    gap: 2px;
    font-size: 0.78rem;
    overflow: hidden;
  }

  /* Comments stay a one-line preview; full text on hover above the text. */
  .cancellation-admin__comments-cell {
    position: relative;
    z-index: 1;
    background: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
    overflow-wrap: normal;
  }

  .cancellation-admin__comments-tip {
    position: relative;
    display: inline;
    cursor: help;
  }

  .cancellation-admin__comments-cell:has(.cancellation-admin__comments-tip:hover),
  .cancellation-admin__comments-cell:has(.cancellation-admin__comments-tip:focus-visible) {
    z-index: 30;
    overflow: visible;
  }

  .cancellation-admin__table-row:has(.cancellation-admin__comments-tip:hover),
  .cancellation-admin__table-row:has(.cancellation-admin__comments-tip:focus-visible) {
    position: relative;
    z-index: 30;
  }

  .cancellation-admin__comments-tip[data-tooltip]:hover::after,
  .cancellation-admin__comments-tip[data-tooltip]:focus-visible::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%);
    width: max-content;
    max-width: min(320px, 40vw);
    padding: 10px 12px;
    border-radius: 12px;
    background: #1e293b;
    color: #fff;
    font-size: 0.78rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.4;
    white-space: pre-wrap;
    text-align: left;
    letter-spacing: normal;
    text-transform: none;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
    pointer-events: none;
    z-index: 40;
  }

  .cancellation-admin__comments-tip[data-tooltip]:hover::before,
  .cancellation-admin__comments-tip[data-tooltip]:focus-visible::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: calc(100% + 2px);
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #1e293b;
    pointer-events: none;
    z-index: 41;
  }
}

.cancellation-admin__primary-btn,
.cancellation-admin__secondary-btn {
  border-radius: 12px;
  min-height: 38px;
  padding: 8px 14px;
  font-size: 0.8rem;
  font-weight: 800;
}

.cancellation-admin__primary-btn {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.cancellation-admin__primary-btn:disabled {
  opacity: 0.45;
}

.cancellation-admin__secondary-btn {
  border: 1px solid #dfe5ef;
  background: #fff;
  color: #475569;
}

.cancellation-admin__empty-state {
  padding: 22px 16px;
  color: #64748b;
  font-size: 0.84rem;
  text-align: center;
}

@media (max-width: 991.98px) {
  .cancellation-admin__insights {
    grid-template-columns: 1fr;
  }
  .cancellation-admin__accept-grid {
    grid-template-columns: 1fr;
  }
  .cancellation-admin__filters-grid {
    grid-template-columns: 1fr;
  }
  .cancellation-admin__mobile-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
  }
  .cancellation-admin__mobile-icon-btn {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid #dbe3f1;
    background: #fff;
    color: #1e2a4a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  }
  .cancellation-admin__mobile-icon-btn.is-active {
    border-color: rgba(var(--bs-primary-rgb), 0.28);
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-primary);
  }
  .cancellation-admin__mobile-sheet-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1090;
    border: 0;
    background: rgba(15, 23, 42, 0.36);
  }
  .cancellation-admin__mobile-sheet-head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    touch-action: none;
    user-select: none;
  }
  .cancellation-admin__mobile-sheet-title {
    color: #1e2a4a;
    font-size: 1rem;
    font-weight: 800;
  }
  .cancellation-admin__mobile-sheet-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 12px;
    background: #f8fafc;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .cancellation-admin__mobile-sheet-handle {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 5px;
    border-radius: 999px;
    background: #dbe3f1;
  }
  .cancellation-admin__header-row,
  .cancellation-admin__toolbar,
  .cancellation-admin__toolbar-main,
  .cancellation-admin__table-controls,
  .cancellation-admin__table-meta,
  .cancellation-admin__reject-success,
  .cancellation-admin__reject-success-meta,
  .cancellation-admin__accept-head,
  .cancellation-admin__accept-actions,
  .cancellation-admin__reject-banner {
    align-items: stretch;
    flex-direction: column;
  }
  .cancellation-admin__search-wrap {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    min-height: 0;
  }
  .cancellation-admin__toolbar-main {
    gap: 10px;
    flex-wrap: nowrap;
  }
  .cancellation-admin__status-tabs {
    width: 100%;
    overflow: hidden;
  }
  .cancellation-admin__status-tab {
    min-width: 0;
    padding-inline: 10px;
  }
  .cancellation-admin__toolbar-actions,
  .cancellation-admin__toolbar-dropdown,
  .cancellation-admin__toolbar-btn {
    width: 100%;
  }
  .cancellation-admin__toolbar-actions {
    display: none;
  }
  .cancellation-admin__panel {
    left: 0;
    right: 0;
    width: auto;
  }
  .cancellation-admin__filters-foot {
    justify-content: stretch;
  }
  .cancellation-admin__filters-reset {
    width: 100%;
  }
  .cancellation-admin__reject-actions,
  .cancellation-admin__reject-cancel,
  .cancellation-admin__reject-confirm {
    width: 100%;
  }
  .cancellation-admin__table-row td.is-sticky {
    min-width: 240px;
  }
  .cancellation-admin__insights {
    display: none;
  }
  .cancellation-admin__insights.is-mobile-open {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 12px 12px calc(10px + env(safe-area-inset-bottom));
    background: #fff;
    border-radius: 26px 26px 0 0;
    box-shadow: 0 -20px 60px rgba(15, 23, 42, 0.18);
    max-height: min(72vh, 600px);
    overflow: hidden;
    will-change: transform;
  }
  .cancellation-admin__filters-card {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    margin: 0;
    border-radius: 26px 26px 0 0;
    padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
    max-height: min(82vh, 760px);
    overflow-y: auto;
    will-change: transform;
  }
  .cancellation-admin__mobile-list {
    display: grid;
    gap: 14px;
  }
  .cancellation-admin__desktop-table,
  .cancellation-admin__columns-wrap {
    display: none;
  }
  .cancellation-admin__table-footer {
    padding-top: 8px;
  }
  .cancellation-admin__mobile-card {
    border: 1px solid #e6edf8;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.06);
    padding: 16px;
  }
  .cancellation-admin__mobile-card-top,
  .cancellation-admin__mobile-meta-row,
  .cancellation-admin__mobile-actions-row,
  .cancellation-admin__mobile-foot-row,
  .cancellation-admin__mobile-reject-confirm-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .cancellation-admin__mobile-card-top {
    align-items: flex-start;
  }
  .cancellation-admin__mobile-student-name {
    color: #1e2a4a;
    font-size: 1.1rem;
    font-weight: 800;
    text-decoration: none;
  }
  .cancellation-admin__mobile-class-line {
    margin-top: 4px;
    color: #64748b;
    font-size: 0.92rem;
    font-weight: 600;
  }
  .cancellation-admin__mobile-pill-row {
    margin-top: 12px;
  }
  .cancellation-admin__mobile-meta-row {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #eef2f7;
    flex-wrap: wrap;
  }
  .cancellation-admin__mobile-parent {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 600;
  }
  .cancellation-admin__mobile-actions-row {
    margin-top: 14px;
  }
  .cancellation-admin__mobile-accept,
  .cancellation-admin__mobile-reject {
    flex: 1 1 0;
    min-height: 46px;
    border-radius: 14px;
    font-size: 0.95rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }
  .cancellation-admin__mobile-accept {
    border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
    background: var(--bs-primary);
    color: #fff;
  }
  .cancellation-admin__mobile-reject {
    border: 1px solid #fecaca;
    background: #fff;
    color: #dc2626;
  }
  .cancellation-admin__mobile-foot-row {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #eef2f7;
    flex-wrap: wrap;
  }
  .cancellation-admin__mobile-date {
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
  }
  .cancellation-admin__mobile-reject-confirm {
    margin-top: 12px;
    border: 1px solid #fecaca;
    border-radius: 16px;
    background: #fef2f2;
    padding: 12px;
  }
  .cancellation-admin__mobile-reject-copy {
    color: #991b1b;
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.45;
  }
  .cancellation-admin__mobile-reject-confirm-actions {
    margin-top: 12px;
    width: 100%;
    flex-wrap: wrap;
  }
  .cancellation-admin__mobile-reject-confirm {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
  }
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-reason-field,
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-reason-field textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-reason-field textarea {
    min-width: 0;
  }
  .cancellation-admin__mobile-reject-confirm-actions .cancellation-admin__reject-cancel,
  .cancellation-admin__mobile-reject-confirm-actions .cancellation-admin__reject-confirm {
    flex: 1 1 0;
    min-width: 0;
  }
}
@media (max-width: 575.98px) {
  .cancellation-admin {
    padding-bottom: 16px;
  }
  .cancellation-admin__body {
    flex: 0 0 auto;
    padding-top: 10px;
  }
  .cancellation-admin__header-wrap {
    padding-top: 0;
    padding-bottom: 0;
  }
  .cancellation-admin__header-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: nowrap;
  }
  .cancellation-admin__header-row > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
  }
  .cancellation-admin__header-row h4 {
    margin-bottom: 2px;
    font-size: 1rem;
    line-height: 1.15;
  }
  .cancellation-admin__header-row p {
    display: none;
  }
  .cancellation-admin__mobile-summary {
    display: block;
    margin-top: 0;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
  }
  .cancellation-admin__count-pills,
  .cancellation-admin__insights:not(.is-mobile-open) {
    display: none;
  }
  .cancellation-admin__count-pill {
    padding: 7px 12px;
    font-size: 0.75rem;
  }
  .cancellation-admin__insight-card,
  .cancellation-admin__table-card {
    border-radius: 18px;
  }
  .cancellation-admin__insight-card {
    padding: 10px;
  }
  .cancellation-admin__insight-title {
    font-size: 0.84rem;
  }
  .cancellation-admin__rating-score {
    font-size: 1.35rem;
  }
  .cancellation-admin__search-input,
  .cancellation-admin__toolbar-btn {
    min-height: 36px;
  }
  .cancellation-admin__search-wrap {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    min-height: auto;
    margin: 0;
  }
  .cancellation-admin__toolbar-main,
  .cancellation-admin__status-tabs,
  .cancellation-admin__table-card,
  .cancellation-admin__table-controls,
  .cancellation-admin__table-meta {
    flex: 0 0 auto;
  }
  .cancellation-admin__toolbar {
    margin-bottom: 10px;
    gap: 8px;
  }
  .cancellation-admin__toolbar-main {
    gap: 8px;
    align-content: flex-start;
  }
  .cancellation-admin__search-wrap i {
    left: 10px;
    top: 50%;
    font-size: 0.72rem;
  }
  .cancellation-admin__search-input {
    padding-left: 32px;
    padding-right: 12px;
    font-size: 0.76rem;
  }
  .cancellation-admin__status-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 0;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
  }
  .cancellation-admin__status-tab {
    min-width: 0;
    border-radius: 0;
    border-right: 1px solid #e5e7eb;
    padding: 8px 4px;
    font-size: 0.7rem;
    background: transparent;
  }
  .cancellation-admin__status-tab.is-active {
    background: var(--bs-primary);
    color: #fff;
    box-shadow: none;
  }
  .cancellation-admin__mobile-card .members-table-row-check {
    width: 18px;
    height: 18px;
    border-radius: 7px;
    border: 1.5px solid #cbd5e1;
    background: #fff;
    color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .cancellation-admin__mobile-card .members-table-row-check i {
    font-size: 0.65rem;
  }
  .cancellation-admin__mobile-card .members-table-row-check.is-checked {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
  }
  .cancellation-admin__mobile-actions {
    display: inline-flex;
    flex-direction: row;
    gap: 6px;
    flex: 0 0 auto;
    margin-left: 0;
    align-self: flex-start;
  }
  .cancellation-admin__mobile-icon-btn {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    box-shadow: none;
  }
  .cancellation-admin__filters-card {
    padding: 14px 12px calc(14px + env(safe-area-inset-bottom));
  }
  .cancellation-admin__mobile-sheet-head {
    gap: 8px;
    margin-bottom: 10px;
  }
  .cancellation-admin__mobile-sheet-title {
    font-size: 0.9rem;
  }
  .cancellation-admin__mobile-sheet-close {
    width: 32px;
    height: 32px;
    border-radius: 10px;
  }
  .members-filter-section {
    margin-bottom: 0.9rem;
  }
  .members-filter-chip-list {
    gap: 0.45rem;
  }
  .members-filter-chip-list .filter-chip {
    min-height: 34px;
    padding: 7px 12px;
    font-size: 0.76rem;
    border-radius: 12px;
  }
  .members-filter-chip-list-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.4rem;
    flex-wrap: nowrap;
  }
  .members-filter-chip-list-days .filter-chip.chip-day {
    min-width: 0;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    justify-content: center;
  }
  .members-filter-accordion {
    border-radius: 14px;
  }
  .members-filter-accordion-header {
    padding: 10px 12px;
  }
  .members-filter-accordion-content {
    padding: 6px 0;
  }
  .members-filter-accordion-item {
    padding: 8px 12px 8px 42px;
  }
  .members-filter-class-name {
    font-size: 0.84rem;
  }
  .members-filter-class-count,
  .members-filter-accordion-summary {
    font-size: 0.72rem;
  }
  .cancellation-admin__table-row td,
  .cancellation-admin__table thead th {
    padding: 12px;
  }
  .cancellation-admin__student-name {
    font-size: 0.92rem;
  }
  .cancellation-admin__student-parent,
  .cancellation-admin__comments-cell,
  .cancellation-admin__sub-pill,
  .cancellation-admin__reason-pill,
  .cancellation-admin__subscription-pill,
  .cancellation-admin__status-pill {
    font-size: 0.74rem;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__mobile-sheet-head {
    margin-bottom: 6px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__mobile-sheet-title {
    font-size: 0.86rem;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__mobile-sheet-close {
    width: 30px;
    height: 30px;
    border-radius: 9px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-head {
    gap: 8px;
    margin-bottom: 6px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-icon {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    font-size: 0.9rem;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__scope-pill {
    min-height: 30px;
    padding: 4px 10px;
    font-size: 0.66rem;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-row + .cancellation-admin__reason-row {
    margin-top: 4px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-rank,
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-name,
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-count,
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__rating-meta,
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-foot {
    font-size: 0.66rem;
    line-height: 1.2;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-bar {
    margin-top: 4px;
    height: 5px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__stars i {
    font-size: 0.8rem;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__rating-copy {
    gap: 2px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-meta {
    gap: 6px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__rating-summary {
    gap: 8px;
  }
  .cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-foot {
    margin-top: 6px;
  }
  .cancellation-admin__mobile-list {
    gap: 10px;
  }
  .cancellation-admin__table-card {
    margin-top: 0;
    border-radius: 18px;
  }
  .cancellation-admin__table-controls {
    padding: 10px 12px;
    gap: 8px;
  }
  .cancellation-admin__table-meta {
    padding: 0 12px 10px;
    gap: 6px;
  }
  .cancellation-admin__table-footer {
    padding-top: 0;
  }
  .cancellation-admin__mobile-card {
    border-radius: 18px;
    padding: 12px;
  }
  .cancellation-admin__mobile-student-name {
    font-size: 0.88rem;
  }
  .cancellation-admin__mobile-class-line {
    margin-top: 2px;
    font-size: 0.76rem;
  }
  .cancellation-admin__mobile-pill-row {
    margin-top: 10px;
  }
  .cancellation-admin__mobile-meta-row {
    margin-top: 10px;
    padding-top: 10px;
  }
  .cancellation-admin__mobile-parent {
    gap: 6px;
    font-size: 0.74rem;
  }
  .cancellation-admin__mobile-actions-row {
    margin-top: 10px;
  }
  .cancellation-admin__mobile-accept,
  .cancellation-admin__mobile-reject {
    min-height: 38px;
    border-radius: 12px;
    font-size: 0.8rem;
    gap: 6px;
  }
  .cancellation-admin__mobile-foot-row {
    margin-top: 10px;
    padding-top: 10px;
  }
  .cancellation-admin__mobile-date {
    font-size: 0.72rem;
  }
  .cancellation-admin__mobile-reject-confirm {
    margin-top: 10px;
    border-color: #fca5a5;
    border-radius: 14px;
    background: #fff5f5;
    padding: 12px;
  }
  .cancellation-admin__mobile-reject-copy {
    color: #b91c1c;
    font-size: 0.78rem;
    line-height: 1.5;
  }
  .cancellation-admin__mobile-reject-confirm-actions {
    margin-top: 10px;
    gap: 10px;
  }
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-cancel,
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-confirm {
    min-height: 36px;
    border-radius: 12px;
    padding: 7px 10px;
    font-size: 0.76rem;
  }
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-confirm {
    background: #fb7185;
    border-color: #fb7185;
  }
  .cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-confirm:disabled {
    opacity: 1;
    background: #fb7185;
    border-color: #fb7185;
    color: #fff;
  }
  .cancellation-admin__reject-success {
    margin-bottom: 10px;
    padding: 12px;
    border-radius: 14px;
    background: #fff4f4;
    border-color: #fcb7b7;
    position: relative;
    padding-right: 40px;
  }
  .cancellation-admin__reject-success-icon {
    width: 30px;
    height: 30px;
    background: #ffe4e6;
    color: #ef4444;
  }
  .cancellation-admin__reject-success-title {
    margin-bottom: 4px;
    color: #dc2626;
    font-size: 0.82rem;
  }
  .cancellation-admin__reject-success-main {
    gap: 0;
  }
  .cancellation-admin__reject-success-meta {
    gap: 4px;
  }
  .cancellation-admin__reject-success-item span {
    display: none;
  }
  .cancellation-admin__reject-success-item strong {
    color: #b91c1c;
    font-size: 0.76rem;
    font-weight: 600;
  }
  .cancellation-admin__reject-success-item.is-subscriptions strong {
    color: #ef4444;
  }
  .cancellation-admin__reject-success-chips {
    gap: 6px;
  }
  .cancellation-admin__reject-success-chip {
    min-height: 24px;
    padding: 4px 8px;
    font-size: 0.68rem;
  }
  .cancellation-admin__reject-success-close {
    width: 24px;
    height: 24px;
    color: #ef4444;
    position: absolute;
    top: 10px;
    right: 10px;
  }
  .cancellation-admin__modal-backdrop {
    align-items: flex-end;
    justify-content: stretch;
    padding: 0;
    background: rgba(15, 23, 42, 0.36);
  }
  .cancellation-admin__modal {
    width: 100%;
    max-width: none;
    max-height: min(88vh, 760px);
    border-radius: 22px 22px 0 0;
    margin: 0;
    box-shadow: 0 -18px 48px rgba(15, 23, 42, 0.18);
  }
  .cancellation-admin__modal-head {
    gap: 10px;
    padding: 14px 14px 12px;
  }
  .cancellation-admin__modal-kicker {
    font-size: 0.72rem;
  }
  .cancellation-admin__modal-student {
    margin-top: 2px;
    font-size: 0.92rem;
  }
  .cancellation-admin__modal-class {
    font-size: 0.74rem;
  }
  .cancellation-admin__modal-close {
    width: 32px;
    height: 32px;
    border-radius: 10px;
  }
  .cancellation-admin__modal-body {
    padding: 12px 14px 14px;
  }
  .cancellation-admin__modal-section + .cancellation-admin__modal-section {
    margin-top: 12px;
  }
  .cancellation-admin__modal-warning {
    gap: 8px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 0.76rem;
  }
  .cancellation-admin__modal-label {
    margin-bottom: 6px;
    font-size: 0.7rem;
  }
  .cancellation-admin__modal-help {
    margin-top: 6px;
    font-size: 0.72rem;
  }
  .cancellation-admin__date-trigger {
    min-height: 34px;
    border-radius: 12px;
    padding: 7px 10px;
    font-size: 0.76rem;
  }
  .cancellation-admin__date-menu {
    margin-top: 6px;
    border-radius: 12px;
    max-height: 230px;
  }
  .cancellation-admin__date-option {
    padding: 10px 12px;
    gap: 10px;
    font-size: 0.78rem;
  }
  .cancellation-admin__date-badge {
    min-height: 18px;
    padding: 2px 6px;
    font-size: 0.58rem;
  }
  .cancellation-admin__modal-subscriptions {
    gap: 8px;
  }
  .cancellation-admin__modal-subscription-toggle {
    margin-bottom: 8px;
    padding: 9px 12px;
    gap: 10px;
    border-radius: 12px;
  }
  .cancellation-admin__modal-subscription-toggle-copy strong {
    font-size: 0.82rem;
  }
  .cancellation-admin__modal-subscription-toggle-copy small {
    font-size: 0.72rem;
  }
  .cancellation-admin__modal-subscription {
    border-radius: 12px;
    padding: 10px 12px;
    gap: 10px;
  }
  .cancellation-admin__modal-subscription-copy strong {
    font-size: 0.82rem;
  }
  .cancellation-admin__modal-subscription-copy small,
  .cancellation-admin__modal-subscription-state {
    font-size: 0.72rem;
  }
  .cancellation-admin__modal-empty {
    gap: 8px;
    padding: 9px 10px;
    border-radius: 12px;
    font-size: 0.74rem;
  }
  .cancellation-admin__modal-actions {
    gap: 8px;
    padding: 0 12px 12px;
  }
  .cancellation-admin__modal-primary,
  .cancellation-admin__modal-secondary {
    flex: 1 1 0;
    min-height: 34px;
    border-radius: 10px;
    padding: 7px 10px;
    font-size: 0.72rem;
    gap: 5px;
  }
  .cancellation-admin__apply-progress-card {
    border-radius: 14px;
    padding: 12px;
  }
  .cancellation-admin__apply-progress-head {
    gap: 10px;
  }
  .cancellation-admin__apply-progress-copy {
    gap: 10px;
  }
  .cancellation-admin__apply-progress-title {
    font-size: 0.82rem;
  }
  .cancellation-admin__apply-progress-meta,
  .cancellation-admin__apply-progress-percent {
    font-size: 0.72rem;
  }
  .cancellation-admin__apply-progress-bar {
    margin-top: 10px;
    height: 6px;
  }
  .cancellation-admin__apply-list {
    gap: 8px;
    margin-top: 12px;
  }
  .cancellation-admin__apply-row {
    gap: 10px;
    padding: 12px;
    border-radius: 12px;
  }
  .cancellation-admin__apply-row-main {
    gap: 10px;
  }
  .cancellation-admin__apply-row-icon {
    width: 24px;
    height: 24px;
    font-size: 0.72rem;
  }
  .cancellation-admin__apply-row-title {
    font-size: 0.8rem;
  }
  .cancellation-admin__apply-row-meta,
  .cancellation-admin__apply-row-status {
    font-size: 0.7rem;
  }
  .cancellation-admin__modal-body--success {
    padding-top: 2px;
  }
  .cancellation-admin__success-icon {
    width: 58px;
    height: 58px;
    margin: 4px auto 12px;
    font-size: 1.5rem;
  }
  .cancellation-admin__success-title {
    font-size: 1.1rem;
  }
  .cancellation-admin__success-copy {
    margin: 8px auto 14px;
    font-size: 0.78rem;
    line-height: 1.45;
  }
  .cancellation-admin__success-card {
    border-radius: 12px;
    padding: 12px;
  }
  .cancellation-admin__success-card-title {
    font-size: 0.7rem;
  }
  .cancellation-admin__success-row {
    gap: 8px;
    font-size: 0.8rem;
  }
  .cancellation-admin__filters-foot {
    justify-content: stretch;
    gap: 10px;
  }
  .cancellation-admin__filters-reset,
  .cancellation-admin__filters-apply {
    width: 100%;
    min-height: 40px;
    font-size: 0.8rem;
  }
  .cancellation-admin__filters-apply {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .cancellation-admin__day-label-full {
    display: none;
  }
  .cancellation-admin__day-label-short {
    display: inline;
  }
}
.waiting-list-admin {
  background: linear-gradient(180deg, #f6f7fb 0%, #eef2f7 100%);
  flex: 1 0 auto;
}

.waiting-list-admin__shell {
  max-width: 1280px;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.waiting-list-admin__topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.35rem;
}

.waiting-list-admin__topbar > div:first-child > .text-muted.small.mb-0 {
  display: none;
}

.waiting-list-admin__title {
  margin: 0 0 0.35rem;
  font-size: 2rem;
  font-weight: 800;
  color: var(--bs-secondary);
}

.waiting-list-admin__subtitle {
  margin: 0;
  color: #8390ab;
  font-size: 0.9rem;
}

.waiting-list-admin__header-actions,
.waiting-list-admin__table-tools,
.waiting-list-admin__row-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.waiting-list-admin__primary-btn,
.waiting-list-admin__secondary-btn,
.waiting-list-admin__columns-btn {
  min-height: 42px;
  border-radius: 14px;
  padding: 0 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  font-weight: 700;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.waiting-list-admin__primary-btn {
  border: 1px solid transparent;
  background: var(--bs-primary);
  color: #fff;
}

.waiting-list-admin__secondary-btn,
.waiting-list-admin__columns-btn {
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.65);
  background: #fff;
  color: var(--bs-primary);
}

.waiting-list-admin__secondary-btn.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.waiting-list-admin__columns-btn.is-active,
.waiting-list-admin__columns-btn.is-open {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.waiting-list-admin__primary-btn:hover,
.waiting-list-admin__secondary-btn:hover,
.waiting-list-admin__columns-btn:hover {
  transform: translateY(-1px);
}

.waiting-list-admin__button-count {
  min-width: 20px;
  height: 20px;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
}

.waiting-list-admin__secondary-btn.is-active .waiting-list-admin__button-count {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.waiting-list-admin__columns-btn.is-active .waiting-list-admin__button-count,
.waiting-list-admin__columns-btn.is-open .waiting-list-admin__button-count {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.waiting-list-admin__stats {
  margin-bottom: 1rem;
}

.waiting-list-admin__stat-card {
  height: 100%;
  border-radius: 20px;
  border: 1px solid #edf1f7;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.05);
}

.waiting-list-admin__stat-card .card-body {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.15rem;
}

.waiting-list-admin__stat-card .text-muted.small.text-uppercase {
  margin-bottom: 0.2rem;
  color: #8a97b6 !important;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.waiting-list-admin__stat-card .h4 {
  margin-bottom: 0.1rem !important;
  font-weight: 800;
  color: var(--bs-secondary);
}

.waiting-list-admin__stat-value-row {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  flex-wrap: nowrap;
}

.waiting-list-admin__stat-value-row .text-muted.small {
  margin: 0;
  white-space: nowrap;
}

.waiting-list-admin__stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  border: 1px solid transparent;
}

.waiting-list-admin__stat-icon.is-total {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border-color: rgba(var(--bs-primary-rgb), 0.22);
  color: var(--bs-primary);
}

.waiting-list-admin__stat-icon.is-pending {
  background: #fff7ed;
  border-color: #fdba74;
  color: #f59e0b;
}

.waiting-list-admin__stat-icon.is-full {
  background: #fef2f2;
  border-color: #fca5a5;
  color: #ef4444;
}

.waiting-list-admin__stat-icon.is-space {
  background: #ecfdf5;
  border-color: #86efac;
  color: #22c55e;
}

.waiting-list-admin__table-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1.2rem;
  background: #fff;
  border: 1px solid #e8edf5;
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
  margin-top: 1rem;
}

.waiting-list-admin__view-switcher {
  background: #eef2f7;
  padding: 0.28rem;
  border-radius: 14px;
}

.waiting-list-admin__view-switcher .view-btn {
  border-radius: 11px;
  min-height: 38px;
  padding: 0 1rem;
}

.waiting-list-admin__view-switcher .view-btn.active,
.waiting-list-admin__view-switcher .view-btn.is-active {
  background: #fff;
  color: var(--bs-secondary);
}

.waiting-list-admin__view-switcher .view-btn.inactive {
  color: #8390ab;
}

.waiting-list-admin__table-card {
  position: relative;
  border: 1px solid #e8edf5;
  border-top: 0;
  border-radius: 0 0 22px 22px;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05);
  overflow: visible;
}

.waiting-list-admin__columns-panel {
  top: 1rem;
  right: 1rem;
}

.trials-admin__group-picker {
  display: grid;
  gap: 0.75rem;
}

.trials-admin__group-picker-label {
  color: #8fa0bb;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.trials-admin__group-picker-select {
  min-height: 46px;
  border-radius: 14px;
  border-color: #dbe3ef;
}

.trials-admin__group-picker-back {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1rem;
}

.modal-dialog.trials-add-trial-modal {
  max-width: 950px;
  width: min(950px, 100vw - 1.5rem);
  max-height: min(100vh - 4.5rem, 920px);
  margin: 1rem auto;
}

.modal-dialog.trials-add-trial-modal .modal-content {
  background: #eef2f7;
  border: 1px solid #dfe7f2;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.12);
  max-height: inherit;
  display: flex;
  flex-direction: column;
}

.modal-dialog.trials-add-trial-modal .modal-body {
  background: transparent;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.modal-dialog.trials-add-trial-modal .trials-add-flow {
  padding: 1rem 1.1rem 1.2rem;
  gap: 0.85rem;
}

.modal-dialog.trials-add-trial-modal .trials-add-flow__modal-head {
  padding: 0 0 0.35rem;
}

.modal-dialog.trials-add-trial-modal .trials-add-flow__section-label {
  padding-left: 0.1rem;
}

.modal-dialog.trials-add-trial-modal .trials-add-flow__footer {
  padding: 0.85rem 0 0;
  margin-top: 0.15rem;
  border-top: 1px solid #dfe7f2;
}

.modal-dialog.trials-add-trial-modal .waiting-list-picker-modal__body.is-success {
  padding-left: 0;
  padding-right: 0;
}

.modal-dialog.trials-add-trial-modal .waiting-list-picker-modal__footer {
  padding-left: 1.1rem;
  padding-right: 1.1rem;
  padding-bottom: 0.15rem;
}

.members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell {
  background: #eef2f7;
  border: 1px solid #dfe7f2;
  border-radius: 18px;
  padding: 1rem 1.1rem 1.2rem;
  gap: 0.85rem;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset;
}

.members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .trials-add-flow__modal-head {
  padding: 0 0 0.35rem;
}

.members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .trials-add-flow__section-label {
  padding-left: 0.1rem;
}

.members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .trials-add-flow__footer {
  padding: 0.85rem 0 0;
  margin-top: 0.15rem;
  border-top: 1px solid #dfe7f2;
}

.members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .waiting-list-picker-modal__body.is-success {
  padding-left: 0;
  padding-right: 0;
}

.members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .waiting-list-picker-modal__footer {
  padding-left: 1.1rem;
  padding-right: 1.1rem;
  padding-bottom: 0.15rem;
}

.trials-add-flow {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  min-height: 0;
  min-width: 0;
  flex: 1 1 auto;
}

.trials-add-flow__body-scroll {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding-right: 0.15rem;
}

.trials-add-flow > .waiting-list-picker-modal__footer {
  flex-shrink: 0;
}

.trials-add-flow__student-pill-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  max-width: 100%;
}

.trials-add-flow__student-pill-wrap .waiting-list-picker-modal__selection-warning {
  max-width: 14rem;
  line-height: 1.25;
}

.members-modal-body:has(> .trials-add-flow) {
  display: flex;
  flex-direction: column;
  max-height: min(100vh - 5rem, 920px);
  overflow: hidden;
}

.members-modal-content:has(.trials-add-flow),
.members-modal-body:has(> .trials-add-flow),
.modal-dialog.trials-add-trial-modal .modal-content,
.modal-dialog.trials-add-trial-modal .modal-body {
  overflow: visible;
}

.members-modal-body:has(> .trials-add-flow) > .trials-add-flow {
  flex: 1 1 auto;
  min-height: 0;
}

.trials-add-flow__modal-head {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 1rem 1rem 0;
}

.trials-add-flow__modal-head-main {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  min-width: 0;
}

.trials-add-flow__section-label {
  color: #8fa0bb;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding-left: 1rem;
}

.trials-add-flow__student-pill:disabled,
.trials-add-flow__selected-pill:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.trials-add-flow__panel {
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  padding: 0.85rem 0.9rem;
  display: grid;
  gap: 0.65rem;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset, 0 1px 2px rgba(15, 23, 42, 0.04);
}

.trials-add-flow__search {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 42px;
  padding: 0 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  color: #94a3b8;
}

.trials-add-flow__search input {
  flex: 1 1 auto;
  border: 0;
  outline: 0;
  background: transparent;
  color: #22345c;
  font-size: 0.88rem;
}

.trials-add-flow__count {
  color: #8fa0bb;
  font-size: 0.82rem;
  font-weight: 800;
}

.trials-add-flow__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.trials-add-flow__selected-count {
  color: rgba(var(--bs-primary-rgb), 0.9);
  font-size: 0.82rem;
  font-weight: 800;
}

.trials-add-flow__table-head,
.trials-add-flow__student-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.75fr) minmax(0, 1.5fr) minmax(0, 1.15fr);
  gap: 0.9rem;
  align-items: center;
}

.trials-add-flow__table-head {
  color: #8fa0bb;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  padding: 0 0.75rem;
}

.trials-add-flow__student-list {
  display: grid;
  gap: 0.5rem;
  max-height: 260px;
  overflow-y: auto;
}

.trials-add-flow__student-row {
  width: 100%;
  padding: 0.62rem 0.75rem;
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #fff;
  color: #64748b;
  text-align: left;
}

.trials-add-flow__student-col--stack {
  flex-wrap: wrap;
  gap: 0.45rem;
}

.trials-add-flow__student-row.is-selected {
  border: 2px solid var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.14);
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.06), 0 6px 18px rgba(var(--bs-primary-rgb), 0.12);
  color: #334155;
}

.trials-add-flow__student-row.is-selected .trials-add-flow__student-name {
  color: var(--bs-secondary);
}

.trials-add-flow__student-row.is-selected .trials-add-flow__student-pill {
  background: #fff;
  border-color: rgba(var(--bs-primary-rgb), 0.35);
}

.trials-add-flow__selected-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 1.8rem;
  padding: 0 0.75rem;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 800;
}

.trials-add-flow__student-pill {
  min-height: 1.8rem;
  padding: 0 0.6rem;
  border-radius: 999px;
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #22345c;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8rem;
  font-weight: 700;
}

.trials-add-flow__student-pill .members-table-avatar,
.trials-add-flow__student-pill .members-table-avatar.is-female,
.trials-add-flow__student-pill .members-table-avatar.is-male {
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  font-size: 0.62rem;
}

.trials-add-flow__student-col {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  font-size: 0.84rem;
  font-weight: 700;
}

.trials-add-flow__student-col--email {
  overflow-wrap: anywhere;
  word-break: break-word;
  font-weight: 600;
  line-height: 1.35;
}

.trials-add-flow__student-picker-desktop {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.trials-add-flow__mobile-student-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0.15rem 0.45rem;
  color: #8fa0bb;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.trials-add-flow__student-picker-mobile {
  min-width: 0;
  max-width: 100%;
}

.trials-add-flow__mobile-student-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  max-height: min(52vh, 380px);
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 0.2rem;
  scrollbar-width: thin;
}

.trials-add-flow__mobile-student-card {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 2px solid #e8edf5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
  padding: 0.75rem 0.55rem 0.75rem 0.75rem;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  text-align: left;
  font: inherit;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.trials-add-flow__mobile-student-card:hover:not(:disabled) {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
}

.trials-add-flow__mobile-student-card.is-selected {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.1);
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.08), 0 10px 22px rgba(var(--bs-primary-rgb), 0.12);
}

.trials-add-flow__mobile-student-card:disabled {
  opacity: 0.72;
  cursor: not-allowed;
  background: #f8fafc;
}

.trials-add-flow__mobile-student-card-main {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  flex: 1 1 auto;
}

.trials-add-flow__mobile-student-avatar.members-table-avatar,
.trials-add-flow__mobile-student-avatar.members-table-avatar.is-male,
.trials-add-flow__mobile-student-avatar.members-table-avatar.is-female {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  flex-shrink: 0;
  font-size: 0.78rem;
}

.trials-add-flow__mobile-student-card-copy {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.12rem;
}

.trials-add-flow__mobile-student-title-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 0.35rem;
  min-width: 0;
  width: 100%;
}

.trials-add-flow__mobile-student-name {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trials-add-flow__mobile-student-age {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
  flex-shrink: 0;
  white-space: nowrap;
}

.trials-add-flow__mobile-student-parent {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 700;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.trials-add-flow__mobile-student-contact {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.25;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.trials-add-flow__mobile-student-warning {
  margin-top: 0.15rem;
  white-space: normal;
  overflow-wrap: anywhere;
}

.trials-add-flow__mobile-student-card-action {
  flex: 0 0 auto;
  min-width: 0;
  max-width: 5.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 0.2rem;
  align-self: center;
}

.trials-add-flow__mobile-tap-hint {
  color: #94a3b8;
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.2;
  text-align: right;
  white-space: normal;
  max-width: 5.5rem;
}

.trials-add-flow__mobile-student-check {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}

.trials-add-flow__mobile-student-action-muted {
  color: #cbd5e1;
  font-size: 1rem;
  font-weight: 700;
}

.trials-add-flow__student-name {
  color: #22345c;
  font-size: 0.9rem;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.trials-add-flow__empty {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #eef2f7;
  border-radius: 12px;
  color: #94a3b8;
  font-size: 0.86rem;
  font-weight: 700;
  text-align: center;
  padding: 0 1rem;
}

.trials-add-flow__selected-summary {
  color: #64748b;
  font-size: 0.88rem;
  font-weight: 700;
}

.trials-add-flow__schedule-head,
.trials-add-flow__schedule-row {
  display: grid;
  grid-template-columns: 1fr 1.1fr 0.95fr;
  gap: 0.8rem;
  align-items: center;
}

.trials-add-flow__schedule-head {
  color: #8fa0bb;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  padding: 0 0.45rem;
}

.trials-add-flow__schedule-field {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
}

.trials-add-flow__schedule-mobile-label {
  color: #8fa0bb;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.2;
}

@media (min-width: 768px) {
  .trials-add-flow__schedule-field {
    display: contents;
  }
}
.trials-add-flow__schedule-list {
  display: grid;
  gap: 0.55rem;
}

.trials-add-flow__schedule-row {
  padding: 0.65rem 0.35rem 0 0.35rem;
  border-top: 1px solid #eef2f7;
}

.trials-add-flow__schedule-student {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
}

.trials-add-flow__schedule-student-name {
  color: var(--bs-secondary);
  font-size: 0.86rem;
  font-weight: 800;
}

.trials-add-flow__schedule-student-meta {
  color: #8fa0bb;
  font-size: 0.76rem;
  font-weight: 700;
}

.trials-add-flow__menu-wrap {
  position: relative;
}

.trials-add-flow__picker {
  width: 100%;
  min-height: 40px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  justify-content: space-between;
  text-align: left;
}

.trials-add-flow__picker:disabled {
  background: #f8fafc;
  color: #a3b0c6;
}

.trials-add-flow__picker.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
}

.trials-add-flow__picker-copy {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trials-add-flow__picker-time {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 800;
  flex-shrink: 0;
}

.trials-add-flow__capacity-pill {
  flex-shrink: 0;
  min-height: 22px;
  padding: 0 0.45rem;
  border-radius: 999px;
  border: 1px solid #a7f3d0;
  background: #ecfdf5;
  color: #0f766e;
  font-size: 0.74rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.trials-add-flow__menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  right: 0;
  z-index: 25;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 32px rgba(15, 23, 42, 0.14);
  max-height: 260px;
  overflow-y: auto;
}

.trials-add-flow__menu--dates {
  max-height: 230px;
}

.trials-add-flow__menu {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

.trials-add-flow__menu-wrap.is-open {
  z-index: 1200;
}

.trials-add-flow__menu-wrap.is-open > .trials-add-flow__menu {
  z-index: 1210;
}

.trials-add-flow__menu-group + .trials-add-flow__menu-group {
  border-top: 1px solid #eef2f7;
}

.trials-add-flow__menu-heading {
  width: 100%;
  border: 0;
  background: #fff;
  color: rgba(var(--bs-primary-rgb), 0.95);
  font-size: 0.82rem;
  font-weight: 800;
  padding: 0.75rem 0.85rem 0.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  text-align: left;
}

.trials-add-flow__menu-heading-chevron {
  flex-shrink: 0;
  font-size: 0.72rem;
  opacity: 0.85;
  transition: transform 0.2s ease;
}

.trials-add-flow__menu-group.is-expanded .trials-add-flow__menu-heading-chevron {
  transform: rotate(180deg);
}

.trials-add-flow__menu-group:not(.is-expanded) .trials-add-flow__menu-options {
  display: none;
}

.trials-add-flow__menu-options {
  display: grid;
}

.trials-add-flow__menu-option {
  width: 100%;
  border: 0;
  background: #fff;
  padding: 0.62rem 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  text-align: left;
}

.trials-add-flow__menu-option.is-active {
  background: rgba(var(--bs-primary-rgb), 0.05);
}

.trials-add-flow__menu-radio {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 1.5px solid #d5dfed;
  flex-shrink: 0;
}

.trials-add-flow__menu-option.is-active .trials-add-flow__menu-radio {
  border-color: var(--bs-primary);
  box-shadow: inset 0 0 0 3px #fff;
  background: var(--bs-primary);
}

.trials-add-flow__menu-option-main {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.trials-add-flow__menu-option-title {
  color: #22345c;
  font-size: 0.84rem;
  font-weight: 700;
}

.trials-add-flow__menu-option-sub {
  color: #8fa0bb;
  font-size: 0.78rem;
  font-weight: 700;
  margin-left: auto;
}

.trials-add-flow__date-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.7rem;
}

.trials-add-flow__date-card {
  display: grid;
  gap: 0.15rem;
  min-height: 66px;
  padding: 0.75rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  color: #64748b;
  text-align: left;
}

.trials-add-flow__date-card span {
  font-size: 0.84rem;
  font-weight: 700;
}

.trials-add-flow__date-card strong {
  color: #22345c;
  font-size: 0.96rem;
  font-weight: 800;
}

.trials-add-flow__date-card.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.trials-add-flow__error {
  color: #dc2626;
  font-size: 0.86rem;
  font-weight: 700;
}

.trials-add-flow__footer {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 0 1rem 1rem;
}

.trials-add-flow__footer-note {
  color: #94a3b8;
  font-size: 0.88rem;
  font-weight: 700;
}

.trials-add-flow__footer-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.trials-add-flow__btn {
  min-height: 2.45rem;
  padding: 0 0.9rem;
  border-radius: 10px;
  font-size: 0.86rem;
  font-weight: 800;
}

.trials-add-flow__btn.is-light {
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #22345c;
}

.trials-add-flow__btn.is-secondary {
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #94a3b8;
}

.trials-add-flow__btn.is-primary {
  border: 0;
  background: var(--bs-primary);
  color: #fff;
}

.trials-add-flow__btn.is-primary-outline {
  border: 2px solid var(--bs-primary);
  background: #fff;
  color: var(--bs-primary);
  gap: 0.5rem;
}

.trials-add-flow__btn.is-primary-outline:hover:not(:disabled) {
  background: rgba(var(--bs-primary-rgb), 0.1);
}

.trials-add-flow__btn.is-primary-outline:disabled {
  opacity: 0.52;
  border-color: #dbe3ef;
  color: #94a3b8;
  cursor: not-allowed;
  background: #f8fafc;
}

.trials-add-flow__btn-spinner {
  margin-right: 0.35rem;
}

.trials-add-flow__btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.trials-add-flow__success-banner-note {
  color: #7c8ba7;
  font-weight: 700;
}

.trials-add-flow__success-parent-copy {
  min-width: 0;
  display: grid;
  gap: 0.06rem;
}

.trials-add-flow__success-parent-phone,
.trials-add-flow__success-parent-email {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.3;
}

.trials-add-flow__success-email-chip {
  margin-left: auto;
  min-height: 28px;
  padding: 0 0.35rem;
  border-radius: 999px;
  border: 1px solid #a7f3d0;
  background: #ecfdf5;
  color: #166534;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 800;
}

.trials-add-flow__success-student-row {
  padding: 0.9rem 0.95rem;
  border-top: 1px solid #eef2f7;
  display: grid;
  grid-template-columns: 1fr 1fr 0.9fr;
  gap: 0.8rem;
  align-items: center;
}

.trials-add-flow__success-student {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.trials-add-flow__success-slot {
  display: grid;
  gap: 0.14rem;
}

.trials-add-flow__success-slot strong {
  color: #22345c;
  font-size: 0.92rem;
  font-weight: 800;
}

.trials-add-flow__success-slot span {
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 700;
}

.trials-add-flow__success-label {
  color: #8fa0bb !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.trials-admin__location-pill,
.trials-admin__gender-chip,
.trials-admin__status-pill,
.trials-admin__notes-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 34px;
  padding: 0 0.85rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
}

.trials-admin__location-pill {
  background: rgba(var(--bs-primary-rgb), 0.08);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.22);
  color: var(--bs-primary);
}

.trials-admin__gender-chip {
  width: 34px;
  justify-content: center;
  padding: 0;
  border: 1px solid #dbe3ef;
  background: #fff;
}

.trials-admin__gender-chip.is-female {
  color: #f97373;
  border-color: rgba(249, 115, 115, 0.35);
  background: rgba(254, 226, 226, 0.45);
}

.trials-admin__gender-chip.is-male {
  color: #38bdf8;
  border-color: rgba(56, 189, 248, 0.35);
  background: rgba(224, 242, 254, 0.6);
}

.trials-admin__status-cell {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.trials-admin__status-display {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.45rem;
  min-height: 1.45rem;
  font-size: 1.12rem;
  line-height: 1;
}

.trials-admin__status-pill {
  border: 1px solid transparent;
}

.trials-admin__status-pill.is-upcoming {
  background: #eef2ff;
  border-color: #c7d2fe;
  color: #4f46e5;
}

.trials-admin__status-pill.is-attended {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #16a34a;
}

.trials-admin__status-pill.is-holiday {
  background: #fff7ed;
  border-color: #fdba74;
  color: #d97706;
}

.trials-admin__status-pill.is-sick {
  background: #fdf2f8;
  border-color: #f9a8d4;
  color: #db2777;
}

.trials-admin__status-pill.is-injured {
  background: #fff7ed;
  border-color: #fdba74;
  color: #f97316;
}

.trials-admin__status-pill.is-noshow {
  background: #fef2f2;
  border-color: #fecaca;
  color: #ef4444;
}

.trials-admin__status-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.trials-admin__status-action {
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.12rem;
  padding: 0;
  transition: all 0.18s ease;
}

.trials-admin__status-letter {
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1;
}

.trials-admin__status-action.is-attend {
  color: #16a34a;
}

.trials-admin__status-action.is-absence {
  color: #ef4444;
}

.trials-admin__status-action.is-active {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
  border-radius: 999px;
}

.trials-admin__absence-panel {
  position: absolute;
  top: calc(100% + 0.65rem);
  left: 0;
  z-index: 30;
  width: 232px;
  border: 1px solid #e8edf5;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.14);
  padding: 1rem;
}

.trials-admin__absence-panel-title {
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.trials-admin__absence-panel-list {
  margin-top: 0.7rem;
  display: flex;
  flex-direction: column;
}

.trials-admin__absence-option {
  width: 100%;
  border: 0;
  border-radius: 14px;
  background: #fff;
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.72rem 0.7rem;
  text-align: left;
}

.trials-admin__absence-option.is-selected {
  background: #fff7ed;
}

.trials-admin__absence-option-icon {
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 999px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  flex-shrink: 0;
}

.trials-admin__absence-option-icon.is-noshow {
  background: #fef2f2;
  border-color: #fecaca;
  color: #ef4444;
}

.trials-admin__absence-option-icon.is-sick {
  background: #fdf2f8;
  border-color: #f9a8d4;
  color: #db2777;
}

.trials-admin__absence-option-icon.is-injured {
  background: #fff7ed;
  border-color: #fdba74;
  color: #f97316;
}

.trials-admin__absence-option-icon.is-holiday {
  background: #fff7ed;
  border-color: #fdba74;
  color: #d97706;
}

.trials-admin__absence-option-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.trials-admin__absence-option-title {
  color: var(--bs-secondary);
  font-size: 0.98rem;
  font-weight: 800;
  line-height: 1.2;
}

.trials-admin__absence-option-subtitle {
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
}

.trials-admin__absence-option-check {
  margin-left: auto;
  color: #f97316;
  font-size: 0.86rem;
  padding-top: 0.18rem;
}

.trials-admin__absence-panel-footnote {
  margin-top: 0.7rem;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
}

.trials-admin__inline-icon {
  border: 0;
  background: transparent;
  color: #97a3bb;
  padding: 0;
  line-height: 1;
}

.trials-admin__pay-today {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.05;
}

.trials-admin__pay-today span {
  color: #94a3b8;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.trials-admin__pay-today strong {
  color: var(--bs-secondary);
  font-size: 0.98rem;
  font-weight: 800;
}

.trials-admin__notes-btn {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #64748b;
  position: relative;
}

.trials-admin__notes-btn span {
  color: #94a3b8;
}

.trials-admin__notes-btn.is-outline {
  border: 2px solid rgba(var(--bs-primary-rgb), 0.5);
  background: #fff;
  color: var(--bs-primary);
}

.trials-admin__notes-btn.is-outline span {
  color: rgba(var(--bs-primary-rgb), 0.88);
}

.trials-admin__notes-btn.is-outline .fa-note-sticky {
  color: rgba(var(--bs-primary-rgb), 0.9);
}

.trials-admin__notes-btn.is-alert {
  border-color: #fca5a5;
  background: #fff5f5;
  color: #ef4444;
}

.trials-admin__notes-btn.is-alert span {
  color: #ef4444;
}

.trials-admin__notes-btn.is-alert .fa-note-sticky {
  color: #ef4444;
}

.trials-admin__notes-alert {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.58rem;
  font-weight: 900;
  flex-shrink: 0;
  line-height: 1;
}

.trials-admin__notes-alert i {
  line-height: 1;
}

.trials-notes-inline {
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fff;
  padding: 0.95rem 1rem;
}

.trials-notes-inline__empty {
  color: #b1bdd4;
  font-size: 0.94rem;
  font-style: italic;
  margin-bottom: 0.7rem;
}

.trials-notes-inline__item {
  border: 1px solid #eef2f7;
  border-radius: 12px;
  background: #fff;
  padding: 0.8rem 0.9rem;
  margin-bottom: 0.7rem;
}

.trials-notes-inline__item.is-important {
  border-color: #fca5a5;
  background: #fff5f5;
}

.trials-notes-inline__meta {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.trials-notes-inline__author {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 800;
}

.trials-notes-inline__date {
  color: #b1bdd4;
  font-size: 0.82rem;
  font-weight: 700;
}

.trials-notes-inline__flag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 1.55rem;
  padding: 0 0.6rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 800;
}

.trials-notes-inline__flag.is-important {
  background: #ef4444;
  color: #fff;
}

.trials-notes-inline__flag.is-parent {
  background: #e0f2fe;
  color: #0284c7;
}

.trials-notes-inline__body {
  margin-top: 0.45rem;
  color: var(--bs-secondary);
  font-size: 0.95rem;
  line-height: 1.5;
}

.trials-notes-inline__composer {
  display: grid;
  gap: 0.7rem;
}

.trials-notes-inline__textarea {
  width: 100%;
  min-height: 2.8rem;
  padding: 0.8rem 0.95rem;
  border: 1px solid #e5edf6;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.94rem;
  line-height: 1.45;
  resize: vertical;
  outline: 0;
  transition: min-height 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.trials-notes-inline__textarea::placeholder {
  color: #b1bdd4;
}

.trials-notes-inline__textarea.is-open,
.trials-notes-inline__textarea:focus {
  min-height: 6.7rem;
  border: 2px solid #f59e0b;
  box-shadow: none;
}

.trials-notes-inline__checks {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.trials-notes-inline__check {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 700;
}

.trials-notes-inline__check input {
  width: 1rem;
  height: 1rem;
  accent-color: #f59e0b;
}

.trials-notes-inline__actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.trials-notes-inline__save,
.trials-notes-inline__cancel {
  min-height: 2.4rem;
  padding: 0 1rem;
  border-radius: 10px;
  font-size: 0.92rem;
  font-weight: 800;
}

.trials-notes-inline__save {
  border: 0;
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: white;
}

.trials-notes-inline__save:disabled {
  background: #f3f4f6;
  color: #94a3b8;
}

.trials-notes-inline__cancel {
  border: 0;
  background: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: white;
}

.trials-admin__mobile-last-offer {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  margin-top: 0.65rem;
}

.trials-admin__mobile-last-offer-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.trials-admin__mobile-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.8rem;
}

.trials-remove-modal {
  display: grid;
  gap: 1rem;
  padding: 1rem 1.1rem 1.15rem;
}

.trials-remove-modal__header,
.trials-remove-modal__title-wrap,
.trials-remove-modal__student-main,
.trials-remove-modal__student-line,
.trials-remove-modal__footer,
.trials-remove-modal__footer-actions {
  display: flex;
  align-items: center;
}

.trials-remove-modal__header,
.trials-remove-modal__footer {
  justify-content: space-between;
  gap: 1rem;
}

.trials-remove-modal__header {
  padding-bottom: 0.95rem;
  border-bottom: 1px solid #eef2f7;
}

.trials-remove-modal__title-wrap,
.trials-remove-modal__student-main,
.trials-remove-modal__footer-actions {
  gap: 0.85rem;
}

.trials-remove-modal__title-icon {
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff1f2;
  color: #ef4444;
  flex-shrink: 0;
}

.trials-remove-modal__header h4 {
  margin: 0;
  color: #22345c;
  font-size: 1.1rem;
  font-weight: 800;
}

.trials-remove-modal__header p {
  margin: 0.15rem 0 0;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 700;
}

.trials-remove-modal__close {
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 14px;
  border: 1px solid #e5edf6;
  background: #fff;
  color: #94a3b8;
}

.trials-remove-modal__warning {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 1rem 1.05rem;
  border: 1px solid #fecaca;
  border-radius: 16px;
  background: #fff5f5;
  color: #475569;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.5;
}

.trials-remove-modal__warning i {
  color: #ef4444;
  margin-top: 0.12rem;
}

.trials-remove-modal__info h5,
.trials-remove-modal__section-label {
  margin: 0 0 0.55rem;
  color: #22345c;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.trials-remove-modal__info {
  padding: 0 0.1rem;
}

.trials-remove-modal__info ul {
  margin: 0;
  padding-left: 1.1rem;
  color: #64748b;
  font-size: 0.86rem;
  line-height: 1.55;
}

.trials-remove-modal__list {
  display: grid;
  gap: 0.7rem;
  padding: 0.8rem;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fbfdff;
}

.trials-remove-modal__list.is-scrollable {
  max-height: clamp(10rem, 100vh - 34rem, 19rem);
  overflow-y: auto;
}

.trials-remove-modal__student {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid #e8eef7;
  border-radius: 14px;
  background: #fff;
}

.trials-remove-modal__student.is-success {
  border-color: #c8f1df;
  background: #ecfdf5;
}

.trials-remove-modal__student-copy {
  min-width: 0;
}

.trials-remove-modal__student-line {
  gap: 0.35rem;
  flex-wrap: wrap;
}

.trials-remove-modal__student-line strong {
  color: #22345c;
  font-size: 0.9rem;
  font-weight: 800;
}

.trials-remove-modal__student-line span,
.trials-remove-modal__student-meta {
  color: #8a97b6;
  font-size: 0.82rem;
  font-weight: 700;
}

.trials-remove-modal__student-meta {
  margin-top: 0.1rem;
}

.trials-remove-modal__status {
  color: #10b981;
  font-size: 0.8rem;
  font-weight: 900;
  text-transform: uppercase;
}

.trials-remove-modal__success {
  text-align: center;
  display: grid;
  justify-items: center;
  gap: 0.7rem;
  padding-top: 0.5rem;
}

.trials-remove-modal__success-icon {
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #10b981;
  color: #fff;
  font-size: 2rem;
  box-shadow: 0 18px 40px rgba(16, 185, 129, 0.22);
}

.trials-remove-modal__success h5 {
  margin: 0;
  color: #22345c;
  font-size: 1.35rem;
  font-weight: 900;
}

.trials-remove-modal__success p {
  max-width: 34rem;
  margin: 0;
  color: #94a3b8;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.55;
}

.trials-remove-modal__footer-copy {
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 700;
}

.trials-remove-modal__footer-copy strong {
  color: #10b981;
}

.trials-remove-modal__footer {
  padding-top: 1rem;
  border-top: 1px solid #eef2f7;
}

.trials-remove-modal__cancel,
.trials-remove-modal__remove,
.trials-remove-modal__done {
  min-height: 2.8rem;
  padding: 0 1.15rem;
  border-radius: 12px;
  font-size: 0.95rem;
  font-weight: 800;
}

.trials-remove-modal__cancel {
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #22345c;
}

.trials-remove-modal__remove {
  border: 0;
  background: #ef4444;
  color: #fff;
}

.trials-remove-modal__done {
  border: 0;
  background: #10b981;
  color: #fff;
}

@media (max-width: 767.98px) {
  .trials-add-flow__toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .trials-add-flow__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .trials-add-flow__footer-actions {
    flex-direction: row;
    flex-wrap: nowrap;
    width: 100%;
    justify-content: stretch;
    gap: 0.35rem;
  }
  .trials-add-flow__footer-actions .trials-add-flow__btn {
    min-width: 0;
    min-height: 2.35rem;
    white-space: nowrap;
  }
  .trials-add-flow__footer-actions .trials-add-flow__btn .trials-add-flow__btn-spinner {
    margin-right: 0.2rem;
  }
  .trials-add-flow__table-head,
  .trials-add-flow__student-row,
  .trials-add-flow__schedule-row {
    grid-template-columns: 1fr;
  }
  .trials-add-flow .waiting-list-picker-modal__body.is-success.trials-add-flow__body-scroll {
    overflow-x: hidden;
    min-width: 0;
    max-width: 100%;
  }
  .trials-add-flow .waiting-list-picker-modal__body.is-success {
    gap: 0.5rem;
  }
  .trials-add-flow .waiting-list-picker-modal__success-list {
    max-height: none;
    overflow: visible;
    gap: 0.55rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .trials-add-flow .waiting-list-picker-modal__success-family {
    overflow-x: visible;
    overflow-y: visible;
    max-height: none;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .trials-add-flow .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    gap: 0.45rem;
    padding: 0.55rem 0.65rem;
  }
  .trials-add-flow .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.06rem;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
  }
  .trials-add-flow .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent-name {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .trials-add-flow .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-phone,
  .trials-add-flow .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-email {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .trials-add-flow .trials-add-flow__success-email-chip {
    flex-shrink: 0;
    margin-left: auto;
  }
  .trials-add-flow .trials-add-flow__success-student-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0.55rem 0.65rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .trials-add-flow .trials-add-flow__success-student-row > .trials-add-flow__success-student {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }
  .trials-add-flow .trials-add-flow__success-student-row > .trials-add-flow__success-slot {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    text-align: left;
  }
  .trials-add-flow .trials-add-flow__success-slot strong,
  .trials-add-flow .trials-add-flow__success-slot span:not(.trials-add-flow__success-label) {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .trials-add-flow .trials-add-flow__success-label {
    white-space: normal;
  }
  .trials-add-flow .trials-add-flow__success-student {
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
  }
  .trials-add-flow .trials-add-flow__schedule-student-name,
  .trials-add-flow .trials-add-flow__schedule-student-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }
  .trials-add-flow__student-list {
    max-height: 320px;
  }
  .trials-add-flow__modal-head,
  .trials-add-flow__footer {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .modal-dialog.trials-add-trial-modal .waiting-list-picker-modal__body.is-success {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .trials-add-flow__modal-head {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .members-modal-body:has(> .trials-add-flow--match-trials-shell) > .trials-add-flow--match-trials-shell .waiting-list-picker-modal__body.is-success {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .trials-remove-modal {
    gap: 0.8rem;
    padding: 0.8rem 0.8rem 0.95rem;
  }
  .trials-remove-modal__list.is-scrollable {
    min-height: 12rem;
    max-height: clamp(12rem, 100vh - 31rem, 15.5rem);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 #eef2f7;
  }
  .trials-remove-modal__list.is-scrollable::-webkit-scrollbar {
    width: 8px;
  }
  .trials-remove-modal__list.is-scrollable::-webkit-scrollbar-track {
    background: #eef2f7;
    border-radius: 999px;
  }
  .trials-remove-modal__list.is-scrollable::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 999px;
  }
  .trials-remove-modal__header h4 {
    font-size: 0.98rem;
  }
  .trials-remove-modal__header p {
    font-size: 0.74rem;
  }
  .trials-remove-modal__title-icon,
  .trials-remove-modal__close {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 12px;
  }
  .trials-remove-modal__warning {
    padding: 0.8rem 0.9rem;
    border-radius: 14px;
    font-size: 0.78rem;
  }
  .trials-remove-modal__info h5,
  .trials-remove-modal__section-label {
    font-size: 0.74rem;
    margin-bottom: 0.45rem;
  }
  .trials-remove-modal__info ul {
    font-size: 0.78rem;
    line-height: 1.45;
  }
  .trials-remove-modal__student {
    gap: 0.7rem;
    padding: 0.68rem 0.72rem;
    border-radius: 12px;
  }
  .trials-remove-modal__student-line strong {
    font-size: 0.8rem;
  }
  .trials-remove-modal__student-line span,
  .trials-remove-modal__student-meta {
    font-size: 0.72rem;
  }
  .trials-remove-modal__footer-copy {
    font-size: 0.76rem;
  }
  .trials-remove-modal__footer,
  .trials-remove-modal__footer-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .trials-remove-modal__cancel,
  .trials-remove-modal__remove,
  .trials-remove-modal__done {
    min-height: 2.5rem;
    padding: 0 1rem;
    font-size: 0.82rem;
    border-radius: 11px;
  }
}
.waiting-list-admin__tool-label,
.waiting-list-admin__tool-count {
  color: #8a97b6;
  font-size: 0.85rem;
}

.waiting-list-admin__per-page-select {
  width: 84px;
  border-radius: 12px;
  border-color: #d9e1ee;
  font-weight: 700;
}

.waiting-list-admin__filters-card,
.waiting-list-admin__selection-card {
  border-radius: 20px;
  border: 1px solid #e8edf5;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.waiting-list-admin__filters-card .btn.btn-primary {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
}

.waiting-list-admin__filters-card .btn.btn-outline-primary {
  color: var(--bs-primary);
  border-color: rgba(var(--bs-primary-rgb), 0.4);
}

.waiting-list-admin__filters-grid {
  display: grid;
  gap: 1.25rem;
}

.waiting-list-admin__search-wrap {
  position: relative;
}

.waiting-list-admin__filters-top {
  display: flex;
  justify-content: flex-end;
}

.waiting-list-admin__search-wrap i {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%);
  color: #97a3bb;
}

.waiting-list-admin__search-input {
  min-height: 44px;
  border-radius: 14px;
  padding-left: 2.25rem;
  border-color: #dbe3ef;
}

.waiting-list-admin__filter-block {
  display: grid;
  gap: 0.75rem;
  width: min(100%, 720px);
}

.waiting-list-admin__filter-heading {
  color: #8fa0bb;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.waiting-list-admin__filter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.waiting-list-admin__filter-clear {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
}

.waiting-list-admin__filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.waiting-list-admin__filter-pill {
  min-height: 34px;
  padding: 0 0.9rem;
  border-radius: 12px;
  border: 1.5px solid #dbe3ef;
  background: #fff;
  color: #8390ab;
  font-size: 0.82rem;
  font-weight: 700;
}

.waiting-list-admin__filter-block .waiting-list-admin__filter-pills .waiting-list-admin__filter-pill {
  justify-content: center;
}

.waiting-list-admin__filter-pills--days .waiting-list-admin__filter-pill {
  min-width: 64px;
  padding: 0 0.8rem;
}

.waiting-list-admin__filter-pill.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.75);
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.waiting-list-admin__filter-pill.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.waiting-list-admin__filter-accordion {
  max-height: 400px;
  overflow-y: auto;
}

.waiting-list-admin__filters-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.25rem;
}

.waiting-list-admin__filters-reset {
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  min-height: 40px;
  padding: 0 1rem;
  background: #fff;
  color: #8390ab;
  font-size: 0.82rem;
  font-weight: 700;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.waiting-list-admin__filters-reset:hover:not(:disabled) {
  border-color: rgba(var(--bs-primary-rgb), 0.5);
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.waiting-list-admin__filters-reset:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.waiting-list-admin__table-scroll {
  overflow-x: auto;
  border-radius: 0 0 22px 22px;
}

.waiting-list-admin__group-header {
  padding: 1rem 1.25rem 0.25rem;
  background: #fff;
}

.waiting-list-admin__group-header h3 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--bs-primary);
}

.waiting-list-admin__group-header .members-group-count {
  color: var(--bs-primary);
}

.waiting-list-admin__table th {
  color: #8fa0bb;
}

.waiting-list-admin__table td {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.waiting-list-admin__message-row td {
  padding: 0.7rem 1.1rem;
  background: #fff;
}

.waiting-list-admin__inline-message {
  min-height: 62px;
  border: 1px solid #e8edf5;
  border-radius: 16px;
  padding: 0.8rem 0.95rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.waiting-list-admin__inline-message.is-warning {
  border-color: #fdba74;
  background: #fff7ed;
}

.waiting-list-admin__inline-message.is-success {
  border-color: #86efac;
  background: #ecfdf5;
}

.waiting-list-admin__inline-message-main,
.waiting-list-admin__inline-message-actions {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.waiting-list-admin__inline-message-main {
  min-width: 0;
}

.waiting-list-admin__inline-message-copy {
  display: grid;
  gap: 0.55rem;
}

.waiting-list-admin__inline-message-icon {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.95rem;
}

.waiting-list-admin__inline-message-icon.is-warning {
  background: #f59e0b;
  color: #fff;
}

.waiting-list-admin__inline-message-icon.is-success {
  background: #10b981;
  color: #fff;
}

.waiting-list-admin__inline-message-text {
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 800;
}

.waiting-list-admin__delete-email-card {
  border: 1px solid #fbd38d;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.7rem 0.85rem;
  text-align: left;
}

.waiting-list-admin__delete-email-card.is-on {
  border-color: rgba(239, 68, 68, 0.28);
  background: rgba(239, 68, 68, 0.06);
}

.waiting-list-admin__delete-email-copy {
  display: grid;
  gap: 0.1rem;
}

.waiting-list-admin__delete-email-title {
  font-size: 0.8rem;
  font-weight: 800;
  color: #7c2d12;
}

.waiting-list-admin__delete-email-description {
  font-size: 0.72rem;
  line-height: 1.45;
  color: #9a3412;
}

.waiting-list-admin__inline-btn {
  min-height: 40px;
  border: 1px solid #e8edf5;
  border-radius: 12px;
  padding: 0 1rem;
  background: #fff;
  color: #8390ab;
  font-size: 0.88rem;
  font-weight: 800;
}

.waiting-list-admin__inline-btn.is-danger {
  border-color: #ef4444;
  background: #ef4444;
  color: #fff;
}

.waiting-list-admin__inline-badge {
  min-height: 34px;
  padding: 0 0.85rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
}

.waiting-list-admin__inline-badge.is-success {
  background: #10b981;
  color: #fff;
}

.waiting-list-admin__child-cell {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.waiting-list-admin__avatar {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  background: #e9efff;
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 800;
  flex-shrink: 0;
}

.waiting-list-admin__child-copy,
.waiting-list-admin__date-stack {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

.waiting-list-admin__child-name,
.waiting-list-admin__class-name,
.waiting-list-admin__date-stack strong {
  color: var(--bs-secondary);
  font-weight: 800;
}

.waiting-list-admin__parent-row {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #8a97b6;
  font-size: 0.84rem;
}

.waiting-list-admin__phone-btn {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 999px;
  border: 1px solid #d8def0;
  color: var(--bs-primary);
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.waiting-list-admin__phone-wrap {
  position: relative;
  display: inline-flex;
}

.waiting-list-admin__phone-panel {
  position: absolute;
  top: calc(100% + 0.55rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  min-width: 198px;
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);
  padding: 0.8rem;
}

.waiting-list-admin__phone-panel::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  width: 12px;
  height: 12px;
  background: #fff;
  border-top: 1px solid #e8edf5;
  border-left: 1px solid #e8edf5;
  transform: translateX(-50%) rotate(45deg);
}

.waiting-list-admin__phone-panel-name {
  color: #9aa8c0;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.waiting-list-admin__phone-panel-number {
  margin-top: 0.15rem;
  color: var(--bs-secondary);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
}

.waiting-list-admin__phone-panel-actions {
  margin-top: 0.7rem;
  display: flex;
  gap: 0.55rem;
}

.waiting-list-admin__phone-action {
  flex: 1 1 0;
  min-height: 38px;
  border: 1px solid #e8edf5;
  border-radius: 10px;
  background: #fff;
  color: var(--bs-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.86rem;
  font-weight: 800;
  text-decoration: none;
}

.waiting-list-admin__phone-action.is-call {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
}

.student-admin-profile-card {
  position: relative;
  z-index: 1;
  overflow: visible;
}
.student-admin-profile-card .card-body {
  overflow: visible;
}
.student-admin-profile-card .rz-tabview-panels {
  overflow: visible !important;
}
.student-admin-profile-card:has(.student-admin-parent-phone .waiting-list-admin__phone-panel) {
  z-index: 100;
}

.student-admin-parent-phone {
  position: relative;
  z-index: 1100;
}
.student-admin-parent-phone .waiting-list-admin__phone-panel {
  z-index: 1101;
}

.student-admin-split-card {
  border: 1px solid #e6edf5;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
}

.student-admin-split-card__header {
  background: #fff;
  border-bottom: 1px solid #eef2f7;
}

.student-admin-split-card__eyebrow {
  color: var(--bs-primary);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.student-admin-split-card__identity {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.student-admin-split-card__copy {
  min-width: 0;
}

.student-admin-split-card__title {
  display: block;
  color: var(--bs-secondary);
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.2;
}

.student-admin-split-card__meta {
  margin-top: 0.3rem;
  color: #6b7a96;
  font-size: 0.9rem;
  line-height: 1.45;
}

.student-admin-split-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

.student-admin-split-card__actions > .btn,
.student-admin-split-card__actions > .student-admin-parent-phone {
  margin: 0 !important;
}

.student-admin-split-card__actions > .student-admin-parent-phone {
  display: inline-block;
}

.student-admin-split-card__identity.is-child {
  padding-bottom: 1rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid #eef2f7;
}

@media (max-width: 767.98px) {
  .student-admin-split-card__identity {
    flex-direction: column;
    align-items: flex-start;
  }
  .student-admin-split-card__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .student-admin-split-card__actions > .btn,
  .student-admin-split-card__actions > .student-admin-parent-phone {
    width: 100%;
  }
  .student-admin-split-card__actions > .student-admin-parent-phone > .btn {
    width: 100%;
  }
}
.waiting-list-admin__class-meta,
.waiting-list-admin__date-stack span {
  color: #8a97b6;
  font-size: 0.84rem;
}

.waiting-list-admin__position-pill,
.waiting-list-admin__age-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 30px;
  padding: 0 0.7rem;
  border-radius: 999px;
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #c2410c;
  font-size: 0.8rem;
  font-weight: 800;
}

.waiting-list-admin__age-pill {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: var(--bs-secondary);
}

.waiting-list-admin__gender-chip {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  font-size: 0.9rem;
}

.waiting-list-admin__gender-chip.is-female {
  background: #fff1f2;
  border-color: #fda4af;
  color: #e11d48;
}

.waiting-list-admin__gender-chip.is-male {
  background: #ecfeff;
  border-color: #7dd3fc;
  color: #0284c7;
}

.waiting-list-admin__status-chip,
.waiting-list-admin__offer-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2rem;
  padding: 0 0.85rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.waiting-list-admin__status-chip.is-pending {
  background: #fff7ed;
  border-color: #fdba74;
  color: #c2410c;
}

.waiting-list-admin__status-chip.is-idle {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
}

.waiting-list-admin__offer-pill {
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0369a1;
}

.waiting-list-admin__offer-pill strong {
  font-weight: 800;
}

.waiting-list-admin__icon-btn {
  width: 2rem;
  height: 2rem;
  border-radius: 10px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.waiting-list-admin__icon-btn.is-primary {
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.35);
  color: var(--bs-primary);
}

.waiting-list-admin__icon-btn.is-danger {
  border: 1.5px solid #fda4af;
  color: #ef4444;
}

.waiting-list-admin__table-footer {
  border-top: 1px solid #eef2f7;
}

.waiting-list-admin__mobile-list {
  display: none;
}

.waiting-list-picker-modal {
  display: flex;
  flex-direction: column;
  color: #223154;
}

.waiting-list-picker-modal__header,
.waiting-list-picker-modal__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.waiting-list-picker-modal__header {
  padding-bottom: 1rem;
  border-bottom: 1px solid #eef2f7;
}

.waiting-list-picker-modal__header-main {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.waiting-list-picker-modal__header-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 0.95rem;
  flex-shrink: 0;
}

.waiting-list-picker-modal__header-icon.is-success {
  background: #ecfdf5;
  color: #16a34a;
}

.waiting-list-picker-modal__title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 800;
  color: #223154;
}

.waiting-list-picker-modal__subtitle {
  margin: 0.2rem 0 0;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 600;
}

.waiting-list-picker-modal__close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  transition: background 0.18s ease, color 0.18s ease;
}

.waiting-list-picker-modal__close:hover:not(:disabled) {
  background: #f8fafc;
  color: #475569;
}

.waiting-list-picker-modal__body {
  padding: 1.2rem 0;
  display: grid;
  gap: 1rem;
}

.waiting-list-picker-modal__body.is-success {
  /*  max-height: min(68vh, 620px);*/
  overflow-y: auto;
  padding-right: 0.35rem;
}

.waiting-list-picker-modal__section {
  display: grid;
  gap: 0.65rem;
}

.waiting-list-picker-modal__section-title,
.waiting-list-picker-modal__selection-label {
  color: #8fa0bb;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.waiting-list-picker-modal__panel,
.waiting-list-picker-modal__placeholder,
.waiting-list-picker-modal__selection-card,
.waiting-list-picker-modal__success-family {
  border: 1px solid #e8edf5;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.waiting-list-picker-modal__panel {
  padding: 0.95rem;
  display: grid;
  gap: 0.75rem;
}

.waiting-list-picker-modal__search {
  position: relative;
}

.waiting-list-picker-modal__search i {
  position: absolute;
  top: 50%;
  left: 0.95rem;
  transform: translateY(-50%);
  color: #97a3bb;
}

.waiting-list-picker-modal__search-input {
  min-height: 42px;
  border-radius: 14px;
  padding-left: 2.5rem;
  border-color: #dbe3ef;
  font-weight: 600;
  color: #223154;
  font-size: 0.92rem;
}

.waiting-list-picker-modal__panel-count {
  color: #8fa0bb;
  font-size: 0.8rem;
  font-weight: 700;
}

.waiting-list-picker-modal__students,
.waiting-list-picker-modal__success-list {
  max-height: 320px;
  overflow-y: auto;
  display: grid;
  gap: 0.55rem;
  padding-right: 0.25rem;
}

.waiting-list-picker-modal__success-list {
  max-height: none;
  overflow: visible;
  gap: 0.85rem;
  padding-right: 0;
  padding-bottom: 0.5rem;
}

.waiting-list-picker-modal__student-card {
  width: 100%;
  border: 1px solid #e8edf5;
  border-radius: 16px;
  background: #fff;
  padding: 0.85rem 0.95rem;
  text-align: left;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.waiting-list-picker-modal__student-card.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  background: rgba(var(--bs-primary-rgb), 0.08);
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.14);
}

.waiting-list-picker-modal__student-main,
.waiting-list-picker-modal__selection-student,
.waiting-list-picker-modal__success-parent,
.waiting-list-picker-modal__success-student-head {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.waiting-list-picker-modal__avatar {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.84rem;
  font-weight: 800;
  position: relative;
  flex-shrink: 0;
}

.waiting-list-picker-modal__avatar.is-female {
  background: #fff1f7;
  color: #d63384;
}

.waiting-list-picker-modal__avatar.is-male {
  background: #eef7ff;
  color: #0ea5e9;
}

.waiting-list-picker-modal__avatar.is-parent {
  background: #ecfdf5;
  color: #15803d;
}

.waiting-list-picker-modal__selected-dot {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  border: 2px solid #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.55rem;
}

.waiting-list-picker-modal__student-copy {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.waiting-list-picker-modal__student-line,
.waiting-list-picker-modal__student-subline,
.waiting-list-picker-modal__selection-name,
.waiting-list-picker-modal__success-student-name {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.waiting-list-picker-modal__student-line strong,
.waiting-list-picker-modal__selection-name,
.waiting-list-picker-modal__success-parent-name {
  font-size: 0.92rem;
  font-weight: 800;
  color: #223154;
}

.waiting-list-picker-modal__student-line span,
.waiting-list-picker-modal__student-subline,
.waiting-list-picker-modal__selection-name span,
.waiting-list-picker-modal__success-parent-copy,
.waiting-list-picker-modal__success-student-name span {
  color: #94a3b8;
  font-size: 0.8rem;
  font-weight: 700;
}

.waiting-list-picker-modal__success-student-name {
  font-size: 0.9rem;
  font-weight: 800;
}

.waiting-list-picker-modal__parent-badge {
  min-width: 22px;
  height: 22px;
  padding: 0 0.35rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
}

.waiting-list-picker-modal__parent-badge.is-female {
  background: #f5f3ff;
  color: #8b5cf6;
}

.waiting-list-picker-modal__parent-badge.is-male {
  background: #ecfeff;
  color: #0f766e;
}

.waiting-list-picker-modal__empty,
.waiting-list-picker-modal__placeholder {
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #9aa8c0;
  font-size: 0.88rem;
  font-weight: 600;
}

.waiting-list-picker-modal__student-selection-list {
  display: grid;
  gap: 0.9rem;
}

.waiting-list-picker-modal__selection-card {
  padding: 0.95rem;
  display: grid;
  gap: 0.7rem;
}

.waiting-list-picker-modal__selection-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.waiting-list-picker-modal__selection-badge {
  min-width: 72px;
  min-height: 28px;
  padding: 0 0.75rem;
  border-radius: 999px;
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #15803d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}

.waiting-list-picker-modal__selection-toggle {
  width: 100%;
  min-height: 40px;
  border-radius: 14px;
  border: 1.5px solid #dbe3ef;
  background: #fff;
  color: #64748b;
  padding: 0.6rem 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.88rem;
  font-weight: 700;
}

.waiting-list-picker-modal__selection-toggle.is-open {
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.waiting-list-picker-modal__selection-toggle i {
  transition: transform 0.18s ease;
}

.waiting-list-picker-modal__selection-toggle.is-open i {
  transform: rotate(180deg);
}

.waiting-list-picker-modal__group-picker {
  border: 1px solid #e8edf5;
  border-radius: 16px;
  padding: 0.25rem;
  display: grid;
  gap: 0.35rem;
}

.waiting-list-picker-modal__class-header {
  gap: 0.75rem;
}

.waiting-list-picker-modal__class-trigger {
  flex: 1 1 auto;
  border: 0;
  background: transparent;
  text-align: left;
  color: #223154;
  font-weight: 800;
  padding: 0;
}

.waiting-list-picker-modal__group-option {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.waiting-list-picker-modal__group-option.is-selected .members-filter-accordion-check-box {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
}

.waiting-list-picker-modal__group-option.is-selected .members-filter-accordion-check-box::after {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #fff;
  font-size: 0.56rem;
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.waiting-list-picker-modal__group-option:disabled,
.waiting-list-picker-modal__session-row:disabled {
  opacity: 1;
}

.waiting-list-picker-modal__session-group {
  border: 1px solid #eef2f7;
  border-radius: 14px;
  overflow: hidden;
}

.waiting-list-picker-modal__session-group.is-selected {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
}

.waiting-list-picker-modal__session-group-head {
  width: 100%;
  min-height: 38px;
  border: 0;
  background: #fff;
  padding: 0.62rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.84rem;
  font-weight: 800;
  color: #334155;
  text-align: left;
}

.waiting-list-picker-modal__session-group.is-selected .waiting-list-picker-modal__session-group-head {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.waiting-list-picker-modal__session-group-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.waiting-list-picker-modal__session-list {
  border-top: 1px solid #eef2f7;
  display: grid;
}

.waiting-list-picker-modal__session-row {
  width: 100%;
  min-height: 36px;
  border: 0;
  border-top: 1px solid #f1f5f9;
  background: #fff;
  padding: 0.58rem 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  text-align: left;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 700;
}

.waiting-list-picker-modal__session-row:first-child {
  border-top: 0;
}

.waiting-list-picker-modal__session-row.is-selected {
  background: #eefaff;
  color: #0f766e;
}

.waiting-list-picker-modal__session-radio {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 1.5px solid #d6deeb;
  background: #fff;
  flex-shrink: 0;
  position: relative;
}

.waiting-list-picker-modal__session-row.is-selected .waiting-list-picker-modal__session-radio {
  border-color: var(--bs-primary);
}

.waiting-list-picker-modal__session-row.is-selected .waiting-list-picker-modal__session-radio::after {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: 999px;
  background: var(--bs-primary);
}

.waiting-list-picker-modal__muted-badge {
  margin-left: auto;
  min-height: 24px;
  padding: 0 0.6rem;
  border-radius: 999px;
  background: #f8fafc;
  color: #c0cad8;
  font-size: 0.66rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
}

.waiting-list-picker-modal__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.35rem 0.15rem 0.05rem;
}

.waiting-list-picker-modal__fixed-target {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.1rem;
}

.waiting-list-picker-modal__chip {
  min-height: 30px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  padding: 0 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 800;
  max-width: 100%;
  flex: 0 1 auto;
}

.waiting-list-picker-modal__chip.is-fixed-target {
  cursor: default;
  pointer-events: none;
  min-height: 32px;
  padding: 0.35rem 0.8rem;
}

.waiting-list-picker-modal__chip.is-success {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  min-height: 32px;
  padding: 0.35rem 0.75rem;
  white-space: normal;
  line-height: 1.2;
}

.waiting-list-picker-modal__chip-count {
  min-width: 28px;
  height: 22px;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: #fff;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.66rem;
  font-weight: 900;
}

.waiting-list-picker-modal__selection-warning,
.waiting-list-picker-modal__footer-error {
  color: #b7791f;
  font-size: 0.76rem;
  font-weight: 700;
}

.waiting-list-picker-modal__success-banner {
  min-height: 58px;
  border: 1px solid #a7f3d0;
  border-radius: 16px;
  background: #ecfdf5;
  color: #166534;
  padding: 0.9rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 0.86rem;
  font-weight: 800;
}

.waiting-list-picker-modal__success-check {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #22c55e;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
}

.waiting-list-picker-modal__success-family {
  /*max-height: 255px;*/
  overflow-y: auto;
  overflow-x: hidden;
}

.waiting-list-picker-modal__success-parent {
  padding: 0.8rem 0.95rem;
  background: #f8fafc;
}

.waiting-list-picker-modal__success-student {
  padding: 0.9rem 0.95rem 1rem;
  border-top: 1px solid #eef2f7;
  display: grid;
  gap: 0.75rem;
  align-items: start;
}

.waiting-list-picker-modal__success-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: flex-start;
  padding-left: 3.2rem;
  padding-right: 0.35rem;
  padding-bottom: 0.75rem;
  margin-top: 0.05rem;
}

.waiting-list-picker-modal__footer {
  padding-top: 1rem;
  border-top: 1px solid #eef2f7;
}

.waiting-list-picker-modal__footer-note {
  color: #9aa8c0;
  font-size: 0.82rem;
  font-weight: 700;
}

.waiting-list-picker-modal__footer-actions {
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.waiting-list-picker-modal__action-btn {
  min-height: 40px;
  border-radius: 14px;
  padding: 0 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-size: 0.88rem;
  font-weight: 800;
}

.waiting-list-picker-modal__action-btn.is-secondary {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #223154;
}

.waiting-list-picker-modal__action-btn.is-primary {
  border: 1px solid transparent;
  background: var(--bs-primary);
  color: #fff;
}

.waiting-list-picker-modal__action-btn.is-success {
  border: 1px solid transparent;
  background: #22c55e;
  color: #fff;
}

.waiting-list-picker-modal__action-btn:disabled {
  opacity: 0.5;
  box-shadow: none;
  cursor: not-allowed;
}

.send-offer-modal {
  display: flex;
  flex-direction: column;
  color: #223154;
}

.send-offer-modal__header,
.send-offer-modal__footer,
.send-offer-modal__section-head,
.send-offer-modal__progress-head,
.send-offer-modal__progress-meta,
.send-offer-modal__recipient-card,
.send-offer-modal__recipient-main,
.send-offer-modal__footer-actions,
.send-offer-modal__journey,
.send-offer-modal__journey-node,
.send-offer-modal__journey-line,
.send-offer-modal__info-row {
  display: flex;
  align-items: center;
}

.send-offer-modal__header,
.send-offer-modal__footer,
.send-offer-modal__section-head,
.send-offer-modal__progress-head,
.send-offer-modal__progress-meta,
.send-offer-modal__recipient-card {
  justify-content: space-between;
}

.send-offer-modal {
  width: 100%;
  max-height: min(92vh, 860px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.send-offer-modal__header {
  position: sticky;
  top: 0;
  z-index: 3;
  background: #fff;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #eef2f7;
  gap: 0.85rem;
  flex-shrink: 0;
}

.send-offer-modal__header-main {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.send-offer-modal__icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  font-size: 0.94rem;
  flex-shrink: 0;
}

.send-offer-modal__icon.is-success {
  background: #ecfdf5;
  color: #10b981;
}

.send-offer-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #223154;
}

.send-offer-modal__subtitle {
  margin-top: 0.18rem;
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 700;
}

.send-offer-modal__close {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
}

.send-offer-modal__hero {
  margin: 0 -1.5rem;
  padding: 0.9rem 1.5rem;
  background: linear-gradient(180deg, #f3fffb 0%, #ffffff 100%);
  border-bottom: 1px solid #eef2f7;
  flex-shrink: 0;
}

.send-offer-modal__hero.is-progress,
.send-offer-modal__hero.is-success {
  display: grid;
  gap: 0.8rem;
}

.send-offer-modal__journey {
  gap: 1rem;
}

.send-offer-modal__journey-node {
  flex-direction: column;
  gap: 0.45rem;
  min-width: 88px;
  position: relative;
}

.send-offer-modal__journey-node span {
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.send-offer-modal__journey-card {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #eef2f7;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--bs-primary);
  font-size: 1.25rem;
  box-shadow: 0 10px 24px rgba(99, 102, 241, 0.08);
  position: relative;
}

.send-offer-modal__journey-line {
  flex: 1 1 auto;
  justify-content: center;
  position: relative;
  min-height: 56px;
  overflow: hidden;
}

.send-offer-modal__journey-line::before {
  content: "";
  width: 100%;
  border-top: 2px dashed #cfe0ef;
  animation: send-offer-line-fade 3.2s ease-in-out infinite;
}

.send-offer-modal__journey-mail {
  position: absolute;
  width: 34px;
  height: 30px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #a7f3d0;
  color: #34d399;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
  box-shadow: 0 10px 22px rgba(16, 185, 129, 0.18);
  animation: send-offer-mail-travel 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.send-offer-modal__journey-sent-badge {
  position: absolute;
  top: -1rem;
  left: -0.1rem;
  min-height: 28px;
  padding: 0 0.7rem;
  border-radius: 999px;
  background: #10b981;
  color: white !important;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  animation: send-offer-badge-fade 3.2s ease-in-out infinite;
  z-index: 2;
}

.send-offer-modal__journey-node.is-phone {
  align-items: flex-end;
}

.send-offer-modal__journey-phone {
  width: 60px;
  height: 90px;
  border-radius: 16px;
  background: #fff;
  border: 3px solid #1f2937;
  position: relative;
  overflow: hidden;
}

.send-offer-modal__journey-phone-notch {
  position: absolute;
  top: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 4px;
  border-radius: 999px;
  background: #111827;
}

.send-offer-modal__journey-phone-card {
  border-radius: 12px;
  border: 1px solid #d1fae5;
  background: #f0fdf4;
  padding: 0.4rem;
  display: grid;
  gap: 0.3rem;
  opacity: 0;
  transform: translateY(10px) scale(0.94);
  animation: send-offer-phone-fill 3.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.send-offer-modal__journey-phone-title {
  font-size: 0.44rem;
  font-weight: 800;
  color: #334155;
  line-height: 1.25;
}

.send-offer-modal__journey-phone-badge {
  min-height: 18px;
  border-radius: 999px;
  background: #10b981;
  color: #fff;
  padding: 0 0.45rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.44rem;
  font-weight: 900;
  width: fit-content;
}

@keyframes send-offer-badge-fade {
  0%, 24% {
    opacity: 1;
    transform: translateY(0);
  }
  32%, 100% {
    opacity: 0;
    transform: translateY(-6px);
  }
}
@keyframes send-offer-mail-travel {
  0% {
    opacity: 0;
    left: 2%;
    transform: translate(0, -50%) scale(0.94);
  }
  8%, 22% {
    opacity: 1;
    left: 2%;
    transform: translate(0, -50%) scale(1);
  }
  58% {
    opacity: 1;
    left: calc(100% - 38px);
    transform: translate(0, -50%) scale(1);
  }
  66%, 100% {
    opacity: 0;
    left: calc(100% - 22px);
    transform: translate(0, -50%) scale(0.92);
  }
}
@keyframes send-offer-line-fade {
  0%, 58% {
    opacity: 1;
  }
  66%, 100% {
    opacity: 0;
  }
}
@keyframes send-offer-phone-fill {
  0%, 56% {
    opacity: 0;
    transform: translateY(10px) scale(0.94);
  }
  68%, 92% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translateY(6px) scale(0.96);
  }
}
.send-offer-modal__section {
  padding: 0.85rem 0 0;
  display: grid;
  gap: 0.6rem;
}

.send-offer-modal__section.is-recipients {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.send-offer-modal__section-title {
  color: #223154;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.send-offer-modal__section-count {
  color: #8fa0bb;
  font-size: 0.74rem;
  font-weight: 800;
}

.send-offer-modal__info-list,
.send-offer-modal__recipient-list {
  display: grid;
  gap: 0.55rem;
}

.send-offer-modal__recipient-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  max-height: min(36vh, 320px);
  padding-right: 0.35rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior: contain;
}

.send-offer-modal__recipient-list::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.send-offer-modal__recipient-list.is-success {
  max-height: min(46vh, 400px);
}

.send-offer-modal__info-row {
  align-items: flex-start;
  gap: 0.65rem;
  color: #52627d;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.45;
}

.send-offer-modal__info-row strong {
  color: #223154;
}

.send-offer-modal__info-icon {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.66rem;
  flex-shrink: 0;
  margin-top: 0.05rem;
}

.send-offer-modal__info-icon.is-primary {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}

.send-offer-modal__info-icon.is-success {
  background: #ecfdf5;
  color: #10b981;
}

.send-offer-modal__info-icon.is-info {
  background: #eff6ff;
  color: #0ea5e9;
}

.send-offer-modal__info-row .is-success-text {
  color: #10b981;
}

.send-offer-modal__info-row .is-primary-text {
  color: var(--bs-primary);
}

.send-offer-modal__recipient-card {
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #fff;
  padding: 0.72rem 0.85rem;
  gap: 0.65rem;
}

.send-offer-modal__recipient-list.is-success .send-offer-modal__recipient-card {
  background: #f7fffb;
  border-color: #d1fae5;
}

.send-offer-modal__recipient-main {
  gap: 0.65rem;
  min-width: 0;
}

.send-offer-modal__avatar {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.76rem;
  font-weight: 800;
  flex-shrink: 0;
}

.send-offer-modal__avatar.is-female {
  background: #fff1f7;
  color: #d63384;
}

.send-offer-modal__avatar.is-male {
  background: #eef7ff;
  color: #0ea5e9;
}

.send-offer-modal__recipient-copy {
  min-width: 0;
  display: grid;
  gap: 0.14rem;
}

.send-offer-modal__recipient-name {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
  color: #223154;
  font-size: 0.86rem;
  font-weight: 800;
}

.send-offer-modal__recipient-name span,
.send-offer-modal__recipient-meta {
  color: #8fa0bb;
  font-size: 0.74rem;
  font-weight: 700;
}

.send-offer-modal__status {
  min-height: 26px;
  padding: 0 0.62rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-size: 0.7rem;
  font-weight: 900;
  white-space: nowrap;
}

.send-offer-modal__status.is-trial {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #10b981;
}

.send-offer-modal__status.is-offer {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  color: var(--bs-primary);
}

.send-offer-modal__status.is-sending {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
  color: var(--bs-primary);
}

.send-offer-modal__status.is-sent {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #10b981;
}

.send-offer-modal__status.is-failed {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #ef4444;
}

.send-offer-modal__progress-copy {
  display: grid;
  gap: 0.18rem;
}

.send-offer-modal__progress-title {
  color: #10b981;
  font-size: 1rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.send-offer-modal__progress-subtitle {
  color: #8fa0bb;
  font-size: 0.82rem;
  font-weight: 700;
}

.send-offer-modal__progress-pill {
  min-width: 64px;
  min-height: 32px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #10b981;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.88rem;
  font-weight: 900;
}

.send-offer-modal__progress-bar {
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: #d1fae5;
  overflow: hidden;
}

.send-offer-modal__progress-bar span {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: repeating-linear-gradient(135deg, #10b981 0, #10b981 10px, #34d399 10px, #34d399 20px);
}

.send-offer-modal__progress-meta {
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 800;
}

.send-offer-modal__success-icon {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  background: #10b981;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  margin: 0 auto;
}

.send-offer-modal__success-title {
  text-align: center;
  color: #223154;
  font-size: 1.35rem;
  font-weight: 800;
}

.send-offer-modal__success-copy {
  text-align: center;
  color: #8fa0bb;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.55;
  max-width: 420px;
  margin: 0 auto;
}

.send-offer-modal__footer {
  position: sticky;
  bottom: 0;
  z-index: 3;
  background: #fff;
  margin: auto -1.5rem 0;
  padding: 0.9rem 1.5rem 0;
  border-top: 1px solid #eef2f7;
  flex-shrink: 0;
  box-shadow: 0 -10px 24px rgba(15, 23, 42, 0.04);
}

.send-offer-modal__footer-actions {
  gap: 0.7rem;
}

.send-offer-modal__btn {
  min-height: 38px;
  border-radius: 12px;
  padding: 0 0.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  font-size: 0.84rem;
  font-weight: 800;
}

.send-offer-modal__btn.is-secondary {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #223154;
}

.send-offer-modal__btn.is-primary {
  border: 1px solid transparent;
  background: var(--bs-primary);
  color: #fff;
}

.send-offer-modal__btn.is-success {
  border: 1px solid transparent;
  background: #10b981;
  color: #fff;
}

.send-offer-modal__btn:disabled {
  opacity: 0.55;
  box-shadow: none;
  cursor: not-allowed;
}

.send-offer-modal__spinner {
  width: 14px;
  height: 14px;
  border-radius: 999px;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.22);
  border-top-color: #10b981;
  animation: send-offer-spin 0.8s linear infinite;
}

.send-offer-modal__progress-title .send-offer-modal__spinner {
  width: 18px;
  height: 18px;
  border-width: 2px;
  flex-shrink: 0;
}

.send-offer-modal__spinner.is-light {
  border-color: rgba(255, 255, 255, 0.28);
  border-top-color: #fff;
}

@keyframes send-offer-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 767.98px) {
  .send-offer-modal {
    max-width: min(100%, 420px);
    max-height: calc(100vh - 1.5rem);
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .send-offer-modal::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
  .send-offer-modal__header,
  .send-offer-modal__footer {
    position: static;
  }
  .send-offer-modal__progress-head,
  .send-offer-modal__progress-meta,
  .send-offer-modal__footer-actions {
    flex-wrap: wrap;
  }
  .send-offer-modal__progress-head {
    align-items: flex-start;
    gap: 0.6rem;
  }
  .send-offer-modal__progress-copy {
    min-width: 0;
    flex: 1 1 0;
  }
  .send-offer-modal__progress-title {
    font-size: 0.84rem;
    line-height: 1.25;
    gap: 0.45rem;
    flex-wrap: nowrap;
  }
  .send-offer-modal__progress-subtitle {
    font-size: 0.72rem;
    line-height: 1.35;
  }
  .send-offer-modal__progress-pill {
    min-width: 54px;
    min-height: 26px;
    font-size: 0.76rem;
    align-self: flex-start;
  }
  .send-offer-modal__progress-meta {
    font-size: 0.76rem;
  }
  .send-offer-modal__progress-title .send-offer-modal__spinner {
    width: 16px;
    height: 16px;
  }
  .send-offer-modal__section.is-recipients {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
  }
  .send-offer-modal__recipient-list,
  .send-offer-modal__recipient-list.is-success {
    flex: 0 0 auto;
    min-height: auto;
    max-height: none;
    overflow: visible;
    padding-right: 0;
  }
  .send-offer-modal__recipient-card {
    padding: 0.68rem 0.78rem;
    border-radius: 13px;
  }
  .send-offer-modal__recipient-main {
    gap: 0.55rem;
  }
  .send-offer-modal__avatar {
    width: 30px;
    height: 30px;
    font-size: 0.74rem;
  }
  .send-offer-modal__recipient-name {
    font-size: 0.82rem;
  }
  .send-offer-modal__recipient-name span,
  .send-offer-modal__recipient-meta {
    font-size: 0.71rem;
  }
  .send-offer-modal__status {
    min-height: 24px;
    padding: 0 0.55rem;
    font-size: 0.68rem;
    gap: 0.28rem;
  }
  .send-offer-modal__footer {
    margin: 0 -1.2rem 0;
  }
  .send-offer-modal__btn {
    min-height: 34px;
    font-size: 0.76rem;
    padding: 0 0.75rem;
  }
  .waiting-list-picker-modal__footer,
  .waiting-list-picker-modal__selection-head {
    flex-direction: column;
    align-items: stretch;
  }
  .waiting-list-picker-modal__header {
    align-items: stretch;
  }
  .waiting-list-picker-modal__footer-actions {
    width: 100%;
  }
  .waiting-list-picker-modal__action-btn {
    flex: 1 1 0;
  }
  .waiting-list-picker-modal__students {
    max-height: 280px;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-list {
    max-height: none;
    overflow: visible;
    gap: 0.55rem;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-family {
    overflow: visible;
    max-height: none;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-student {
    padding: 1rem 0.9rem 1.05rem;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent {
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent > div:not(.trials-add-flow__success-email-chip) {
    min-width: 0;
    flex: 1 1 auto;
  }
  .waiting-list-picker-modal__body.is-success .trials-add-flow__success-email-chip {
    margin-left: auto;
    flex-shrink: 0;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-check {
    flex-shrink: 0;
  }
  .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-copy {
    min-width: 0;
    flex: 1 1 auto;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-banner {
    flex-wrap: nowrap;
    align-items: center;
    min-height: 50px;
    padding: 0.55rem 0.65rem;
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-banner > span:not(.waiting-list-picker-modal__success-check) {
    min-width: 0;
    flex: 1 1 auto;
    line-height: 1.25;
    font-size: 0.72rem;
    word-break: break-word;
    overflow-wrap: anywhere;
  }
}
@media (max-width: 991.98px) {
  .waiting-list-admin__topbar,
  .waiting-list-admin__table-top,
  .waiting-list-admin__header-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .waiting-list-admin__header-actions,
  .waiting-list-admin__table-tools {
    flex-wrap: wrap;
  }
}
@media (max-width: 767.98px) {
  .waiting-list-admin__shell {
    padding-top: 0.95rem;
    padding-bottom: 1rem;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .waiting-list-admin__topbar {
    display: grid;
    gap: 0.85rem;
    margin-bottom: 1rem;
  }
  .waiting-list-admin__title {
    font-size: 1.02rem;
    line-height: 1.2;
    margin-bottom: 0.2rem;
  }
  .waiting-list-admin__subtitle {
    font-size: 0.75rem;
    line-height: 1.35;
  }
  .waiting-list-admin__header-actions {
    flex-direction: row;
    align-items: stretch;
    gap: 0.65rem;
    flex-wrap: nowrap;
  }
  .waiting-list-admin__primary-btn,
  .waiting-list-admin__secondary-btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 38px;
    justify-content: center;
    padding: 0 0.65rem;
    border-radius: 12px;
    font-size: 0.74rem;
    gap: 0.45rem;
    white-space: nowrap;
  }
  .members-filter-toggle.d-md-none {
    width: 38px;
    min-width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 0.86rem;
    justify-content: center;
  }
  .waiting-list-admin__stats {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
    margin-bottom: 1.05rem;
  }
  .waiting-list-admin__filters-card,
  .waiting-list-admin__selection-card {
    border-radius: 16px;
  }
  .waiting-list-admin__filters-card .card-body,
  .waiting-list-admin__selection-card .card-body {
    padding: 0.9rem;
  }
  .waiting-list-admin__filters-grid {
    gap: 0.95rem;
  }
  .waiting-list-admin__filter-block {
    gap: 0.55rem;
    width: 100%;
  }
  .waiting-list-admin__filter-heading {
    font-size: 0.72rem;
    letter-spacing: 0.05em;
  }
  .waiting-list-admin__filter-head {
    gap: 0.5rem;
  }
  .waiting-list-admin__search-wrap i {
    left: 0.85rem;
    font-size: 0.95rem;
  }
  .waiting-list-admin__search-input {
    min-height: 40px;
    border-radius: 12px;
    padding-left: 2rem;
    font-size: 0.82rem;
  }
  .waiting-list-admin__filter-pills {
    gap: 0.5rem;
  }
  .waiting-list-admin__filter-pill {
    min-height: 30px;
    padding: 0 0.75rem;
    border-radius: 11px;
    font-size: 0.76rem;
  }
  .waiting-list-admin__filter-pills--days {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
  }
  .waiting-list-admin__filter-pills--days .waiting-list-admin__filter-pill {
    min-width: 0;
    width: 100%;
    padding: 0 0.35rem;
  }
  .waiting-list-admin__filters-actions {
    margin-top: 0.1rem;
  }
  .waiting-list-admin__filters-reset {
    min-height: 36px;
    padding: 0 0.85rem;
    font-size: 0.76rem;
    border-radius: 10px;
  }
  .waiting-list-admin__table-top {
    flex-direction: row;
    padding: 0.8rem 0.95rem;
    border-radius: 20px 20px 0 0;
    gap: 0.8rem;
    align-items: center;
  }
  .waiting-list-admin__view-switcher .view-btn {
    min-height: 34px;
    padding: 0 0.8rem;
    font-size: 0.72rem;
  }
  .waiting-list-admin__table-tools {
    flex-direction: row;
    margin-left: auto;
  }
  .waiting-list-admin__tool-label,
  .waiting-list-admin__per-page-select,
  .waiting-list-admin__columns-btn {
    display: none !important;
  }
  .waiting-list-admin__tool-count {
    font-size: 0.65rem;
    font-weight: 700;
    white-space: nowrap;
  }
  .waiting-list-admin__table-card {
    border-radius: 0 0 20px 20px;
    overflow: visible;
  }
  .waiting-list-admin__mobile-list {
    display: grid;
    gap: 0.75rem;
    padding: 0.75rem 1rem 1rem;
    background: #f4f7fb;
  }
  .waiting-list-admin__desktop-table {
    display: none;
  }
  .waiting-list-admin__mobile-select-all {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1rem;
    background: #fff;
    border-top: 1px solid #eef2f7;
    border-bottom: 1px solid #eef2f7;
    color: var(--bs-secondary);
    font-size: 0.8rem;
    font-weight: 800;
  }
  .waiting-list-admin__mobile-select-all.is-active {
    background: rgba(99, 102, 241, 0.08);
    color: #1e2f5f;
  }
  .trials-admin__mobile-tools {
    display: grid;
  }
  .trials-admin__mobile-tools-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.95rem 1rem;
    border-bottom: 1px solid #eef2f7;
    background: #fff;
  }
  .trials-admin__mobile-tools-row .waiting-list-admin__tool-label {
    display: inline-flex !important;
    font-size: 0.8rem;
    font-weight: 700;
  }
  .trials-admin__mobile-per-page {
    display: block !important;
    width: 84px;
    border-radius: 12px;
    border-color: #dbe3ef;
    font-weight: 700;
    font-size: 0.8rem;
  }
  .trials-admin__mobile-tools-row .waiting-list-admin__tool-count {
    font-size: 0.8rem;
    font-weight: 700;
    color: #90a0c3;
    white-space: nowrap;
  }
  .trials-admin__mobile-clear-link {
    color: var(--bs-primary);
    font-size: 0.78rem;
    font-weight: 700;
  }
  .waiting-list-admin__mobile-group-label {
    padding: 0.85rem 1rem 0 1rem;
    color: #8fa0bb;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }
  .waiting-list-admin__mobile-group-label span {
    color: var(--bs-primary);
  }
  .trials-admin__mobile-footer {
    align-items: flex-start;
    flex-direction: row;
  }
  .trials-admin__mobile-age {
    color: #8fa0bb;
    font-size: 0.74rem;
    font-weight: 700;
  }
  .trials-admin__notes-btn,
  .trials-admin__location-pill,
  .trials-admin__status-pill {
    font-size: 0.74rem;
  }
  .trials-admin__absence-panel {
    width: 216px;
    padding: 0.9rem;
  }
  .waiting-list-admin__mobile-message {
    padding: 0.9rem 1rem 0;
  }
  .waiting-list-admin__mobile-card {
    padding: 1rem;
    border: 1px solid #e6edf8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
  }
  .waiting-list-admin__mobile-card.is-selected {
    background: #fbfaff;
    border-color: rgba(var(--bs-primary-rgb), 0.28);
    box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.08);
  }
  .waiting-list-admin__mobile-card .members-table-row-check {
    width: 18px;
    height: 18px;
    border-radius: 7px;
    margin-top: 0.15rem;
    flex-shrink: 0;
  }
  .waiting-list-admin__mobile-card .members-table-row-check i {
    font-size: 0.65rem;
  }
  .waiting-list-admin__mobile-card .members-table-row-check.is-checked {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
  }
  .waiting-list-admin__mobile-card-top {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.55rem;
  }
  .waiting-list-admin__mobile-card-top .waiting-list-admin__avatar {
    width: 2.35rem;
    height: 2.35rem;
    font-size: 0.75rem;
  }
  .waiting-list-admin__mobile-card-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
  }
  .waiting-list-admin__mobile-student-name {
    color: var(--bs-secondary);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
  }
  .waiting-list-admin__mobile-student-name a {
    color: inherit;
  }
  .waiting-list-admin__mobile-phone-wrap {
    position: relative;
    display: inline-flex;
    align-self: center;
    flex-shrink: 0;
  }
  .waiting-list-admin__mobile-badges {
    margin-top: 0.65rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
  }
  .waiting-list-admin__mobile-class-card {
    margin-top: 0.75rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid #e5edf6;
    border-radius: 14px;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
  }
  .waiting-list-admin__mobile-class-copy {
    min-width: 0;
    flex: 1 1 auto;
    color: inherit;
  }
  .waiting-list-admin__mobile-class-name {
    color: var(--bs-secondary);
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.25;
  }
  .waiting-list-admin__mobile-class-meta {
    margin-top: 0.1rem;
    color: #8fa0bb;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.3;
  }
  .waiting-list-admin__mobile-class-card .waiting-list-admin__capacity,
  .waiting-list-admin__mobile-class-card .capacity-display {
    flex: 0 0 auto;
    min-width: 52px;
    align-items: flex-end;
  }
  .waiting-list-admin__mobile-capacity-text {
    flex: 0 0 auto;
    color: #8fa0bb;
    font-size: 0.76rem;
    font-weight: 700;
    white-space: nowrap;
  }
  .trials-admin__mobile-delete-top {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    flex-shrink: 0;
  }
  .trials-admin__mobile-delete-confirm {
    padding-top: 0.5rem;
  }
  .trials-admin__mobile-delete-confirm .trials-delete-banner {
    gap: 0.8rem;
    padding: 0.9rem;
    border-radius: 14px;
  }
  .trials-admin__mobile-delete-confirm .trials-delete-banner-icon {
    width: 28px;
    height: 28px;
    font-size: 0.8rem;
  }
  .trials-admin__mobile-delete-confirm .trials-delete-banner-msg {
    min-width: 0;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.45;
  }
  .trials-admin__mobile-delete-actions {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
  }
  .trials-admin__mobile-delete-confirm .trials-btn-del-yes,
  .trials-admin__mobile-delete-confirm .trials-btn-del-no {
    min-width: 64px;
    padding: 0.58rem 1.15rem;
    border-radius: 12px;
    font-size: 0.8rem;
  }
  .trials-admin__mobile-chip-row {
    margin-top: 0.7rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }
  .trials-admin__mobile-chip {
    min-height: 34px;
    padding: 0 0.75rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1;
  }
  .trials-admin__mobile-chip.is-class {
    color: var(--bs-secondary);
    background: rgba(124, 58, 237, 0.08);
    border: 1px solid rgba(124, 58, 237, 0.26);
  }
  .trials-admin__mobile-chip.is-group {
    color: #334155;
    background: #f8fafc;
    border: 1px solid #e5edf6;
  }
  .trials-admin__mobile-chip.is-location {
    color: var(--bs-secondary);
    background: rgba(124, 58, 237, 0.08);
    border: 1px solid rgba(124, 58, 237, 0.22);
  }
  .waiting-list-admin__mobile-status-row {
    margin-top: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    flex-wrap: wrap;
  }
  .waiting-list-admin__mobile-dates {
    color: #8fa0bb;
    font-size: 0.72rem;
    font-weight: 700;
  }
  .waiting-list-admin__mobile-actions-row {
    margin-top: 0.7rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .waiting-list-admin__mobile-offer-btn {
    flex: 1 1 auto;
    min-height: 2.75rem;
    border: 1px solid transparent;
    border-radius: 0.85rem;
    background: var(--bs-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0 0.9rem;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
  }
  .waiting-list-admin__mobile-offer-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
  }
  .waiting-list-admin__mobile-delete-btn {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.85rem;
    flex: 0 0 auto;
  }
  .trials-admin__mobile-status-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }
  .trials-admin__mobile-divider {
    margin-top: 0.75rem;
    border-top: 1px dashed #e2e8f0;
  }
  .trials-admin__mobile-call {
    min-height: 34px;
    padding: 0 0.8rem;
    border-radius: 12px;
    font-size: 0.76rem;
    font-weight: 800;
  }
  .trials-admin__mobile-footer {
    margin-top: 0.75rem;
    align-items: center;
    gap: 0.55rem;
  }
  .trials-admin__mobile-footer .text-muted,
  .trials-admin__pay-today {
    margin-left: auto;
  }
  .trials-admin__notes-btn {
    min-height: 34px;
    padding: 0 0.75rem;
  }
  .trials-admin__absence-panel--mobile {
    position: static;
    width: 100%;
    margin-top: 0.65rem;
    box-shadow: none;
  }
  .waiting-list-admin__stat-card {
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
  }
  .waiting-list-admin__stat-card .card-body {
    padding: 0.9rem 0.9rem 0.85rem;
  }
  .waiting-list-admin__stat-card .card-body > .d-flex.align-items-center {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
  }
  .waiting-list-admin__stat-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 0.78rem;
  }
  .waiting-list-admin__stat-card .flex-grow-1.ms-3 {
    margin-left: 0 !important;
    min-width: 0;
  }
  .waiting-list-admin__stat-card .text-muted.small.text-uppercase {
    margin-bottom: 0.15rem;
    font-size: 0.66rem;
    line-height: 1.15;
    letter-spacing: 0.08em;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
    writing-mode: horizontal-tb;
  }
  .waiting-list-admin__stat-value-row {
    display: grid;
    gap: 0.1rem;
  }
  .waiting-list-admin__stat-card .h4 {
    font-size: 1.35rem;
    line-height: 1;
  }
  .waiting-list-admin__stat-value-row .text-muted.small {
    white-space: normal;
    font-size: 0.68rem;
    line-height: 1.25;
  }
  .waiting-list-admin__avatar {
    width: 1.95rem;
    height: 1.95rem;
    font-size: 0.68rem;
  }
  .waiting-list-admin__parent-row {
    gap: 0.35rem;
    font-size: 0.72rem;
  }
  .waiting-list-admin__phone-btn {
    width: 1.4rem;
    height: 1.4rem;
    font-size: 0.68rem;
  }
  .waiting-list-admin__position-pill,
  .waiting-list-admin__age-pill {
    min-width: 34px;
    min-height: 24px;
    padding: 0 0.5rem;
    font-size: 0.68rem;
  }
  .waiting-list-admin__gender-chip {
    width: 28px;
    height: 28px;
    font-size: 0.72rem;
  }
  .waiting-list-admin__status-chip,
  .waiting-list-admin__offer-pill {
    min-height: 1.7rem;
    padding: 0 0.65rem;
    font-size: 0.68rem;
    gap: 0.3rem;
  }
  .waiting-list-admin__icon-btn {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 8px;
    font-size: 0.72rem;
  }
  .waiting-list-admin__inline-message {
    min-height: 0;
    padding: 0.65rem 0.75rem;
    border-radius: 14px;
    gap: 0.65rem;
    align-items: flex-start;
  }
  .waiting-list-admin__inline-message-main,
  .waiting-list-admin__inline-message-actions {
    gap: 0.55rem;
  }
  .waiting-list-admin__inline-message-text {
    font-size: 0.76rem;
    line-height: 1.35;
  }
  .waiting-list-admin__inline-message-icon {
    width: 30px;
    height: 30px;
    font-size: 0.82rem;
  }
  .waiting-list-admin__inline-btn {
    min-height: 34px;
    padding: 0 0.8rem;
    font-size: 0.76rem;
    border-radius: 10px;
  }
  .waiting-list-admin__mobile-message {
    padding: 0.75rem 0.85rem 0;
  }
}
.trials-page {
  background: #f4f6fb;
  min-height: 100vh;
}

.trials-page-shell {
  max-width: 1100px;
  margin: 0 auto;
  padding: 1.5rem 0 1rem;
}

.trials-page-header {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}

.trials-page-header-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 20px 24px 18px;
  max-width: 1100px;
}

.trials-page-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--bs-secondary);
  margin: 0;
  letter-spacing: -0.3px;
}

.trials-page-subtitle {
  font-size: 0.85rem;
  color: #6b7a99;
  margin: 4px 0 0;
}

/* -- Branding panel ------------------------------------------- */
.trials-brand-panel {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 14px 24px;
}

.trials-brand-swatch {
  flex: 1 1 130px;
  min-width: 110px;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  padding: 10px 12px;
  background: #fafafa;
}

.trials-brand-swatch-label {
  font-size: 0.72rem;
  color: #8a96b0;
  font-weight: 600;
  margin-bottom: 8px;
}

.trials-brand-swatch-bar {
  height: 28px;
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

/* ---------------------------------------------------------------
   STAT CARDS  (3-up row at top of trials page)
   ---------------------------------------------------------------
    Desktop / tablet =768 px ? cards render INLINE in a 3-col grid.
    Mobile <768 px           ? cards live in a bottom-sheet that
     opens via the chart-icon toggle in the page header.
    Each card has its own LAST MONTH / ALL TIME scope pill.
    All brand colours come from var(--bs-primary)  never hex.
--------------------------------------------------------------- */
.trials-stats-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.trials-admin .members-page-title,
.trials-admin .members-table-sort.is-active,
.trials-admin .members-table-sort.is-active .members-table-sort-icon {
  color: var(--bs-secondary);
}

.trials-stat-card {
  background: #fff;
  border: 1px solid #e8edf5;
  border-radius: 22px;
  padding: 1.2rem 1.2rem 1rem;
  min-height: 218px;
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.trials-stat-card.is-clickable {
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.trials-stat-card.is-clickable:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.07);
  transform: translateY(-1px);
}

.trials-stat-card.is-clickable:focus-visible {
  outline: 0;
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.12);
}

.trials-stat-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
}

.trials-stat-card-title {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--bs-secondary);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.25;
}

.trials-stat-card-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
  flex-shrink: 0;
}

.trials-stat-card-icon.is-primary {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}

.trials-stat-card-icon.is-success {
  background: #ecfdf5;
  color: #16a34a;
}

.trials-stat-card-icon.is-purple {
  background: rgba(139, 92, 246, 0.12);
  color: #8b5cf6;
}

/* scope toggle pill (LAST MONTH / ALL TIME) */
.trials-scope-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 0.95rem;
  border-radius: 999px;
  border: 1.5px solid rgba(var(--bs-primary-rgb), 0.55);
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Card 1  ranked top-classes list */
.trials-stat-rank-list {
  display: grid;
  gap: 0.75rem;
}

.trials-stat-rank-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
}

.trials-stat-rank-num {
  color: #8fa0bb;
  font-size: 0.75rem;
  font-weight: 800;
}

.trials-stat-rank-name {
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.trials-stat-rank-count {
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 800;
}

.trials-stat-rank-bar {
  grid-column: 2/-1;
  height: 6px;
  border-radius: 999px;
  background: #edf1f7;
  overflow: hidden;
}

.trials-stat-rank-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
}

.trials-stat-rank-fill.is-primary {
  background: var(--bs-primary);
}

.trials-stat-rank-fill.is-secondary {
  background: #8b5cf6;
}

.trials-stat-rank-fill.is-accent {
  background: #f97316;
}

/* Cards 2 & 3  big-percentage + progress bar pattern */
.trials-stat-big {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.trials-stat-pct-wrap {
  display: grid;
  gap: 0.1rem;
}

.trials-stat-pct {
  color: var(--bs-secondary);
  font-size: 2.2rem;
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.05em;
}

.trials-stat-pct-label {
  color: #8a97b6;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.trials-stat-bar-wrap {
  display: grid;
  gap: 0.45rem;
  padding-top: 0.35rem;
}

.trials-stat-bar {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: #edf1f7;
  overflow: hidden;
}

.trials-stat-bar-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
}

.trials-stat-bar-fill.is-success {
  background: #16a34a;
}

.trials-stat-bar-fill.is-purple {
  background: #8b5cf6;
}

.trials-stat-caption {
  color: #8a97b6;
  font-size: 0.82rem;
  font-weight: 700;
}

.trials-stat-caption strong {
  color: #233458;
}

.trials-stat-footnote {
  margin-top: auto;
  color: #8a97b6;
  font-size: 0.8rem;
  font-weight: 600;
}

/* page-header action buttons */
.trials-btn-new-trial {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
  font-weight: 800;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.trials-btn-show-filters {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 10px;
  border: 1.5px solid var(--bs-primary);
  background: var(--bs-white);
  color: var(--bs-primary);
  font-weight: 800;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.trials-btn-stats-toggle {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  border: 1.5px solid var(--bs-primary);
  background: var(--bs-white);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* ---------------------------------------------------------------
   MOBILE STATS BOTTOM-SHEET
--------------------------------------------------------------- */
@keyframes trialStatsFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes trialStatsSlideUp {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
.trials-stats-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1080;
  background: rgba(15, 23, 42, 0.45);
  animation: trialStatsFadeIn 0.15s ease-out;
}

.trials-stats-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1090;
  background: #fff;
  border-top-left-radius: 18px;
  border-top-right-radius: 18px;
  padding: 10px 14px 18px;
  max-height: 85vh;
  overflow-y: auto;
  animation: trialStatsSlideUp 0.22s ease-out;
  box-shadow: 0 -10px 40px rgba(15, 23, 42, 0.2);
}

.trials-stats-sheet-handle {
  width: 36px;
  height: 4px;
  background: #e5e7eb;
  border-radius: 2px;
  margin: 0 auto 12px;
}

.trials-stats-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.trials-stats-sheet-title {
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--bs-secondary);
}

.trials-stats-sheet-close {
  background: none;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  padding: 4px;
  line-height: 0;
}

.trials-stats-sheet-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.8rem;
}

/* Adaptive stacking */
@media (max-width: 991.98px) {
  .trials-stats-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767.98px) {
  .trials-stats-row {
    display: none;
  }
  .trials-btn-stats-toggle.d-md-none {
    display: inline-flex;
  }
  .trials-stat-card {
    min-height: 0;
    border-radius: 16px;
    padding: 0.95rem;
    gap: 0.8rem;
  }
  .trials-stat-card-title {
    font-size: 0.8rem;
    gap: 0.6rem;
  }
  .trials-stat-card-icon {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    font-size: 0.72rem;
  }
  .trials-scope-pill {
    min-height: 28px;
    padding: 0 0.75rem;
    font-size: 0.63rem;
  }
  .trials-stat-rank-row {
    grid-template-columns: 15px minmax(0, 1fr) auto;
    gap: 0.4rem;
  }
  .trials-stat-rank-num,
  .trials-stat-rank-name,
  .trials-stat-rank-count,
  .trials-stat-caption,
  .trials-stat-footnote {
    font-size: 0.68rem;
  }
  .trials-stat-big {
    gap: 0.75rem;
  }
  .trials-stat-pct {
    font-size: 1.9rem;
  }
  .trials-stat-pct-label {
    font-size: 0.64rem;
  }
}
@media (min-width: 768px) {
  .trials-btn-stats-toggle {
    display: none;
  }
}
/* -- Toolbar -------------------------------------------------- */
.trials-toolbar {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  padding: 10px 24px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.trials-toolbar-search-wrap {
  position: relative;
  flex: 1 1 200px;
  min-width: 160px;
}

.trials-toolbar-search {
  width: 100%;
  padding: 8px 12px 8px 34px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  font-size: 0.84rem;
  font-family: inherit;
  color: var(--bs-secondary);
  background: #fff;
  outline: none;
}

.trials-toolbar-search:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.6);
}

.trials-toolbar-search-icon {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
}

.trials-toolbar-btn {
  padding: 7px 14px;
  border: 1.5px solid #e5e7eb;
  border-radius: 9px;
  background: #fff;
  color: #6b7a99;
  font-weight: 700;
  font-size: 0.78rem;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
}

.trials-toolbar-btn.active {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

/* -- Column header -------------------------------------------- */
.trials-column-header {
  display: flex;
  gap: 14px;
  padding: 0 18px 6px;
  color: #9ca3af;
  font-size: 0.67rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.trials-col-del {
  width: 28px;
  flex-shrink: 0;
}

.trials-col-av {
  width: 42px;
  flex-shrink: 0;
}

.trials-col-person {
  flex: 1 1 140px;
}

.trials-col-class {
  flex: 1 1 150px;
}

.trials-col-date {
  flex: 0 0 130px;
}

.trials-col-status {
  flex: 0 0 80px;
}

.trials-col-bal {
  flex: 0 0 52px;
  text-align: right;
}

.trials-col-act {
  flex: 0 0 auto;
  min-width: 148px;
}

/* -- Trial card ----------------------------------------------- */
.trials-trial-card {
  background: #fff;
  border-radius: 16px;
  border: 1.5px solid #f0f1f5;
  overflow: hidden;
  margin-bottom: 10px;
  transition: box-shadow 0.15s, border-color 0.15s;
}

.trials-trial-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.trials-trial-card-accent {
  height: 3px;
  background: transparent;
}

.trials-card--edit {
  border-color: rgba(var(--bs-primary-rgb), 0.4);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.09);
}

.trials-card--edit .trials-trial-card-accent {
  background: var(--bs-primary);
}

.trials-card--notes {
  border-color: #e5e7eb;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.09);
}

.trials-card--notes .trials-trial-card-accent {
  background: #6366f1;
}

.trials-card--delete {
  border-color: var(--bs-danger-border-subtle);
}

.trials-card--delete .trials-trial-card-accent {
  background: #ef4444;
}

.trials-trial-card-body {
  padding: 14px 18px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

/* delete X button */
.trials-btn-del-x {
  flex-shrink: 0;
  margin-top: 12px;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 1.5px solid var(--bs-danger-border-subtle);
  background: var(--bs-danger-bg-subtle);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* avatar */
.trials-trial-avatar {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 800;
  font-size: 0.82rem;
  margin-top: 2px;
}

/* child info */
.trials-child-name {
  font-weight: 800;
  color: var(--bs-secondary);
  font-size: 0.92rem;
}

.trials-child-meta {
  display: flex;
  gap: 6px;
  margin-top: 4px;
  flex-wrap: wrap;
}

.trials-meta-item {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 0.73rem;
  color: #6b7a99;
}

.trials-meta-icon {
  color: #9ca3af;
}

.trials-meta-age {
  font-size: 0.7rem;
  color: #9ca3af;
  font-weight: 600;
}

/* class */
.trials-class-name {
  font-weight: 700;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  margin-bottom: 5px;
}

.trials-group-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 0.65rem;
  font-weight: 700;
}

/* date/time */
.trials-date-row {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--bs-secondary);
  margin-bottom: 4px;
}

.trials-time-row {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.73rem;
  font-weight: 600;
  color: #6b7a99;
}

/* status badges */
.trials-sbadge {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 99px;
  font-size: 0.65rem;
  font-weight: 700;
}

.trials-sbadge--att {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  border: 1px solid var(--bs-success-border-subtle);
}

.trials-sbadge--hol {
  background: var(--bs-warning-bg-subtle);
  color: var(--bs-warning);
  border: 1px solid var(--bs-warning-border-subtle);
}

.trials-sbadge--none {
  background: #f3f4f6;
  color: #9ca3af;
  border: 1px solid #e5e7eb;
}

/* balance */
.trials-bal-amt {
  font-weight: 800;
  font-size: 0.88rem;
}

.trials-bal-zero {
  color: #9ca3af;
}

.trials-bal-pos {
  color: var(--bs-success);
}

.trials-bal-lbl {
  font-size: 0.63rem;
  color: #9ca3af;
  font-weight: 600;
}

/* action buttons */
.trials-btn-view {
  padding: 7px 14px;
  border: none;
  border-radius: 9px;
  background: var(--bs-secondary);
  color: var(--m-on-secondary, #fff);
  font-weight: 700;
  font-size: 0.76rem;
  cursor: pointer;
  font-family: inherit;
}

.trials-btn-icon {
  width: 32px;
  height: 32px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #6b7a99;
  position: relative;
}

.trials-btn-icon--edit {
  border-color: rgba(var(--bs-primary-rgb), 0.5);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.trials-btn-icon--notes {
  border-color: #c7d2fe;
  background: #eef2ff;
  color: #6366f1;
}

.trials-notes-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #6366f1;
  color: #fff;
  font-size: 0.55rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* delete confirmation banner */
.trials-delete-banner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  padding: 12px 16px;
  border-radius: 10px;
  background: var(--bs-warning-bg-subtle);
  border: 1px solid var(--bs-warning-border-subtle);
}

.trials-delete-banner-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--bs-warning);
  color: var(--bs-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.trials-delete-banner-msg {
  flex: 1;
  min-width: 180px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
}

.trials-delete-banner-copy {
  flex: 1;
  min-width: 220px;
  display: grid;
  gap: 10px;
}

.trials-delete-email-card {
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.75rem 0.85rem;
  text-align: left;
}

.trials-delete-email-card.is-on {
  border-color: rgba(239, 68, 68, 0.28);
  background: rgba(239, 68, 68, 0.06);
}

.trials-delete-email-copy {
  display: grid;
  gap: 0.08rem;
}

.trials-delete-email-title {
  font-size: 0.8rem;
  font-weight: 800;
  color: #7c2d12;
}

.trials-delete-email-description {
  font-size: 0.72rem;
  line-height: 1.45;
  color: #9a3412;
}

.trials-btn-del-yes {
  padding: 8px 22px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  background: var(--bs-success);
  color: var(--bs-white);
  font-size: 0.85rem;
  font-weight: 700;
  font-family: inherit;
}

.trials-btn-del-no {
  padding: 8px 22px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  background: var(--bs-danger);
  color: var(--bs-white);
  font-size: 0.85rem;
  font-weight: 700;
  font-family: inherit;
}

.trials-delete-banner-row {
  padding: 12px 18px;
}

/* edit-date panel */
.trials-edit-panel {
  border-top: 1.5px solid rgba(var(--bs-primary-rgb), 0.2);
  background: color-mix(in srgb, var(--bs-primary) 3%, white);
  padding: 18px 20px;
}

.trials-panel-label {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--bs-primary);
  margin-bottom: 14px;
}

.trials-field-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7a99;
  margin-bottom: 6px;
}

.trials-panel-select-wrap {
  position: relative;
}

.trials-panel-select {
  width: 100%;
  max-width: 260px;
  padding: 10px 36px 10px 12px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  font-size: 0.85rem;
  font-family: inherit;
  color: var(--bs-secondary);
  background: #fff;
  outline: none;
  appearance: none;
  cursor: pointer;
}

.trials-panel-select:focus {
  border-color: var(--bs-primary);
}

.trials-panel-chevron {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #9ca3af;
}

.trials-btn-panel-cancel {
  padding: 10px 16px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  color: #6b7a99;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.trials-btn-panel-save {
  padding: 10px 20px;
  border: none;
  border-radius: 10px;
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.trials-btn-panel-save:disabled {
  background: #e5e7eb;
  color: #9ca3af;
  cursor: not-allowed;
}

/* notes panel */
.trials-notes-panel {
  border-top: 1px solid var(--bs-primary-border-subtle);
  background: var(--bs-primary-bg-subtle);
  padding: 18px 20px;
}

.trials-notes-label {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #6366f1;
  margin-bottom: 14px;
}

.trials-note-item {
  background: #fff;
  border: 1.5px solid var(--bs-primary-border-subtle);
  border-radius: 10px;
  padding: 10px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}

.trials-note-text {
  flex: 1;
  font-size: 0.82rem;
  color: #374151;
  line-height: 1.6;
}

.trials-note-del {
  border: none;
  background: none;
  cursor: pointer;
  color: #9ca3af;
  padding: 2px;
}

.trials-note-textarea {
  width: 100%;
  min-height: 38px;
  padding: 9px 12px;
  border: 1.5px solid #e5e7eb;
  border-radius: 9px;
  font-size: 0.82rem;
  font-family: inherit;
  outline: none;
  color: var(--bs-emphasis-color);
  resize: none;
  background: var(--bs-white);
  transition: min-height 0.15s, border-color 0.15s;
}

.trials-note-textarea:focus,
.trials-note-textarea--open {
  min-height: 110px;
  border: 2px solid var(--bs-warning);
  background: var(--bs-warning-bg-subtle);
}

.trials-note-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 12px;
}

.trials-note-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--bs-emphasis-color);
  cursor: pointer;
  user-select: none;
}

.trials-note-check input {
  accent-color: var(--bs-warning);
  width: 15px;
  height: 15px;
  cursor: pointer;
}

.trials-note-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.trials-btn-note-save {
  padding: 8px 18px;
  border: none;
  border-radius: 8px;
  background: var(--bs-warning);
  color: var(--bs-white);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.trials-btn-note-cancel {
  padding: 8px 18px;
  border: none;
  border-radius: 8px;
  background: var(--bs-secondary);
  color: var(--m-on-secondary, #fff);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

/* reschedule helper line */
.trials-reschedule-hint {
  font-size: 0.73rem;
  color: var(--bs-secondary-color);
  font-weight: 600;
  margin: -4px 0 10px;
}

.trials-attended-wrap {
  position: relative;
}

.trials-attended-sel {
  padding: 5px 28px 5px 10px;
  border: 1.5px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.75rem;
  font-family: inherit;
  font-weight: 700;
  color: #374151;
  background: #fff;
  outline: none;
  appearance: none;
  cursor: pointer;
}

.trials-attended-chev {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #9ca3af;
  font-size: 0.65rem;
}

/* empty state */
.trials-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 16px;
  gap: 10px;
}

.trials-empty-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #f9fafb;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Mobile responsiveness */
@media (max-width: 640px) {
  .trials-column-header {
    display: none;
  }
  .trials-trial-card-body {
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px;
  }
}
.outstanding-invoices-page {
  padding: 1.25rem 0 2rem;
}

.outstanding-invoices-page__container {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

@media (min-width: 992px) {
  .outstanding-invoices-page__container {
    max-width: 1540px;
  }
}

.outstanding-invoices-page__shell {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.outstanding-invoices-page__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.outstanding-invoices-page__title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.outstanding-invoices-page__subtitle {
  margin-top: 0.2rem;
  color: #7b8aa5;
  font-size: 0.84rem;
  font-weight: 600;
}

.outstanding-invoices-page__subtitle-meta {
  color: #9aa8bd;
  font-weight: 600;
}

.outstanding-invoices-page__actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.outstanding-invoices-page__new-invoices {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 42px;
  padding: 0 0.95rem;
  border: 1.5px solid rgba(239, 68, 68, 0.35);
  border-radius: 12px;
  background: rgba(239, 68, 68, 0.08);
  color: #dc2626;
  font-size: 0.84rem;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(239, 68, 68, 0.08);
  transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.outstanding-invoices-page__new-invoices:hover,
.outstanding-invoices-page__new-invoices:focus {
  border-color: rgba(239, 68, 68, 0.55);
  background: rgba(239, 68, 68, 0.12);
  box-shadow: 0 12px 24px rgba(239, 68, 68, 0.14);
}

.outstanding-invoices-page__new-invoices:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.outstanding-invoices-page__button-refresh.has-updates {
  border-color: rgba(239, 68, 68, 0.4);
  color: #dc2626;
}

.outstanding-invoices-page__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 42px;
  padding: 0 1rem;
  border: 1.5px solid #dfe7f1;
  border-radius: 12px;
  background: #fff;
  color: #65748b;
  font-size: 0.84rem;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  transition: border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.outstanding-invoices-page__button:hover,
.outstanding-invoices-page__button:focus,
.outstanding-invoices-page__button.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.4);
  color: var(--bs-primary);
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.12);
}

.outstanding-invoices-page__button.is-primary {
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  background: #fff;
  color: var(--bs-primary);
}

.outstanding-invoices-page__button.is-primary.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.2);
}

.outstanding-invoices-page__button:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.outstanding-invoices-page__button-count {
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.72rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.outstanding-invoices-page__button.is-primary.is-active .outstanding-invoices-page__button-count {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.outstanding-invoices-page__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.outstanding-invoices-page__stat-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-height: 96px;
  padding: 1rem 1.1rem;
  border: 1px solid #e8edf5;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.05);
}

.outstanding-invoices-page__stat-icon {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  flex-shrink: 0;
}

.outstanding-invoices-page__stat-icon.is-primary {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.outstanding-invoices-page__stat-icon.is-secondary {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: #78cddb;
}

.outstanding-invoices-page__stat-icon.is-danger {
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
}

.outstanding-invoices-page__stat-icon.is-neutral {
  background: #f1f5f9;
  color: var(--bs-secondary);
}

.outstanding-invoices-page__stat-label {
  color: #6b7b95;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.2rem;
}

.outstanding-invoices-page__stat-value {
  color: var(--bs-secondary);
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1;
}

.outstanding-invoices-page__stat-note {
  margin-top: 0.2rem;
  color: #7b8aa5;
  font-size: 0.8rem;
  font-weight: 600;
}

.outstanding-invoices-page__toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}

.outstanding-invoices-page__search {
  position: relative;
}

.outstanding-invoices-page__search i {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #8f9db2;
  font-size: 1rem;
}

.outstanding-invoices-page__search input {
  width: 100%;
  min-height: 46px;
  padding: 0.75rem 0.95rem 0.75rem 2.55rem;
  border: 1px solid #e5ebf3;
  border-radius: 14px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 600;
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
}

.outstanding-invoices-page__search input::placeholder {
  color: #9aa8bb;
}

.outstanding-invoices-page__search input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.12);
}

.outstanding-invoices-page__status-tabs {
  display: inline-flex;
  align-items: center;
  border: 1px solid #e5ebf3;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
}

.outstanding-invoices-page__status-tab {
  min-height: 46px;
  padding: 0 1rem;
  border: 0;
  border-right: 1px solid #edf2f7;
  background: transparent;
  color: #6c7b91;
  font-size: 0.85rem;
  font-weight: 700;
  transition: background-color 0.18s ease, color 0.18s ease;
}

.outstanding-invoices-page__status-tab:last-child {
  border-right: 0;
}

.outstanding-invoices-page__status-tab.is-active {
  background: var(--bs-primary);
  color: #fff;
}

.outstanding-invoices-page__selection-card {
  margin-bottom: 0;
}

.outstanding-invoices-page__action-grid {
  grid-template-columns: 250px minmax(0, 1fr);
}

.outstanding-invoices-page__action-selected {
  justify-content: center;
}

.outstanding-invoices-page__action-divider {
  opacity: 0.45;
}

.outstanding-invoices-page__action-footer {
  justify-content: space-between;
}

.outstanding-invoices-page__results-card,
.outstanding-invoices-page__table-card,
.outstanding-invoices-page__loading-card {
  border: 1px solid #e6edf5;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.05);
}

.outstanding-invoices-page__results-card {
  padding: 0.95rem 1.1rem;
}

.outstanding-invoices-page__results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.outstanding-invoices-page__results-title {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 800;
}

.outstanding-invoices-page__results-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.outstanding-invoices-page__results-pill {
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.outstanding-invoices-page__results-pill.is-success {
  background: rgba(34, 197, 94, 0.12);
  color: #16a34a;
}

.outstanding-invoices-page__results-pill.is-failed {
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
}

.outstanding-invoices-page__results-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.outstanding-invoices-page__results-item {
  border-radius: 12px;
  padding: 0.65rem 0.8rem;
  font-size: 0.8rem;
  font-weight: 600;
}

.outstanding-invoices-page__results-item.is-success {
  background: rgba(34, 197, 94, 0.08);
  color: #166534;
}

.outstanding-invoices-page__results-item.is-failed {
  background: rgba(239, 68, 68, 0.08);
  color: #991b1b;
}

.outstanding-invoices-page__table-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem 0.85rem;
}

.outstanding-invoices-page__table-title {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--bs-secondary);
  font-size: 1rem;
  font-weight: 800;
}

.outstanding-invoices-page__table-icon {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-size: 0.8rem;
}

.outstanding-invoices-page__table-subtitle {
  margin-top: 0.15rem;
  color: #8090a8;
  font-size: 0.8rem;
  font-weight: 600;
}

.outstanding-invoices-page__per-page {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.outstanding-invoices-page__per-page label {
  margin: 0;
  color: #6c7b91;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.outstanding-invoices-page__per-page .form-select, .outstanding-invoices-page__per-page .daterangepicker select.monthselect, .daterangepicker .outstanding-invoices-page__per-page select.monthselect, .outstanding-invoices-page__per-page .daterangepicker select.yearselect, .daterangepicker .outstanding-invoices-page__per-page select.yearselect {
  min-width: 78px;
  min-height: 40px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background-color: #fff;
  color: var(--bs-secondary);
  font-weight: 700;
  box-shadow: none;
}

.outstanding-invoices-page__mobile-table-tools,
.outstanding-invoices-page__mobile-list {
  display: none;
}

.outstanding-invoices-page__mobile-table-tools {
  padding: 0 1rem 0.9rem;
  gap: 0.75rem;
  align-items: center;
}

.outstanding-invoices-page__mobile-table-tool {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.outstanding-invoices-page__mobile-table-tool label {
  margin: 0;
  color: #6c7b91;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  white-space: nowrap;
}

.outstanding-invoices-page__mobile-table-tool .form-select, .outstanding-invoices-page__mobile-table-tool .daterangepicker select.monthselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool select.monthselect, .outstanding-invoices-page__mobile-table-tool .daterangepicker select.yearselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool select.yearselect {
  min-height: 38px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background-color: #fff;
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 700;
  box-shadow: none;
}

.outstanding-invoices-page__mobile-table-tool.is-sort {
  flex: 1 1 auto;
}

.outstanding-invoices-page__mobile-sort-select {
  width: 100%;
  min-height: 38px;
  padding: 0.55rem 2rem 0.55rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.8rem;
  font-weight: 700;
  box-shadow: none;
}

.outstanding-invoices-page__mobile-sort-select::after {
  margin-left: 0.55rem;
}

.outstanding-invoices-page__mobile-sort-menu {
  border: 1px solid #e8edf5;
  border-radius: 14px;
  padding: 0.4rem 0;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.outstanding-invoices-page__mobile-sort-item {
  padding: 0.75rem 0.95rem;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
}

.outstanding-invoices-page__mobile-sort-item.is-active {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.outstanding-invoices-page__mobile-select-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.85rem 1rem;
  border-top: 1px solid #edf2f7;
  border-bottom: 1px solid #edf2f7;
  background: #fbfcfe;
  color: #6d7c92;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.outstanding-invoices-page__mobile-card {
  padding: 0.95rem 1rem;
  border-bottom: 1px solid #edf2f7;
  background: #fff;
}

.outstanding-invoices-page__mobile-card.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.outstanding-invoices-page__mobile-card.is-success {
  background: rgba(34, 197, 94, 0.08);
}

.outstanding-invoices-page__mobile-card-top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: flex-start;
}

.outstanding-invoices-page__mobile-card-main {
  min-width: 0;
}

.outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-cell {
  min-width: 0;
  align-items: flex-start;
}

.outstanding-invoices-page__mobile-card-side {
  text-align: right;
}

.outstanding-invoices-page__mobile-card-due {
  margin-top: 0.2rem;
  color: #ef4444;
  font-size: 0.84rem;
  font-weight: 700;
}

.outstanding-invoices-page__mobile-card-meta {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin-top: 0.7rem;
  padding-left: 2.35rem;
}

.outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__muted-cell {
  font-size: 0.76rem;
}

.outstanding-invoices-page__mobile-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.8rem;
  padding-left: 2.35rem;
}

.outstanding-invoices-page__mobile-card-status {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.outstanding-invoices-page__mobile-card-created {
  color: #7b8aa5;
  font-size: 0.78rem;
  font-weight: 600;
}

.outstanding-invoices-page__desktop-table-wrap {
  overflow-x: visible;
}

.outstanding-invoices-page__table {
  margin: 0;
  width: 100%;
  table-layout: fixed;
}

.outstanding-invoices-page__table thead th {
  padding: 0.7rem 0.55rem;
  border-bottom: 1px solid #ecf1f6;
  background: #fbfcfe;
  vertical-align: middle;
}

.outstanding-invoices-page__table tbody td {
  padding: 0.7rem 0.55rem;
  border-bottom: 1px solid #edf2f7;
  vertical-align: middle;
  word-break: break-word;
  overflow-wrap: anywhere;
}

@media (min-width: 992px) {
  .outstanding-invoices-page__table th:nth-child(1),
  .outstanding-invoices-page__table td:nth-child(1) {
    width: 42px;
  }

  .outstanding-invoices-page__table th:nth-child(2),
  .outstanding-invoices-page__table td:nth-child(2) {
    width: 15%;
  }

  .outstanding-invoices-page__table th:nth-child(3),
  .outstanding-invoices-page__table td:nth-child(3) {
    width: 12%;
  }

  .outstanding-invoices-page__table th:nth-child(4),
  .outstanding-invoices-page__table td:nth-child(4) {
    width: 11%;
  }

  .outstanding-invoices-page__table th:nth-child(5),
  .outstanding-invoices-page__table td:nth-child(5) {
    width: 13%;
  }

  .outstanding-invoices-page__table th:nth-child(6),
  .outstanding-invoices-page__table td:nth-child(6) {
    width: 9%;
  }

  .outstanding-invoices-page__table th:nth-child(7),
  .outstanding-invoices-page__table td:nth-child(7),
  .outstanding-invoices-page__table th:nth-child(8),
  .outstanding-invoices-page__table td:nth-child(8) {
    width: 9%;
  }

  .outstanding-invoices-page__table th:nth-child(9),
  .outstanding-invoices-page__table td:nth-child(9) {
    width: 7%;
  }

  .outstanding-invoices-page__table th:nth-child(10),
  .outstanding-invoices-page__table td:nth-child(10),
  .outstanding-invoices-page__table th:nth-child(11),
  .outstanding-invoices-page__table td:nth-child(11) {
    width: 6.5%;
  }
}

.outstanding-invoices-page__table tbody tr {
  transition: background-color 0.18s ease;
}

.outstanding-invoices-page__table tbody tr.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.outstanding-invoices-page__table tbody tr.is-success {
  background: rgba(34, 197, 94, 0.08);
}

.outstanding-invoices-page__sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6d7c92;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.outstanding-invoices-page__sort-btn i {
  color: #c1cbd9;
}

.outstanding-invoices-page__sort-btn.is-active,
.outstanding-invoices-page__sort-btn:hover {
  color: var(--bs-secondary);
}

.outstanding-invoices-page__sort-btn.is-active i,
.outstanding-invoices-page__sort-btn:hover i {
  color: var(--bs-primary);
}

.outstanding-invoices-page__person-cell {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.outstanding-invoices-page__person-copy {
  min-width: 0;
}

.outstanding-invoices-page__person-name {
  color: var(--bs-secondary);
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.outstanding-invoices-page__person-sub {
  margin-top: 0.15rem;
  color: #7a8ba4;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.outstanding-invoices-page__tag-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: flex-start;
}

.outstanding-invoices-page__tag {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 0;
  max-width: 100%;
  padding: 0.25rem 0.55rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 10px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.3;
  white-space: normal;
  text-align: left;
  overflow-wrap: anywhere;
}

.outstanding-invoices-page__tag.is-group {
  background: rgba(129, 140, 248, 0.08);
  border-color: rgba(129, 140, 248, 0.28);
  color: #6366f1;
}

.outstanding-invoices-page__muted-cell {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.4rem;
  max-width: 100%;
  color: #66768f;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
}

.outstanding-invoices-page__muted-cell i {
  color: #98a6b9;
  font-size: 0.78rem;
  margin-top: 0.15rem;
  flex-shrink: 0;
}

.outstanding-invoices-page__table .outstanding-invoices-page__status {
  white-space: normal;
  max-width: 100%;
  line-height: 1.25;
}

.outstanding-invoices-page__table .outstanding-invoices-page__due-main,
.outstanding-invoices-page__table .outstanding-invoices-page__amount {
  font-size: 0.84rem;
  line-height: 1.25;
}

.outstanding-invoices-page__status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.8rem;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.outstanding-invoices-page__status-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: currentColor;
}

.outstanding-invoices-page__status.is-overdue {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.24);
  color: #ef4444;
}

.outstanding-invoices-page__status.is-open {
  background: rgba(var(--bs-primary-rgb), 0.1);
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  color: var(--bs-primary);
}

.outstanding-invoices-page__status.is-draft {
  background: rgba(148, 163, 184, 0.14);
  border-color: rgba(148, 163, 184, 0.25);
  color: #64748b;
}

.outstanding-invoices-page__due-main,
.outstanding-invoices-page__amount {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 700;
}

.outstanding-invoices-page__due-sub {
  margin-top: 0.15rem;
  font-size: 0.76rem;
  font-weight: 700;
}

.outstanding-invoices-page__due-sub.is-overdue {
  color: #ef4444;
}

.outstanding-invoices-page__due-sub.is-open {
  color: #7b8aa5;
}

.outstanding-invoices-page__attempt-pill {
  min-width: 2.5rem;
  min-height: 1.7rem;
  padding: 0 0.6rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-size: 0.74rem;
  font-weight: 700;
}

.outstanding-invoices-page__attempt-pill.is-warning {
  background: rgba(245, 158, 11, 0.14);
  color: #d97706;
}

.outstanding-invoices-page__attempt-pill.is-danger {
  background: rgba(239, 68, 68, 0.14);
  color: #ef4444;
}

.outstanding-invoices-page__attempt-empty {
  color: #b7c1cf;
  font-size: 0.85rem;
  font-weight: 700;
}

.outstanding-invoices-page__table-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1.1rem 1rem;
  color: #7b8aa5;
  font-size: 0.8rem;
  font-weight: 600;
}

.outstanding-invoices-page__pagination {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.outstanding-invoices-page__page-btn {
  min-width: 70px;
  min-height: 38px;
  padding: 0 1rem;
  border: 1px solid #e3e8f2;
  border-radius: 10px;
  background: #fff;
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
}

.outstanding-invoices-page__page-btn:disabled {
  opacity: 0.45;
}

.outstanding-invoices-page__page-info {
  color: var(--bs-secondary);
  font-size: 0.82rem;
  font-weight: 700;
}

.outstanding-invoices-page__footnote {
  text-align: center;
  color: #8c9ab0;
  font-size: 0.76rem;
  font-weight: 600;
  padding: 0.35rem 0 0.15rem;
}

.outstanding-invoices-page__empty-state,
.outstanding-invoices-page__loading-card {
  padding: 1.4rem;
}

.outstanding-invoices-page__loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2.5rem 1.5rem;
  gap: 0.35rem;
}

.outstanding-invoices-page__loading-state h5 {
  margin: 0;
  color: #1f2a44;
  font-size: 1.05rem;
  font-weight: 800;
}

.outstanding-invoices-page__loading-state p {
  margin: 0 0 1.1rem;
  max-width: 28rem;
  color: #7b8aa5;
  font-size: 0.9rem;
  font-weight: 600;
}

.outstanding-invoices-page__load-progress {
  width: min(100%, 28rem);
}

.outstanding-invoices-page__load-progress--inline {
  width: 100%;
  padding: 0.85rem 1.1rem;
  border: 1px solid #e6edf5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.05);
}

.outstanding-invoices-page__load-progress-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
  color: #65748b;
  font-size: 0.82rem;
  font-weight: 700;
}

.outstanding-invoices-page__load-progress-pct {
  color: var(--bs-primary);
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.outstanding-invoices-page__load-progress-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef3f9;
}

.outstanding-invoices-page__load-progress-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bs-primary), #f4a261);
  transition: width 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: width;
}

.outstanding-invoices-page__email-modal-dialog {
  max-width: 760px;
}

.outstanding-invoices-page__email-modal-dialog .members-modal-content {
  max-height: min(90vh, 920px);
}

.outstanding-invoices-page__email-modal-dialog .members-modal-body {
  max-height: min(90vh, 920px);
  overflow-y: auto;
}

.outstanding-invoices-page__email-modal {
  padding: 1.6rem;
  background: #fff;
}

.outstanding-invoices-page__email-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.outstanding-invoices-page__email-modal-head-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
}

.outstanding-invoices-page__email-modal-icon {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 12px;
  background: rgba(59, 130, 246, 0.12);
  color: #3b82f6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.outstanding-invoices-page__email-modal-icon.is-danger {
  background: rgba(239, 68, 68, 0.14);
  color: #ef4444;
}

.outstanding-invoices-page__email-modal-icon.is-recharge {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.outstanding-invoices-page__email-modal-title {
  margin: 0 0 0.35rem;
  color: var(--bs-secondary);
  font-size: 1.05rem;
  font-weight: 800;
}

.outstanding-invoices-page__email-modal-subtitle {
  margin: 0;
  color: #6b7280;
  font-size: 0.9rem;
  line-height: 1.6;
  max-width: 30rem;
}

.outstanding-invoices-page__email-modal-close {
  width: 2rem;
  height: 2rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-shrink: 0;
}

.outstanding-invoices-page__email-modal-close:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.outstanding-invoices-page__email-preview-card {
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}

.outstanding-invoices-page__email-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1rem;
  background: #f8fafc;
  border-bottom: 1px solid #eef2f7;
  color: #7c8aa5;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.outstanding-invoices-page__email-preview-head strong {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  letter-spacing: 0;
}

.outstanding-invoices-page__email-preview-list {
  max-height: 300px;
  overflow-y: auto;
}

.outstanding-invoices-page__email-preview-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem;
  border-bottom: 1px solid #f1f5f9;
}

.outstanding-invoices-page__email-preview-row:last-child {
  border-bottom: 0;
}

.outstanding-invoices-page__email-preview-copy {
  min-width: 0;
}

.outstanding-invoices-page__email-preview-name {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}

.outstanding-invoices-page__email-preview-email {
  margin-top: 0.2rem;
  color: #94a3b8;
  font-size: 0.82rem;
}

.outstanding-invoices-page__email-preview-amount {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  white-space: nowrap;
}

.outstanding-invoices-page__email-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1rem;
}

.outstanding-invoices-page__email-modal-btn {
  min-height: 44px;
  padding: 0 1.2rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  font-weight: 700;
}

.outstanding-invoices-page__email-modal-btn.is-secondary {
  border: 1px solid #dbe2ea;
  background: #fff;
  color: #6b7280;
}

.outstanding-invoices-page__email-modal-btn.is-primary {
  border: 0;
  background: #1f6fff;
  color: #fff;
  box-shadow: 0 12px 24px rgba(31, 111, 255, 0.2);
}

.outstanding-invoices-page__email-modal-btn.is-success {
  border: 0;
  background: var(--bs-secondary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(30, 42, 74, 0.18);
}

.outstanding-invoices-page__email-modal-btn.is-danger {
  border: 0;
  background: #ef4444;
  color: #fff;
  box-shadow: 0 12px 24px rgba(239, 68, 68, 0.22);
}

.outstanding-invoices-page__email-modal-btn.is-recharge {
  border: 0;
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.24);
}

.outstanding-invoices-page__email-success {
  padding: 1.8rem;
  background: #fff;
}

.outstanding-invoices-page__email-success-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.outstanding-invoices-page__email-success-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.95rem;
}

.outstanding-invoices-page__email-success-icon {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 12px;
  background: rgba(22, 163, 74, 0.14);
  color: #16a34a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.outstanding-invoices-page__email-success-title {
  margin: 0 0 0.35rem;
  color: var(--bs-secondary);
  font-size: 1.05rem;
  font-weight: 800;
}

.outstanding-invoices-page__email-success-subtitle {
  margin: 0;
  color: #6b7280;
  font-size: 0.92rem;
  line-height: 1.6;
}

.outstanding-invoices-page__email-success-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.5rem;
}

.outstanding-invoices-page__recharge-modal-dialog {
  max-width: 660px;
}

.outstanding-invoices-page__recharge-modal-dialog .members-modal-content {
  max-height: min(90vh, 920px);
  overflow: hidden;
}

.outstanding-invoices-page__recharge-modal {
  padding: 1.55rem;
  background: #fff;
  max-height: min(90vh, 920px);
  display: flex;
  flex-direction: column;
}

.outstanding-invoices-page__recharge-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.outstanding-invoices-page__recharge-head-copy {
  display: flex;
  align-items: flex-start;
  gap: 0.95rem;
}

.outstanding-invoices-page__recharge-ring {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.outstanding-invoices-page__recharge-ring-spinner {
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.18);
  border-top-color: var(--bs-primary);
  border-right-color: var(--bs-primary);
  animation: outstanding-invoices-recharge-spin 0.85s linear infinite;
}

.outstanding-invoices-page__recharge-progress-wrap {
  margin-top: 1.35rem;
}

.outstanding-invoices-page__void-progress-note {
  margin: 0.65rem 0 0;
  color: #65748b;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.4;
}

.outstanding-invoices-page__recharge-progress-labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.45rem;
  color: #7c8aa5;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.outstanding-invoices-page__recharge-progress-labels strong {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  letter-spacing: 0;
}

.outstanding-invoices-page__recharge-progress-bar {
  height: 0.48rem;
  border-radius: 999px;
  background: #eef2f7;
  overflow: hidden;
  display: flex;
}

.outstanding-invoices-page__recharge-progress-success,
.outstanding-invoices-page__recharge-progress-failed {
  height: 100%;
}

.outstanding-invoices-page__recharge-progress-success {
  background: #16a34a;
}

.outstanding-invoices-page__recharge-progress-failed {
  background: #ef4444;
}

.outstanding-invoices-page__recharge-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 0.95rem;
}

.outstanding-invoices-page__recharge-stat {
  padding: 0.85rem 0.95rem;
  border-radius: 14px;
  background: #f8fafc;
}

.outstanding-invoices-page__recharge-stat.is-success {
  background: #dbf4e6;
}

.outstanding-invoices-page__recharge-stat.is-failed {
  background: #fde2e4;
}

.outstanding-invoices-page__recharge-stat-label {
  color: #7c8aa5;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.outstanding-invoices-page__recharge-stat-value {
  margin-top: 0.25rem;
  color: var(--bs-secondary);
  font-size: 1.5rem;
  font-weight: 900;
  line-height: 1;
}

.outstanding-invoices-page__recharge-stat-note {
  margin-top: 0.3rem;
  color: #7c8aa5;
  font-size: 0.82rem;
  font-weight: 700;
}

.outstanding-invoices-page__recharge-report-card {
  margin-top: 0.95rem;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.outstanding-invoices-page__recharge-report-list {
  max-height: 360px;
  min-height: 0;
  overflow-y: auto;
  flex: 1 1 auto;
}

.outstanding-invoices-page__recharge-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem;
  border-bottom: 1px solid #f1f5f9;
}

.outstanding-invoices-page__recharge-row:last-child {
  border-bottom: 0;
}

.outstanding-invoices-page__recharge-row.is-processing {
  background: rgba(var(--bs-primary-rgb), 0.1);
}

.outstanding-invoices-page__recharge-row.is-success .outstanding-invoices-page__recharge-row-icon {
  background: #dcfce7;
  color: #16a34a;
}

.outstanding-invoices-page__recharge-row.is-failed .outstanding-invoices-page__recharge-row-icon {
  background: #fee2e2;
  color: #ef4444;
}

.outstanding-invoices-page__recharge-row-main {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  min-width: 0;
  flex: 1 1 auto;
}

.outstanding-invoices-page__recharge-row-icon {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  color: #b7c1cf;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0.15rem;
}

.outstanding-invoices-page__recharge-row-spinner {
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  border: 2px solid rgba(var(--bs-primary-rgb), 0.18);
  border-top-color: var(--bs-primary);
  border-right-color: var(--bs-primary);
  animation: outstanding-invoices-recharge-spin 0.85s linear infinite;
}

.outstanding-invoices-page__recharge-row-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: #98a2b3;
}

.outstanding-invoices-page__recharge-row-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.outstanding-invoices-page__recharge-row-name {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
}

.outstanding-invoices-page__recharge-row-email {
  margin-top: 0.18rem;
  color: #94a3b8;
  font-size: 0.81rem;
}

.outstanding-invoices-page__recharge-row-amount {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  white-space: nowrap;
}

.outstanding-invoices-page__recharge-row-error {
  margin-top: 0.55rem;
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  background: #fee2e2;
  color: #ef4444;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.45;
}

.outstanding-invoices-page__recharge-inline-progress {
  position: relative;
  width: 100%;
  height: 0.22rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.8);
  overflow: hidden;
  margin-top: 0.7rem;
}

.outstanding-invoices-page__recharge-inline-progress span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -32%;
  width: 32%;
  border-radius: inherit;
  background: var(--bs-primary);
  animation: outstanding-invoices-inline-progress 1.2s ease-in-out infinite;
}

.outstanding-invoices-page__recharge-footer-copy {
  margin-top: 1rem;
  text-align: center;
  color: #8c9ab0;
  font-size: 0.82rem;
  font-style: italic;
  font-weight: 600;
}

@keyframes outstanding-invoices-recharge-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes outstanding-invoices-inline-progress {
  0% {
    left: -32%;
  }
  100% {
    left: 100%;
  }
}
@media (max-width: 1199.98px) {
  .outstanding-invoices-page__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 991.98px) {
  .outstanding-invoices-page__head,
  .outstanding-invoices-page__toolbar,
  .outstanding-invoices-page__table-head,
  .outstanding-invoices-page__table-foot,
  .outstanding-invoices-page__results-head {
    flex-direction: column;
    align-items: stretch;
  }
  .outstanding-invoices-page__toolbar {
    grid-template-columns: 1fr;
  }
  .outstanding-invoices-page__status-tabs {
    width: 100%;
    overflow-x: auto;
  }
  .outstanding-invoices-page__action-grid {
    grid-template-columns: 1fr;
  }
  .outstanding-invoices-page__action-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .outstanding-invoices-page__email-modal {
    position: relative;
    padding: 0.95rem 0.95rem 1rem;
  }
  .outstanding-invoices-page__email-modal-head {
    position: relative;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 0.9rem;
  }
  .outstanding-invoices-page__email-modal-head-copy {
    width: 100%;
    padding-right: 2rem;
  }
  .outstanding-invoices-page__email-modal-close {
    position: absolute;
    top: 0;
    right: 0;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
  }
  .outstanding-invoices-page__email-preview-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.7rem 0.8rem;
  }
  .outstanding-invoices-page__email-modal-actions {
    flex-direction: column-reverse;
    position: sticky;
    bottom: 0;
    padding-top: 0.75rem;
    margin-top: 0.8rem;
    background: #fff;
  }
  .outstanding-invoices-page__email-modal-btn {
    width: 100%;
    min-height: 40px;
    font-size: 0.82rem;
  }
  .outstanding-invoices-page__email-success {
    position: relative;
    padding: 1rem;
  }
  .outstanding-invoices-page__email-success-head,
  .outstanding-invoices-page__email-success-copy {
    flex-direction: column;
    gap: 0.75rem;
  }
  .outstanding-invoices-page__email-success-actions {
    margin-top: 1.1rem;
  }
  .outstanding-invoices-page__email-modal-icon,
  .outstanding-invoices-page__email-success-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
    font-size: 0.88rem;
  }
  .outstanding-invoices-page__email-modal-title,
  .outstanding-invoices-page__email-success-title {
    font-size: 0.96rem;
    line-height: 1.25;
  }
  .outstanding-invoices-page__email-modal-subtitle,
  .outstanding-invoices-page__email-success-subtitle {
    font-size: 0.8rem;
    line-height: 1.5;
    max-width: none;
  }
  .outstanding-invoices-page__email-preview-head {
    padding: 0.75rem 0.8rem;
    font-size: 0.68rem;
  }
  .outstanding-invoices-page__email-preview-head strong {
    font-size: 0.86rem;
  }
  .outstanding-invoices-page__email-preview-list {
    max-height: 240px;
  }
  .outstanding-invoices-page__email-preview-name,
  .outstanding-invoices-page__email-preview-amount {
    font-size: 0.86rem;
  }
  .outstanding-invoices-page__email-preview-email {
    font-size: 0.74rem;
  }
  .outstanding-invoices-page__recharge-stats {
    grid-template-columns: 1fr;
  }
  .outstanding-invoices-page__recharge-row {
    flex-direction: column;
  }
}
@media (max-width: 767.98px) {
  .outstanding-invoices-page {
    padding: 1rem 0 1.65rem;
  }
  .outstanding-invoices-page__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "title actions" "subtitle subtitle";
    align-items: center;
    gap: 0.6rem;
  }
  .outstanding-invoices-page__head > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
    display: contents;
  }
  .outstanding-invoices-page__title {
    grid-area: title;
    font-size: 0.92rem;
    line-height: 1.2;
    align-self: center;
  }
  .outstanding-invoices-page__subtitle {
    grid-area: subtitle;
    font-size: 0.7rem;
    margin-top: -0.28rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .outstanding-invoices-page__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
  }
  .outstanding-invoices-page__stat-card {
    min-height: 92px;
    padding: 0.72rem 0.78rem;
    gap: 0.6rem;
    align-items: flex-start;
  }
  .outstanding-invoices-page__person-cell {
    min-width: 0;
  }
  .outstanding-invoices-page__actions {
    grid-area: actions;
    width: auto;
    justify-content: flex-end;
    gap: 0.35rem;
    flex-wrap: nowrap;
    flex-shrink: 0;
  }
  .outstanding-invoices-page__button {
    min-height: 32px;
    padding: 0 0.58rem;
    flex: 0 0 auto;
    border-radius: 9px;
    font-size: 0.71rem;
    font-weight: 700;
    gap: 0.3rem;
  }
  .outstanding-invoices-page__button-refresh {
    width: 32px;
    min-width: 32px;
    padding: 0;
  }
  .outstanding-invoices-page__button-refresh .outstanding-invoices-page__button-text {
    display: none;
  }
  .outstanding-invoices-page__toolbar {
    gap: 0.5rem;
  }
  .outstanding-invoices-page__search input,
  .outstanding-invoices-page__status-tab {
    min-height: 34px;
  }
  .outstanding-invoices-page__search i {
    left: 0.75rem;
    font-size: 0.8rem;
  }
  .outstanding-invoices-page__search input {
    padding: 0.52rem 0.75rem 0.52rem 2rem;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 600;
  }
  .outstanding-invoices-page__status-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    overflow: hidden;
    border-radius: 10px;
  }
  .outstanding-invoices-page__status-tab {
    min-width: 0;
    padding: 0.25rem 0.2rem;
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1.2;
  }
  .outstanding-invoices-page__table-head {
    padding: 0.82rem 0.85rem 0.55rem;
  }
  .outstanding-invoices-page__table-title {
    font-size: 0.92rem;
    gap: 0.55rem;
  }
  .outstanding-invoices-page__table-icon {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 9px;
    font-size: 0.72rem;
  }
  .outstanding-invoices-page__table-subtitle {
    display: none;
  }
  .outstanding-invoices-page__per-page {
    display: none;
  }
  .outstanding-invoices-page__mobile-table-tools,
  .outstanding-invoices-page__mobile-list {
    display: block;
  }
  .outstanding-invoices-page__mobile-table-tools {
    display: flex;
    gap: 0.4rem;
    align-items: center;
    padding: 0 0.85rem 0.65rem;
  }
  .outstanding-invoices-page__mobile-table-tool {
    gap: 0.32rem;
    min-width: 0;
  }
  .outstanding-invoices-page__mobile-table-tool label {
    font-size: 0.62rem;
    letter-spacing: 0.05em;
  }
  .outstanding-invoices-page__mobile-table-tool .form-select, .outstanding-invoices-page__mobile-table-tool .daterangepicker select.monthselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool select.monthselect, .outstanding-invoices-page__mobile-table-tool .daterangepicker select.yearselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool select.yearselect {
    min-height: 32px;
    padding-top: 0.28rem;
    padding-bottom: 0.28rem;
    padding-left: 0.55rem;
    padding-right: 1.8rem;
    font-size: 0.7rem;
    border-radius: 9px;
  }
  .outstanding-invoices-page__mobile-table-tool:not(.is-sort) .form-select, .outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.monthselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.monthselect, .outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.yearselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.yearselect {
    width: 56px;
    min-width: 56px;
  }
  .outstanding-invoices-page__mobile-table-tool.is-sort {
    flex: 1 1 auto;
  }
  .outstanding-invoices-page__mobile-sort-select {
    min-height: 32px;
    padding: 0.3rem 1.7rem 0.3rem 0.6rem;
    font-size: 0.7rem;
    border-radius: 9px;
  }
  .outstanding-invoices-page__mobile-sort-item {
    padding: 0.62rem 0.8rem;
    font-size: 0.74rem;
  }
  .outstanding-invoices-page__desktop-table-wrap {
    display: none;
  }
  .outstanding-invoices-page__table-head,
  .outstanding-invoices-page__table-foot,
  .outstanding-invoices-page__results-card,
  .outstanding-invoices-page__loading-card {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }
  .outstanding-invoices-page__table-foot {
    padding-top: 0.75rem;
    padding-bottom: 0.8rem;
    font-size: 0.72rem;
  }
  .outstanding-invoices-page__page-btn {
    min-width: 58px;
    min-height: 32px;
    padding: 0 0.75rem;
    border-radius: 9px;
    font-size: 0.72rem;
  }
  .outstanding-invoices-page__page-info,
  .outstanding-invoices-page__footnote {
    font-size: 0.7rem;
  }
}
@media (max-width: 575.98px) {
  .outstanding-invoices-page__recharge-head {
    gap: 0.7rem;
  }
  .outstanding-invoices-page__recharge-progress-wrap {
    margin-top: 0.9rem;
  }
  .outstanding-invoices-page__recharge-progress-labels {
    margin-bottom: 0.35rem;
    font-size: 0.62rem;
  }
  .outstanding-invoices-page__recharge-progress-labels strong {
    font-size: 0.82rem;
  }
  .outstanding-invoices-page__recharge-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin-top: 0.7rem;
  }
  .outstanding-invoices-page__recharge-stat {
    padding: 0.62rem 0.58rem;
    border-radius: 10px;
  }
  .outstanding-invoices-page__recharge-stat-label {
    font-size: 0.58rem;
  }
  .outstanding-invoices-page__recharge-stat-value {
    font-size: 0.88rem;
    margin-top: 0.18rem;
  }
  .outstanding-invoices-page__recharge-stat-note {
    font-size: 0.66rem;
    margin-top: 0.2rem;
  }
  .outstanding-invoices-page__recharge-report-card {
    margin-top: 0.7rem;
  }
  .outstanding-invoices-page__recharge-report-list {
    max-height: 185px;
  }
  .outstanding-invoices-page__recharge-row {
    padding: 0.72rem 0.75rem;
    gap: 0.55rem;
  }
  .outstanding-invoices-page__recharge-row-name,
  .outstanding-invoices-page__recharge-row-amount {
    font-size: 0.8rem;
  }
  .outstanding-invoices-page__recharge-row-email {
    font-size: 0.7rem;
  }
  .outstanding-invoices-page__recharge-row-error {
    margin-top: 0.4rem;
    padding: 0.45rem 0.55rem;
    font-size: 0.7rem;
  }
  .outstanding-invoices-page__recharge-footer-copy {
    margin-top: 0.72rem;
    font-size: 0.72rem;
  }
  .outstanding-invoices-page__email-modal-dialog,
  .outstanding-invoices-page__recharge-modal-dialog {
    margin: 0.45rem;
  }
  .outstanding-invoices-page__email-modal,
  .outstanding-invoices-page__recharge-modal,
  .outstanding-invoices-page__email-success {
    padding: 0.85rem;
  }
  .outstanding-invoices-page__email-modal-icon,
  .outstanding-invoices-page__email-success-icon {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 9px;
    font-size: 0.8rem;
  }
  .outstanding-invoices-page__email-modal-close {
    width: 1.55rem;
    height: 1.55rem;
    font-size: 0.9rem;
  }
  .outstanding-invoices-page__email-modal-title,
  .outstanding-invoices-page__email-success-title {
    font-size: 0.88rem;
  }
  .outstanding-invoices-page__email-modal-subtitle,
  .outstanding-invoices-page__email-success-subtitle {
    font-size: 0.74rem;
    line-height: 1.45;
  }
  .outstanding-invoices-page__email-preview-head {
    padding: 0.68rem 0.72rem;
    font-size: 0.64rem;
  }
  .outstanding-invoices-page__email-preview-head strong {
    font-size: 0.82rem;
  }
  .outstanding-invoices-page__email-preview-row {
    padding: 0.62rem 0.72rem;
  }
  .outstanding-invoices-page__email-preview-name,
  .outstanding-invoices-page__email-preview-amount {
    font-size: 0.8rem;
  }
  .outstanding-invoices-page__email-preview-email {
    font-size: 0.7rem;
  }
  .outstanding-invoices-page__email-modal-btn {
    min-height: 36px;
    border-radius: 10px;
    font-size: 0.76rem;
    gap: 0.42rem;
  }
  .outstanding-invoices-page__title {
    font-size: 0.86rem;
  }
  .outstanding-invoices-page__subtitle {
    font-size: 0.66rem;
    white-space: nowrap;
  }
  .outstanding-invoices-page__button {
    min-height: 30px;
    padding: 0 0.52rem;
    font-size: 0.68rem;
  }
  .outstanding-invoices-page__button-refresh {
    width: 30px;
    min-width: 30px;
    padding: 0;
  }
  .outstanding-invoices-page__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .outstanding-invoices-page__stat-card {
    min-height: 88px;
    padding: 0.68rem 0.72rem;
    gap: 0.55rem;
  }
  .outstanding-invoices-page__stat-icon {
    width: 2.05rem;
    height: 2.05rem;
    border-radius: 11px;
    font-size: 0.74rem;
  }
  .outstanding-invoices-page__stat-label {
    font-size: 0.6rem;
  }
  .outstanding-invoices-page__stat-value {
    font-size: 0.94rem;
  }
  .outstanding-invoices-page__stat-note {
    font-size: 0.68rem;
  }
  .outstanding-invoices-page__mobile-select-row {
    gap: 0.5rem;
    padding: 0.72rem 0.85rem;
    font-size: 0.68rem;
  }
  .outstanding-invoices-page__mobile-select-row .members-table-check-toggle {
    width: 1rem;
    height: 1rem;
    min-width: 1rem;
    border-radius: 0.32rem;
  }
  .outstanding-invoices-page__mobile-select-row .members-table-check-toggle i {
    font-size: 0.58rem;
  }
  .outstanding-invoices-page__mobile-card {
    padding: 0.72rem 0.78rem;
  }
  .outstanding-invoices-page__mobile-card-top {
    gap: 0.48rem;
  }
  .outstanding-invoices-page__mobile-card .members-table-row-check {
    width: 1rem;
    height: 1rem;
    min-width: 1rem;
    border-radius: 0.32rem;
  }
  .outstanding-invoices-page__mobile-card .members-table-row-check i {
    font-size: 0.58rem;
  }
  .outstanding-invoices-page__mobile-card .members-table-avatar {
    width: 1.85rem;
    height: 1.85rem;
    min-width: 1.85rem;
    font-size: 0.72rem;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-cell {
    gap: 0.5rem;
    min-width: 0;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-name {
    font-size: 0.76rem;
    line-height: 1.2;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-sub {
    font-size: 0.66rem;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .outstanding-invoices-page__mobile-card-side {
    min-width: 68px;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__amount {
    font-size: 0.74rem;
    line-height: 1.15;
  }
  .outstanding-invoices-page__mobile-card-due {
    font-size: 0.68rem;
    line-height: 1.15;
  }
  .outstanding-invoices-page__mobile-card-meta {
    gap: 0.3rem;
    margin-top: 0.5rem;
    padding-left: 1.68rem;
  }
  .outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__tag {
    min-height: 1.35rem;
    padding: 0.16rem 0.45rem;
    border-radius: 7px;
    font-size: 0.62rem;
  }
  .outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__muted-cell {
    gap: 0.22rem;
    font-size: 0.63rem;
  }
  .outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__muted-cell i {
    font-size: 0.6rem;
  }
  .outstanding-invoices-page__mobile-card-foot {
    gap: 0.5rem;
    margin-top: 0.58rem;
    padding-left: 1.68rem;
  }
  .outstanding-invoices-page__mobile-card-status {
    gap: 0.35rem;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__status {
    min-height: 1.4rem;
    padding: 0.14rem 0.48rem;
    font-size: 0.63rem;
  }
  .outstanding-invoices-page__mobile-card-created {
    font-size: 0.63rem;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__due-sub {
    font-size: 0.63rem;
  }
  .outstanding-invoices-page__mobile-card .outstanding-invoices-page__attempt-pill {
    min-width: 1.9rem;
    min-height: 1.3rem;
    padding: 0 0.4rem;
    font-size: 0.62rem;
  }
  .outstanding-invoices-page__mobile-table-tools {
    padding: 0 0.78rem 0.58rem;
  }
  .outstanding-invoices-page__mobile-table-tool label {
    font-size: 0.58rem;
  }
  .outstanding-invoices-page__mobile-table-tool .form-select, .outstanding-invoices-page__mobile-table-tool .daterangepicker select.monthselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool select.monthselect, .outstanding-invoices-page__mobile-table-tool .daterangepicker select.yearselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool select.yearselect,
  .outstanding-invoices-page__mobile-sort-select {
    min-height: 30px;
    font-size: 0.66rem;
    border-radius: 8px;
  }
  .outstanding-invoices-page__mobile-table-tool:not(.is-sort) .form-select, .outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.monthselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.monthselect, .outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.yearselect, .daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.yearselect {
    width: 65px;
    min-width: 50px;
  }
  .outstanding-invoices-page__mobile-sort-item {
    padding: 0.56rem 0.72rem;
    font-size: 0.7rem;
  }
}
.settings-admin__tab-nav {
  background: var(--bs-white, #fff);
  border-bottom: 1px solid var(--bs-border-color, #e5e7eb);
  border-radius: 20px 20px 0 0;
  padding: 0 20px;
  display: flex;
  gap: 2px;
  overflow-x: auto;
}

.settings-admin__tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 10px;
  margin: 0 6px;
  border: none;
  background: transparent;
  border-bottom: 2.5px solid transparent;
  color: var(--bs-secondary-color, #8a96b0);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: color 0.15s;
}
.settings-admin__tab-btn.is-active {
  color: var(--bs-primary, #5bbfbf);
  font-weight: 800;
  border-bottom-color: var(--bs-primary, #5bbfbf);
}

.settings-admin__tab-pill {
  font-size: 0.65rem;
  font-weight: 800;
  padding: 1px 7px;
  border-radius: 999px;
  min-width: 18px;
  text-align: center;
  background: var(--bs-tertiary-bg, #f3f4f6);
  color: var(--bs-secondary-color, #8a96b0);
}
.settings-admin__tab-btn.is-active .settings-admin__tab-pill {
  background: var(--bs-primary-bg-subtle, rgba(91, 191, 191, 0.1));
  color: var(--bs-primary, #5bbfbf);
}

.settings-admin__tab-card {
  border-top: 0;
  border-radius: 0 0 20px 20px;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.05);
  background: var(--bs-body-bg, #f9fafb);
}

.settings-admin__mobile-actions {
  display: none;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.settings-admin__mobile-header-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.settings-admin__mobile-menu-wrap {
  position: relative;
}

.settings-admin__mobile-dropdown-backdrop {
  position: fixed;
  inset: 0;
  border: 0;
  background: transparent;
  z-index: 1035;
}

.settings-admin__mobile-action-btn {
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid var(--bs-border-color, #e5e7eb);
  background: var(--bs-white, #fff);
  color: #7f90af;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
  flex-shrink: 0;
}
.settings-admin__mobile-action-btn:hover, .settings-admin__mobile-action-btn:focus-visible, .settings-admin__mobile-action-btn.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.32);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary, #5bbfbf);
}

.settings-admin__mobile-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 240px;
  background: var(--bs-white, #fff);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.12);
  border-radius: 18px;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.14);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
  z-index: 1040;
}
.settings-admin__mobile-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.settings-admin__mobile-dropdown-item.is-active .settings-admin__tab-pill {
  background: rgba(var(--bs-primary-rgb), 0.14);
  color: var(--bs-primary, #5bbfbf);
}

.settings-admin__mobile-dropdown-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border: 0;
  border-top: 1px solid var(--bs-border-color, #e5e7eb);
  background: var(--bs-white, #fff);
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.9rem;
  font-weight: 700;
  text-align: left;
  white-space: nowrap;
}
.settings-admin__mobile-dropdown-item:first-child {
  border-top: 0;
}
.settings-admin__mobile-dropdown-item.is-active {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary, #5bbfbf);
}

.settings-admin__mobile-dropdown-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1 1 auto;
}
.settings-admin__mobile-dropdown-label span:last-child {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.settings-admin__mobile-sheet-backdrop {
  display: none;
}

.settings-admin__mobile-sheet {
  display: none;
}

.settings-admin__mobile-sheet-head {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.settings-admin__mobile-sheet-handle {
  width: 52px;
  height: 5px;
  border-radius: 999px;
  background: #dbe3ef;
  align-self: center;
}

.settings-admin__mobile-sheet-head-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.settings-admin__mobile-sheet-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.25;
}

.settings-admin__mobile-sheet-subtitle {
  margin-top: 0.25rem;
  color: #8fa0bd;
  font-size: 0.8rem;
  line-height: 1.4;
}

.settings-admin__mobile-sheet-close {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid #dbe3ef;
  background: var(--bs-white, #fff);
  color: #8fa0bd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.settings-admin__mobile-sheet-body {
  padding: 0 1rem 1rem;
}

.settings-admin__mobile-stats-grid {
  grid-template-columns: 1fr;
}

.gs-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px 24px 32px;
}

.gs-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.gs-stat-tile {
  background: var(--bs-white, #fff);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
  border: 1px solid var(--bs-border-color, #e5e7eb);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.gs-stat-bar {
  width: 6px;
  height: 38px;
  border-radius: 999px;
  flex-shrink: 0;
}
.gs-stat-bar.t-success {
  background: #15803d;
}
.gs-stat-bar.t-warning {
  background: #92400e;
}
.gs-stat-bar.t-primary {
  background: var(--bs-primary, #5bbfbf);
}

.gs-stat-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--bs-secondary-color, #8a96b0);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.gs-stat-value {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--bs-emphasis-color, #1e2a4a);
  line-height: 1.2;
  margin-top: 2px;
}

.gs-stat-sub {
  font-size: 0.7rem;
  color: var(--bs-secondary-color, #8a96b0);
}

.gs-stat-icon {
  border-radius: 10px;
  padding: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  flex-shrink: 0;
  font-size: 0.9rem;
}
.gs-stat-icon.t-success {
  background: rgba(16, 185, 129, 0.08);
  color: #15803d;
}
.gs-stat-icon.t-warning {
  background: rgba(245, 158, 11, 0.1);
  color: #92400e;
}
.gs-stat-icon.t-primary {
  background: var(--bs-primary-bg-subtle, rgba(91, 191, 191, 0.1));
  color: var(--bs-primary, #5bbfbf);
}

.gs-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.gs-section-head .info {
  min-width: 0;
  flex: 1;
}
.gs-section-head h2 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--bs-emphasis-color, #1e2a4a);
  margin: 0;
}
.gs-section-head p {
  font-size: 0.78rem;
  color: var(--bs-secondary-color, #8a96b0);
  margin: 3px 0 0;
  line-height: 1.5;
}
.gs-section-head .actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
  align-items: center;
}

.gs-btn-add {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary, #5bbfbf);
  color: var(--m-on-primary, #fff);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity 0.15s ease;
}
.gs-btn-add:hover {
  opacity: 0.88;
}

.gs-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 10px;
  border: 1.5px solid var(--bs-border-color, #e5e7eb);
  background: var(--bs-white, #fff);
  color: var(--bs-secondary-color, #8a96b0);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: background 0.12s ease;
}
.gs-btn-ghost:hover {
  background: var(--bs-tertiary-bg, #f3f4f6);
}
.gs-btn-ghost:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.gs-range-filter {
  display: inline-flex;
  align-self: flex-start;
  padding: 4px;
  gap: 2px;
  border-radius: 12px;
  background: var(--bs-tertiary-bg, #f3f4f6);
  border: 1px solid var(--bs-border-color, #e5e7eb);
  max-width: 100%;
}
.gs-range-filter button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 9px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.84rem;
  font-weight: 600;
  background: transparent;
  color: var(--bs-secondary-color, #8a96b0);
  transition: background 120ms ease, color 120ms ease;
}
.gs-range-filter button.is-active {
  background: var(--bs-white, #fff);
  color: var(--bs-emphasis-color, #1e2a4a);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1);
}
.gs-range-filter .count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  border-radius: 9px;
  font-size: 0.7rem;
  font-weight: 700;
  background: var(--bs-secondary-bg, #f3f4f6);
  color: var(--bs-secondary-color, #8a96b0);
}
.gs-range-filter button.is-active .count {
  background: var(--bs-primary-bg-subtle, rgba(91, 191, 191, 0.1));
  color: var(--bs-primary, #5bbfbf);
}

.gs-list-card {
  background: var(--bs-white, #fff);
  border-radius: 18px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
  border: 1px solid var(--bs-border-color, #e5e7eb);
  overflow: hidden;
}

.gs-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  border-top: 1px solid var(--bs-border-color, #e5e7eb);
  flex-wrap: wrap;
}
.gs-list-row:first-child {
  border-top: none;
}
.gs-list-row.is-default {
  background: rgba(var(--bs-primary-rgb, 91, 191, 191), 0.04);
}
.gs-list-row.is-past {
  opacity: 0.62;
}
.gs-list-row .left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}

.gs-row-avatar {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.9rem;
  line-height: 0;
}
.gs-row-avatar.t-warn {
  background: rgba(245, 158, 11, 0.1);
  color: #92400e;
}
.gs-row-avatar.t-mute {
  background: var(--bs-tertiary-bg, #f3f4f6);
  color: var(--bs-secondary-color, #8a96b0);
}
.gs-row-avatar.t-ok {
  background: rgba(16, 185, 129, 0.08);
  color: #15803d;
}
.gs-row-avatar.t-pend {
  background: rgba(245, 158, 11, 0.1);
  color: #92400e;
}
.gs-row-avatar.t-prim {
  background: var(--bs-primary-bg-subtle, rgba(91, 191, 191, 0.1));
  color: var(--bs-primary, #5bbfbf);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
}

.gs-row-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.92rem;
  font-weight: 700;
}

.gs-row-email {
  overflow-wrap: anywhere;
  min-width: 0;
}

.efa-row-email {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.78rem;
  font-weight: 600;
  margin-top: 2px;
  overflow-wrap: anywhere;
}

.gs-row-sub {
  font-size: 0.75rem;
  color: var(--bs-secondary-color, #8a96b0);
  margin-top: 2px;
}

.gs-row-meta-sep {
  margin: 0 6px;
  color: var(--bs-border-color, #e5e7eb);
}

.cd-scope-summary {
  display: grid;
  gap: 0.22rem;
  margin-top: 0.45rem;
  color: var(--bs-secondary-color, #8a96b0);
  font-size: 0.74rem;
}

.cd-scope-summary__all {
  color: var(--bs-primary, #5bbfbf);
  font-weight: 800;
}

.cd-scope-summary__item {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(7rem, 1fr) minmax(10rem, 1.5fr);
  gap: 0.45rem;
  align-items: baseline;
  padding: 0.25rem 0.5rem;
  border-left: 3px solid rgba(var(--bs-primary-rgb), 0.45);
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.cd-scope-summary__item strong {
  color: var(--bs-emphasis-color, #1e2a4a);
}

.cd-scope-summary__item small {
  font-size: inherit;
}

.cd-success-scope {
  margin-top: 0.45rem;
}

.cd-selected-scope {
  margin-top: 1rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--bs-border-color, #e5e7eb);
}

.cd-scope-empty {
  color: var(--bs-secondary-color, #8a96b0);
  font-size: 0.78rem;
}

.gs-row-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
  align-items: center;
}

.gs-row-error {
  flex: 0 0 100%;
  order: 10;
  font-size: 0.75rem;
  color: #b91c1c;
  background: rgba(185, 28, 28, 0.06);
  border: 1px solid rgba(185, 28, 28, 0.2);
  border-radius: 6px;
  padding: 6px 10px;
  margin-top: 2px;
  display: flex;
  gap: 6px;
  align-items: flex-start;
  line-height: 1.4;
}

.gs-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  white-space: nowrap;
  border: 1px solid transparent;
}
.gs-pill.t-success {
  background: rgba(16, 185, 129, 0.08);
  color: #15803d;
  border-color: rgba(16, 185, 129, 0.4);
}
.gs-pill.t-warning {
  background: rgba(245, 158, 11, 0.1);
  color: #92400e;
  border-color: rgba(245, 158, 11, 0.4);
}
.gs-pill.t-primary {
  background: var(--bs-primary-bg-subtle, rgba(91, 191, 191, 0.1));
  color: var(--bs-primary, #5bbfbf);
  border-color: var(--bs-primary-border-subtle, rgba(91, 191, 191, 0.3));
}
.gs-pill.t-info {
  background: rgba(14, 165, 233, 0.08);
  color: #0369a1;
  border-color: rgba(14, 165, 233, 0.35);
}
.gs-pill.t-neutral {
  background: var(--bs-tertiary-bg, #f3f4f6);
  color: var(--bs-secondary-color, #8a96b0);
  border-color: var(--bs-border-color, #e5e7eb);
}

.gs-icon-btn {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 0;
  background: transparent;
  font-size: 0.82rem;
}
.gs-icon-btn.t-primary {
  background: var(--bs-primary-bg-subtle, rgba(91, 191, 191, 0.1));
  color: var(--bs-primary, #5bbfbf);
  border-color: var(--bs-primary-border-subtle, rgba(91, 191, 191, 0.3));
}
.gs-icon-btn.t-danger {
  background: rgba(220, 38, 38, 0.07);
  color: #dc2626;
  border-color: rgba(220, 38, 38, 0.38);
}

.gs-row-action-btn {
  padding: 7px 14px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 0.78rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.gs-row-action-btn.t-verify {
  background: rgba(245, 158, 11, 0.1);
  color: #92400e;
  border: 1.5px solid rgba(245, 158, 11, 0.4);
}
.gs-row-action-btn.t-default {
  background: var(--bs-white, #fff);
  color: var(--bs-primary, #5bbfbf);
  border: 1.5px solid var(--bs-primary-border-subtle, rgba(91, 191, 191, 0.3));
}

.gs-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 44px 16px;
  gap: 12px;
  text-align: center;
}

.gs-empty-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--bs-tertiary-bg, #f3f4f6);
  color: var(--bs-secondary-color, #8a96b0);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
}

.gs-empty-title {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--bs-emphasis-color, #1e2a4a);
}

.gs-empty-body {
  font-size: 0.78rem;
  color: var(--bs-secondary-color, #8a96b0);
  max-width: 360px;
}

.gs-empty-mini {
  padding: 36px 24px;
  text-align: center;
  color: var(--bs-secondary-color, #8a96b0);
}

.gs-empty-mini-title {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--bs-emphasis-color, #1e2a4a);
  margin-bottom: 4px;
}

.gs-add-panel {
  background: var(--bs-tertiary-bg, #f3f4f6);
  border-bottom: 1px solid var(--bs-border-color, #e5e7eb);
  padding: 16px 20px;
}

.gs-test-card {
  background: var(--bs-white, #fff);
  border-radius: 18px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
  border: 1px solid var(--bs-border-color, #e5e7eb);
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cd-modal-dialog {
  max-width: 760px;
}

.cd-delete-modal-dialog {
  max-width: 560px;
}

.cd-modal-content {
  border: 0;
  border-radius: 24px;
  background: var(--bs-white, #fff);
  box-shadow: 0 32px 80px rgba(15, 23, 42, 0.22);
  overflow: hidden;
  font-size: 0.92rem;
}

.cd-modal-header,
.cd-modal-footer,
.cd-class-row-main,
.cd-class-list-header,
.cd-group-row,
.cd-checkbox-label,
.cd-link-btn,
.cd-expand-btn,
.cd-modal-close,
.cd-duration-banner {
  display: flex;
  align-items: center;
}

.cd-modal-header {
  gap: 1rem;
  padding: 1.35rem 1.4rem 1.15rem;
  border-bottom: 1px solid var(--bs-border-color, #e5e7eb);
}

.cd-modal-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(var(--bs-primary-rgb), 0.09);
  color: var(--bs-primary, #5bbfbf);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.15rem;
}

.cd-modal-icon.is-success {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary, #5bbfbf);
}

.cd-modal-icon.is-danger {
  background: rgba(239, 68, 68, 0.09);
  color: #ef4444;
}

.cd-modal-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.2;
}

.cd-modal-subtitle {
  margin-top: 0.3rem;
  color: #8fa0bd;
  font-size: 0.82rem;
  line-height: 1.45;
}

.cd-modal-close {
  width: 36px;
  height: 36px;
  margin-left: auto;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  background: #f4f7fb;
  color: #9aa8c3;
  flex-shrink: 0;
  transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.cd-modal-close:hover, .cd-modal-close:focus-visible {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary, #5bbfbf);
  transform: translateY(-1px);
}

.cd-modal-body {
  padding: 1.35rem 1.4rem 0;
}
.cd-modal-body form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cd-modal-body--success {
  padding-bottom: 1.25rem;
}

.cd-field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.cd-label {
  margin: 0;
  color: #7f90af;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cd-input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #dce4f1;
  border-radius: 14px;
  background: var(--bs-white, #fff);
  color: var(--bs-emphasis-color, #1e2a4a);
  padding: 0.8rem 0.95rem;
  font-size: 0.86rem;
  outline: 0;
  box-shadow: 0 10px 26px -24px rgba(15, 23, 42, 0.35);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
.cd-input:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), 0.12);
}
.cd-input::placeholder {
  color: #a0aec0;
}

.cd-dates-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.cd-duration-banner {
  gap: 0.6rem;
  border-radius: 14px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  background: rgba(var(--bs-primary-rgb), 0.09);
  color: var(--bs-primary, #5bbfbf);
  padding: 0.9rem 1rem;
  font-size: 0.84rem;
  font-weight: 700;
}

.cd-applies-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.cd-applies-card {
  width: 100%;
  min-height: 86px;
  padding: 0.95rem 1rem;
  border: 1px solid #dce4f1;
  border-radius: 16px;
  background: var(--bs-white, #fff);
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  text-align: left;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.cd-applies-card:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  transform: translateY(-1px);
}
.cd-applies-card.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.55);
  background: rgba(var(--bs-primary-rgb), 0.08);
  box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.12) inset;
}

.cd-applies-radio {
  width: 20px;
  height: 20px;
  margin-top: 0.05rem;
  border-radius: 999px;
  border: 2px solid #d8e0ec;
  background: var(--bs-white, #fff);
  flex-shrink: 0;
  position: relative;
}
.cd-applies-radio.is-active {
  border-color: var(--bs-primary, #5bbfbf);
}
.cd-applies-radio.is-active::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 999px;
  background: var(--bs-primary, #5bbfbf);
}

.cd-applies-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.3;
}

.cd-applies-sub {
  margin-top: 0.35rem;
  color: #8fa0bd;
  font-size: 0.8rem;
  line-height: 1.45;
}

.cd-class-list {
  border: 1px solid var(--bs-border-color, #e5e7eb);
  border-radius: 18px;
  background: #fbfcfe;
  overflow: hidden;
}

.cd-class-list-header {
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  background: var(--bs-white, #fff);
  border-bottom: 1px solid var(--bs-border-color, #e5e7eb);
}

.cd-class-list-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.cd-class-list-body {
  max-height: 260px;
  overflow-y: auto;
}

.cd-class-list-body::-webkit-scrollbar {
  width: 9px;
}

.cd-class-list-body::-webkit-scrollbar-track {
  background: transparent;
}

.cd-class-list-body::-webkit-scrollbar-thumb {
  background: #b8c2d4;
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

.cd-class-row + .cd-class-row {
  border-top: 1px solid var(--bs-border-color, #e5e7eb);
}

.cd-class-row-main {
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
}

.cd-checkbox-label,
.cd-group-row {
  gap: 0.75rem;
  min-width: 0;
  color: var(--bs-emphasis-color, #1e2a4a);
  font-weight: 700;
}

.cd-group-row {
  padding: 0.8rem 1rem 0.8rem 3.1rem;
  font-weight: 600;
  color: #5f6f8f;
}
.cd-group-row + .cd-group-row {
  border-top: 1px solid rgba(229, 231, 235, 0.7);
}

.cd-group-list {
  border-top: 1px solid rgba(229, 231, 235, 0.8);
  background: rgba(var(--bs-primary-rgb), 0.03);
}

.cd-checkbox {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--bs-primary, #5bbfbf);
  flex-shrink: 0;
}

.cd-checkbox--sm {
  width: 16px;
  height: 16px;
}

.cd-checkbox.is-partial {
  accent-color: var(--bs-primary, #5bbfbf);
}

.cd-expand-btn,
.cd-link-btn {
  justify-content: center;
  border: 0;
  background: transparent;
}

.cd-expand-btn {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  color: #94a3b8;
  flex-shrink: 0;
  transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.cd-expand-btn i {
  transition: transform 0.15s ease;
}
.cd-expand-btn:hover, .cd-expand-btn:focus-visible {
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary, #5bbfbf);
}
.cd-expand-btn.is-open i {
  transform: rotate(180deg);
}

.cd-link-btn {
  color: var(--bs-primary, #5bbfbf);
  font-size: 0.84rem;
  font-weight: 800;
  padding: 0;
}
.cd-link-btn:hover, .cd-link-btn:focus-visible {
  color: hsl(from var(--bs-primary) h s calc(l - 8));
}

.cd-selection-error {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid rgba(248, 113, 113, 0.18);
  background: #fff5f5;
  color: #ef4444;
  font-size: 0.88rem;
  font-weight: 700;
}

.cd-selection-error.is-danger-card {
  margin-top: 1rem;
  border: 1px solid rgba(239, 68, 68, 0.16);
  border-radius: 14px;
}

.cd-delete-copy {
  color: #334155;
  font-size: 0.86rem;
  line-height: 1.5;
  padding: 0.25rem 0 0.15rem;
}
.cd-delete-copy strong {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-weight: 800;
}

.cd-bottom-toast-wrap {
  position: fixed;
  left: 50%;
  bottom: 1.35rem;
  transform: translateX(-50%);
  z-index: 1085;
  pointer-events: none;
}

.cd-bottom-toast {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 40px;
  padding: 0.72rem 1.1rem;
  max-width: min(680px, 100vw - 2rem);
  border-radius: 14px;
  background: #1f2d56;
  color: #fff;
  box-shadow: 0 18px 36px -22px rgba(15, 23, 42, 0.75);
  font-size: 0.92rem;
  font-weight: 800;
  white-space: normal;
  line-height: 1.4;
}
.cd-bottom-toast i {
  font-size: 0.82rem;
  flex-shrink: 0;
}

.cd-bottom-toast.is-error {
  background: #7f1d1d;
}

.efa-default-card {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--bs-border-color, #e5e7eb);
  border-radius: 16px;
  background: var(--bs-white, #fff);
  cursor: pointer;
}

.efa-default-check {
  padding-top: 0.1rem;
  flex-shrink: 0;
}

.efa-default-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.3;
}

.efa-default-copy,
.efa-helper-copy {
  color: #8fa0bd;
  font-size: 0.8rem;
  line-height: 1.45;
}

.efa-default-copy {
  margin-top: 0.3rem;
}

.efa-helper-copy {
  padding: 0 0.05rem;
}

.efa-table-loading {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
}

.efa-table-loading-dots {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.efa-table-loading-dots span {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--bs-primary, #5bbfbf);
  opacity: 0.25;
  animation: efa-table-loader 1s ease-in-out infinite;
}
.efa-table-loading-dots span:nth-child(2) {
  animation-delay: 0.15s;
}
.efa-table-loading-dots span:nth-child(3) {
  animation-delay: 0.3s;
}

@keyframes efa-table-loader {
  0%, 80%, 100% {
    opacity: 0.25;
    transform: translateY(0) scale(0.92);
  }
  40% {
    opacity: 1;
    transform: translateY(-2px) scale(1);
  }
}
.rq-row {
  align-items: center;
}

.rq-row-content {
  min-width: 0;
  flex: 1 1 auto;
}

.rq-row-tags {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  margin-top: 0.45rem;
}

.rq-row-actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-left: auto;
  flex-shrink: 0;
}

.rq-move-btn {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid var(--bs-border-color, #e5e7eb);
  background: var(--bs-white, #fff);
  color: #1e3a8a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.rq-move-btn:hover, .rq-move-btn:focus-visible {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  color: var(--bs-primary, #5bbfbf);
  background: rgba(var(--bs-primary-rgb), 0.05);
}
.rq-move-btn:disabled {
  color: #cbd5e1;
  background: #f8fafc;
  border-color: #e2e8f0;
  cursor: not-allowed;
}

.rq-option-move-btn,
.rq-option-remove-btn {
  min-height: 38px;
  border-radius: 10px;
  font-size: 0.82rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.rq-option-move-btn {
  width: 38px;
  border: 1px solid #dbe3ef;
  background: var(--bs-white, #fff);
  color: #1e3a8a;
}
.rq-option-move-btn:hover, .rq-option-move-btn:focus-visible {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary, #5bbfbf);
  transform: translateY(-1px);
}
.rq-option-move-btn:disabled {
  border-color: #e2e8f0;
  background: #f8fafc;
  color: #cbd5e1;
  cursor: not-allowed;
  transform: none;
}

.rq-option-remove-btn {
  border: 1px solid rgba(239, 68, 68, 0.35);
  background: rgba(239, 68, 68, 0.04);
  color: #dc2626;
  padding: 0.45rem 0.8rem;
}
.rq-option-remove-btn:hover, .rq-option-remove-btn:focus-visible {
  border-color: #dc2626;
  background: #dc2626;
  color: #fff;
  box-shadow: 0 10px 24px -18px rgba(239, 68, 68, 0.9);
  transform: translateY(-1px);
}

.rq-textarea {
  min-height: 72px;
  resize: vertical;
}

.rq-select {
  min-height: 48px;
}

.rq-required-card {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--bs-border-color, #e5e7eb);
  border-radius: 16px;
  background: var(--bs-white, #fff);
  cursor: pointer;
}

.rq-required-check {
  padding-top: 0.1rem;
  flex-shrink: 0;
}

.rq-required-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.3;
}

.rq-required-copy {
  margin-top: 0.3rem;
  color: #8fa0bd;
  font-size: 0.8rem;
  line-height: 1.45;
}

.rq-validation {
  color: #dc2626;
  font-size: 0.82rem;
  font-weight: 700;
}

.cd-modal-footer {
  justify-content: flex-end;
  gap: 0.8rem;
  padding: 1rem 1.4rem 1.25rem;
  margin: 0 -1.4rem;
  border-top: 1px solid var(--bs-border-color, #e5e7eb);
  background: #fbfcfe;
}

.cd-btn-cancel,
.cd-btn-save,
.cd-btn-delete {
  min-width: 140px;
  min-height: 42px;
  border-radius: 14px;
  padding: 0.78rem 1.15rem;
  font-size: 0.85rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.cd-btn-cancel {
  border-color: #dbe3ef;
  background: var(--bs-white, #fff);
  color: #7383a4;
}
.cd-btn-cancel:hover, .cd-btn-cancel:focus-visible {
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  color: var(--bs-primary, #5bbfbf);
}

.cd-btn-save {
  background: var(--bs-primary, #5bbfbf);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  box-shadow: 0 14px 30px -20px rgba(var(--bs-primary-rgb), 0.85);
}
.cd-btn-save:hover, .cd-btn-save:focus-visible {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  transform: translateY(-1px);
}
.cd-btn-save:disabled {
  background: #eef2f7;
  color: #94a3b8;
  box-shadow: none;
  transform: none;
  cursor: not-allowed;
}

.cd-btn-delete {
  background: #ef4444;
  color: #fff;
  box-shadow: 0 14px 30px -20px rgba(239, 68, 68, 0.75);
}
.cd-btn-delete:hover, .cd-btn-delete:focus-visible {
  background: #dc2626;
  transform: translateY(-1px);
}
.cd-btn-delete:disabled {
  background: #fecaca;
  color: #fff;
  box-shadow: none;
  transform: none;
  cursor: not-allowed;
}

.cd-success-card {
  border: 1px solid rgba(var(--bs-primary-rgb), 0.24);
  border-radius: 18px;
  background: rgba(var(--bs-primary-rgb), 0.08);
  padding: 1rem 1rem 1.05rem;
}

.cd-success-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.8rem;
  margin-bottom: 0.95rem;
}

.cd-success-name {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.94rem;
  font-weight: 800;
  line-height: 1.2;
}

.cd-success-badges {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.cd-success-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(245, 158, 11, 0.45);
  background: rgba(245, 158, 11, 0.12);
  color: #b45309;
  font-size: 0.78rem;
  font-weight: 800;
}

.cd-success-badge.is-primary {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary, #5bbfbf);
}

.cd-success-meta {
  display: grid;
  gap: 0.85rem;
}

.cd-success-meta-row {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
}

.cd-success-meta-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  background: var(--bs-white, #fff);
  color: var(--bs-primary, #5bbfbf);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cd-success-meta-label {
  color: #8fa0bd;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cd-success-meta-value {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.35;
  margin-top: 0.18rem;
}

.cd-success-note {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  margin-top: 0.8rem;
  border: 1px solid rgba(251, 191, 36, 0.45);
  border-radius: 18px;
  background: #fff7ed;
  padding: 1rem;
}

.cd-success-note-icon {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  background: var(--bs-white, #fff);
  color: #c2410c;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cd-success-note-title {
  color: var(--bs-emphasis-color, #1e2a4a);
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.3;
}

.cd-success-note-copy {
  margin-top: 0.3rem;
  color: #334155;
  font-size: 0.82rem;
  line-height: 1.48;
}

@media (max-width: 768px) {
  .cd-modal-dialog {
    max-width: calc(100vw - 1rem);
    margin: 0.5rem auto;
  }
  .cd-modal-header,
  .cd-modal-body,
  .cd-modal-footer {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .cd-modal-footer {
    margin: 0 -1rem;
  }
  .cd-dates-row,
  .cd-applies-grid {
    grid-template-columns: 1fr;
  }
  .cd-success-head,
  .cd-class-list-header,
  .cd-modal-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .cd-bottom-toast-wrap {
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0.85rem;
    transform: none;
  }
  .cd-bottom-toast {
    width: 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
  }
  .cd-btn-cancel,
  .cd-btn-save,
  .cd-btn-delete {
    width: 100%;
    min-width: 0;
  }
  .rq-row {
    align-items: flex-start;
  }
  .rq-row-actions {
    width: 100%;
    justify-content: flex-end;
    margin-left: 0;
  }
}
@media (max-width: 768px) {
  .gs-stats-row {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .gs-section-head {
    flex-direction: column;
    align-items: stretch;
  }
  .gs-btn-add, .gs-btn-ghost {
    justify-content: center;
  }
  .settings-admin__tab-nav {
    display: none;
  }
  .settings-admin__mobile-actions {
    display: flex;
  }
  .settings-admin__tab-card {
    border-radius: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
  }
  .settings-admin .members-page-header {
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    flex-wrap: nowrap;
  }
  .settings-admin .members-page-title {
    font-size: 1.05rem;
    line-height: 1.2;
  }
  .settings-admin .members-page-subtitle {
    max-width: none;
    font-size: 0.82rem;
    line-height: 1.45;
  }
  .settings-admin__mobile-header-copy {
    padding-right: 0.15rem;
  }
  .settings-admin .gs-stack > .gs-stats-row {
    display: none;
  }
  .gs-stack {
    padding: 14px 0 24px;
  }
  .gs-section-head {
    padding: 0 12px;
  }
  .gs-list-card {
    border-radius: 18px;
    margin: 0 0.5rem;
  }
  .gs-list-row {
    padding: 14px 16px;
  }
  .gs-row-actions {
    width: auto;
    margin-left: auto;
  }
  .settings-admin__mobile-sheet-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    z-index: 1060;
  }
  .settings-admin__mobile-sheet {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1061;
    background: var(--bs-white, #fff);
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -16px 48px rgba(15, 23, 42, 0.22);
    padding-top: 0.75rem;
    transform: translate3d(0, 100%, 0);
    transition: transform 180ms ease-out;
    max-height: min(72vh, 560px);
    overflow: hidden;
  }
  .settings-admin__mobile-sheet.is-open {
    transform: translate3d(0, 0, 0);
  }
  .settings-admin__mobile-sheet-head {
    padding: 0 1rem 1rem;
    border-bottom: 1px solid var(--bs-border-color, #e5e7eb);
    margin-bottom: 1rem;
  }
  .settings-admin__mobile-sheet-body {
    padding: 0 1rem 1.1rem;
    overflow-y: auto;
    max-height: calc(min(72vh, 560px) - 92px);
  }
  .settings-admin__mobile-stats-grid {
    grid-template-columns: 1fr 1fr;
  }
  .settings-admin__mobile-stats-grid .gs-stat-tile:last-child:nth-child(odd) {
    grid-column: 1/-1;
  }
  .settings-admin .members-card.settings-admin__tab-card {
    padding: 0;
  }
  .settings-admin .rq-row-actions,
  .settings-admin .cd-class-list-actions {
    width: 100%;
  }
  .settings-admin .gs-row-action-btn,
  .settings-admin .gs-btn-add,
  .settings-admin .gs-btn-ghost {
    width: 100%;
    justify-content: center;
  }
}
.shop-admin-page {
  padding: 1.5rem 1.75rem 2.5rem;
  background: #f4f6f9;
  min-height: calc(100vh - 4rem);
  font-family: "Nunito", system-ui, sans-serif;
}

.shop-admin-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.shop-admin-title {
  font-size: 1.65rem;
  font-weight: 800;
  margin: 0 0 0.35rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  color: #1e2a4a;
}

.shop-admin-badge {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border: 1px solid var(--bs-primary-border-subtle);
  vertical-align: middle;
}

.shop-admin-subtitle {
  margin: 0;
  color: #6b7280;
  font-size: 0.9rem;
}

.shop-admin-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.shop-products-admin-title-row {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}

.shop-products-admin-title-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: #d9fbf3;
  color: #0f7f78;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.35rem;
}

.shop-products-admin-title-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.shop-btn-categories,
.shop-btn-manage-categories {
  font-weight: 600;
  font-size: 0.88rem;
  padding: 0.5rem 1rem;
  border-radius: 10px;
  border: 1.5px solid #e8ecf1;
  background: #ffffff;
  color: #1e2a4a;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  box-shadow: 0 1px 2px rgba(30, 42, 74, 0.04);
}
.shop-btn-categories i,
.shop-btn-manage-categories i {
  font-size: 0.95rem;
  color: #8a96b0;
}
.shop-btn-categories:hover,
.shop-btn-manage-categories:hover {
  background: #fafbfc;
  border-color: rgb(212.9783783784, 220.2864864865, 229.4216216216);
}
.shop-btn-categories.active,
.shop-btn-manage-categories.active {
  background: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}
.shop-btn-categories.active i,
.shop-btn-manage-categories.active i {
  color: var(--bs-primary);
}

.shop-btn-add,
.shop-btn-add-product {
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.5rem 1.15rem;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  box-shadow: 0 2px 8px rgba(var(--bs-primary-rgb), 0.35);
}
.shop-btn-add:hover,
.shop-btn-add-product:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}

.shop-admin-body {
  display: block;
}

.shop-admin-body-with-editor {
  display: grid;
  grid-template-columns: 1fr minmax(340px, 420px);
  gap: 1.25rem;
  align-items: start;
}

.shop-admin-main {
  background: #ffffff;
  border-radius: 16px !important;
  border: 1px solid #e8ecf1 !important;
  box-shadow: 0 2px 12px rgba(30, 42, 74, 0.06) !important;
  overflow: visible;
}
.shop-admin-main > .card-body {
  overflow: visible;
}

.shop-loading,
.shop-empty {
  padding: 3.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
}

.shop-empty .btn-primary {
  margin-top: 0.5rem;
  font-weight: 700;
  border-radius: 10px;
}

.shop-search-wrap .input-group {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e8ecf1;
  background: #fafbfc;
}
.shop-search-wrap .input-group .input-group-text {
  border: none;
  background: transparent;
}
.shop-search-wrap .input-group .form-control {
  border: none;
  background: transparent;
  font-size: 0.9rem;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}
.shop-search-wrap .input-group .form-control:focus {
  box-shadow: none;
}

.shop-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  padding: 0.75rem 1rem 0;
  border-bottom: 1px solid #e5e7eb;
}

.shop-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 0.5rem 0.85rem;
  font-weight: 600;
  font-size: 0.88rem;
  color: #6b7280;
  cursor: pointer;
  margin-bottom: -1px;
}
.shop-tab.active {
  color: var(--bs-primary);
  border-bottom-color: var(--bs-primary);
}

.shop-tab-count {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #9ca3af;
}

.shop-tab.active .shop-tab-count {
  color: var(--bs-primary);
}

.shop-products-table {
  font-size: 0.88rem;
}
.shop-products-table thead th {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
  border-bottom: 1px solid #e5e7eb;
  padding: 0.75rem 1rem;
  white-space: nowrap;
}
.shop-products-table tbody td {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: middle;
}

.shop-product-row {
  cursor: pointer;
}
.shop-product-row:hover {
  background: #f9fafb;
}
.shop-product-row.expanded {
  background: #f9fafb;
}

.shop-product-name-row {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.shop-row-chevron {
  flex-shrink: 0;
  font-size: 0.75rem;
  color: #9ca3af;
  transition: transform 0.15s ease;
  transform: rotate(-90deg);
}
.shop-row-chevron.expanded {
  transform: rotate(0deg);
  color: var(--bs-primary);
}

.shop-variant-expand-row td {
  border-bottom: 1px solid #e5e7eb;
  background: #fafbfc;
}

.shop-variant-expand-panel {
  margin-left: 1rem;
  padding: 0.5rem 1rem 0.85rem 1.25rem;
  border-left: 3px solid var(--bs-primary);
}

.shop-variant-subtable {
  width: 100%;
  font-size: 0.85rem;
}
.shop-variant-subtable thead th {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #9ca3af;
  padding: 0.35rem 0.75rem 0.5rem 0;
  border: none;
  background: transparent;
}
.shop-variant-subtable tbody td {
  padding: 0.55rem 0.75rem 0.55rem 0;
  border: none;
  vertical-align: middle;
  background: transparent;
}
.shop-variant-subtable .shop-was-price {
  display: inline;
  margin-left: 0.35rem;
}

.shop-default-price-hint {
  display: block;
  font-size: 0.72rem;
  color: #9ca3af;
  margin-top: 0.1rem;
}

.shop-field-hint {
  font-size: 0.8rem;
  color: #8a96b0;
  margin: 0;
}

.shop-on-sale-block {
  padding-top: 0.25rem;
}

.shop-on-sale-toggle-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.shop-on-sale-toggle-text {
  flex: 1;
  min-width: 0;
}

.shop-on-sale-hint {
  margin-top: 0.25rem;
  font-size: 0.8rem;
  color: #8a96b0;
  line-height: 1.4;
}

.shop-on-sale-switch .form-check-input {
  width: 2.5rem;
  height: 1.35rem;
  cursor: pointer;
}
.shop-on-sale-switch .form-check-input:checked {
  background-color: #dc2626;
  border-color: #dc2626;
}
.shop-on-sale-switch .form-check-input:focus {
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.25);
}

.shop-sale-price-panel {
  margin-top: 0.85rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: #fff5f5;
  border: 1px solid #fecaca;
}

.shop-sale-price-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9f1239;
  margin-bottom: 0.45rem;
}

.shop-sale-price-input-wrap {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #fecaca;
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.15s ease;
}
.shop-sale-price-input-wrap .form-control {
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  background: transparent;
  padding-left: 0.25rem;
  font-size: 0.9rem;
}
.shop-sale-price-input-wrap .form-control:focus, .shop-sale-price-input-wrap .form-control:focus-visible, .shop-sale-price-input-wrap .form-control:active {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  background: transparent;
}
.shop-sale-price-input-wrap:focus-within {
  border-color: #f87171;
  box-shadow: none;
}

.shop-sale-price-currency {
  padding: 0.45rem 0 0.45rem 0.65rem;
  font-size: 0.9rem;
  color: #8a96b0;
  flex-shrink: 0;
}

.shop-sale-price-warning {
  margin-top: 0.5rem;
  font-size: 0.78rem;
  color: #b45309;
  font-weight: 500;
}

.shop-variant-sale-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid #e5e7eb;
}

.shop-variant-sale-badge {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #dc2626;
  background: #fef2f2;
  border-radius: 4px;
  padding: 0.15rem 0.4rem;
}

.shop-variant-sale-detail {
  font-size: 0.82rem;
  color: #1e2a4a;
}

.shop-was-price-inline {
  color: #9ca3af;
  text-decoration: line-through;
  margin-left: 0.15rem;
}

.shop-product-thumb {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  flex-shrink: 0;
  overflow: hidden;
  background: #e5e7eb;
}
.shop-product-thumb.shop-cat-blue {
  background: rgba(59, 130, 246, 0.15);
}
.shop-product-thumb.shop-cat-violet {
  background: rgba(139, 92, 246, 0.15);
}
.shop-product-thumb.shop-cat-teal {
  background: rgba(20, 184, 166, 0.15);
}
.shop-product-thumb.shop-cat-amber {
  background: rgba(245, 158, 11, 0.15);
}
.shop-product-thumb.shop-cat-rose {
  background: rgba(244, 63, 94, 0.15);
}
.shop-product-thumb.shop-cat-slate {
  background: rgba(100, 116, 139, 0.15);
}

.shop-product-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shop-cat-pill {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}
.shop-cat-pill.shop-cat-blue {
  background: rgba(59, 130, 246, 0.12);
  color: #2563eb;
}
.shop-cat-pill.shop-cat-violet {
  background: rgba(139, 92, 246, 0.12);
  color: #7c3aed;
}
.shop-cat-pill.shop-cat-teal {
  background: rgba(20, 184, 166, 0.12);
  color: #0d9488;
}
.shop-cat-pill.shop-cat-amber {
  background: rgba(245, 158, 11, 0.12);
  color: #d97706;
}
.shop-cat-pill.shop-cat-rose {
  background: rgba(244, 63, 94, 0.12);
  color: #e11d48;
}
.shop-cat-pill.shop-cat-slate {
  background: rgba(100, 116, 139, 0.12);
  color: #475569;
}

.shop-sale-price {
  color: #dc2626;
  font-weight: 700;
  margin-right: 0.35rem;
}

.shop-sale-badge {
  font-size: 0.65rem;
  font-weight: 800;
  color: #dc2626;
  margin-right: 0.35rem;
}

.shop-was-price {
  display: block;
  font-size: 0.78rem;
  color: #9ca3af;
  text-decoration: line-through;
}

.shop-stock-low {
  color: #d97706;
  font-weight: 600;
}

.shop-stock-out {
  color: #dc2626;
  font-weight: 600;
}

.shop-price-cell {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.35rem;
}

.shop-hover-trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  max-width: 100%;
}
.shop-hover-trigger:hover .shop-hover-popover, .shop-hover-trigger:focus-within .shop-hover-popover {
  opacity: 1;
  visibility: visible;
}
.shop-hover-trigger:hover .shop-hover-chevron, .shop-hover-trigger:focus-within .shop-hover-chevron {
  color: var(--bs-primary);
}
.shop-hover-trigger.shop-hover-trigger--above .shop-hover-popover {
  top: auto;
  bottom: calc(100% + 6px);
}
.shop-hover-trigger.shop-hover-trigger--above .shop-hover-popover::before {
  top: auto;
  bottom: -8px;
}

.shop-hover-trigger-content {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.35rem;
}

.shop-hover-chevron {
  font-size: 0.65rem;
  color: #9ca3af;
  flex-shrink: 0;
  line-height: 1;
}

.shop-hover-popover {
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  z-index: 1100;
  min-width: 220px;
  padding: 0.65rem 0.75rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease, visibility 0.12s ease;
}
.shop-hover-popover::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  height: 8px;
}

.shop-hover-popover-title {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9ca3af;
  margin-bottom: 0.5rem;
}

.shop-hover-popover-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.shop-hover-popover-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.3rem 0;
  font-size: 0.84rem;
}

.shop-hover-popover-label {
  color: #374151;
}

.shop-hover-popover-values {
  text-align: right;
  white-space: nowrap;
}

.shop-hover-popover-total {
  display: flex;
  justify-content: space-between;
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid #e5e7eb;
  font-size: 0.84rem;
  font-weight: 700;
  color: #111827;
}

.shop-table-wrap.table-responsive {
  overflow: visible;
  padding-bottom: 0.5rem;
}

.shop-table-pagination {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 1rem;
  border-top: 1px solid #e5e7eb;
  background: #fff;
}

.shop-table-pagination-per-page {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.shop-table-pagination-label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #9ca3af;
  white-space: nowrap;
}

.shop-table-pagination-select {
  appearance: none;
  flex: 0 0 auto;
  width: 4.5rem;
  min-width: 4.5rem;
  max-width: 4.5rem;
  height: 2rem;
  padding: 0 1.75rem 0 0.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%239ca3af' d='M4.427 6.427l3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 6H4.604a.25.25 0 0 0-.177.427z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 0.75rem;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.2;
  color: #374151;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.shop-table-pagination-select:focus {
  border-color: var(--bs-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}

.shop-table-pagination-end {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  margin-left: auto;
  min-width: 0;
}

.shop-table-pagination-range {
  font-size: 0.84rem;
  font-weight: 500;
  color: #6b7280;
  white-space: nowrap;
}

.shop-table-pagination-controls {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem;
  border: 1px solid #e5e7eb;
  border-radius: 9px;
  background: #fafbfc;
}

.shop-table-pagination-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  padding: 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #374151;
  white-space: nowrap;
}

.shop-table-pagination-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  transition: border-color 0.12s ease, color 0.12s ease, background 0.12s ease;
}
.shop-table-pagination-btn .bi {
  font-size: 0.9rem;
  line-height: 1;
}
.shop-table-pagination-btn:hover:not(:disabled) {
  border-color: #e5e7eb;
  color: var(--bs-primary);
  background: #fff;
}
.shop-table-pagination-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

@media (max-width: 575.98px) {
  .shop-table-pagination {
    flex-wrap: wrap;
    row-gap: 0.65rem;
  }
  .shop-table-pagination-end {
    width: 100%;
    margin-left: 0;
    justify-content: space-between;
  }
}
.shop-products-table tbody tr.shop-product-row:last-of-type td {
  position: relative;
}

.shop-status-pill {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}
.shop-status-pill.active {
  background: rgba(16, 185, 129, 0.1);
  color: #15803d;
  border: 1px solid rgba(16, 185, 129, 0.35);
}
.shop-status-pill.inactive {
  background: #f3f4f6;
  color: #6b7280;
  border: 1px solid #e5e7eb;
}

.shop-row-actions {
  display: flex;
  gap: 0.35rem;
  justify-content: flex-end;
}

.shop-icon-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.shop-icon-btn.danger {
  color: #dc2626;
  border-color: rgba(220, 38, 38, 0.3);
  background: rgba(220, 38, 38, 0.05);
}
.shop-icon-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.shop-categories-panel {
  margin-bottom: 1rem;
}

.shop-categories-panel-inner {
  background: #ffffff;
  border: 1px solid #e8ecf1;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(30, 42, 74, 0.06);
  overflow: hidden;
}

.shop-categories-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.1rem 1.25rem 0.85rem;
  border-bottom: 1px solid #f0f2f5;
}

.shop-categories-title {
  font-size: 1rem;
  font-weight: 800;
  color: #1e2a4a;
  margin: 0 0 0.2rem;
}

.shop-categories-desc {
  font-size: 0.82rem;
  color: #8a96b0;
  margin: 0;
  max-width: 420px;
  line-height: 1.45;
}

.shop-btn-done {
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.4rem 0.9rem;
  border-radius: 10px;
  border: 1.5px solid #e8ecf1;
  background: #ffffff;
  color: #1e2a4a;
  white-space: nowrap;
}
.shop-btn-done:hover:not(:disabled) {
  background: #f9fafb;
}
.shop-btn-done:disabled {
  opacity: 0.6;
}

.shop-categories-panel-body {
  position: relative;
  padding: 0.35rem 1.25rem 1.1rem;
  min-height: 4rem;
}
.shop-categories-panel-body.is-busy {
  pointer-events: none;
}

.shop-categories-loading {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.72);
  border-radius: 0 0 16px 16px;
}

.shop-categories-error {
  color: #dc2626;
  font-size: 0.82rem;
  margin: 0.5rem 0 0;
}

.shop-category-row {
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto auto auto;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid #f3f4f6;
}
.shop-category-row:last-of-type {
  border-bottom: none;
}

.shop-category-name-input {
  border: none;
  background: transparent;
  font-weight: 600;
  font-size: 0.9rem;
  color: #1e2a4a;
  padding: 0.25rem 0;
  min-width: 0;
}
.shop-category-name-input:focus {
  outline: none;
  box-shadow: 0 1px 0 0 var(--bs-primary);
}
.shop-category-name-input:disabled {
  opacity: 0.6;
}

.shop-category-count {
  font-size: 0.82rem;
  color: #8a96b0;
  white-space: nowrap;
}

.shop-category-colors {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  flex-wrap: nowrap;
}

.shop-color-dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.shop-color-dot.shop-cat-blue {
  background: #3b82f6;
}
.shop-color-dot.shop-cat-violet {
  background: #8b5cf6;
}
.shop-color-dot.shop-cat-teal {
  background: #14b8a6;
}
.shop-color-dot.shop-cat-amber {
  background: #f59e0b;
}
.shop-color-dot.shop-cat-rose {
  background: #f43f5e;
}
.shop-color-dot.shop-cat-slate {
  background: #64748b;
}
.shop-color-dot.selected {
  border-color: #1e2a4a;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(30, 42, 74, 0.15);
  transform: scale(1.08);
}
.shop-color-dot:hover:not(:disabled) {
  transform: scale(1.05);
}
.shop-color-dot:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.shop-category-add-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 0 0.25rem;
  margin-top: 0.25rem;
  border-top: 1px dashed #e5e7eb;
}

.shop-category-add-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #f3f4f6;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}

.shop-category-add-input {
  border: none;
  background: transparent;
  box-shadow: none;
  padding-left: 0;
  font-size: 0.9rem;
  color: #8a96b0;
}
.shop-category-add-input::placeholder {
  color: #b0b8c9;
}
.shop-category-add-input:focus {
  box-shadow: none;
  color: #1e2a4a;
}

.shop-btn-add-category {
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.4rem 1rem;
  border-radius: 10px;
  border: none;
  background: #e8ecf1;
  color: #8a96b0;
}
.shop-btn-add-category:not(:disabled) {
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}
.shop-btn-add-category:not(:disabled):hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
}
.shop-btn-add-category:disabled {
  opacity: 0.55;
}

.shop-editor-panel {
  border-radius: 16px;
  border: 1px solid #e8ecf1 !important;
  box-shadow: 0 4px 24px rgba(30, 42, 74, 0.1) !important;
  background: #ffffff;
  position: sticky;
  top: 1rem;
  align-self: start;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 2rem);
  height: fit-content;
  overflow: hidden;
}

.shop-delete-confirm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1060;
  background: rgba(15, 23, 42, 0.52);
  backdrop-filter: blur(2px);
}

.shop-delete-confirm-dialog {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1061;
  width: min(440px, 100vw - 2rem);
  transform: translate(-50%, -50%);
  overflow: hidden;
  border: 1px solid #e8ecf1;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(30, 42, 74, 0.22);
}

.shop-delete-confirm-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.25rem 1.25rem 0;
}

.shop-delete-confirm-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #fff1f2;
  color: #e11d48;
  font-size: 1.1rem;
}

.shop-delete-confirm-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #8a96b0;
}

.shop-delete-confirm-close:hover,
.shop-delete-confirm-close:focus-visible {
  background: #f1f5f9;
  color: #1e2a4a;
}

.shop-delete-confirm-body {
  padding: 1rem 1.25rem 1.25rem;
}

.shop-delete-confirm-body h2 {
  margin: 0 0 0.45rem;
  color: #1e2a4a;
  font-size: 1.15rem;
  font-weight: 800;
}

.shop-delete-confirm-body p {
  margin: 0;
  color: #8a96b0;
  font-size: 0.9rem;
}

.shop-delete-confirm-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid #e8ecf1;
}

.shop-delete-confirm-cancel,
.shop-delete-confirm-delete {
  min-height: 40px;
  border-radius: 10px;
  padding: 0.55rem 0.9rem;
  font-size: 0.86rem;
  font-weight: 700;
}

.shop-delete-confirm-cancel {
  border: 1px solid #e8ecf1;
  background: #ffffff;
  color: #1e2a4a;
}

.shop-delete-confirm-delete {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid #e11d48;
  background: #e11d48;
  color: #fff;
}

.shop-delete-confirm-delete:hover,
.shop-delete-confirm-delete:focus-visible {
  border-color: #be123c;
  background: #be123c;
  color: #fff;
}

.shop-delete-confirm-delete:disabled {
  opacity: 0.7;
}

.shop-editor-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid #e5e7eb;
  flex-shrink: 0;
}

.shop-editor-body {
  padding: 1rem 1.15rem;
  overflow-x: hidden;
  overflow-y: auto;
  flex: 0 1 auto;
  min-height: 0;
  max-height: calc(100vh - 9rem);
  overscroll-behavior: contain;
}
.shop-editor-body .form-label {
  font-weight: 700;
  font-size: 0.85rem;
  color: #1e2a4a;
  margin-bottom: 0.35rem;
}
.shop-editor-body .form-control,
.shop-editor-body .form-select,
.shop-editor-body .daterangepicker select.monthselect,
.daterangepicker .shop-editor-body select.monthselect,
.shop-editor-body .daterangepicker select.yearselect,
.daterangepicker .shop-editor-body select.yearselect {
  border-radius: 10px;
  border-color: #e8ecf1;
  font-size: 0.9rem;
}
.shop-editor-body .form-control:focus,
.shop-editor-body .form-select:focus,
.shop-editor-body .daterangepicker select.monthselect:focus,
.daterangepicker .shop-editor-body select.monthselect:focus,
.shop-editor-body .daterangepicker select.yearselect:focus,
.daterangepicker .shop-editor-body select.yearselect:focus {
  border-color: hsl(from var(--bs-primary) h s calc(l + 5));
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.25);
}
.shop-editor-body .form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.shop-editor-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  border-top: 1px solid #e5e7eb;
  background: #fafbfc;
  flex-shrink: 0;
  margin-top: auto;
}
.shop-editor-footer .btn-link {
  font-weight: 600;
  color: var(--bs-primary);
  text-decoration: none;
  padding: 0.35rem 0.5rem;
}
.shop-editor-footer .btn-link:hover {
  color: hsl(from var(--bs-primary) h s calc(l - 8));
  text-decoration: none;
}
.shop-editor-footer .btn-primary {
  font-weight: 700;
  border-radius: 10px;
  padding: 0.5rem 1.25rem;
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}
.shop-editor-footer .btn-primary:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  border-color: hsl(from var(--bs-primary) h s calc(l - 8));
}

.shop-editor-alert {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 0.65rem 0.85rem;
  font-size: 0.82rem;
  color: #92400e;
  margin-bottom: 1rem;
}

.shop-editor-section {
  padding: 0.75rem 0;
  border-top: 1px solid #f3f4f6;
}

.shop-addon-only-section {
  border-top: none;
  padding-top: 0;
}

.shop-addon-only-toggle-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.shop-addon-only-toggle-text {
  flex: 1;
  min-width: 0;
}

.shop-addon-only-label {
  display: block;
  font-weight: 700;
  font-size: 0.9rem;
  color: #1e2a4a;
  margin-bottom: 0.25rem;
  cursor: pointer;
}

.shop-addon-only-hint {
  font-size: 0.82rem;
  color: #6b7280;
  line-height: 1.45;
}

.shop-addon-only-switch {
  flex-shrink: 0;
  padding-top: 0.1rem;
}
.shop-addon-only-switch .form-check-input {
  width: 2.5rem;
  height: 1.35rem;
  cursor: pointer;
}

.shop-addon-config {
  margin-top: 1rem;
  padding: 1rem 1.05rem;
  border-radius: 12px;
  background: #f5f3ff;
  border: 1px solid #e9e5ff;
}

.shop-addon-config-title {
  margin: 0 0 0.85rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7c3aed;
}

.shop-addon-config-hint {
  font-size: 0.82rem;
  color: #6b7280;
  line-height: 1.45;
}

.shop-addon-config-segment {
  display: inline-flex;
  width: 100%;
  max-width: 100%;
  padding: 4px;
  gap: 2px;
  margin-bottom: 1rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid #e9e5ff;
}

.shop-addon-config-segment-btn {
  flex: 1;
  padding: 0.5rem 0.75rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #6b7280;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 120ms ease, color 120ms ease, box-shadow 120ms ease;
}
.shop-addon-config-segment-btn.is-active {
  background: #fff;
  color: #1e2a4a;
  box-shadow: 0 1px 3px rgba(124, 58, 237, 0.12);
}
.shop-addon-config-segment-btn:hover:not(.is-active) {
  color: #4b5563;
}

.shop-addon-config-qty-label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e2a4a;
}

.shop-addon-config-qty-input {
  max-width: 6rem;
  border-radius: 10px;
  border-color: #e5e7eb;
  background: #fff;
}

.shop-option-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}

.shop-option-card {
  position: relative;
  text-align: left;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 0.85rem;
  background: #fff;
  cursor: pointer;
}
.shop-option-card.selected {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
}

.shop-option-title {
  display: block;
  font-weight: 700;
  font-size: 0.88rem;
}

.shop-option-check {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  color: var(--bs-primary);
}

.shop-photo-section {
  position: relative;
}

.shop-photos-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.shop-photos-count {
  font-size: 0.78rem;
  color: #8a96b0;
  text-align: right;
  line-height: 1.3;
}

.shop-photo-drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 2px dashed #d1d5db;
  border-radius: 12px;
  padding: 1.5rem;
  cursor: pointer;
  text-align: center;
  color: #6b7280;
  background: #fff;
}
.shop-photo-drop:hover {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.06);
}
.shop-photo-drop:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
}

.shop-photo-main {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #e5e7eb;
  margin-bottom: 0.65rem;
}
.shop-photo-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-photo-main-badge {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: #fff;
  font-size: 0.72rem;
  font-weight: 600;
  color: #1e2a4a;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;
}
.shop-photo-main-badge .bi-star-fill {
  color: #f59e0b;
  font-size: 0.7rem;
}

.shop-photo-main-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.shop-photo-main:hover .shop-photo-main-overlay {
  opacity: 1;
  pointer-events: auto;
}

.shop-photo-gallery {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem;
}

.shop-photo-thumb {
  position: relative;
  width: 72px;
  height: 72px;
  border-radius: 10px;
  overflow: hidden;
  background: #e5e7eb;
  flex-shrink: 0;
}
.shop-photo-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.shop-photo-thumb-actions {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0.35rem;
  padding-top: 0.35rem;
  background: rgba(255, 255, 255, 0.55);
  opacity: 0;
  transition: opacity 0.15s ease;
}

.shop-photo-thumb:hover .shop-photo-thumb-actions {
  opacity: 1;
}

.shop-photo-action {
  position: relative;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  color: #1e2a4a;
  font-size: 0.85rem;
}
.shop-photo-action.set-main {
  color: #f59e0b;
}
.shop-photo-action.remove {
  color: #dc2626;
  font-size: 0.95rem;
}
.shop-photo-action.shop-photo-main-delete {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  left: auto;
  bottom: auto;
  z-index: 4;
  color: #dc2626;
  background: #fff;
}
.shop-photo-action.shop-photo-main-delete i {
  color: #dc2626;
}
.shop-photo-action:hover {
  transform: scale(1.05);
}
.shop-photo-action[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  background: #1f2937;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 500;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.12s ease;
  z-index: 10;
}
.shop-photo-action[data-tooltip]:hover::after {
  opacity: 1;
}
.shop-photo-action.shop-photo-main-delete[data-tooltip]::after {
  bottom: auto;
  top: calc(100% + 6px);
}
.shop-photo-action.set-main[data-tooltip]::after, .shop-photo-action.remove[data-tooltip]::after {
  bottom: auto;
  top: calc(100% + 6px);
}

.shop-photo-add-loading,
.shop-photo-drop-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: default;
  pointer-events: none;
}
.shop-photo-add-loading .loader-container-sm,
.shop-photo-drop-loading .loader-container-sm {
  margin: 0;
}

.shop-photo-add {
  width: 72px;
  height: 72px;
  border: 2px dashed #d1d5db;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  cursor: pointer;
  color: #9ca3af;
  background: #fff;
  margin: 0;
  flex-shrink: 0;
}
.shop-photo-add i {
  font-size: 1.1rem;
  line-height: 1;
}
.shop-photo-add span {
  font-size: 0.72rem;
  font-weight: 600;
}
.shop-photo-add:hover {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.shop-toggle-section {
  padding: 0.85rem 0;
}

.shop-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.shop-toggle-label {
  font-weight: 700;
  font-size: 0.9rem;
  color: #1e2a4a;
}

.shop-toggle-hint {
  margin-top: 0.35rem;
  font-size: 0.8rem;
  color: #8a96b0;
  line-height: 1.4;
}

.shop-toggle-section .form-check-input {
  width: 2.5rem;
  height: 1.35rem;
  cursor: pointer;
}

.shop-variants-block {
  border-top: 1px solid #e5e7eb;
  padding-top: 1rem;
  margin-top: 0.25rem;
}

.shop-variants-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.shop-variants-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1e2a4a;
  margin: 0 0 0.2rem;
}

.shop-variants-subtitle {
  font-size: 0.78rem;
  color: #8a96b0;
  margin: 0;
  line-height: 1.4;
  max-width: 16rem;
}

.shop-variants-add {
  flex-shrink: 0;
  border: none;
  background: transparent;
  padding: 0;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--bs-primary);
  cursor: pointer;
}
.shop-variants-add:hover {
  text-decoration: underline;
}

.shop-variant-card {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fafbfc;
  padding: 0.75rem;
  margin-bottom: 0.65rem;
}

.shop-variant-card-top {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.shop-variant-card-top .form-control {
  flex: 1;
  border-radius: 10px;
  font-size: 0.88rem;
}

.shop-variant-delete {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.shop-variant-delete:hover {
  background: #fef2f2;
}

.shop-variant-fields {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.5rem;
}
.shop-variant-fields.shop-variant-fields-no-stock {
  grid-template-columns: 1fr 1fr;
}

.shop-variant-field {
  min-width: 0;
}

.shop-variant-field-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8a96b0;
  margin-bottom: 0.3rem;
}

.shop-variant-field-label-price,
.shop-variant-field-label-sale {
  color: #e11d48;
}

.shop-variant-input-wrap {
  display: flex;
  align-items: center;
  border: 1px solid #e8ecf1;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.shop-variant-input-wrap .form-control {
  border: none;
  box-shadow: none;
  padding-left: 0.25rem;
  font-size: 0.85rem;
  min-width: 0;
}
.shop-variant-input-wrap .form-control:focus {
  box-shadow: none;
}

.shop-variant-currency {
  padding: 0.4rem 0 0.4rem 0.55rem;
  font-size: 0.85rem;
  color: #8a96b0;
  flex-shrink: 0;
}
.shop-variant-currency.is-partial {
  accent-color: var(--bs-warning, #f59e0b);
  opacity: 0.75;
}

.shop-variant-field > .form-control {
  border-radius: 10px;
  border-color: #e8ecf1;
  font-size: 0.85rem;
}

@media (max-width: 1199.98px) {
  .shop-admin-body-with-editor {
    grid-template-columns: 1fr;
  }
  .shop-editor-panel {
    position: fixed;
    inset: 0;
    z-index: 1050;
    max-height: 100vh;
    height: 100%;
    border-radius: 0;
  }
  .shop-editor-panel .shop-editor-body {
    flex: 1 1 auto;
    max-height: none;
  }
}
@media (max-width: 991.98px) {
  .shop-category-row {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .shop-category-add-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767.98px) {
  .shop-admin-page {
    padding: 1rem;
  }
  .shop-admin-header {
    flex-direction: column;
    align-items: stretch;
  }
  .shop-products-admin-title-row {
    gap: 0.8rem;
  }
  .shop-products-admin-title-icon {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    font-size: 1.15rem;
  }
  .shop-products-admin-title-copy {
    gap: 0.25rem;
  }
  .shop-products-admin-header-text .shop-admin-title {
    font-size: 1.95rem;
    margin-bottom: 0;
  }
  .shop-products-admin-header-text .shop-admin-badge {
    font-size: 0.72rem;
  }
  .shop-admin-header-actions {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
  }
  .shop-admin-header-actions .shop-btn-categories,
  .shop-admin-header-actions .shop-btn-add {
    flex: 1;
    justify-content: center;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .shop-products-mobile-toolbar,
  .shop-products-mobile-list {
    display: block;
  }
  .shop-products-mobile-toolbar {
    padding-top: 1rem !important;
  }
  .shop-option-cards {
    grid-template-columns: 1fr;
  }
  .shop-tabs,
  .shop-table-wrap {
    display: none;
  }
  .shop-search-wrap {
    padding-top: 0.85rem !important;
    padding-bottom: 0.9rem !important;
  }
  .shop-search-wrap .input-group {
    border-radius: 10px;
  }
  .shop-search-wrap .form-control {
    font-size: 0.85rem;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
  }
  .shop-products-mobile-list {
    padding-bottom: 0.95rem !important;
  }
  .shop-products-mobile-card {
    width: 100%;
    border: 1px solid #e8ecf1;
    border-radius: 14px;
    background: #fff;
    padding: 0.9rem;
    text-align: left;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
  }
  .shop-products-mobile-card + .shop-products-mobile-card {
    margin-top: 0.85rem;
  }
  .shop-products-mobile-card-top {
    min-width: 0;
  }
  .shop-products-mobile-name {
    font-size: 0.82rem;
    font-weight: 800;
    color: #1e2a4a;
    line-height: 1.25;
  }
  .shop-products-mobile-meta {
    margin-top: 0.15rem;
    font-size: 0.74rem;
    color: #64748b;
    line-height: 1.4;
  }
  .shop-products-mobile-price {
    margin-top: 0.35rem;
    font-size: 0.8rem;
  }
  .shop-products-mobile-card-footer {
    margin-top: 0.85rem;
    padding-top: 0.8rem;
    border-top: 1px solid #eef2f6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
  }
  .shop-products-mobile-card-pills {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    min-width: 0;
  }
  .shop-products-mobile-edit-icon {
    width: 28px;
    height: 28px;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
  }
  .shop-products-categories-inline {
    padding-top: 0.3rem !important;
    padding-bottom: 0.9rem !important;
  }
  .shop-categories-panel-inner {
    border-radius: 14px;
    box-shadow: none;
  }
  .shop-categories-panel-head {
    padding: 1rem 1rem 0.75rem;
  }
  .shop-categories-title {
    font-size: 0.98rem;
  }
  .shop-categories-desc {
    font-size: 0.8rem;
    line-height: 1.4;
  }
  .shop-categories-panel-body {
    padding: 0.35rem 1rem 1rem;
  }
  .shop-category-row {
    grid-template-columns: auto 1fr;
    gap: 0.6rem 0.8rem;
    padding: 0.8rem 0.1rem;
  }
  .shop-category-name-input {
    padding: 0.05rem 0;
    font-size: 0.88rem;
  }
  .shop-category-colors,
  .shop-category-count,
  .shop-category-row .shop-icon-btn {
    grid-column: 2;
  }
  .shop-category-add-row {
    grid-template-columns: auto 1fr;
    gap: 0.65rem;
    padding-top: 0.95rem;
  }
  .shop-category-add-input,
  .shop-category-add-row .shop-category-colors,
  .shop-category-add-row .shop-btn-add-category {
    grid-column: 2;
  }
  .shop-category-add-row .shop-btn-add-category {
    justify-self: start;
  }
  .shop-table-pagination {
    padding: 0.7rem 0.9rem 0.85rem;
  }
  .shop-products-editor-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.52);
    z-index: 1055;
  }
  .shop-products-editor-sheet {
    position: fixed;
    inset: auto 0 0;
    z-index: 1056;
    padding-top: 2rem;
    pointer-events: none;
  }
  .shop-products-editor-sheet .shop-editor-panel {
    position: relative;
    inset: auto;
    top: auto;
    max-height: min(86vh, 840px);
    height: auto;
    width: 100%;
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22) !important;
    pointer-events: auto;
    overflow: hidden;
  }
  .shop-products-editor-sheet .shop-editor-header {
    padding: 1rem 1rem 0.85rem;
  }
  .shop-products-editor-sheet .shop-editor-body {
    padding: 0.95rem 1rem 1rem;
    max-height: calc(86vh - 8rem);
  }
  .shop-products-editor-sheet .shop-editor-footer {
    padding: 0.8rem 1rem calc(env(safe-area-inset-bottom, 0) + 0.85rem);
  }
}
.club-shop-page {
  max-width: 1400px;
}

.shop-products-mobile-toolbar,
.shop-products-mobile-list {
  display: none;
}

.shop-products-mobile-toolbar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.shop-products-mobile-filter-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.2;
}

.shop-products-mobile-filter-btn {
  border: 1px solid #e8ecf1;
  border-radius: 12px;
  background: #ffffff;
  color: #1e2a4a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 0.85rem;
  font-size: 0.88rem;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(30, 42, 74, 0.04);
}
.shop-products-mobile-filter-btn i {
  font-size: 0.9rem;
  color: #8a96b0;
}

.shop-products-categories-inline .shop-categories-panel {
  margin-bottom: 0;
}

.shop-products-editor-backdrop {
  display: none;
}

.shop-products-editor-sheet {
  display: contents;
}

.shop-products-mobile-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
  z-index: 1050;
}
.shop-products-mobile-sheet-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.shop-products-mobile-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1051;
  background: #ffffff;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22);
  transform: translateY(calc(100% + 1rem));
  opacity: 0;
  pointer-events: none;
  transition: transform 0.28s ease, opacity 0.2s ease;
  max-height: min(72vh, 620px);
  display: flex;
  flex-direction: column;
}
.shop-products-mobile-sheet.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.shop-products-mobile-sheet-handle {
  width: 44px;
  height: 5px;
  border-radius: 999px;
  background: #d7dce5;
  margin: 0.6rem auto 0;
  flex-shrink: 0;
}

.shop-products-mobile-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1rem 0.85rem;
  border-bottom: 1px solid #eef2f6;
  flex-shrink: 0;
}

.shop-products-mobile-sheet-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.2;
}

.shop-products-mobile-sheet-close {
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 50%;
  background: #f8fafc;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.shop-products-mobile-filter-list {
  padding: 0.9rem 1rem 1.1rem;
  overflow-y: auto;
}

.shop-products-mobile-filter-option {
  width: 100%;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: #1e2a4a;
  padding: 0.75rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
}
.shop-products-mobile-filter-option + .shop-products-mobile-filter-option {
  margin-top: 0.35rem;
}
.shop-products-mobile-filter-option.selected {
  background: #ecf9f8;
  color: #0f9a94;
}

.shop-products-mobile-filter-count {
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}

.club-shop-header-actions {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.club-shop-mobile-header-btn,
.club-shop-mobile-filter-btn {
  display: none;
}

.club-shop-mobile-header-btn {
  position: relative;
  width: 2.6rem;
  height: 2.6rem;
  border: 1px solid #e8ecf1;
  border-radius: 12px;
  background: #ffffff;
  color: #1e2a4a;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 2px rgba(30, 42, 74, 0.04);
}
.club-shop-mobile-header-btn i {
  font-size: 1rem;
}

.club-shop-mobile-header-count {
  position: absolute;
  top: -0.35rem;
  right: -0.35rem;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.2rem;
  border-radius: 999px;
  background: #0f9a94;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1;
}

.club-shop-mobile-toolbar {
  display: none;
}

.club-shop-mobile-toolbar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.club-shop-mobile-category-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.2;
}

.club-shop-mobile-filter-btn {
  border: 1px solid #e8ecf1;
  border-radius: 12px;
  background: #ffffff;
  color: #1e2a4a;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 0.85rem;
  font-size: 0.88rem;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(30, 42, 74, 0.04);
}
.club-shop-mobile-filter-btn i {
  font-size: 0.9rem;
  color: #8a96b0;
}

.club-shop-section-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e2a4a;
  margin-bottom: 0.65rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.club-shop-section-title i {
  font-size: 0.95rem;
  color: #8a96b0;
}

.club-shop-student-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.club-shop-student-card {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.6rem;
  border: 1.5px solid #e8ecf1;
  border-radius: 10px;
  background: #ffffff;
  min-width: 0;
  text-align: left;
  font-size: 0.85rem;
  color: #1e2a4a;
  box-shadow: 0 1px 2px rgba(30, 42, 74, 0.04);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.club-shop-student-card:hover {
  background: #fafbfc;
  border-color: rgb(212.9783783784, 220.2864864865, 229.4216216216);
}
.club-shop-student-card.selected {
  background: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}
.club-shop-student-card.selected .club-shop-student-icon {
  background: rgba(var(--bs-primary-rgb), 0.15);
  color: var(--bs-primary);
}
.club-shop-student-card.selected .club-shop-student-name {
  color: var(--bs-primary);
}

.club-shop-student-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: #8a96b0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.8rem;
}

.club-shop-student-text {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  flex: 1;
  min-width: 0;
}

.club-shop-student-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: #1e2a4a;
  line-height: 1.2;
}

.club-shop-student-group {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8a96b0;
  line-height: 1.2;
}

.club-shop-student-count {
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  border-radius: 999px;
  min-width: 1.15rem;
  height: 1.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0 0.25rem;
}

.club-shop-student-check {
  color: var(--bs-primary);
  font-size: 0.85rem;
}

.club-shop-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.club-shop-product-card {
  border-radius: 12px !important;
  border: 1px solid #e8ecf1 !important;
  box-shadow: none !important;
  overflow: hidden;
  font-size: 0.88rem;
}
.club-shop-product-card .card-body {
  padding: 0.75rem;
}

.club-shop-product-thumb {
  height: 300px;
  position: relative;
  border-radius: 0;
}
.club-shop-product-thumb .shop-sale-badge {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  background: #fee2e2;
  padding: 0.15rem 0.4rem;
  border-radius: 6px;
  margin-right: 0;
  z-index: 1;
}

.club-shop-product-thumb-clickable {
  width: 100%;
  border: none;
  padding: 0;
  display: block;
  cursor: zoom-in;
  text-align: left;
  transition: filter 0.15s ease;
}
.club-shop-product-thumb-clickable:hover {
  filter: brightness(0.97);
}
.club-shop-product-thumb-clickable:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: -2px;
}

.club-shop-photo-more-tag {
  position: absolute;
  right: 0.45rem;
  bottom: 0.45rem;
  z-index: 2;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.78);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.25;
  pointer-events: none;
}

.book-class-addon-label {
  margin-bottom: 0;
}

.book-class-addon-photo-btn {
  color: var(--bs-primary);
  text-decoration: none;
  vertical-align: middle;
}
.book-class-addon-photo-btn:hover, .book-class-addon-photo-btn:focus {
  color: var(--bs-primary);
  opacity: 0.85;
}
.book-class-addon-photo-btn .bi-images {
  font-size: 1rem;
}

.club-shop-gallery-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1060;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(15, 23, 42, 0.82);
}

.club-shop-gallery {
  width: min(920px, 100%);
  max-height: calc(100vh - 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.club-shop-gallery-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.club-shop-gallery-title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
}

.club-shop-gallery-counter {
  margin: 0.2rem 0 0;
  font-size: 0.88rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.72);
}

.club-shop-gallery-close {
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  transition: background 0.12s ease;
}
.club-shop-gallery-close:hover {
  background: rgba(255, 255, 255, 0.22);
}

.club-shop-gallery-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 0;
}

.club-shop-gallery-main {
  flex: 1;
  min-width: 0;
  max-height: min(62vh, 520px);
  border-radius: 14px;
  overflow: hidden;
  background: #e5e7eb;
}

.club-shop-gallery-main-img {
  display: block;
  width: 100%;
  max-height: min(62vh, 520px);
  object-fit: contain;
  background: #111827;
}

.club-shop-gallery-nav {
  width: 2.5rem;
  height: 2.5rem;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #374151;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  transition: background 0.12s ease, opacity 0.12s ease;
}
.club-shop-gallery-nav:hover:not(:disabled) {
  background: #fff;
  color: var(--bs-primary);
}
.club-shop-gallery-nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.club-shop-gallery-nav .bi {
  font-size: 1.1rem;
  line-height: 1;
}

.club-shop-gallery-thumbs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
  padding-bottom: 0.25rem;
}

.club-shop-gallery-thumb {
  width: 64px;
  height: 64px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.15);
  cursor: pointer;
  opacity: 0.75;
  transition: border-color 0.12s ease, opacity 0.12s ease, transform 0.12s ease;
}
.club-shop-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.club-shop-gallery-thumb:hover {
  opacity: 1;
}
.club-shop-gallery-thumb.active {
  border-color: #fff;
  opacity: 1;
  transform: translateY(-1px);
}

@media (max-width: 767.98px) {
  .club-shop-gallery-backdrop {
    padding: 0.75rem;
  }
  .club-shop-gallery-title {
    font-size: 1.1rem;
  }
  .club-shop-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
  }
  .club-shop-gallery-nav-prev {
    left: 0.35rem;
  }
  .club-shop-gallery-nav-next {
    right: 0.35rem;
  }
  .club-shop-gallery-stage {
    display: block;
  }
}
.club-shop-product-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e2a4a;
  line-height: 1.25;
}

.club-shop-product-desc {
  font-size: 0.78rem;
  color: #8a96b0;
  margin-bottom: 0.35rem;
  line-height: 1.35;
}

.club-shop-price-regular {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1e2a4a;
}

.club-shop-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  overflow: hidden;
  background: #fafbfc;
}
.club-shop-qty .btn {
  border: none;
  border-radius: 0;
  min-width: 1.65rem;
  padding: 0.1rem 0.35rem;
  font-size: 0.85rem;
  color: #1e2a4a;
  background: transparent;
}
.club-shop-qty .btn:hover:not(:disabled) {
  background: #f0f2f5;
}
.club-shop-qty span {
  min-width: 1.65rem;
  text-align: center;
  font-size: 0.85rem;
  font-weight: 600;
  color: #1e2a4a;
}

.club-shop-qty-sm .btn {
  min-width: 1.35rem;
  padding: 0.05rem 0.25rem;
  font-size: 0.78rem;
}
.club-shop-qty-sm span {
  min-width: 1.35rem;
  font-size: 0.78rem;
}

.club-shop-add-btn {
  font-weight: 600;
  font-size: 0.78rem;
  padding: 0.4rem 0.55rem;
  border-radius: 10px;
  border: 1.5px solid var(--bs-primary);
  color: var(--bs-primary);
  background: #ffffff;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.club-shop-add-btn:hover:not(:disabled) {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border-color: var(--bs-primary);
}
.club-shop-add-btn:disabled {
  opacity: 0.55;
}

.club-shop-product-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
}

.club-shop-basket {
  position: sticky;
  top: 1rem;
  overflow: hidden;
}

.club-shop-location-picker {
  border-top: 1px solid #f0f0f0;
  padding-top: 0.6rem;
}

.club-shop-location-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #666;
  display: flex;
  align-items: center;
  gap: 0.3em;
}
.club-shop-location-label i {
  color: var(--bs-primary);
}

.club-shop-location-name {
  font-size: 0.8rem;
  font-weight: 700;
  color: #333;
}

.club-shop-location-address {
  font-size: 0.75rem;
  color: #888;
}

.club-shop-basket-mobile {
  display: none;
}

.club-shop-mobile-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
  z-index: 1050;
}
.club-shop-mobile-sheet-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.club-shop-mobile-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1051;
  background: #ffffff;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22);
  transform: translateY(calc(100% + 1rem));
  opacity: 0;
  pointer-events: none;
  transition: transform 0.28s ease, opacity 0.2s ease;
  max-height: min(78vh, 680px);
  display: flex;
  flex-direction: column;
}
.club-shop-mobile-sheet.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.club-shop-mobile-sheet-handle {
  width: 44px;
  height: 5px;
  border-radius: 999px;
  background: #d7dce5;
  margin: 0.6rem auto 0;
  flex-shrink: 0;
}

.club-shop-mobile-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1rem 0.85rem;
  border-bottom: 1px solid #eef2f6;
  flex-shrink: 0;
}

.club-shop-mobile-sheet-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.2;
}

.club-shop-mobile-sheet-close {
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 50%;
  background: #f8fafc;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.club-shop-mobile-filter-list {
  padding: 0.9rem 1rem 1.1rem;
  overflow-y: auto;
}

.club-shop-mobile-filter-option {
  width: 100%;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: #1e2a4a;
  padding: 0.75rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
}
.club-shop-mobile-filter-option + .club-shop-mobile-filter-option {
  margin-top: 0.35rem;
}
.club-shop-mobile-filter-option.selected {
  background: #ecf9f8;
  color: #0f9a94;
}

.club-shop-mobile-filter-count {
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}

.club-shop-basket-toast {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.6rem 0.85rem;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
}
.club-shop-basket-toast i {
  font-size: 1rem;
  flex-shrink: 0;
}

.club-shop-basket-body {
  padding: 0.85rem;
}

.club-shop-basket-item-count {
  font-size: 0.78rem;
  font-weight: 600;
  color: #8a96b0;
  background: #f3f4f6;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  white-space: nowrap;
}

.club-shop-basket-student-block.has-divider {
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #e8ecf1;
}

.club-shop-basket-student-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.club-shop-basket-student-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.85rem;
}

.club-shop-basket-student-name {
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e2a4a;
  line-height: 1.25;
}

.club-shop-basket-student-group {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #8a96b0;
  line-height: 1.25;
}

.club-shop-basket-student-total {
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e2a4a;
  white-space: nowrap;
}

.club-shop-basket-item {
  display: flex;
  gap: 0.65rem;
  padding: 0.45rem 0;
}
.club-shop-basket-item + .club-shop-basket-item {
  border-top: 1px solid #f3f4f6;
}

.club-shop-basket-item-thumb {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #e5e7eb;
  flex-shrink: 0;
}

.club-shop-basket-item-main {
  flex: 1;
  min-width: 0;
}

.club-shop-basket-item-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}

.club-shop-basket-item-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  flex-shrink: 0;
}

.club-shop-basket-item-price {
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e2a4a;
  white-space: nowrap;
}

.club-shop-basket-remove {
  border: none;
  background: transparent;
  color: #dc2626;
  padding: 0;
  line-height: 1;
  font-size: 0.85rem;
  opacity: 0.85;
}
.club-shop-basket-remove:hover {
  opacity: 1;
}

.club-shop-basket-line-name {
  font-size: 0.82rem;
  font-weight: 600;
  color: #1e2a4a;
  line-height: 1.25;
}

.club-shop-basket-line-variant {
  font-size: 0.75rem;
  color: #8a96b0;
  line-height: 1.25;
  margin-top: 0.1rem;
}

.club-shop-basket-summary {
  border-top: 1px solid #e8ecf1;
  padding-top: 0.65rem;
  margin-top: 0.65rem;
}

.club-shop-basket-summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: #8a96b0;
  margin-bottom: 0.35rem;
}

.club-shop-basket-summary-total {
  display: flex;
  justify-content: space-between;
  font-size: 0.95rem;
  font-weight: 700;
  color: #1e2a4a;
}

.club-shop-empty-icon {
  font-size: 1.5rem;
  color: #d1d5db;
  margin-bottom: 0.5rem;
}

@media (max-width: 1199.98px) {
  .club-shop-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .club-shop-basket {
    position: static;
  }
}
@media (max-width: 767.98px) {
  .shop-admin-page.club-shop-page {
    padding: 1rem 0.9rem 1.5rem;
  }
  .shop-admin-header {
    margin-bottom: 0.9rem;
    gap: 0.75rem;
  }
  .shop-admin-title {
    font-size: 1.9rem;
    gap: 0.55rem;
    margin-bottom: 0.2rem;
  }
  .shop-admin-title .fa {
    font-size: 1rem;
  }
  .shop-admin-subtitle {
    font-size: 0.8rem;
    line-height: 1.4;
  }
  .club-shop-header-actions {
    width: 100%;
    justify-content: space-between;
    align-items: center;
  }
  .shop-admin-badge {
    font-size: 0.7rem;
    padding: 0.22rem 0.62rem;
  }
  .club-shop-mobile-header-btn,
  .club-shop-mobile-filter-btn,
  .club-shop-mobile-toolbar,
  .club-shop-basket-mobile {
    display: inline-flex;
  }
  .club-shop-mobile-toolbar {
    display: block;
  }
  .shop-tabs {
    display: none;
  }
  .shop-search-wrap {
    padding-top: 0.8rem !important;
    padding-bottom: 0.85rem !important;
  }
  .shop-search-wrap .input-group {
    border-radius: 10px;
  }
  .shop-search-wrap .form-control {
    font-size: 0.85rem;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
  }
  .club-shop-students .card-body {
    padding: 0.95rem !important;
  }
  .club-shop-student-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.55rem;
    padding-bottom: 0.15rem;
    scrollbar-width: none;
  }
  .club-shop-student-row::-webkit-scrollbar {
    display: none;
  }
  .club-shop-student-card {
    min-width: 142px;
    max-width: 74vw;
    padding: 0.45rem 0.65rem;
    border-radius: 12px;
  }
  .club-shop-product-grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
    padding: 0 0.9rem 0.9rem !important;
  }
  .club-shop-product-card {
    border-radius: 14px !important;
  }
  .club-shop-product-card .card-body {
    padding: 0.8rem;
  }
  .club-shop-product-thumb {
    height: 150px;
  }
  .club-shop-product-name {
    font-size: 0.82rem;
  }
  .club-shop-product-desc {
    font-size: 0.74rem;
    margin-bottom: 0.3rem;
  }
  .club-shop-price {
    margin-bottom: 0.55rem !important;
  }
  .club-shop-price-regular,
  .shop-sale-price {
    font-size: 0.8rem;
  }
  .club-shop-product-actions {
    gap: 0.45rem;
  }
  .club-shop-qty {
    min-width: 0;
  }
  .club-shop-qty .btn,
  .club-shop-qty span {
    min-width: 1.5rem;
    font-size: 0.8rem;
  }
  .club-shop-add-btn {
    font-size: 0.74rem;
    padding: 0.38rem 0.45rem;
    border-radius: 9px;
  }
  .club-shop-basket-desktop {
    display: none;
  }
  .club-shop-mobile-basket-sheet {
    padding-bottom: calc(env(safe-area-inset-bottom, 0) + 0.4rem);
  }
  .club-shop-basket-mobile {
    display: block;
    overflow-y: auto;
  }
  .club-shop-basket-mobile .club-shop-basket-body {
    padding: 0.9rem 1rem 1rem;
  }
  .club-shop-basket-mobile .club-shop-basket-item {
    padding: 0.6rem 0;
  }
  .club-shop-basket-mobile .shop-btn-add {
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
  }
}
.shop-admin-title-icon {
  font-size: 1.35rem;
  color: #8b5cf6;
  vertical-align: -0.1em;
}

.shop-orders-stat-card {
  background: #ffffff;
  border: 1px solid #e8ecf1;
  border-radius: 16px;
  padding: 1.1rem 1.25rem;
  box-shadow: 0 2px 12px rgba(30, 42, 74, 0.06);
  height: 100%;
}

.shop-orders-mobile-toolbar,
.shop-orders-mobile-list {
  display: none;
}

.shop-orders-stat-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.shop-orders-stat-value {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.1;
  color: #1e2a4a;
}

.shop-orders-stat-meta {
  font-size: 0.84rem;
  font-weight: 500;
  color: #8a96b0;
  margin-top: 0.2rem;
}

.shop-orders-stat-label {
  font-size: 0.85rem;
  font-weight: 700;
  color: #374151;
  margin-top: 0.85rem;
}

.shop-orders-stat-icon {
  font-size: 1.75rem;
  opacity: 0.85;
}

.shop-orders-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.shop-orders-toolbar-controls {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  margin-left: auto;
}

.shop-orders-search.shop-search-wrap {
  flex: 1 1 14rem;
  min-width: 0;
  max-width: 100%;
}

.shop-orders-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  height: 2.35rem;
  padding: 0 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  color: #374151;
  font-size: 0.84rem;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.shop-orders-filter-btn:hover {
  background: #f9fafb;
  color: #374151;
}
.shop-orders-filter-btn .bi-calendar3 {
  color: #6b7280;
  font-size: 0.95rem;
}

.shop-orders-filter-btn-chevron {
  font-size: 0.7rem;
  color: #9ca3af;
}

.shop-orders-date-filter {
  position: relative;
}

.shop-orders-date-filter-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1040;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: default;
}

.shop-orders-date-filter-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 1050;
  width: min(18rem, 100vw - 2rem);
  padding: 0.35rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}

.shop-orders-date-filter-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #374151;
  font-size: 0.86rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
}
.shop-orders-date-filter-option:hover {
  background: #f3f4f6;
}
.shop-orders-date-filter-option.selected {
  color: var(--bs-primary);
  font-weight: 600;
}

.shop-orders-date-filter-check {
  color: var(--bs-primary);
  font-size: 1rem;
}

.shop-orders-date-filter-custom {
  margin-top: 0.25rem;
  padding: 0.55rem 0.65rem 0.65rem;
  border-top: 1px solid #f3f4f6;
}

.shop-orders-date-filter-custom-title {
  font-size: 0.86rem;
  font-weight: 600;
  color: #374151;
  margin-bottom: 0.55rem;
}

.shop-orders-date-filter-fields {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.shop-orders-date-filter-field-label {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9ca3af;
}

.shop-orders-date-input {
  border-radius: 8px;
  border-color: #e5e7eb;
  font-size: 0.82rem;
}

.shop-orders-date-filter-apply {
  font-size: 0.84rem;
  font-weight: 700;
  padding: 0.45rem 0.75rem;
  border-radius: 9px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}
.shop-orders-date-filter-apply:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}

.shop-orders-rows-picker {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  height: 2.35rem;
  padding: 0 0.65rem 0 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.shop-orders-rows-picker-prefix {
  font-size: 0.84rem;
  font-weight: 600;
  color: #374151;
  white-space: nowrap;
}

.shop-orders-rows-select {
  appearance: none;
  border: 0;
  background: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%239ca3af' d='M4.427 6.427l3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 6H4.604a.25.25 0 0 0-.177.427z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
  padding: 0 1rem 0 0.15rem;
  font-size: 0.84rem;
  font-weight: 600;
  color: #374151;
  cursor: pointer;
  min-width: 2rem;
}
.shop-orders-rows-select:focus {
  outline: 0;
  box-shadow: none;
}

.shop-orders-pagination-footer {
  justify-content: flex-end;
}
.shop-orders-pagination-footer .shop-orders-pagination-end {
  margin-left: 0;
  width: 100%;
  justify-content: flex-end;
}

.shop-orders-stat-icon-pending {
  color: #dc2626;
}

.shop-orders-stat-icon-ready {
  color: #d97706;
}

.shop-orders-stat-icon-collected {
  color: var(--bs-primary);
}

.shop-orders-actions-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
}

.shop-orders-refund-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  color: #6b7280;
  flex-shrink: 0;
}
.shop-orders-refund-icon-btn:hover {
  background: #f9fafb;
  color: #374151;
  border-color: #d1d5db;
}
.shop-orders-refund-icon-btn .bi {
  font-size: 0.95rem;
}

.shop-orders-table .shop-orders-badge-cell {
  vertical-align: middle;
}
.shop-orders-table .shop-orders-badge-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.25rem;
}
.shop-orders-table .shop-orders-cell-total {
  font-weight: 700;
  color: #1e2a4a;
  white-space: nowrap;
}
.shop-orders-table .shop-orders-cell-actions {
  white-space: nowrap;
  vertical-align: middle;
}
.shop-orders-table .shop-orders-cell-refund {
  vertical-align: middle;
  white-space: nowrap;
}

.shop-orders-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  max-width: 100%;
}

.shop-orders-order-number {
  font-size: 0.9rem;
  font-weight: 800;
  color: #1e2a4a;
}

.shop-orders-order-meta {
  font-size: 0.86rem;
  font-weight: 600;
  color: #374151;
  margin-top: 0.15rem;
}

.shop-orders-order-student {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a96b0;
  margin-top: 0.2rem;
}

.shop-orders-item-line {
  font-size: 0.86rem;
  font-weight: 500;
  color: #374151;
  line-height: 1.45;
}

.shop-orders-items-foot {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #8a96b0;
  margin-top: 0.35rem;
}

.shop-orders-location-foot {
  color: var(--bs-primary);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
}
.shop-orders-location-foot i {
  font-size: 0.72rem;
  margin-right: 0.2em;
}

.shop-orders-date-main {
  font-size: 0.86rem;
  font-weight: 700;
  color: #1e2a4a;
}

.shop-orders-date-sub {
  font-size: 0.78rem;
  font-weight: 500;
  color: #8a96b0;
  margin-top: 0.1rem;
}

.shop-orders-session-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: #8a96b0;
  line-height: 1.3;
}

.shop-orders-action-btn {
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.4rem 0.85rem;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  box-shadow: 0 2px 6px rgba(var(--bs-primary-rgb), 0.3);
}
.shop-orders-action-btn:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}

.shop-orders-pagination .shop-orders-pagination-range {
  font-weight: 500;
}
.shop-orders-pagination .shop-table-pagination-page {
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border-radius: 8px;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  font-weight: 700;
}

.shop-orders-class-pill {
  background: rgba(59, 130, 246, 0.12);
  color: #2563eb;
}

.shop-orders-group-pill {
  background: #f3e8ff;
  color: #7c3aed;
}

.shop-orders-status {
  font-weight: 600;
}

.shop-orders-status-pending {
  background: #fee2e2;
  color: #b91c1c;
}

.shop-orders-status-ready {
  background: #fef3c7;
  color: #b45309;
}

.shop-orders-status-collected {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.shop-orders-status-cancelled {
  background: #f3f4f6;
  color: #4b5563;
}

.shop-orders-status-refunded {
  background: #fce7f3;
  color: #be185d;
}

.shop-orders-refund-dash {
  color: #9ca3af;
  font-size: 0.9rem;
  font-weight: 500;
}

.shop-orders-refund-amount {
  font-size: 0.86rem;
  font-weight: 700;
  color: #1e2a4a;
  line-height: 1.3;
}

.shop-orders-refund-meta {
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b7280;
  margin-top: 0.1rem;
}

.shop-orders-mobile-filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  height: 2.35rem;
  padding: 0 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  color: #374151;
  font-size: 0.84rem;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.shop-orders-mobile-filter-btn .bi {
  color: #6b7280;
  font-size: 0.95rem;
}

.shop-orders-mobile-filter-sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
  z-index: 1050;
}
.shop-orders-mobile-filter-sheet-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.shop-orders-mobile-filter-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1051;
  background: #ffffff;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22);
  transform: translateY(calc(100% + 1rem));
  opacity: 0;
  pointer-events: none;
  transition: transform 0.28s ease, opacity 0.2s ease;
  max-height: min(72vh, 620px);
  display: flex;
  flex-direction: column;
}
.shop-orders-mobile-filter-sheet.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.shop-orders-mobile-filter-sheet-handle {
  width: 44px;
  height: 5px;
  border-radius: 999px;
  background: #d7dce5;
  margin: 0.6rem auto 0;
  flex-shrink: 0;
}

.shop-orders-mobile-filter-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1rem 0.85rem;
  border-bottom: 1px solid #eef2f6;
  flex-shrink: 0;
}

.shop-orders-mobile-filter-sheet-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
}

.shop-orders-mobile-filter-sheet-close {
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 50%;
  background: #f8fafc;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.shop-orders-mobile-filter-sheet-list {
  padding: 0.9rem 1rem 1.1rem;
  overflow-y: auto;
}

.shop-orders-mobile-filter-sheet-option {
  width: 100%;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: #1e2a4a;
  padding: 0.75rem 0.85rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
}
.shop-orders-mobile-filter-sheet-option + .shop-orders-mobile-filter-sheet-option {
  margin-top: 0.35rem;
}
.shop-orders-mobile-filter-sheet-option.selected {
  background: #ecf9f8;
  color: #0f9a94;
}

.shop-orders-mobile-filter-sheet-count {
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #8a96b0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}

.shop-orders-items-trigger {
  width: 100%;
  border: none;
  padding: 0;
  background: transparent;
  text-align: left;
  color: inherit;
}
.shop-orders-items-trigger:hover .shop-orders-item-line:first-child {
  color: var(--bs-primary);
}

.shop-orders-modal-backdrop,
.shop-orders-mark-ready-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1055;
  border: 0;
  padding: 0;
  background: rgba(15, 23, 42, 0.45);
  cursor: default;
}

.shop-orders-refund-payment-modal {
  z-index: 1060;
}

.shop-orders-items-modal {
  z-index: 1060;
}

.shop-orders-items-dialog {
  max-width: 28rem;
}

.shop-orders-items-content {
  border-radius: 16px;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.shop-orders-items-header {
  padding: 1.2rem 1.2rem 0.8rem;
  align-items: flex-start;
}

.shop-orders-items-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
}

.shop-orders-items-subtitle {
  margin-top: 0.2rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #8a96b0;
}

.shop-orders-items-body {
  padding: 0 1.2rem 0.8rem;
}

.shop-orders-items-line-card {
  padding: 0.9rem 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f9fafb;
}
.shop-orders-items-line-card + .shop-orders-items-line-card {
  margin-top: 0.55rem;
}

.shop-orders-items-line-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.8rem;
}

.shop-orders-items-line-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1e2a4a;
  line-height: 1.3;
}

.shop-orders-items-line-total {
  font-size: 0.95rem;
  font-weight: 800;
  color: #1e2a4a;
  white-space: nowrap;
}

.shop-orders-items-line-variant {
  margin-top: 0.15rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #8a96b0;
}

.shop-orders-items-line-meta {
  margin-top: 0.15rem;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #9ca3af;
}

.shop-orders-items-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 1rem;
  padding: 0.1rem 0;
  font-size: 0.9rem;
  font-weight: 700;
  color: #1e2a4a;
}

.shop-orders-items-footer {
  display: flex;
  justify-content: flex-end;
  padding: 0 1.2rem 1.2rem;
}

.shop-orders-items-btn-close {
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.55rem 1.15rem;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}
.shop-orders-items-btn-close:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}

.shop-orders-refund-payment-dialog {
  max-width: 26rem;
}

.shop-orders-refund-payment-content {
  border-radius: 16px;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
}

.shop-orders-refund-payment-header {
  padding: 1.25rem 1.25rem 0;
}

.shop-orders-refund-payment-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.shop-orders-refund-payment-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background: #ffe4e6;
  color: #e11d48;
  font-size: 1rem;
  flex-shrink: 0;
}

.shop-orders-refund-payment-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
}

.shop-orders-refund-payment-body {
  padding: 0.75rem 1.25rem 1rem;
}

.shop-orders-refund-payment-summary {
  padding: 0.9rem 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f9fafb;
  margin-bottom: 1rem;
}

.shop-orders-refund-payment-customer {
  font-size: 0.8rem;
  font-weight: 500;
  color: #8a96b0;
  line-height: 1.4;
}

.shop-orders-refund-payment-order-number {
  font-size: 0.95rem;
  font-weight: 800;
  color: #1e2a4a;
}

.shop-orders-refund-payment-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.84rem;
  padding-top: 0.35rem;
}
.shop-orders-refund-payment-summary-row + .shop-orders-refund-payment-summary-row {
  margin-top: 0.25rem;
}

.shop-orders-refund-payment-summary-label {
  color: #8a96b0;
  font-weight: 500;
}

.shop-orders-refund-payment-summary-value {
  font-weight: 700;
  color: #1e2a4a;
}

.shop-orders-refund-payment-summary-value-available {
  color: #059669;
}

.shop-orders-refund-payment-amount-label {
  display: block;
  font-size: 0.86rem;
  font-weight: 700;
  color: #1e2a4a;
  margin-bottom: 0.4rem;
}

.shop-orders-refund-payment-amount-input {
  border-radius: 10px;
  border-color: #e5e7eb;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.55rem 0.75rem;
}
.shop-orders-refund-payment-amount-input:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.15);
}

.shop-orders-refund-payment-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0 1.25rem 1.25rem;
}

.shop-orders-refund-payment-btn-cancel {
  font-size: 0.86rem;
  font-weight: 600;
  padding: 0.5rem 0.9rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
}
.shop-orders-refund-payment-btn-cancel:hover {
  background: #f9fafb;
  color: #374151;
}

.shop-orders-refund-payment-btn-issue {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0.5rem 0.95rem;
  border-radius: 10px;
  border: none;
  background: #e11d48;
  color: #fff;
}
.shop-orders-refund-payment-btn-issue .spinner-border {
  width: 0.9rem;
  height: 0.9rem;
  border-color: rgba(255, 255, 255, 0.35);
  border-right-color: #fff;
}
.shop-orders-refund-payment-btn-issue:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.shop-orders-refund-issued-modal {
  z-index: 1060;
}

.shop-orders-refund-issued-dialog {
  max-width: 26rem;
}

.shop-orders-refund-issued-content {
  border-radius: 16px;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.shop-orders-refund-issued-body {
  padding: 1.5rem 1.25rem 1.25rem;
  text-align: center;
}

.shop-orders-refund-issued-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #16a34a;
  font-size: 1.35rem;
  margin-bottom: 0.85rem;
}

.shop-orders-refund-issued-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: #1e2a4a;
  margin-bottom: 1.1rem;
}

.shop-orders-refund-issued-summary {
  text-align: left;
  padding: 0.9rem 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f9fafb;
  margin-bottom: 1.1rem;
}

.shop-orders-refund-issued-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.86rem;
}
.shop-orders-refund-issued-row + .shop-orders-refund-issued-row {
  margin-top: 0.45rem;
}

.shop-orders-refund-issued-label {
  color: #8a96b0;
  font-weight: 500;
}

.shop-orders-refund-issued-value {
  font-weight: 700;
  color: #1e2a4a;
  text-align: right;
}

.shop-orders-refund-issued-value-amount {
  color: #be185d;
}

.shop-orders-refund-issued-footer {
  display: flex;
  justify-content: flex-end;
}

.shop-orders-refund-issued-btn-done {
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.55rem 1.15rem;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}
.shop-orders-refund-issued-btn-done:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}

.shop-orders-mark-ready-modal {
  z-index: 1060;
}

.shop-orders-mark-ready-dialog {
  max-width: 28rem;
}

.shop-orders-mark-ready-content {
  border-radius: 16px;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
  overflow: hidden;
}

.shop-orders-mark-ready-header {
  padding: 1.25rem 1.25rem 0;
}

.shop-orders-mark-ready-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding-right: 0.5rem;
}

.shop-orders-mark-ready-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background: #ffedd5;
  color: #ea580c;
  flex-shrink: 0;
  font-size: 1.1rem;
}

.shop-orders-mark-ready-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.3;
}

.shop-orders-mark-ready-subtitle {
  font-size: 0.84rem;
  font-weight: 500;
  color: #8a96b0;
  margin-top: 0.2rem;
}

.shop-orders-mark-ready-body {
  padding: 0.75rem 1.25rem 1rem;
}

.shop-orders-mark-ready-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid #fde68a;
  border-radius: 12px;
  background: #fffbeb;
}

.shop-orders-mark-ready-notice-icon {
  color: #d97706;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.shop-orders-mark-ready-notice-text {
  font-size: 0.86rem;
  font-weight: 500;
  color: #92400e;
  line-height: 1.45;
}

.shop-orders-mark-ready-footer {
  padding: 0 1.25rem 1.25rem;
}

.shop-orders-mark-ready-footer-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

.shop-orders-mark-ready-btn-cancel {
  font-size: 0.86rem;
  font-weight: 600;
  padding: 0.5rem 0.9rem;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #374151;
}
.shop-orders-mark-ready-btn-cancel:hover {
  background: #f9fafb;
  color: #374151;
}

.shop-orders-mark-ready-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0.5rem 0.9rem;
  border-radius: 10px;
  border: 1.5px solid var(--bs-primary);
  background: #fff;
  color: var(--bs-primary);
}
.shop-orders-mark-ready-btn-outline:hover:not(:disabled) {
  background: rgba(var(--bs-primary-rgb), 0.06);
  color: var(--bs-primary);
}

.shop-orders-mark-ready-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.6rem 1rem;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
  opacity: 1;
}
.shop-orders-mark-ready-btn-primary:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.shop-orders-mark-ready-success {
  padding: 1.5rem 1.25rem 1.25rem;
  text-align: center;
}

.shop-orders-mark-ready-success-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #16a34a;
  font-size: 1.35rem;
  margin-bottom: 0.85rem;
}

.shop-orders-mark-ready-success-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: #1e2a4a;
  margin-bottom: 1.1rem;
}

.shop-orders-mark-ready-success-summary {
  text-align: left;
  padding: 0.9rem 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f9fafb;
  margin-bottom: 1.1rem;
}

.shop-orders-mark-ready-success-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.86rem;
}
.shop-orders-mark-ready-success-row + .shop-orders-mark-ready-success-row {
  margin-top: 0.45rem;
}

.shop-orders-mark-ready-success-label {
  color: #8a96b0;
  font-weight: 500;
}

.shop-orders-mark-ready-success-value {
  font-weight: 700;
  color: #1e2a4a;
  text-align: right;
}

.shop-orders-mark-ready-success-value-muted {
  font-weight: 600;
  color: #6b7280;
}

.shop-orders-mark-ready-success-footer {
  display: flex;
  justify-content: flex-end;
}

.shop-orders-mark-ready-success-btn-done {
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.55rem 1.15rem;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}
.shop-orders-mark-ready-success-btn-done:hover {
  background: hsl(from var(--bs-primary) h s calc(l - 8));
  color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
}

@media (max-width: 767.98px) {
  .shop-orders-admin.shop-admin-page {
    padding: 1rem 0.9rem 1.4rem;
  }
  .shop-orders-stats {
    --bs-gutter-x: 0;
    gap: 0;
    margin-bottom: 1rem !important;
  }
  .shop-orders-stats > [class*=col-] {
    width: 33.3333%;
    padding: 0;
  }
  .shop-orders-stat-card {
    border-radius: 0;
    box-shadow: none;
    padding: 0.9rem 0.45rem 0.8rem;
    text-align: center;
  }
  .shop-orders-stats > [class*=col-]:first-child .shop-orders-stat-card {
    border-radius: 14px 0 0 14px;
  }
  .shop-orders-stats > [class*=col-]:last-child .shop-orders-stat-card {
    border-radius: 0 14px 14px 0;
  }
  .shop-orders-stats > [class*=col-] + [class*=col-] .shop-orders-stat-card {
    border-left: none;
  }
  .shop-orders-stat-card-top {
    display: block;
  }
  .shop-orders-stat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    font-size: 0.8rem;
    margin-bottom: 0.45rem;
    opacity: 1;
  }
  .shop-orders-stat-icon-pending {
    background: #fee2e2;
  }
  .shop-orders-stat-icon-ready {
    background: #fef3c7;
  }
  .shop-orders-stat-icon-collected {
    background: rgba(var(--bs-primary-rgb), 0.12);
  }
  .shop-orders-stat-value {
    font-size: 1.85rem;
  }
  .shop-orders-stat-label {
    margin-top: 0.35rem;
    font-size: 0.62rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #0f172a;
  }
  .shop-orders-stat-meta {
    margin-top: 0.15rem;
    font-size: 0.68rem;
  }
  .shop-orders-mobile-toolbar,
  .shop-orders-mobile-list {
    display: block;
  }
  .shop-orders-mobile-toolbar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
  }
  .shop-orders-mobile-filter-title {
    font-size: 1rem;
    font-weight: 800;
    color: #1e2a4a;
    line-height: 1.2;
  }
  .shop-tabs,
  .shop-table-wrap,
  .shop-orders-pagination-footer {
    display: none;
  }
  .shop-orders-toolbar {
    display: block;
    padding-top: 0.75rem !important;
    padding-bottom: 0.9rem !important;
  }
  .shop-orders-search.shop-search-wrap {
    width: 100%;
    max-width: none;
  }
  .shop-orders-toolbar-controls {
    width: 100%;
    margin-left: 0;
    margin-top: 0.7rem;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .shop-orders-filter-btn,
  .shop-orders-rows-picker {
    height: 2.1rem;
    border-radius: 999px;
    padding-left: 0.7rem;
    padding-right: 0.7rem;
  }
  .shop-orders-filter-btn,
  .shop-orders-rows-picker-prefix,
  .shop-orders-rows-select {
    font-size: 0.8rem;
  }
  .shop-orders-mobile-list {
    padding-bottom: 0.95rem !important;
  }
  .shop-orders-mobile-pagination {
    margin-top: 0.95rem;
    padding-top: 0.85rem;
    border-top: 1px solid #eef2f6;
  }
  .shop-orders-mobile-pagination-range {
    font-size: 0.74rem;
    font-weight: 500;
    color: #64748b;
    margin-bottom: 0.6rem;
  }
  .shop-orders-mobile-pagination-controls {
    display: inline-flex;
  }
  .shop-orders-mobile-pagination-controls .shop-table-pagination-page {
    min-width: 1.8rem;
    height: 1.8rem;
    padding: 0 0.45rem;
    border-radius: 7px;
    background: var(--bs-primary);
    color: var(--bs-primary-foreground, var(--m-on-primary, #fff));
    font-size: 0.76rem;
    font-weight: 700;
  }
  .shop-orders-mobile-pagination-controls .shop-table-pagination-btn {
    width: 1.75rem;
    height: 1.75rem;
  }
  .shop-orders-mobile-card {
    border: 1px solid #e8ecf1;
    border-radius: 14px;
    background: #fff;
    padding: 0.9rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
  }
  .shop-orders-mobile-card + .shop-orders-mobile-card {
    margin-top: 0.85rem;
  }
  .shop-orders-mobile-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
  }
  .shop-orders-mobile-card-side {
    text-align: right;
    flex-shrink: 0;
  }
  .shop-orders-mobile-total {
    font-size: 0.84rem;
    font-weight: 800;
    color: #1e2a4a;
    line-height: 1.2;
  }
  .shop-orders-mobile-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.7rem;
  }
  .shop-orders-mobile-items-btn {
    width: 100%;
    border: none;
    background: transparent;
    padding: 0;
    margin-top: 0.7rem;
    text-align: left;
    color: inherit;
  }
  .shop-orders-mobile-items-btn .shop-orders-item-line {
    color: var(--bs-primary);
    text-decoration: underline;
    text-underline-offset: 0.08em;
    font-size: 0.8rem;
    line-height: 1.35;
  }
  .shop-orders-mobile-items-btn > .shop-orders-items-foot:not(.shop-orders-items-foot-mobile-clean) {
    display: none;
  }
  .shop-orders-items-foot-mobile-clean {
    display: block;
  }
  .shop-orders-mobile-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.85rem;
  }
  .shop-orders-mobile-status-wrap {
    min-width: 0;
  }
  .shop-orders-actions-wrap {
    gap: 0.35rem;
  }
  .shop-orders-action-btn {
    padding: 0.38rem 0.8rem;
    font-size: 0.72rem;
    border-radius: 8px;
  }
  .shop-orders-refund-icon-btn {
    width: 1.8rem;
    height: 1.8rem;
  }
  .shop-orders-order-number {
    font-size: 0.8rem;
  }
  .shop-orders-order-meta {
    font-size: 0.78rem;
  }
  .shop-orders-order-student {
    font-size: 0.62rem;
    margin-top: 0.15rem;
  }
  .shop-orders-date-sub {
    font-size: 0.7rem;
  }
  .shop-orders-pill {
    font-size: 0.68rem;
    padding: 0.24rem 0.52rem;
  }
  .shop-orders-items-foot {
    font-size: 0.62rem;
    margin-top: 0.28rem;
  }
  .shop-orders-mobile-filter-title {
    font-size: 0.92rem;
  }
}
.page-header {
  background: #fff;
  border-bottom: 1px solid var(--bs-border-color);
  padding: 20px 24px 18px;
}

.page-header-row {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.page-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.page-header-icon--pound {
  background: var(--bs-success);
  color: #fff;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1;
}

.page-title {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  margin: 0;
}

.page-subtitle {
  font-size: 0.82rem;
  color: var(--bs-secondary-color);
  margin: 2px 0 0;
}

.header-icon-btn {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-secondary-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
}

.header-icon-btn.is-primary {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.header-icon-btn.has-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.badge-dot {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--bs-primary);
  color: #fff;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stat-range {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: 12px 16px;
}

.stat-range-left {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--bs-secondary-color);
}

.stat-range-icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.stat-range-icon svg {
  color: var(--bs-primary);
}

.successful-payments__stat-range-icon {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 12px;
  font-size: 0.85rem;
}

.stat-range-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.stat-range-value {
  font-size: 0.78rem;
  color: var(--bs-emphasis-color);
  font-weight: 600;
}

.stat-range-fields {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.field-mini {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  margin-bottom: 4px;
}

.input-date {
  padding: 8px 10px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  background: #fff;
  font-family: inherit;
  font-size: 0.8rem;
  color: var(--bs-emphasis-color);
}

.btn-reset {
  padding: 8px 12px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 700;
  font-size: 0.76rem;
  cursor: pointer;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.stat-card {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.stat-icon.t-success {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
}

.stat-icon.t-info {
  background: var(--bs-info-bg-subtle);
  color: var(--bs-info);
}

.stat-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.stat-value {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  line-height: 1.1;
  margin-top: 2px;
}

.stat-sub {
  font-size: 0.74rem;
  color: var(--bs-secondary-color);
  margin-top: 2px;
}

@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.bulk-bar {
  background: #fff;
  border-radius: 14px;
  border: 1.5px solid var(--bs-primary-border-subtle);
  box-shadow: 0 2px 12px rgba(var(--bs-primary-rgb), 0.1);
  padding: 14px 18px;
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.bulk-count {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bs-primary-bg-subtle);
  border-radius: 8px;
  padding: 8px 14px;
}

.bulk-count-text {
  font-weight: 800;
  font-size: 0.82rem;
  color: var(--bs-primary);
  white-space: nowrap;
}

.bulk-action-field {
  flex: 1 1 200px;
  position: relative;
  min-width: 180px;
}

.field-label {
  display: block;
  margin-bottom: 5px;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.bulk-action-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 9px;
  background: #fff;
  font-family: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  cursor: pointer;
}

.bulk-action-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  background: #fff;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  margin-top: 4px;
  overflow: hidden;
}

.bulk-action-item {
  padding: 9px 14px;
  font-size: 0.82rem;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

.bulk-action-item.is-active {
  font-weight: 700;
  background: var(--bs-primary-bg-subtle);
}

.bulk-buttons {
  display: flex;
  gap: 8px;
}

.btn-apply {
  flex: 1;
  padding: 9px 18px;
  border: none;
  border-radius: 9px;
  background: var(--bs-primary);
  color: #fff;
  font-family: inherit;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
}

.btn-apply.is-disabled {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  border: 1.5px dashed var(--bs-border-color);
  cursor: not-allowed;
  opacity: 0.75;
}

.btn-clear {
  padding: 9px 16px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 9px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  cursor: pointer;
}

.table-card {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
  overflow: hidden;
}

.tabs-bar {
  display: flex;
  border-bottom: 1px solid var(--bs-border-color);
  overflow-x: auto;
}

.tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 18px;
  background: transparent;
  border: none;
  border-bottom: 2.5px solid transparent;
  color: var(--bs-secondary-color);
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
}

.tab:hover {
  color: var(--bs-emphasis-color);
}

.tab.is-active {
  border-bottom-color: var(--bs-primary);
  color: var(--bs-primary);
}

.tab-count {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
}

.toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--bs-border-color);
  flex-wrap: wrap;
}

.search-wrap {
  flex: 1;
  min-width: 200px;
  position: relative;
}

.search-icon {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bs-secondary-color);
  pointer-events: none;
}

.search-input {
  width: 100%;
  padding: 9px 12px 9px 36px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  font-family: inherit;
  font-size: 0.85rem;
}

.btn-toolbar {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 14px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
}

.btn-toolbar.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.filter-count-pill {
  background: var(--bs-primary);
  color: #fff;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 800;
}

.rows-control {
  display: flex;
  align-items: center;
  gap: 6px;
}

.rows-control-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
}

.rows-control select {
  padding: 7px 28px 7px 10px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  background: #fff;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}

.filter-panel {
  border-top: 1px solid var(--bs-border-color);
  background: #fff;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.filter-section-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.78rem;
  cursor: pointer;
}

.chip.is-active {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  font-weight: 700;
}

.chip-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--bs-secondary-color);
}

.chip.is-active .chip-dot {
  background: var(--bs-primary);
}

.field-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.pound-input {
  position: relative;
}

.pound-prefix {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bs-secondary-color);
  font-size: 0.8rem;
  pointer-events: none;
}

.pound-input input {
  padding: 8px 10px 8px 22px;
  width: 130px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  font-family: inherit;
  font-size: 0.8rem;
}

.filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.btn-filter-reset {
  padding: 7px 16px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 9px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 700;
  font-size: 0.78rem;
  cursor: pointer;
}

.btn-filter-search {
  padding: 7px 18px;
  border: 1.5px solid var(--bs-primary);
  border-radius: 9px;
  background: var(--bs-primary);
  color: #fff;
  font-family: inherit;
  font-weight: 700;
  font-size: 0.78rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.sp-table-wrap {
  overflow-x: auto;
}

.sp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.sp-table thead tr {
  background: var(--bs-tertiary-bg);
}

.sp-table th {
  padding: 0.8rem 0.85rem;
  font-size: 0.74rem;
  font-weight: 800;
  color: #6d7c92;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid #ecf1f6;
  white-space: nowrap;
  text-align: left;
  vertical-align: middle;
  background: #fbfcfe;
}

.sp-table th.num {
  text-align: right;
}

.sp-table th.col-check, .sp-table td.col-check {
  width: 46px;
  min-width: 46px;
  position: sticky;
  left: 0;
  z-index: 3;
  background: var(--bs-tertiary-bg);
}

.sp-table th.col-customer, .sp-table td.col-customer {
  min-width: 200px;
  position: sticky;
  left: 10px;
  z-index: 3;
  background: var(--bs-tertiary-bg);
  box-shadow: 6px 0 8px -6px rgba(0, 0, 0, 0.1);
}

.sp-table tbody td {
  padding: 0.8rem 0.85rem;
  vertical-align: middle;
  border-bottom: 1px solid #edf2f7;
}

.sp-table tbody tr {
  transition: background 0.12s;
  cursor: pointer;
}

.sp-table tbody tr:hover {
  background: var(--bs-tertiary-bg);
}

.sp-table tbody td.col-check {
  z-index: 1;
  background: #fff;
}

.sp-table tbody td.col-customer {
  z-index: 1;
  background: #fff;
}

.sp-table tbody tr.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.07);
}

.sp-table tbody tr.is-selected td.col-check,
.sp-table tbody tr.is-selected td.col-customer {
  background: linear-gradient(0deg, var(--bs-primary-bg-subtle), var(--bs-primary-bg-subtle)), #fff;
}

.sp-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  cursor: pointer;
}

.sp-check .box {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.1s, border-color 0.1s;
}

.sp-check.is-checked .box {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
}

.sp-check.is-indeterminate .box {
  background: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary);
}

.tick {
  color: #fff;
}

.student-name {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.2;
}

.student-icon {
  color: var(--bs-primary);
}

.parent-name {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 0.15rem;
  color: #7a8ba4;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
}

.card-brand {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 0.15rem;
  color: #7a8ba4;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
}

.payment-title {
  color: var(--bs-secondary);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.25;
}

.card-dots {
  letter-spacing: 2px;
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
  border: 1px solid var(--bs-border-color);
  background: #fff;
}

.pill.k-invoice {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border-color: var(--bs-primary-border-subtle);
}

.pill.k-subscription {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border-color: var(--bs-primary-border-subtle);
}

.pill.k-charge {
  background: var(--bs-info-bg-subtle);
  color: var(--bs-info);
  border-color: var(--bs-info-border-subtle);
}

.pill.s-succeeded {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  border-color: var(--bs-success-border-subtle);
}

.pill.s-partial {
  background: var(--bs-warning-bg-subtle);
  color: var(--bs-warning);
}

.pill.s-refunded {
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  border-color: var(--bs-danger-border-subtle);
}

.num-amount {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 700;
  text-align: right;
}

.num-refund {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--bs-danger);
  text-align: right;
}

.num-empty {
  color: #94a3b8;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: right;
}

.cell-date-primary {
  color: var(--bs-secondary);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.2;
}

.cell-date-relative {
  margin-top: 0.15rem;
  color: #7b8aa5;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.2;
}

.btn-refund-row {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--bs-danger-border-subtle);
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.btn-refund-row.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
}

.pager-summary {
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
}

.pager-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-page {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-emphasis-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.btn-page.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pager-counter {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(30, 42, 74, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1050;
  padding: 16px;
}

.modal-box {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
  overflow: hidden;
}

.modal-box.refund {
  max-width: 460px;
  width: 100%;
}

.modal-head {
  padding: 16px 20px;
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.modal-head .eyebrow {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
}

.modal-head .title {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  margin-top: 2px;
}

.modal-head-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
}

.modal-body {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.modal-foot {
  padding: 12px 20px 16px;
  border-top: 1px solid var(--bs-border-color);
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.summary-box {
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  padding: 12px;
}

.input-amount {
  width: 100%;
  padding: 10px 10px 10px 28px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
}

.btn-modal-secondary {
  padding: 8px 14px;
  background: #fff;
  color: var(--bs-secondary-color);
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.btn-modal-danger {
  padding: 8px 16px;
  background: var(--bs-danger);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bs-emphasis-color);
  color: #fff;
  padding: 10px 22px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  z-index: 2000;
  white-space: nowrap;
  animation: toast-in 0.2s ease-out;
}

@keyframes toast-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(12px);
  }
}
.mobile-payment-card {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 14px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.mobile-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.mobile-user {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: -100px;
}

.mobile-user-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-user-info {
  min-width: 0;
}

.mobile-student {
  font-weight: 700;
  color: var(--bs-emphasis-color);
}

.mobile-parent {
  font-size: 0.82rem;
  color: var(--bs-secondary-color);
  overflow: hidden;
  text-overflow: ellipsis;
}

.mobile-amount {
  font-weight: 800;
  font-size: 1rem;
}

.mobile-description {
  margin-top: 12px;
  padding-left: 40px;
}

.mobile-footer {
  margin-top: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left: 40px;
}

.modal-box.detail {
  max-width: 520px;
  width: 100%;
}

.modal-box.refund {
  max-width: 460px;
  width: 100%;
}

.eyebrow {
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.title {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  margin-top: 2px;
}

.sheet-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1.5px solid var(--bs-border-color);
  background: var(--bs-white);
  color: var(--bs-secondary-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.detail-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.detail-row-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.detail-row-label {
  font-size: 0.7rem;
  font-weight: 800;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.btn-modal-danger-soft {
  padding: 8px 16px;
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  border: 1.5px solid var(--bs-danger-border-subtle);
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.refund-spinner {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 4px solid var(--bs-primary-bg-subtle);
  border-top-color: var(--bs-primary);
  animation: sp-spin 0.9s linear infinite;
}

.refund-success-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn-modal-primary {
  padding: 8px 22px;
  background: var(--bs-primary);
  color: #fff;
  border: 1.5px solid var(--bs-primary);
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.refund-modal-box {
  max-width: 490px;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
}

.refund-modal-box.is-processing,
.refund-modal-box.is-done,
.refund-modal-box.is-error {
  max-width: 560px;
}

.receipt-modal-box {
  max-width: 540px;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.receipt-modal-box.is-done,
.receipt-modal-box.is-error {
  max-width: 500px;
}

.refund-modal-head {
  padding: 1.6rem;
  border-bottom: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0;
}

.receipt-modal-head {
  padding: 1.35rem 1.35rem 1rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid #edf1f6;
}

.receipt-modal-head-main {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  min-width: 0;
}

.receipt-modal-head-icon {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 10px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.receipt-modal-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.2;
}

.receipt-modal-subtitle {
  margin-top: 0.3rem;
  color: #94a3b8;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.2;
}

.receipt-modal-close {
  width: 2rem;
  height: 2rem;
  border: 1px solid #e6edf5;
  border-radius: 10px;
  background: #fff;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.receipt-modal-close:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.receipt-modal-body {
  padding: 1rem 1.35rem 0;
}

.receipt-modal-copy {
  margin: 0 0 0.9rem;
  color: #6b7280;
  font-size: 0.95rem;
  line-height: 1.45;
}

.receipt-modal-list {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  max-height: 380px;
  overflow-y: auto;
}

.receipt-modal-list-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 1rem;
}

.receipt-modal-list-row + .receipt-modal-list-row {
  border-top: 1px solid #edf1f6;
}

.receipt-modal-list-copy {
  min-width: 0;
}

.receipt-modal-list-name {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
}

.receipt-modal-list-email {
  margin-top: 0.18rem;
  color: #94a3b8;
  font-size: 0.8rem;
  line-height: 1.2;
  word-break: break-word;
}

.receipt-modal-list-amount {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.receipt-modal-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0.1rem 0;
  color: #94a3b8;
  font-size: 0.95rem;
}

.receipt-modal-total strong {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
}

.receipt-modal-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1rem 1.35rem 1.35rem;
}

.receipt-modal-actions.is-single {
  justify-content: flex-end;
  margin-top: 1.5rem;
}

.receipt-modal-btn {
  min-height: 42px;
  padding: 0 1.1rem;
  min-width: 110px;
  border-radius: 12px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.receipt-modal-btn-secondary {
  border: 1px solid #dbe2ea;
  background: #fff;
  color: #6b7280;
}

.receipt-modal-btn-primary {
  border: none;
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.22);
}

.receipt-modal-btn-primary.is-loading {
  opacity: 0.9;
}

.receipt-modal-btn-done {
  border: none;
  background: #7367d7;
  color: #fff;
  box-shadow: 0 12px 24px rgba(115, 103, 215, 0.22);
}

.receipt-modal-state {
  padding: 1.85rem;
  background: #fff;
  text-align: center;
}

.receipt-modal-state-title {
  margin: 0 0 0.35rem;
  color: var(--bs-secondary);
  font-size: 1.05rem;
  font-weight: 800;
  text-align: center;
}

.receipt-modal-state-copy {
  max-width: 360px;
  margin: 0 auto;
  color: #94a3b8;
  font-size: 0.92rem;
  line-height: 1.6;
  text-align: center;
}

.receipt-result-card {
  margin: 1.1rem auto 0;
  max-width: 360px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 0.95rem 1rem;
  text-align: left;
}

.receipt-result-label {
  color: #94a3b8;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.6rem;
}

.receipt-result-email-row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--bs-secondary);
  font-size: 0.92rem;
  line-height: 1.4;
}

.receipt-result-email-row + .receipt-result-email-row {
  margin-top: 0.35rem;
}

.receipt-result-email-row i {
  color: var(--bs-primary);
  font-size: 0.85rem;
}

.receipt-result-more {
  margin-top: 0.55rem;
  color: var(--bs-primary);
  font-size: 0.88rem;
  font-weight: 800;
}

.refund-modal-head-main {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  min-width: 0;
}

.refund-modal-head-icon {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 12px;
  background: rgba(239, 68, 68, 0.14);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.refund-modal-title {
  margin: 0 0 0.35rem;
  color: var(--bs-secondary);
  font-size: 1.05rem;
  font-weight: 800;
}

.refund-modal-close {
  width: 2rem;
  height: 2rem;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.refund-modal-body {
  padding: 0 1.6rem;
}

.refund-modal-summary {
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}

.refund-modal-summary-email {
  padding: 0.9rem 1rem 0;
  color: #94a3b8;
  font-size: 0.82rem;
  line-height: 1.2;
}

.refund-modal-summary-title {
  padding: 0.2rem 1rem 0;
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}

.refund-modal-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem 0;
  color: #94a3b8;
  font-size: 0.95rem;
}

.refund-modal-summary-row strong {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0;
}

.refund-modal-summary-row strong.is-positive {
  color: #16a34a;
}

.refund-modal-summary-row:last-child {
  padding-bottom: 0.9rem;
}

.refund-modal-field {
  margin-top: 1rem;
}

.refund-modal-label {
  display: block;
  margin-bottom: 0.75rem;
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 800;
}

.refund-modal-input-wrap {
  position: relative;
}

.refund-modal-input-wrap.is-error .refund-modal-input {
  border-color: #ff8c96;
  box-shadow: 0 0 0 4px rgba(255, 140, 150, 0.16);
  padding-right: 48px;
}

.refund-modal-input {
  width: 100%;
  min-height: 44px;
  border: 1px solid #dbe2ea;
  border-radius: 12px;
  background: #fff;
  padding: 0 16px;
  color: var(--bs-secondary);
  font-size: 1rem;
  font-weight: 700;
  font-family: inherit;
}

.refund-modal-input:focus {
  outline: none;
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.12);
}

.refund-modal-input-wrap.is-error .refund-modal-input:focus {
  border-color: #ff6f7c;
  box-shadow: 0 0 0 4px rgba(255, 140, 150, 0.16);
}

.refund-modal-input-icon {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.refund-modal-error-text {
  margin-top: 8px;
  color: #ef4444;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.5;
}

.refund-modal-actions {
  padding: 0;
  border-top: 0;
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 0 1.6rem 1.6rem;
}

.refund-modal-actions.is-single {
  justify-content: flex-end;
  margin-top: 1.5rem;
}

.refund-modal-btn {
  min-height: 44px;
  padding: 0 1.2rem;
  min-width: 110px;
  border-radius: 12px;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.refund-modal-btn-secondary {
  border: 1px solid #dbe2ea;
  background: #fff;
  color: #6b7280;
}

.refund-modal-btn-danger {
  border: none;
  background: #ef4444;
  color: #fff;
  box-shadow: 0 12px 24px rgba(239, 68, 68, 0.22);
}

.refund-modal-btn.is-disabled {
  opacity: 0.55;
  box-shadow: none;
  cursor: not-allowed;
}

.refund-modal-btn-primary {
  border: none;
  background: var(--bs-secondary);
  color: #fff;
  box-shadow: 0 12px 24px rgba(30, 42, 74, 0.18);
}

.refund-modal-state {
  padding: 1.8rem;
  background: #fff;
}

.refund-processing-ring {
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0.95rem;
}

.refund-spinner-lg {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  border-width: 2px;
  border-color: rgba(var(--bs-primary-rgb), 0.18);
  border-top-color: var(--bs-primary);
  border-right-color: var(--bs-primary);
}

.successful-payments__loading-icon {
  color: var(--bs-primary);
}

.refund-modal-state-title {
  margin: 0 0 0.35rem;
  color: var(--bs-secondary);
  font-size: 1.05rem;
  font-weight: 800;
  text-align: center;
}

.refund-modal-state-copy {
  max-width: 360px;
  margin: 0 auto;
  color: #6b7280;
  font-size: 0.92rem;
  line-height: 1.6;
  text-align: center;
}

.refund-result-icon {
  width: 2.7rem;
  height: 2.7rem;
  margin: 0 auto 0.95rem;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.refund-result-icon.is-success {
  background: rgba(22, 163, 74, 0.14);
  color: #16a34a;
}

.refund-result-icon.is-error {
  background: rgba(239, 68, 68, 0.14);
  color: #ef4444;
}

.refund-result-card {
  margin: 1.1rem auto 0;
  max-width: 400px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 0.9rem 1rem;
  text-align: left;
}

.refund-result-card.is-error {
  max-width: 360px;
}

.refund-result-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  color: #94a3b8;
  font-size: 0.82rem;
  line-height: 1.2;
}

.refund-result-row + .refund-result-row {
  margin-top: 0.45rem;
}

.refund-result-row strong {
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 700;
  text-align: right;
  line-height: 1.2;
}

.refund-result-row strong.is-danger {
  color: #ef2f2f;
  font-weight: 800;
}

.refund-result-card-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 575.98px) {
  .refund-modal-box,
  .refund-modal-box.is-processing,
  .refund-modal-box.is-done,
  .refund-modal-box.is-error {
    max-width: 100%;
  }
  .refund-modal-head,
  .refund-modal-body,
  .refund-modal-actions,
  .refund-modal-state {
    padding-left: 0.95rem;
    padding-right: 0.95rem;
  }
  .refund-modal-actions {
    flex-direction: column-reverse;
    align-items: stretch;
    position: sticky;
    bottom: 0;
    padding-top: 0.75rem;
    margin-top: 0.8rem;
    background: #fff;
  }
  .refund-modal-btn {
    width: 100%;
    min-height: 40px;
    font-size: 0.82rem;
  }
  .refund-modal-head {
    position: relative;
    gap: 0.85rem;
    margin-bottom: 0.9rem;
  }
  .refund-modal-head-main {
    width: 100%;
    padding-right: 2rem;
  }
  .refund-modal-close {
    position: absolute;
    top: 0;
    right: 0;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
  }
  .refund-modal-head-icon,
  .refund-result-icon,
  .refund-processing-ring {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
  }
  .refund-modal-title,
  .refund-modal-state-title {
    font-size: 0.96rem;
    line-height: 1.25;
  }
  .refund-modal-state-copy {
    font-size: 0.8rem;
    line-height: 1.5;
  }
  .refund-result-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .refund-result-row strong {
    text-align: left;
  }
  .receipt-modal-box,
  .receipt-modal-box.is-done,
  .receipt-modal-box.is-error {
    max-width: 100%;
  }
  .receipt-modal-head,
  .receipt-modal-body,
  .receipt-modal-actions,
  .receipt-modal-state {
    padding-left: 0.95rem;
    padding-right: 0.95rem;
  }
  .receipt-modal-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .receipt-modal-btn {
    width: 100%;
  }
  .receipt-modal-list-row,
  .receipt-modal-total {
    align-items: flex-start;
    flex-direction: column;
  }
  .receipt-modal-list {
    max-height: 300px;
  }
}
@keyframes sp-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ══ Corrected Mobile UI Styles ════════════════════════ */
.mobile-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid var(--bs-border-color);
}

.mobile-toolbar .search-wrap {
  flex: 1;
  min-width: 0;
}

.btn-select-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 12px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
  white-space: nowrap;
}

.btn-select-all.is-active {
  background: var(--bs-secondary);
  color: #fff;
  border-color: var(--bs-secondary);
}

.count-pill {
  background: rgba(0, 0, 0, 0.05);
  padding: 2px 6px;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 800;
}

.btn-select-all.is-active .count-pill {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.mob-list {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mob-card {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--radius-card);
  padding: 14px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
  cursor: pointer;
  transition: background 0.1s ease, border-color 0.1s ease;
}

.mob-card.is-selected {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.04);
}

.mob-card-body {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.mob-check-col {
  padding-top: 2px;
  display: flex;
  align-items: center;
}

.mob-details-col {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mob-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.mob-card-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 0;
}

.mob-card-desc {
  font-size: 0.84rem;
  color: var(--bs-secondary);
  font-weight: 600;
  line-height: 1.35;
  padding-bottom: 10px;
  border-bottom: 1px dashed #e2e8f0;
}

.mob-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.mob-card-amount {
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--bs-secondary);
}

.mob-card-meta {
  font-size: 0.76rem;
  color: #8aa0c2;
  font-weight: 600;
}

.successful-payments-mobile-head-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.successful-payments-mobile-head-btn {
  width: 2.45rem;
  height: 2.45rem;
  border-radius: 12px;
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.05);
}

.successful-payments-mobile-select-row {
  display: none;
}

.successful-payments-mobile-select-btn {
  margin: 0 12px 12px auto;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.52rem 0.8rem;
  border-radius: 10px;
  border: 1px solid #dbe4ef;
  background: #fff;
  color: #8aa0c2;
  font-size: 0.78rem;
  font-weight: 600;
}

.successful-payments-mobile-select-btn.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  color: var(--bs-primary);
}

.successful-payments-mobile-pagination {
  display: none;
}

.successful-payments-mobile-sheet-backdrop {
  display: none;
}

.successful-payments-mobile-sheet {
  display: none;
}

.successful-payments-mobile-sheet-handle {
  width: 42px;
  height: 5px;
  border-radius: 999px;
  background: #dbe3ef;
  margin: 0.55rem auto 0.35rem;
  flex-shrink: 0;
}

.successful-payments-mobile-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0 1rem 0.9rem;
  border-bottom: 1px solid #edf2f7;
}

.successful-payments-mobile-sheet-head-main {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.successful-payments-mobile-sheet-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.08);
}

.successful-payments-mobile-sheet-title {
  margin: 0;
  color: var(--bs-secondary);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
}

.successful-payments-mobile-sheet-close {
  width: 2rem;
  height: 2rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.successful-payments-mobile-sheet-body {
  padding: 0.95rem 1rem calc(env(safe-area-inset-bottom, 0) + 1rem);
  max-height: calc(80vh - 72px);
  overflow-y: auto;
}

.successful-payments-mobile-sheet-body--stats {
  padding-top: 0.9rem;
}

.successful-payments-mobile-stat-range {
  background: #f8fafc;
  border: 1px solid #edf2f7;
  border-radius: 14px;
  padding: 0.95rem;
}

.successful-payments-mobile-date-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 0.9rem;
}

.successful-payments-mobile-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 0.95rem;
}

.successful-payments-mobile-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.successful-payments-mobile-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.48rem 0.75rem;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #8aa0c2;
  font-size: 0.78rem;
  font-weight: 700;
  justify-content: space-between;
  min-width: 0;
}

.successful-payments-mobile-type-pill.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.successful-payments-mobile-type-pill .tab-count {
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  font-size: 0.7rem;
}

.successful-payments-mobile-filter-panel {
  padding: 0;
  border: 0;
  background: transparent;
}

@media (max-width: 767.98px) {
  .page-header {
    padding: 1rem 1rem 0.9rem;
  }
  .page-header-row {
    align-items: flex-start;
    gap: 0.8rem;
    flex-wrap: nowrap;
  }
  .page-header-row .stat-icon.t-success {
    width: 2rem;
    height: 2rem;
    border-radius: 12px;
    flex-shrink: 0;
  }
  .page-header-row .outstanding-invoices-page__title {
    font-size: 1.05rem;
    line-height: 1.2;
  }
  .page-header-row .outstanding-invoices-page__subtitle {
    margin-top: 0.2rem;
    font-size: 0.76rem;
    line-height: 1.35;
    max-width: 13rem;
  }
  .toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.9rem 0.85rem 0.8rem;
  }
  .search-wrap {
    min-width: 0;
  }
  .search-input {
    height: 2.45rem;
    font-size: 0.82rem;
  }
  .rows-control {
    margin-left: 0;
    gap: 0.45rem;
  }
  .rows-control-label {
    font-size: 0.8rem;
  }
  .rows-control select {
    height: 2.45rem;
    min-width: 4.6rem;
    padding: 0 0.7rem !important;
    font-size: 0.82rem;
  }
  .successful-payments-mobile-select-row,
  .successful-payments-mobile-pagination,
  .successful-payments-mobile-sheet-backdrop,
  .successful-payments-mobile-sheet {
    display: block;
  }
  .successful-payments-mobile-pagination {
    padding: 0.15rem 0.85rem 0.95rem;
  }
  .successful-payments-mobile-pagination-summary {
    font-size: 0.76rem;
    color: #8aa0c2;
    font-weight: 500;
    margin-bottom: 0.7rem;
  }
  .successful-payments-mobile-pagination-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
  }
  .successful-payments-mobile-sheet-backdrop {
    position: fixed;
    inset: 0;
    border: 0;
    z-index: 1080;
    background: rgba(15, 23, 42, 0.45);
  }
  .successful-payments-mobile-sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1081;
    background: #fff;
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22);
  }
  .successful-payments-mobile-stats-grid .stat-card {
    min-height: 0;
    padding: 0.75rem 0.7rem;
    border-radius: 14px;
  }
  .successful-payments-mobile-stats-grid .stat-value {
    font-size: 0.98rem;
    line-height: 1.15;
  }
  .successful-payments-mobile-stats-grid .stat-sub {
    font-size: 0.7rem;
  }
  .successful-payments-mobile-stats-grid .stat-label {
    font-size: 0.58rem;
    letter-spacing: 0.06em;
  }
  .successful-payments-mobile-stats-grid .stat-icon,
  .successful-payments-mobile-stats-grid .outstanding-invoices-page__stat-icon {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    border-radius: 11px;
    font-size: 0.76rem;
  }
  .successful-payments-mobile-sheet-title {
    font-size: 0.92rem;
  }
  .successful-payments-mobile-sheet-body {
    padding: 0.8rem 0.85rem calc(env(safe-area-inset-bottom, 0) + 0.9rem);
  }
  .successful-payments-mobile-stat-range {
    padding: 0.8rem;
  }
  .successful-payments-mobile-stat-range .stat-range-label {
    font-size: 0.62rem;
  }
  .successful-payments-mobile-stat-range .stat-range-value {
    font-size: 0.72rem;
  }
  .successful-payments-mobile-stat-range .field-mini {
    font-size: 0.64rem;
    margin-bottom: 0.2rem;
  }
  .successful-payments-mobile-stat-range .input-date {
    width: 100%;
    min-width: 0;
    height: 2.45rem;
    padding: 0.5rem 0.68rem;
    font-size: 0.78rem;
  }
  .mob-list {
    padding: 0 0.85rem 0.35rem;
    gap: 0.85rem;
  }
  .mob-card {
    padding: 0.9rem 0.85rem;
    border-radius: 14px;
  }
  .mob-card-body {
    gap: 0.7rem;
  }
  .mob-check-col .members-table-row-check {
    width: 16px;
    height: 16px;
    min-width: 16px;
    border-radius: 5px;
  }
  .mob-check-col .members-table-row-check i {
    font-size: 0.56rem;
  }
  .mob-details-col .student-name {
    font-size: 0.78rem;
  }
  .mob-details-col .parent-name {
    margin-top: 0.15rem;
    font-size: 0.74rem;
  }
  .mob-card-amount {
    font-size: 0.98rem;
  }
  .mob-card-pills .pill {
    padding: 0.22rem 0.5rem;
    font-size: 0.64rem;
  }
  .mob-card-desc {
    font-size: 0.8rem;
  }
  .mob-card-footer {
    gap: 0.75rem;
  }
  .mob-card-meta {
    font-size: 0.72rem;
  }
  .mob-card-footer .btn-refund-row {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
  }
  .successful-payments-mobile-filter-panel .filter-section {
    margin-bottom: 0.95rem;
  }
  .successful-payments-mobile-filter-panel .filter-section-label {
    font-size: 0.62rem;
    margin-bottom: 0.5rem;
  }
  .successful-payments-mobile-filter-panel .field-mini {
    font-size: 0.64rem;
    margin-bottom: 0.2rem;
  }
  .successful-payments-mobile-filter-panel .input-date,
  .successful-payments-mobile-filter-panel .pound-input input {
    width: 100%;
    min-width: 0;
    height: 2.45rem;
    font-size: 0.78rem;
  }
  .successful-payments-mobile-filter-panel .status-pills-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
  }
  .successful-payments-mobile-filter-panel .status-pill {
    width: 100%;
    min-width: 0;
    justify-content: center;
    padding: 0.5rem 0.35rem;
    font-size: 0.72rem;
    line-height: 1.2;
    text-align: center;
  }
  .successful-payments-mobile-filter-panel .status-pill .dot {
    width: 7px;
    height: 7px;
    min-width: 7px;
  }
  .successful-payments-mobile-filter-panel .btn-filter-reset,
  .successful-payments-mobile-filter-panel .btn-filter-search {
    height: 2.65rem;
    font-size: 0.79rem;
  }
  .shop-products-mobile-toolbar,
  .shop-products-mobile-list {
    display: block !important;
  }
  .shop-products-mobile-list {
    padding-bottom: 0.95rem !important;
  }
  .shop-tabs,
  .shop-table-wrap,
  .shop-table-pagination {
    display: none !important;
  }
  .shop-admin-header-actions .shop-btn-categories,
  .shop-admin-header-actions .shop-btn-add {
    min-height: 3.1rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.78rem;
    border-radius: 12px;
    gap: 0.35rem;
  }
  .shop-admin-header-actions .shop-btn-categories i,
  .shop-admin-header-actions .shop-btn-add i {
    font-size: 0.9rem;
  }
  .shop-products-mobile-card {
    display: block;
  }
  .shop-products-editor-backdrop {
    display: block !important;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.52);
    z-index: 1055;
  }
  .shop-products-editor-sheet {
    display: block !important;
    position: fixed;
    inset: auto 0 0;
    z-index: 1056;
    padding-top: 1rem;
    pointer-events: none;
  }
  .shop-products-editor-sheet .shop-editor-panel {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    width: 100%;
    height: auto;
    max-height: 89vh;
    border-radius: 22px 22px 0 0 !important;
    box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22) !important;
    pointer-events: auto;
    overflow: hidden;
  }
  .shop-products-editor-sheet .shop-editor-header {
    padding: 1rem 1rem 0.85rem;
  }
  .shop-products-editor-sheet .shop-editor-body {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    max-height: calc(89vh - 8.75rem);
    padding: 0.95rem 1rem 1rem;
    overscroll-behavior: contain;
  }
  .shop-products-editor-sheet .shop-editor-footer {
    flex-shrink: 0;
    padding: 0.8rem 1rem calc(env(safe-area-inset-bottom, 0) + 0.9rem);
  }
}
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  font-family: "Nunito", system-ui, sans-serif;
  background: var(--bs-body-bg);
  -webkit-font-smoothing: antialiased;
  color: var(--bs-body-color);
  margin: 0;
}

/* ───── Handoff document chrome (NOT shipped in Blazor) ───── */
.doc-wrapper {
  max-width: 1280px;
  margin: 0 auto;
}

.doc-nav {
  background: var(--bs-emphasis-color);
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  position: sticky;
  top: 0;
  z-index: 1000;
}

.doc-nav-label {
  font-size: 0.66rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-right: 4px;
}

.doc-nav a {
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.doc-nav a:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

.doc-section {
  padding: 0px 0px 12px;
}

.doc-title {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bs-secondary-color);
  border-bottom: 1px solid var(--bs-border-color);
  padding-bottom: 10px;
  margin-bottom: 6px;
}

.doc-note {
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
  margin: 8px 0 0;
  line-height: 1.55;
}

.doc-note code {
  background: var(--bs-tertiary-bg);
  color: var(--bs-emphasis-color);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 0.82em;
}

pre.doc-code {
  background: #0f172a;
  color: #e2e8f0;
  padding: 14px 16px;
  border-radius: 10px;
  font-size: 0.76rem;
  line-height: 1.55;
  overflow-x: auto;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  margin: 8px 0 0;
}

.doc-stage {
  background: var(--bs-tertiary-bg);
  border-radius: 14px;
  padding: 22px;
}

/* ═══════════════════════════════════════════════════════════
   PAGE STYLES — these are the actual production classes
   Copy these into wwwroot/css/new-joiners.css or scope into
   the .razor component <style> block.
═══════════════════════════════════════════════════════════ */
/* ── Page shell ────────────────────────────────────────── */
.nj-page {
  background: var(--bs-body-bg);
  min-height: 100vh;
  color: var(--bs-body-color);
  font-family: "Nunito", system-ui, sans-serif;
}

.nj-shell {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 10px 32px;
  display: flex;
  flex-direction: column;
}

@media (max-width: 768px) {
  .nj-shell {
    padding: 14px 12px 28px;
    gap: 12px;
  }
  .nj-header-icon {
    width: 55px !important;
  }
}
/* ── Page header ───────────────────────────────────────── */
.nj-header {
  background: #fff;
  border-bottom: 1px solid var(--bs-border-color);
  padding: 20px 24px 18px;
}

.nj-header-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.nj-header-title-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.nj-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}

.nj-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  margin: 0;
}

.nj-subtitle {
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
  margin: 2px 0 0;
}

@media (max-width: 768px) {
  .nj-header {
    padding: 16px 16px 14px;
  }
  .nj-title {
    font-size: 1.1rem;
  }
}
/* ── Stat-card row (3 columns desktop / 1 column mobile) ─ */
.nj-stats {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 14px;
}

@media (max-width: 768px) {
  .nj-stats {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.nj-card {
  background: #fff;
  border-radius: 14px;
  box-shadow: var(--m-shadow-card-soft);
  padding: 14px 16px;
}

.nj-card-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.nj-card-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nj-card-icon-sm {
  width: 32px;
  height: 32px;
  border-radius: 9px;
}

.nj-card-icon.t-primary {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.nj-card-icon.t-warning {
  background: var(--bs-warning-bg-subtle);
  color: var(--m-warning-emphasis);
}

.nj-card-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}

.nj-card-value {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  line-height: 1.2;
}

.nj-card-sub {
  font-size: 0.7rem;
  color: var(--bs-secondary-color);
  margin-top: 1px;
}

.nj-date-input {
  padding: 5px 8px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 8px;
  font-size: 0.78rem;
  font-family: inherit;
  color: var(--bs-emphasis-color);
  background: #fff;
  outline: none;
  min-width: 0;
  flex: 1 1 110px;
}

.nj-date-sep {
  font-size: 0.7rem;
  color: var(--bs-secondary-color);
  font-weight: 700;
}

/* ── Top-classes bar chart (in stat card) ──────────────── */
.nj-top-classes {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.nj-top-row {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.nj-top-rank-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nj-top-rank {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  width: 18px;
  flex-shrink: 0;
}

.nj-top-name {
  flex: 1;
  min-width: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nj-top-count {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
}

.nj-top-bar-track {
  height: 6px;
  background: var(--bs-tertiary-bg);
  border-radius: 999px;
  overflow: hidden;
}

.nj-top-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.3s ease;
}

.nj-top-bar-fill.b-1 {
  background: var(--bs-primary);
}

.nj-top-bar-fill.b-2 {
  background: var(--bs-purple);
}

.nj-top-bar-fill.b-3 {
  background: var(--m-info-dark);
}

/* ── Toolbar ───────────────────────────────────────────── */
.nj-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.nj-search {
  flex: 1 1 240px;
  min-width: 200px;
  position: relative;
}

.nj-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bs-secondary-color);
  display: inline-flex;
  pointer-events: none;
}

.nj-search input {
  width: 100%;
  padding: 9px 12px 9px 36px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  font-size: 0.85rem;
  font-family: inherit;
  color: var(--bs-emphasis-color);
  background: #fff;
  outline: none;
}

.nj-search input:focus {
  border-color: var(--bs-primary);
}

.nj-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 14px;
  border-radius: 10px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-secondary-color);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.nj-filter-btn.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.nj-filter-count {
  background: var(--bs-primary);
  color: var(--m-on-primary);
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 800;
  padding: 1px 7px;
  min-width: 18px;
  text-align: center;
}

.nj-rpp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px 5px 12px;
  border-radius: 10px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
}

.nj-rpp label {
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
  font-weight: 600;
  margin: 0;
}

.nj-rpp select {
  padding: 4px 6px;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
  background: transparent;
  cursor: pointer;
}

/* ── Filter panel ──────────────────────────────────────── */
.nj-filters {
  background: #fff;
  border-radius: 18px;
  box-shadow: var(--m-shadow-card);
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  animation: nj-fade-up 0.2s ease;
}

@media (max-width: 768px) {
  .nj-filters {
    padding: 16px 14px;
  }
}
.nj-filters-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.nj-filter-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: block;
  margin-bottom: 8px;
}

.nj-mode-toggle {
  display: inline-flex;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  padding: 2px;
  background: #fff;
}

.nj-mode-toggle button {
  padding: 5px 12px;
  border-radius: 8px;
  border: none;
  background: transparent;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.78rem;
  cursor: pointer;
}

.nj-mode-toggle button.is-active {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  font-weight: 700;
}

.nj-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

@media (max-width: 768px) {
  .nj-grid-2 {
    grid-template-columns: 1fr;
  }
}
.nj-grid-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: start;
}

@media (max-width: 768px) {
  .nj-grid-cols {
    grid-template-columns: 1fr;
  }
}
.nj-input-label-sm {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  margin-bottom: 4px;
}

.nj-input {
  width: 100%;
  padding: 9px 12px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  font-size: 0.85rem;
  font-family: inherit;
  color: var(--bs-emphasis-color);
  background: #fff;
  outline: none;
}

.nj-input:focus {
  border-color: var(--bs-primary);
}

/* Class & group accordion */
.nj-accordion {
  border: 1.5px solid var(--bs-border-color);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.nj-acc-row {
  border-top: 1px solid var(--bs-border-color);
}

.nj-acc-row:first-child {
  border-top: none;
}

.nj-acc-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  cursor: pointer;
  background: #fff;
}

.nj-acc-head.is-expanded {
  background: var(--bs-tertiary-bg);
}

.nj-acc-title {
  flex: 1;
  font-weight: 700;
  font-size: 0.86rem;
  color: var(--bs-emphasis-color);
}

.nj-acc-count {
  font-size: 0.68rem;
  font-weight: 700;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border: 1px solid var(--bs-primary-border-subtle);
  border-radius: 999px;
  padding: 1px 8px;
}

.nj-acc-chev {
  color: var(--bs-secondary-color);
  transition: transform 0.18s ease;
}

.nj-acc-chev.is-expanded {
  transform: rotate(180deg);
}

.nj-acc-body {
  padding: 4px 14px 10px 44px;
  background: var(--bs-tertiary-bg);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nj-acc-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
  background: transparent;
}

.nj-acc-item.is-checked {
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.nj-acc-item-label {
  font-size: 0.82rem;
  color: var(--bs-emphasis-color);
  font-weight: 500;
}

.nj-acc-item.is-checked .nj-acc-item-label {
  color: var(--bs-primary);
  font-weight: 700;
}

/* Chip selectors (day-of-week, location) */
.nj-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.nj-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 16px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  cursor: pointer;
}

.nj-chip.is-active {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  font-weight: 700;
}

.nj-filters-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--bs-border-color);
  flex-wrap: wrap;
}

/* ── Buttons ───────────────────────────────────────────── */
.nj-btn-ghost {
  padding: 9px 16px;
  border-radius: 10px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-secondary-color);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
}

.nj-btn-primary {
  padding: 9px 18px;
  border-radius: 10px;
  border: none;
  background: var(--bs-primary);
  color: white;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nj-btn-danger {
  padding: 9px 18px;
  border-radius: 10px;
  border: none;
  background: var(--bs-danger);
  color: #fff;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nj-btn-disabled {
  padding: 9px 18px;
  border: 1.5px dashed var(--bs-border-color);
  border-radius: 9px;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  cursor: not-allowed;
  opacity: 0.75;
}

/* ── Selection / bulk-action bar ───────────────────────── */
.nj-selbar {
  background: #fff;
  border-radius: 14px;
  border: 1.5px solid var(--bs-primary-border-subtle);
  box-shadow: 0 2px 12px rgba(var(--bs-primary-rgb), 0.1);
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nj-selbar-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.nj-selbar-count {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  background: var(--bs-primary-bg-subtle);
  border-radius: 8px;
  padding: 8px 14px;
}

.nj-selbar-count-text {
  font-weight: 800;
  font-size: 0.82rem;
  color: var(--m-primary-dark);
  white-space: nowrap;
}

.nj-action-wrap {
  flex: 1 1 200px;
  position: relative;
}

.nj-action-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-bottom: 5px;
}

.nj-action-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 9px;
  background: var(--bs-body-bg);
  color: var(--bs-emphasis-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  cursor: pointer;
  text-align: left;
}

.nj-action-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  background: #fff;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 10px;
  box-shadow: var(--m-shadow-dropdown);
  margin-top: 4px;
  overflow: hidden;
}

.nj-action-item {
  padding: 9px 14px;
  font-size: 0.82rem;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--bs-body-color);
  font-weight: 500;
  cursor: pointer;
}

.nj-action-item.is-active {
  background: var(--bs-primary-bg-subtle);
  font-weight: 700;
}

.nj-action-item .nj-action-icon {
  color: var(--bs-secondary-color);
  flex-shrink: 0;
  display: inline-flex;
}

.nj-action-item.is-active .nj-action-icon {
  color: inherit;
}

.nj-action-apply-row {
  display: flex;
  gap: 8px;
}

.nj-apply-full {
  flex: 1;
  padding: 9px 18px;
  border: none;
  border-radius: 9px;
  background: var(--bs-primary);
  color: #fff;
  font-family: inherit;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
}

.nj-clear-sel {
  flex: 0 0 auto;
  padding: 9px 16px;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 9px;
  background: var(--bs-body-bg);
  color: var(--bs-secondary-color);
  font-family: inherit;
  font-weight: 600;
  font-size: 0.82rem;
  cursor: pointer;
  white-space: nowrap;
}

/* Action-colour swatches (used inside the action dropdown) */
.a-none {
  color: var(--bs-secondary-color);
}

.a-email {
  color: var(--bs-purple);
}

.a-bulk {
  color: var(--m-info-dark);
}

.a-invoice {
  color: var(--bs-purple);
}

.a-credit {
  color: var(--bs-warning);
}

.a-export {
  color: var(--bs-emphasis-color);
}

/* ── Table (desktop) ───────────────────────────────────── */
.nj-table-card {
  background: #fff;
  border-radius: 18px;
  box-shadow: var(--m-shadow-card);
  overflow: hidden;
}

.nj-table-scroll {
  overflow-x: auto;
}

.nj-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 800px;
}

.nj-table thead tr {
  background: var(--bs-tertiary-bg);
}

.nj-table th {
  padding: 11px 14px;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-align: left;
  background: var(--bs-tertiary-bg);
  white-space: nowrap;
}

.nj-table th.nj-th-check {
  width: 1px;
}

.nj-table td {
  padding: 12px 14px;
  font-size: 0.84rem;
  border-top: 1px solid var(--bs-border-color);
  vertical-align: middle;
}

.nj-table tbody tr {
  cursor: pointer;
}

.nj-table tbody tr.is-fresh {
  background: rgba(var(--bs-success-rgb), 0.06);
}

.nj-table tbody tr.is-refunded {
  background: rgba(var(--bs-success-rgb), 0.06);
}

.nj-table tbody tr.is-selected {
  background: rgba(var(--bs-primary-rgb), 0.07);
}

.nj-table tbody tr.is-zebra {
  background: rgba(var(--bs-secondary-rgb), 0.025);
}

.nj-cell-member {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nj-cell-class {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.nj-name {
  font-weight: 700;
  color: var(--bs-emphasis-color);
}

.nj-dim {
  font-size: 0.72rem;
  color: var(--bs-secondary-color);
  margin-top: 1px;
}

.nj-cell-strong {
  font-weight: 700;
  color: var(--bs-emphasis-color);
  white-space: nowrap;
}

.nj-cell-age {
  font-weight: 700;
  color: var(--bs-emphasis-color);
}

.nj-cell-payment {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.nj-cell-payment-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.nj-refunded {
  font-size: 0.7rem;
  color: var(--bs-danger);
  margin-top: 1px;
  line-height: 1.2;
}

/* ── Avatar ────────────────────────────────────────────── */
.nj-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}

.nj-avatar.av-1 {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.nj-avatar.av-2 {
  background: var(--bs-info-bg-subtle);
  color: var(--m-info-dark);
}

.nj-avatar.av-3 {
  background: var(--bs-success-bg-subtle);
  color: var(--m-success-mid);
}

.nj-avatar.av-4 {
  background: var(--bs-warning-bg-subtle);
  color: var(--m-warning-emphasis);
}

.nj-avatar.av-5 {
  background: var(--bs-pink-bg-subtle);
  color: var(--m-pink-dark);
}

.nj-avatar.av-6 {
  background: var(--bs-purple-bg-subtle);
  color: var(--bs-purple);
}

/* ── Badges (class, group, location, status) ───────────── */
.nj-badge-class {
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--bs-info-bg-subtle);
  color: var(--m-info-dark);
  border: 1px solid var(--bs-info-border-subtle);
  border-radius: 6px;
  padding: 2px 8px;
  align-self: flex-start;
  white-space: nowrap;
  display: inline-block;
}

.nj-badge-group {
  font-size: 0.72rem;
  color: var(--bs-secondary-color);
}

.nj-badge-group-pill {
  font-size: 0.7rem;
  font-weight: 600;
  background: var(--bs-purple-bg-subtle);
  color: var(--bs-purple);
  border: 1px solid var(--bs-purple-border-subtle);
  border-radius: 6px;
  padding: 2px 8px;
}

.nj-pill-location {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--bs-warning-bg-subtle);
  color: var(--m-warning-emphasis);
  border: 1px solid var(--bs-warning-border-subtle);
  border-radius: 999px;
  padding: 3px 10px 3px 8px;
  white-space: nowrap;
}

/* ── Recency pill (under member name) ──────────────────── */
.nj-recency {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 8px;
  font-size: 0.7rem;
  font-weight: 800;
  white-space: nowrap;
  border: 1px solid transparent;
}

.nj-recency.r-today {
  background: var(--bs-success-bg-subtle);
  color: var(--m-success-mid);
  border-color: var(--bs-success-border-subtle);
}

.nj-recency.r-recent {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  border-color: var(--bs-primary-border-subtle);
}

.nj-recency.r-older {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  border-color: var(--bs-border-color);
}

/* ── Subs button (in Subs column) ──────────────────────── */
.nj-subs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid var(--bs-success-border-subtle);
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  font-family: inherit;
  font-weight: 800;
  font-size: 0.82rem;
  cursor: pointer;
  padding: 0;
}

.nj-subs-btn.is-empty {
  border: 0;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  cursor: default;
  font-weight: 700;
  font-size: 0.8rem;
}

/* Subs pill (mobile card variant) */
.nj-subs-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 4px;
  border-radius: 999px;
  border: 1.5px solid var(--bs-success-border-subtle);
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  font-family: inherit;
  font-weight: 700;
  font-size: 0.74rem;
  cursor: pointer;
}

.nj-subs-pill.is-empty {
  border-color: var(--bs-border-color);
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  cursor: not-allowed;
}

.nj-subs-pill-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--bs-success);
  color: #fff;
  font-weight: 800;
  font-size: 0.74rem;
}

.nj-subs-pill.is-empty .nj-subs-pill-num {
  background: #fff;
  color: var(--bs-secondary-color);
}

/* ── Refund icon button (in Payment column) ────────────── */
.nj-refund-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid var(--bs-danger-border-subtle);
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  cursor: pointer;
  padding: 0;
}

.nj-refund-btn.is-refunded {
  background: var(--bs-danger-bg-subtle);
  border-color: var(--bs-danger-border-subtle);
  color: rgba(var(--bs-danger-rgb), 0.55);
}

.nj-refund-btn:disabled, .nj-refund-btn.is-disabled {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  cursor: not-allowed;
  opacity: 0.6;
}

.nj-refund-btn-lg {
  width: 36px;
  height: 36px;
} /* mobile */
/* ── Checkbox (custom, brand-tinted when checked) ──────── */
.nj-check {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

.nj-check.is-checked, .nj-check.is-indeterminate {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.nj-check svg {
  width: 12px;
  height: 12px;
}

/* ── Pagination ────────────────────────────────────────── */
.nj-pag {
  padding: 12px 16px;
  border-top: 1px solid var(--bs-border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.nj-pag-info {
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
}

.nj-pag-nav {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nj-pag-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1.5px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-emphasis-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.nj-pag-btn:disabled {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  cursor: not-allowed;
  opacity: 0.55;
}

.nj-pag-page {
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
  padding: 0 6px;
}

/* ── Mobile card list ──────────────────────────────────── */
.nj-mlist {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nj-mcard {
  background: #fff;
  border-radius: 14px;
  box-shadow: var(--m-shadow-card-soft);
  border: 1px solid var(--bs-border-color);
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nj-mcard.is-fresh {
  border: 1.5px solid var(--bs-success-border-subtle);
}

.nj-mcard.is-refunded {
  background: rgba(var(--bs-success-rgb), 0.06);
  border-color: rgba(var(--bs-success-rgb), 0.12);
}

.nj-mcard-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.nj-mcard-namerow {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.nj-mcard-name {
  font-weight: 700;
  color: var(--bs-emphasis-color);
  font-size: 0.9rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nj-mcard-meta {
  font-size: 0.72rem;
  color: var(--bs-secondary-color);
  margin-top: 1px;
}

.nj-mcard-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.nj-mcard-parent {
  font-size: 0.74rem;
  color: var(--bs-secondary-color);
}

.nj-mcard-footer {
  padding-top: 8px;
  border-top: 1px solid var(--bs-border-color);
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.nj-mcard-payment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--bs-border-color);
}

.nj-mcard-payment-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.nj-mcard-payment-value {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  margin-top: 2px;
}

/* ── Modal (shared) ────────────────────────────────────── */
.nj-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  z-index: 200;
}

.nj-modal {
  background: #fff;
  border-radius: 18px;
  box-shadow: var(--m-shadow-modal);
  width: 100%;
  max-width: 420px;
  display: flex;
  flex-direction: column;
  animation: nj-fade-up 0.2s ease;
  overflow: hidden;
}

.nj-modal.size-md {
  max-width: 540px;
  max-height: 85vh;
}

.nj-modal-head {
  padding: 18px 22px;
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  align-items: center;
  gap: 12px;
}

.nj-modal-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nj-modal-icon.t-danger {
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
}

.nj-modal-icon.t-success {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
}

.nj-modal-icon.t-primary {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
}

.nj-modal-title {
  font-weight: 800;
  font-size: 1rem;
  color: var(--bs-emphasis-color);
}

.nj-modal-sub {
  font-size: 0.74rem;
  color: var(--bs-secondary-color);
  margin-top: 2px;
}

.nj-modal-body {
  padding: 18px 22px;
  font-size: 0.85rem;
  color: var(--bs-body-color);
  line-height: 1.5;
}

.nj-modal-body.scroll {
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 22px;
}

.nj-modal-foot {
  padding: 12px 22px;
  border-top: 1px solid var(--bs-border-color);
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.nj-modal-close {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background: var(--bs-tertiary-bg);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bs-secondary-color);
}

/* Subscription line item (inside subs modal) */
.nj-sub-item {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: #fff;
}

.nj-sub-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.nj-sub-product {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--bs-emphasis-color);
}

.nj-sub-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  font-size: 0.76rem;
  color: var(--bs-secondary-color);
  border-top: 1px solid var(--bs-border-color);
  padding-top: 8px;
  margin-top: 2px;
}

.nj-sub-status {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 999px;
  padding: 2px 8px;
  white-space: nowrap;
  border: 1px solid transparent;
}

.nj-sub-status.s-active {
  background: var(--bs-success-bg-subtle);
  color: var(--bs-success);
  border-color: var(--bs-success-border-subtle);
}

.nj-sub-status.s-trialing {
  background: var(--bs-info-bg-subtle);
  color: var(--bs-info);
  border-color: var(--bs-info-border-subtle);
}

.nj-sub-status.s-pastdue {
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  border-color: var(--bs-danger-border-subtle);
}

.nj-sub-status.s-canceled {
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  border-color: var(--bs-border-color);
}

/* Refund modal — amount input group */
.nj-refund-amount-label {
  display: block;
  margin-bottom: 0.75rem;
  color: var(--bs-secondary-color);
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.nj-amt {
  display: flex;
  align-items: stretch;
  border: 1.5px solid var(--bs-border-color);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.nj-amt.is-error {
  border-color: rgba(var(--bs-danger-rgb), 0.55);
  box-shadow: 0 0 0 4px rgba(var(--bs-danger-rgb), 0.1);
}

.nj-amt-prefix {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  background: var(--bs-tertiary-bg);
  color: #8fa0c1;
  font-weight: 800;
  font-size: 1.1rem;
  border-right: 1px solid var(--bs-border-color);
}

.nj-amt input {
  flex: 1;
  min-height: 54px;
  padding: 10px 14px;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
  background: #fff;
}

.nj-amt-max {
  padding: 0 18px;
  border: none;
  border-left: 1px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-primary);
  font-family: inherit;
  font-weight: 800;
  font-size: 0.9rem;
  cursor: pointer;
}

.nj-refund-hint {
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
  margin-top: 10px;
  line-height: 1.5;
}

.nj-refund-input-error {
  margin-top: 10px;
  color: var(--bs-danger);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.45;
}

/* Refund spinner / done state */
.nj-spin {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(var(--bs-primary-rgb), 0.16);
  border-top-color: var(--bs-primary);
  border-right-color: var(--bs-primary);
  border-radius: 50%;
  animation: nj-spin 0.8s linear infinite;
  margin: 0 auto;
}

.nj-refund-stage-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 18px;
  padding-top: 28px;
  padding-bottom: 24px;
}

.nj-refund-stage-icon {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nj-refund-stage-icon.is-processing {
  background: rgba(var(--bs-primary-rgb), 0.1);
}

.nj-refund-stage-icon.is-success {
  background: #e7f8f1;
  color: #1db67d;
  font-size: 2.2rem;
}

.nj-refund-stage-icon.is-error {
  background: var(--bs-danger-bg-subtle);
  color: var(--bs-danger);
  font-size: 2rem;
}

.nj-refund-stage-body.is-error {
  gap: 16px;
}

.nj-refund-stage-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
}

.nj-refund-stage-amount {
  font-size: 1.55rem;
  line-height: 1.1;
  font-weight: 900;
  color: var(--bs-emphasis-color);
}

.nj-refund-stage-copy {
  max-width: 430px;
  font-size: 0.92rem;
  line-height: 1.55;
  color: #55637f;
}

.nj-refund-summary {
  width: 100%;
  max-width: 420px;
  border-radius: 16px;
  background: #f5f7fc;
  padding: 12px 18px;
}

.nj-refund-summary.is-error {
  background: #fff;
  border: 1px solid var(--bs-border-color);
}

.nj-refund-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
  font-size: 0.95rem;
  color: #8390ae;
}

.nj-refund-summary-row strong {
  color: var(--bs-emphasis-color);
  font-weight: 800;
}

.nj-refund-summary-row.is-negative strong {
  color: var(--bs-danger);
}

.nj-refund-summary-row.is-total {
  border-top: 1px solid #dde3f0;
  margin-top: 4px;
  padding-top: 12px;
}

.nj-refund-summary-row.is-total,
.nj-refund-summary-row.is-total strong {
  color: var(--bs-emphasis-color);
  font-weight: 800;
}

.nj-btn-soft-disabled {
  border: 0;
  border-radius: 14px;
  padding: 12px 28px;
  min-width: 168px;
  background: #eef2f8;
  color: #a8b1c3;
  font-weight: 800;
}

.nj-btn-success {
  border: 0;
  border-radius: 14px;
  padding: 12px 28px;
  min-width: 104px;
  background: var(--bs-primary);
  color: white;
  font-weight: 800;
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.2);
}

/* ── Empty state ───────────────────────────────────────── */
.nj-empty {
  padding: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}

.nj-empty-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  display: flex;
  align-items: center;
  justify-content: center;
}

.nj-empty-title {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--bs-emphasis-color);
}

.nj-empty-sub {
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
  max-width: 320px;
}

/* ── Toast ─────────────────────────────────────────────── */
.nj-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bs-emphasis-color);
  color: var(--m-on-secondary);
  padding: 12px 20px;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  font-size: 0.85rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  z-index: 300;
}

/* ── Animations ────────────────────────────────────────── */
@keyframes nj-fade-up {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes nj-spin {
  to {
    transform: rotate(360deg);
  }
}
.authorized-layout__main {
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

.authorized-layout__top-search {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(248, 250, 252, 0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(148, 163, 184, 0.18);
}

.authorized-layout__top-search-inner {
  padding: 16px 24px;
}

.authorized-layout__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.global-system-search {
  position: relative;
  width: 100%;
  max-width: 720px;
}

.global-system-search__button {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border: 0;
  background: transparent;
  color: #94a3b8;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.global-system-search__button:disabled {
  opacity: 0.6;
}

.global-system-search__input {
  width: 100%;
  min-height: 48px;
  border-radius: 14px;
  border: 1px solid #dbe4f0;
  background: #fff;
  padding: 12px 16px 12px 44px;
  font-size: 0.92rem;
  font-weight: 600;
  color: #0f172a;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.04);
}

.global-system-search__input::placeholder {
  color: #94a3b8;
  font-weight: 500;
}

.global-system-search__input:focus {
  outline: none;
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), 0.12);
}

.global-system-search__dropdown {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #dbe4f0;
  border-radius: 16px;
  box-shadow: 0 20px 44px rgba(15, 23, 42, 0.12);
  overflow: hidden;
  z-index: 40;
}

.global-system-search__result {
  width: 100%;
  border: 0;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}

.global-system-search__result:last-child {
  border-bottom: 0;
}

.global-system-search__result:hover {
  background: rgba(var(--bs-primary-rgb), 0.06);
}

.global-system-search__empty {
  padding: 16px 18px;
  color: #64748b;
  font-weight: 600;
  text-align: left;
}

.global-system-search__avatar,
.global-system-search__avatar-image {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  flex-shrink: 0;
}

.global-system-search__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.14);
  color: var(--bs-primary);
  font-size: 0.88rem;
  font-weight: 800;
}

.global-system-search__avatar-image {
  object-fit: cover;
  border: 1px solid rgba(148, 163, 184, 0.18);
}

.global-system-search__copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.global-system-search__name {
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.2;
}

.global-system-search__meta {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 991.98px) {
  .authorized-layout__top-search-inner {
    padding: 12px 16px;
  }
  .global-system-search {
    max-width: none;
  }
  .global-system-search__input {
    min-height: 44px;
    border-radius: 12px;
    font-size: 0.88rem;
  }
  .global-system-search__dropdown {
    top: calc(100% + 8px);
    border-radius: 14px;
  }
  .global-system-search__result {
    padding: 11px 12px;
  }
  .global-system-search__avatar,
  .global-system-search__avatar-image {
    width: 36px;
    height: 36px;
  }
  .global-system-search__name {
    font-size: 0.86rem;
  }
  .global-system-search__meta {
    font-size: 0.75rem;
  }
}
.award-report-page {
  width: 100%;
}

.award-reports-page__header-wrap {
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
}

.award-reports-page__header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.award-report-title {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--bs-emphasis-color);
}

.award-report-subtitle {
  margin: 0.2rem 0 0;
  color: var(--bs-secondary-color);
  font-size: 0.9rem;
}

.award-report-toolbar {
  display: flex;
  gap: 1rem;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 0.8rem;
}

.award-report-toolbar-grid {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(320px, 460px);
  gap: 1rem;
  flex: 1 1 620px;
}

.award-report-field {
  min-width: 0;
}

.award-report-field label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(var(--bs-secondary-rgb), 0.72);
}

.award-report-field-grow {
  min-width: 0;
}

.award-report-dropdown,
.award-report-export {
  position: relative;
}

.award-report-select,
.award-report-btn {
  min-height: 46px;
  border-radius: 14px;
}

.award-report-select {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.72rem 0.95rem;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  color: var(--bs-emphasis-color);
  font-size: 0.9rem;
  font-weight: 700;
  text-align: left;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.02);
}

.award-report-menu {
  position: absolute;
  top: calc(100% + 0.55rem);
  left: 0;
  z-index: 30;
  width: 100%;
  padding: 0.4rem;
  border-radius: 14px;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.14);
  background: #fff;
  box-shadow: 0 22px 40px rgba(15, 23, 42, 0.12);
}

.award-report-menu-sm {
  max-width: 330px;
}

.award-report-option,
.award-report-export-item {
  width: 100%;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0.55rem;
  border-radius: 10px;
  color: var(--bs-emphasis-color);
  text-align: left;
}

.award-report-option:hover,
.award-report-option.is-selected,
.award-report-export-item:hover {
  background: rgba(var(--bs-primary-rgb), 0.07);
}

.award-report-check {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  border: 1px solid var(--bs-border-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #fff;
  flex-shrink: 0;
  font-size: 0.65rem;
}

.award-report-check.is-selected,
.award-report-check.is-partial {
  border-color: var(--bs-primary);
  background: var(--bs-primary);
}

.award-report-option-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.award-report-option-copy strong {
  font-size: 0.84rem;
  line-height: 1.2;
}

.award-report-option-copy small {
  color: var(--bs-secondary-color);
  font-size: 0.74rem;
  line-height: 1.2;
}

.award-report-search {
  position: relative;
}

.award-report-search i {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%);
  color: var(--bs-secondary-color);
}

.award-report-search .form-control {
  min-height: 46px;
  border-radius: 14px;
  border-color: var(--bs-border-color);
  padding-left: 2.45rem;
  font-size: 0.9rem;
  box-shadow: none;
}

.award-report-actions {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.award-report-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  padding: 0.72rem 1.05rem;
  border: 1px solid transparent;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 700;
  transition: 0.15s ease;
}

.award-report-btn:hover {
  transform: translateY(-1px);
}

.award-report-btn-primary {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: var(--m-on-primary, #fff);
}

.award-report-btn-outline {
  background: #fff;
  border-color: rgba(var(--bs-primary-rgb), 0.5);
  color: var(--bs-primary);
}

.award-report-btn-neutral {
  background: #fff;
  border-color: var(--bs-border-color);
  color: var(--bs-emphasis-color);
}

.award-report-btn-chevron {
  font-size: 0.8rem;
}

.award-report-export-menu {
  width: 360px;
  max-width: min(360px, 100vw - 2rem);
  left: auto;
  right: 0;
}

.award-report-export-item {
  align-items: flex-start;
}

.award-report-export-item i {
  color: var(--bs-primary);
  margin-top: 0.1rem;
}

.award-report-export-item span {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.award-report-export-item small {
  color: var(--bs-secondary-color);
  font-size: 0.78rem;
}

.award-report-filter-bar {
  gap: 1rem;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 0.4rem;
}

.award-report-filter-label {
  min-width: 90px;
}

.award-report-filter-controls {
  display: flex;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
  flex: 1 1 auto;
}

.award-report-mode-tabs {
  display: inline-flex;
  padding: 0.35rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 18px;
  background: #fff;
}

.award-report-mode-tab {
  border: 0;
  background: transparent;
  color: rgba(var(--bs-secondary-rgb), 0.78);
  font-weight: 800;
  padding: 0.72rem 1rem;
  border-radius: 14px;
  font-size: 0.9rem;
}

.award-report-mode-tab.is-active {
  background: var(--bs-primary);
  color: var(--m-on-primary, #fff);
}

.award-report-class-dropdown {
  width: min(100%, 340px);
}

.award-report-class-menu {
  max-height: 360px;
  overflow: auto;
}

.award-report-class-item + .award-report-class-item {
  margin-top: 0.25rem;
}

.award-report-class-head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.award-report-class-trigger {
  flex: 1 1 auto;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  padding: 0.45rem 0.15rem;
  color: var(--bs-emphasis-color);
  font-weight: 800;
  font-size: 0.84rem;
}

.award-report-class-body {
  padding-left: 1.55rem;
}

.award-report-payment-chips {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.award-report-chip {
  border: 1px solid var(--bs-border-color);
  background: #fff;
  color: rgba(var(--bs-secondary-rgb), 0.85);
  border-radius: 999px;
  padding: 0.62rem 0.95rem;
  align-items: center;
  gap: 0.55rem;
  font-weight: 700;
  font-size: 0.88rem;
}

.award-report-chip.is-active {
  border-color: rgba(var(--bs-primary-rgb), 0.38);
  background: rgba(var(--bs-primary-rgb), 0.08);
  color: var(--bs-primary);
}

.award-report-payment-note {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--bs-secondary-color);
  font-size: 0.83rem;
  margin: 0 0 1rem 0.2rem;
}

.award-report-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 0.9rem;
}

.award-report-stat {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 18px;
  padding: 0.95rem 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 92px;
}

.award-report-stat-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.award-report-stat-icon.is-students {
  background: rgba(var(--bs-info-rgb), 0.12);
  color: var(--bs-info);
}

.award-report-stat-icon.is-levels {
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}

.award-report-stat-icon.is-populated {
  background: rgba(var(--bs-success-rgb), 0.12);
  color: var(--bs-success);
}

.award-report-stat-label {
  display: block;
  color: rgba(var(--bs-secondary-rgb), 0.72);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.award-report-stat strong {
  display: block;
  margin-top: 0.15rem;
  color: var(--bs-emphasis-color);
  font-size: 0.95rem;
  line-height: 1.15;
}

.award-report-stat small {
  display: block;
  margin-top: 0.2rem;
  color: var(--bs-secondary-color);
  font-size: 0.82rem;
}

.award-report-table-wrap {
  overflow: auto;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 18px;
}

.award-report-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.award-report-table th {
  background: rgba(var(--bs-primary-rgb), 0.05);
  color: rgba(var(--bs-secondary-rgb), 0.82);
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.8rem 0.95rem;
  white-space: nowrap;
}

.award-report-table td {
  padding: 0.9rem 0.95rem;
  border-top: 1px solid var(--bs-border-color);
  vertical-align: middle;
  font-size: 0.88rem;
}

.award-report-sort {
  width: 100%;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
}

.award-report-row {
  cursor: pointer;
  transition: background 0.15s ease;
}

.award-report-row:hover {
  background: rgba(var(--bs-primary-rgb), 0.03);
}

.award-report-warning-row {
  cursor: pointer;
  background: floralwhite;
}

.award-report-warning td {
  background: rgba(var(--bs-warning-rgb), 0.12);
  border-top-color: rgba(var(--bs-warning-rgb), 0.35);
}

.award-report-warning {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.award-report-warning-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid rgba(var(--bs-warning-rgb), 0.48);
  background: #fff;
  color: var(--bs-warning);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}

.award-report-warning-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  color: var(--bs-emphasis-color);
}

.award-report-warning-copy span {
  color: var(--bs-secondary-color);
}

.award-report-warning-arrow {
  margin-left: auto;
  color: var(--bs-warning);
}

.award-report-cell-muted {
  color: rgba(var(--bs-secondary-rgb), 0.92);
  font-size: 0.88rem;
}

.award-report-cell-strong {
  font-weight: 900;
  color: var(--bs-secondary);
}

.award-report-level-cell {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--bs-secondary);
}

.award-report-level-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(var(--bs-primary-rgb), 0.09);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.award-report-progress-cell {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.8rem;
}

.award-report-progress {
  width: 120px;
  height: 8px;
  border-radius: 999px;
  background: rgba(var(--bs-secondary-rgb), 0.08);
  overflow: hidden;
}

.award-report-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--bs-primary);
}

.award-report-row .award-report-cell-strong,
.award-report-row .award-report-progress-cell strong {
  color: var(--bs-secondary);
}

.award-report-total-row td {
  background: rgba(var(--bs-primary-rgb), 0.12);
  border-top: 1px solid rgba(var(--bs-primary-rgb), 0.2);
  color: var(--bs-secondary);
  font-size: 0.95rem;
  font-weight: 900;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.award-report-total-row td:first-child {
  text-align: center;
}

.award-report-total-mobile-count {
  display: none;
}

.award-report-total-row td:nth-child(2),
.award-report-total-row td:nth-child(3),
.award-report-total-row td:nth-child(4) {
  color: var(--bs-primary);
}

.award-report-skeleton-wrap {
  min-height: 0;
}

.award-report-skeleton-cell {
  padding: 1.15rem 1.2rem !important;
}

.award-report-skeleton-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.award-report-skeleton-icon,
.award-report-skeleton-line {
  display: inline-block;
  background: linear-gradient(90deg, rgba(var(--bs-secondary-rgb), 0.06) 25%, rgba(var(--bs-secondary-rgb), 0.11) 50%, rgba(var(--bs-secondary-rgb), 0.06) 75%);
  background-size: 200% 100%;
  animation: award-report-skeleton 1.35s ease-in-out infinite;
}

.award-report-skeleton-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  flex-shrink: 0;
}

.award-report-skeleton-line {
  height: 0.85rem;
  border-radius: 999px;
}

.award-report-skeleton-line.is-wide {
  width: 280px;
  max-width: 28%;
}

.award-report-skeleton-line.is-short {
  width: 76px;
  max-width: 12%;
}

.award-report-skeleton-line.is-mid {
  width: 200px;
  max-width: 22%;
}

.award-report-empty {
  min-height: 330px;
  border: 1px solid var(--bs-border-color);
  border-radius: 18px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  text-align: center;
  padding: 1.5rem;
}

.award-report-empty.is-table-empty {
  min-height: 240px;
}

.award-report-empty.is-error {
  gap: 0.9rem;
}

.award-report-empty-icon {
  width: 64px;
  height: 64px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-secondary-rgb), 0.08);
  color: var(--bs-secondary);
  font-size: 1.4rem;
}

.award-report-empty-icon.is-error {
  background: rgba(var(--bs-danger-rgb), 0.08);
  color: var(--bs-danger);
}

.award-report-empty h3 {
  margin: 0;
  color: var(--bs-emphasis-color);
  font-size: 0.95rem;
  font-weight: 900;
}

.award-report-empty p {
  margin: 0;
  max-width: 420px;
  color: var(--bs-secondary-color);
  font-size: 0.86rem;
}

.award-report-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.award-report-modal-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
}

.award-report-modal-sub {
  margin-top: 0.25rem;
  color: var(--bs-secondary-color);
  font-size: 0.8rem;
}

.award-report-modal-close {
  width: 42px;
  height: 42px;
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  background: #fff;
  color: var(--bs-secondary-color);
  font-size: 0.95rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.award-report-roster-dialog {
  max-width: 45rem;
}

.award-report-roster-modal {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}

.award-report-roster-badge {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.award-report-roster-table-wrap {
  max-height: 500px;
  overflow: auto;
}

.award-report-roster-modal .modal-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-top: 1.1rem !important;
  padding-bottom: 1.1rem !important;
  padding-left: 1.6rem !important;
  padding-right: 1.6rem !important;
  background: #fff;
}

.award-report-roster-modal .modal-header > :first-child {
  min-width: 0;
}

.award-report-roster-modal .modal-body {
  background: #fff;
}

.award-report-roster-modal .modal-footer {
  padding-left: 1.6rem !important;
  padding-right: 1.6rem !important;
  background: #fff;
}

.award-report-roster-table-wrap .award-report-table {
  table-layout: fixed;
}

.award-report-roster-table thead th {
  background: #fff;
  color: rgba(var(--bs-secondary-rgb), 0.8);
  border-bottom: 1px solid var(--bs-border-color);
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.award-report-roster-table thead th:nth-child(1) {
  width: 30%;
}

.award-report-roster-table thead th:nth-child(2),
.award-report-roster-table thead th:nth-child(3) {
  width: 35%;
}

.award-report-roster-table td {
  color: rgba(var(--bs-secondary-rgb), 0.92);
  font-size: 0.82rem;
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
  background: #fff;
}

.award-report-roster-table .award-report-cell-strong {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
}

.award-report-roster-table td div + div {
  margin-top: 0.2rem;
}

.award-report-roster-count {
  color: var(--bs-secondary-color);
  font-size: 0.82rem;
}

.award-report-roster-close {
  min-width: 92px;
  border-radius: 14px;
  padding: 0.6rem 1rem;
  font-size: 0.88rem;
  font-weight: 700;
  border: 0;
  box-shadow: none;
}

.award-report-roster-modal .award-report-sort {
  gap: 0.4rem;
}

.award-report-roster-modal .award-report-sort i {
  font-size: 0.75rem;
}

.award-report-roster-modal .award-report-modal-sub {
  font-size: 0.84rem;
}

.award-report-roster-modal .award-report-modal-close:hover {
  background: rgba(var(--bs-secondary-rgb), 0.04);
}

.award-report-roster-modal .award-report-modal-close {
  margin-left: auto;
  flex-shrink: 0;
  align-self: flex-start;
}

.award-report-assign-note {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--bs-secondary-color);
  font-size: 0.82rem;
  padding: 0.85rem 0 0.75rem;
}

.award-report-assign-note i {
  color: var(--bs-primary);
  font-size: 0.85rem;
}

.award-report-assign-table thead th:last-child {
  width: 28%;
}

.award-report-assign-table-wrap {
  overflow: visible;
  max-height: none;
}

.award-report-assign-table-wrap .award-report-assign-table {
  overflow: visible;
}

.award-report-assign-check {
  width: 44px;
  text-align: center;
}

.award-report-assign-check .form-check-input {
  width: 1.1rem;
  height: 1.1rem;
  border-color: rgba(var(--bs-primary-rgb), 0.25);
  box-shadow: none;
}

.award-report-assign-dropdown {
  position: relative;
}

.award-report-assign-cell {
  position: relative;
  overflow: visible;
}

.award-report-assign-trigger {
  width: 100%;
  min-height: 42px;
  border-radius: 14px;
  border: 1px solid var(--bs-border-color);
  background: #fff;
  color: var(--bs-secondary);
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.95rem;
  font-size: 0.9rem;
  font-weight: 800;
  text-align: left;
}

.award-report-assign-trigger:disabled {
  background: rgba(var(--bs-secondary-rgb), 0.05);
  color: var(--bs-secondary-color);
}

.award-report-assign-trigger i {
  font-size: 0.85rem;
  color: rgba(var(--bs-secondary-rgb), 0.78);
}

.award-report-assign-trigger.is-placeholder {
  color: var(--bs-secondary-color);
}

.award-report-assign-dropdown.is-open .award-report-assign-trigger {
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  box-shadow: 0 0 0 0.18rem rgba(var(--bs-primary-rgb), 0.1);
}

.award-report-assign-menu {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: 0;
  z-index: 60;
  width: 19rem;
  max-width: 19rem;
  background: #fff;
  border: 1px solid rgba(var(--bs-secondary-rgb), 0.12);
  border-radius: 16px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
  padding: 0.9rem 0.9rem 0.85rem;
}

.award-report-assign-cell .award-report-assign-menu {
  left: auto;
  right: 0;
}

.award-report-assign-menu-copy {
  color: var(--bs-secondary-color);
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.award-report-assign-menu-groups {
  max-height: 290px;
  overflow-x: hidden;
  overflow-y: auto;
}

.award-report-assign-group + .award-report-assign-group {
  margin-top: 0.25rem;
}

.award-report-assign-group-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0.1rem;
  color: rgba(var(--bs-secondary-rgb), 0.82);
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-align: left;
}

.award-report-assign-group-icons {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--bs-primary);
  flex-shrink: 0;
}

.award-report-assign-options {
  padding: 0.1rem 0 0.2rem;
}

.award-report-assign-option {
  width: 100%;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.1rem;
  color: var(--bs-emphasis-color);
  font-size: 0.82rem;
  font-weight: 800;
  text-align: left;
}

.award-report-assign-option.is-selected,
.award-report-assign-option i {
  color: var(--bs-primary);
}

.award-report-assign-done {
  width: 100%;
  margin-top: 0.85rem;
  border-radius: 12px;
  min-height: 42px;
  font-size: 0.9rem;
  font-weight: 800;
}

.award-report-assign-bulk {
  border-top: 1px solid var(--bs-border-color);
  padding: 1rem 0 0.9rem;
}

.award-report-assign-bulk-label {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  margin-bottom: 0.55rem;
}

.award-report-assign-bulk-help {
  margin-top: 0.55rem;
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
}

.award-report-pdf-frame {
  border: 1px solid var(--bs-border-color);
  border-radius: 16px;
  overflow: hidden;
  min-height: 70vh;
  background: rgba(var(--bs-primary-rgb), 0.03);
}

.award-report-pdf-frame iframe {
  width: 100%;
  height: 70vh;
  border: 0;
  background: #fff;
}

.award-report-pdf-link {
  color: var(--bs-primary);
  font-size: 1.15rem;
}

.award-report-preview-dialog {
  max-width: 50rem;
}

.award-report-preview-modal {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}

.award-report-preview-modal .modal-header,
.award-report-preview-modal .modal-footer,
.award-report-preview-modal .modal-body {
  background: #fff;
}

.award-report-preview-modal .modal-header,
.award-report-orders-modal .modal-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.award-report-preview-modal .modal-header > :first-child,
.award-report-orders-modal .modal-header > :first-child {
  min-width: 0;
}

.award-report-preview-badge {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.award-report-preview-scroll {
  max-height: 540px;
  overflow: auto;
  padding: 0.25rem;
}

.award-report-preview-sheet {
  background: rgba(var(--bs-primary-rgb), 0.03);
  border: 1px solid var(--bs-border-color);
  border-radius: 18px;
  padding: 1.2rem;
}

.award-report-preview-btn {
  min-height: 44px;
  border-radius: 14px;
  padding: 0.55rem 1rem;
  font-size: 0.88rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}

.award-report-preview-btn-primary {
  border: 0;
  color: var(--m-on-primary, #fff);
}

.award-report-order-doc {
  max-width: 700px;
  margin: 0 auto;
  padding: 1.6rem 1.8rem;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.award-report-order-doc-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
}

.award-report-order-doc-brand {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  min-width: 0;
}

.award-report-order-doc-logo {
  width: 58px;
  height: 58px;
  object-fit: contain;
  flex-shrink: 0;
}

.award-report-order-doc-club {
  font-size: 0.98rem;
  font-weight: 800;
  color: var(--bs-secondary);
}

.award-report-order-doc-meta {
  margin-top: 0.2rem;
  font-size: 0.82rem;
  color: var(--bs-secondary-color);
}

.award-report-order-doc-title-wrap {
  text-align: right;
}

.award-report-order-doc-title {
  font-size: 0.98rem;
  font-weight: 900;
  color: var(--bs-primary);
  text-transform: uppercase;
}

.award-report-order-doc-date {
  margin-top: 0.2rem;
  font-size: 0.82rem;
  color: var(--bs-secondary-color);
}

.award-report-order-doc-rule {
  height: 2px;
  margin: 1rem 0 1rem;
  background: var(--bs-primary);
  opacity: 0.7;
}

.award-report-order-doc-copy {
  display: grid;
  gap: 0.25rem;
  margin-bottom: 1rem;
  color: var(--bs-emphasis-color);
  font-size: 0.86rem;
}

.award-report-order-doc-section-title {
  margin: 0.95rem 0 0.4rem;
  color: var(--bs-primary);
  font-size: 0.9rem;
  font-weight: 800;
}

.award-report-order-doc-table {
  margin-bottom: 0.8rem;
}

.award-report-order-doc-table thead th {
  padding: 0.6rem 0.55rem;
  color: rgba(var(--bs-secondary-rgb), 0.8);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom-width: 1px;
}

.award-report-order-doc-table tbody td,
.award-report-order-doc-table tfoot td {
  padding: 0.62rem 0.55rem;
  font-size: 0.86rem;
  color: var(--bs-emphasis-color);
  border-bottom-color: rgba(var(--bs-secondary-rgb), 0.12);
}

.award-report-order-doc-table tbody td:first-child {
  color: var(--bs-secondary);
  font-weight: 700;
}

.award-report-order-doc-table tbody td:last-child,
.award-report-order-doc-table tfoot td:last-child {
  font-weight: 800;
  color: var(--bs-secondary);
}

.award-report-order-doc-table tfoot td {
  color: rgba(var(--bs-secondary-rgb), 0.84);
  font-weight: 800;
  text-transform: uppercase;
}

.award-report-order-doc-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 2px solid rgba(var(--bs-primary-rgb), 0.7);
  color: var(--bs-primary-color);
  font-size: 0.94rem;
  font-weight: 800;
}

.award-report-order-doc-total strong {
  color: var(--bs-primary);
  font-size: 1.05rem;
}

.award-report-order-doc-foot {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(var(--bs-secondary-rgb), 0.12);
  color: var(--bs-secondary-color);
  font-size: 0.82rem;
  line-height: 1.5;
}

.award-report-orders-dialog {
  max-width: 45rem !important;
}

.award-report-orders-modal {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}

.award-report-orders-modal .modal-header,
.award-report-orders-modal .modal-body,
.award-report-orders-modal .modal-footer {
  background: #fff;
}

.award-report-orders-badge {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.award-report-orders-table-wrap {
  max-height: 530px;
  overflow: auto;
}

.award-report-orders-table thead th {
  background: #fff;
  color: rgba(var(--bs-secondary-rgb), 0.82);
  border-bottom: 1px solid var(--bs-border-color);
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
}

.award-report-orders-table th:nth-child(1) {
  width: 34%;
}

.award-report-orders-table th:nth-child(2) {
  width: 30%;
}

.award-report-orders-table th:nth-child(3) {
  width: 14%;
}

.award-report-orders-table th:nth-child(4) {
  width: 14%;
}

.award-report-orders-table th:nth-child(5) {
  width: 8%;
}

.award-report-orders-table td {
  background: #fff;
  padding-top: 0.95rem;
  padding-bottom: 0.95rem;
  font-size: 0.82rem;
  color: rgba(var(--bs-secondary-rgb), 0.92);
}

.award-report-orders-subject {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
}

.award-report-orders-recipient,
.award-report-orders-date {
  color: rgba(var(--bs-secondary-rgb), 0.88);
}

.award-report-orders-download {
  width: 42px;
  height: 42px;
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  background: #fff;
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.award-report-orders-download:hover {
  background: rgba(var(--bs-primary-rgb), 0.04);
  color: var(--bs-primary);
}

.award-report-orders-download:disabled {
  opacity: 1;
  cursor: default;
}

.award-report-orders-download-spinner {
  width: 0.95rem;
  height: 0.95rem;
  border-width: 0.14em;
  color: currentColor;
}

.award-report-preview-modal .award-report-modal-close,
.award-report-orders-modal .award-report-modal-close {
  margin-left: auto;
  flex-shrink: 0;
  align-self: flex-start;
}

@keyframes award-report-skeleton {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
@media (max-width: 1199.98px) {
  .award-report-toolbar {
    align-items: stretch;
  }
  .award-report-toolbar-grid {
    grid-template-columns: 1fr 1fr;
  }
  .award-report-actions {
    width: 100%;
  }
}
@media (max-width: 991.98px) {
  .award-report-title {
    font-size: 1.05rem;
  }
  .award-report-toolbar-grid,
  .award-report-stats {
    grid-template-columns: 1fr;
  }
  .award-report-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .award-report-export-menu {
    width: 100%;
    right: auto;
    left: 0;
  }
}
@media (max-width: 767.98px) {
  .award-reports-page__header-wrap {
    padding-top: 0;
  }
  .award-report-title {
    font-size: 0.98rem;
  }
  .award-report-subtitle {
    font-size: 0.78rem;
  }
  .award-report-toolbar,
  .award-report-toolbar-grid,
  .award-report-filter-controls,
  .award-report-filter-bar,
  .award-report-stats,
  .award-report-actions {
    gap: 0.7rem;
  }
  .award-report-filter-controls {
    width: 100%;
  }
  .award-report-mode-tabs,
  .award-report-class-dropdown,
  .award-report-chip,
  .award-report-btn,
  .award-report-select {
    width: 100%;
  }
  .award-report-mode-tabs {
    flex-direction: column;
  }
  .award-report-payment-chips {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
    width: 100%;
  }
  .award-report-chip {
    width: 100%;
    justify-content: flex-start;
  }
  .award-report-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .award-report-field label,
  .award-report-filter-label,
  .award-report-stat-label,
  .award-report-table th {
    font-size: 0.68rem;
  }
  .award-report-select,
  .award-report-search .form-control,
  .award-report-btn,
  .award-report-mode-tab,
  .award-report-chip {
    min-height: 42px;
    font-size: 0.82rem;
  }
  .award-report-select,
  .award-report-btn,
  .award-report-mode-tab,
  .award-report-chip {
    padding: 0.58rem 0.8rem;
  }
  .award-report-search i {
    left: 0.8rem;
    font-size: 0.9rem;
  }
  .award-report-search .form-control {
    padding-left: 2.15rem;
  }
  .award-report-option-copy strong,
  .award-report-export-item small,
  .award-report-class-trigger,
  .award-report-payment-note,
  .award-report-cell-muted,
  .award-report-table td {
    font-size: 0.78rem;
  }
  .award-report-option-copy small {
    font-size: 0.7rem;
  }
  .award-report-warning,
  .award-report-stat {
    align-items: flex-start;
  }
  .award-report-warning {
    gap: 0.75rem;
  }
  .award-report-warning-icon,
  .award-report-stat-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 0.95rem;
  }
  .award-report-warning-copy,
  .award-report-warning-copy span,
  .award-report-stat small {
    font-size: 0.76rem;
  }
  .award-report-stat {
    padding: 0.8rem 0.85rem;
    min-height: 80px;
    gap: 0.8rem;
  }
  .award-report-stat strong {
    font-size: 0.86rem;
  }
  .award-report-table th {
    padding: 0.7rem 0.75rem;
  }
  .award-report-table td {
    padding: 0.75rem;
  }
  .award-report-level-cell {
    gap: 0.55rem;
  }
  .award-report-level-icon {
    width: 28px;
    height: 28px;
    border-radius: 10px;
    font-size: 0.78rem;
  }
  .award-report-progress-cell {
    flex-direction: column;
    align-items: flex-end;
    gap: 0.45rem;
  }
  .award-report-progress {
    width: 94px;
    height: 6px;
  }
  .award-report-total-row td {
    font-size: 0.82rem;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
  }
  .award-report-modal-title {
    font-size: 0.88rem;
  }
  .award-report-modal-sub,
  .award-report-roster-count,
  .award-report-assign-note,
  .award-report-assign-bulk-help {
    font-size: 0.74rem;
  }
  .award-report-modal-close {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    font-size: 0.88rem;
  }
  .award-report-roster-badge,
  .award-report-orders-badge,
  .award-report-preview-badge {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 0.92rem;
  }
  .award-report-roster-modal .modal-header,
  .award-report-roster-modal .modal-footer,
  .award-report-preview-modal .modal-header,
  .award-report-preview-modal .modal-body,
  .award-report-preview-modal .modal-footer,
  .award-report-orders-modal .modal-header,
  .award-report-orders-modal .modal-body,
  .award-report-orders-modal .modal-footer {
    padding-left: 0.9rem !important;
    padding-right: 0.9rem !important;
  }
  .award-report-roster-table thead th,
  .award-report-orders-table thead th {
    font-size: 0.68rem;
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
  }
  .award-report-roster-table td,
  .award-report-orders-table td,
  .award-report-orders-subject,
  .award-report-orders-recipient,
  .award-report-orders-date {
    font-size: 0.76rem;
  }
  .award-report-roster-close,
  .award-report-preview-btn {
    min-height: 40px;
    padding: 0.5rem 0.85rem;
    font-size: 0.82rem;
  }
  .award-report-orders-download {
    width: 38px;
    height: 38px;
    border-radius: 11px;
  }
  .award-report-assign-check {
    width: 36px;
  }
  .award-report-assign-trigger,
  .award-report-assign-done {
    min-height: 40px;
    font-size: 0.82rem;
  }
  .award-report-assign-trigger {
    padding: 0.55rem 0.8rem;
  }
  .award-report-assign-menu {
    width: 17rem;
    max-width: 17rem;
    padding: 0.75rem;
  }
  .award-report-assign-menu-copy,
  .award-report-assign-bulk-label {
    font-size: 0.74rem;
  }
  .award-report-assign-group-toggle {
    font-size: 0.68rem;
  }
  .award-report-assign-option {
    font-size: 0.78rem;
  }
  .award-report-preview-dialog {
    max-width: min(32rem, 100vw - 1.25rem);
    margin: 0.625rem auto;
  }
  .award-report-preview-modal .modal-header,
  .award-report-preview-modal .modal-body,
  .award-report-preview-modal .modal-footer {
    padding-left: 0.9rem !important;
    padding-right: 0.9rem !important;
  }
  .award-report-preview-scroll {
    max-height: 52vh;
    padding: 0;
  }
  .award-report-preview-sheet {
    padding: 0.7rem;
  }
  .award-report-order-doc {
    max-width: 100%;
    padding: 1rem;
    box-shadow: none;
  }
  .award-report-order-doc-head {
    gap: 0.9rem;
  }
  .award-report-order-doc-brand {
    gap: 0.7rem;
    min-width: 0;
    flex: 1 1 auto;
  }
  .award-report-order-doc-logo {
    width: 42px;
    height: 42px;
    min-width: 42px;
  }
  .award-report-order-doc-brand > div,
  .award-report-order-doc-title-wrap {
    min-width: 0;
  }
  .award-report-order-doc-club,
  .award-report-order-doc-title {
    font-size: 0.84rem;
    line-height: 1.25;
    word-break: break-word;
  }
  .award-report-order-doc-meta,
  .award-report-order-doc-date,
  .award-report-order-doc-copy,
  .award-report-order-doc-table tbody td,
  .award-report-order-doc-table tfoot td,
  .award-report-order-doc-foot {
    font-size: 0.76rem;
  }
  .award-report-order-doc-rule {
    margin: 0.8rem 0;
  }
  .award-report-order-doc-section-title {
    font-size: 0.82rem;
    margin-top: 0.8rem;
  }
  .award-report-order-doc-table thead th {
    font-size: 0.68rem;
    padding: 0.45rem 0.35rem;
  }
  .award-report-order-doc-table tbody td,
  .award-report-order-doc-table tfoot td {
    padding: 0.45rem 0.35rem;
  }
  .award-report-order-doc-total {
    font-size: 0.84rem;
  }
  .award-report-order-doc-total strong {
    font-size: 0.96rem;
  }
  .award-report-preview-modal .modal-footer {
    gap: 0.6rem !important;
  }
}
@media (max-width: 575.98px) {
  .award-report-title {
    font-size: 0.9rem;
  }
  .award-report-subtitle,
  .award-report-payment-note,
  .award-report-warning-copy,
  .award-report-warning-copy span,
  .award-report-stat small,
  .award-report-modal-sub,
  .award-report-roster-count,
  .award-report-assign-note,
  .award-report-assign-bulk-help,
  .award-report-order-doc-meta,
  .award-report-order-doc-date,
  .award-report-order-doc-copy,
  .award-report-order-doc-foot {
    font-size: 0.72rem;
  }
  .award-report-field label,
  .award-report-filter-label,
  .award-report-stat-label,
  .award-report-table th,
  .award-report-roster-table thead th,
  .award-report-orders-table thead th,
  .award-report-assign-group-toggle {
    font-size: 0.64rem;
  }
  .award-report-select,
  .award-report-search .form-control,
  .award-report-btn,
  .award-report-mode-tab,
  .award-report-chip,
  .award-report-assign-trigger,
  .award-report-assign-done {
    min-height: 38px;
    font-size: 0.76rem;
  }
  .award-report-select,
  .award-report-btn,
  .award-report-mode-tab,
  .award-report-chip,
  .award-report-assign-trigger {
    padding: 0.5rem 0.72rem;
  }
  .award-report-option-copy strong,
  .award-report-class-trigger,
  .award-report-table td,
  .award-report-cell-muted,
  .award-report-roster-table td,
  .award-report-orders-table td,
  .award-report-orders-subject,
  .award-report-orders-recipient,
  .award-report-orders-date,
  .award-report-assign-option,
  .award-report-preview-btn {
    font-size: 0.74rem;
  }
  .award-report-stat {
    padding: 0.72rem 0.75rem;
    min-height: 72px;
  }
  .award-report-stat strong,
  .award-report-total-row td {
    font-size: 0.8rem;
  }
  .award-report-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .award-report-stat:last-child:nth-child(odd) {
    grid-column: 1/-1;
  }
  .award-report-table th,
  .award-report-table td {
    padding-left: 0.62rem;
    padding-right: 0.62rem;
  }
  .award-report-mode-tabs,
  .award-report-table-wrap,
  .award-report-stat,
  .award-report-preview-modal,
  .award-report-orders-modal,
  .award-report-roster-modal {
    border-radius: 16px;
  }
  .award-report-roster-dialog {
    max-width: calc(100vw - 0.9rem);
    margin: 0.45rem auto;
  }
  .award-report-roster-modal .modal-header,
  .award-report-roster-modal .modal-body,
  .award-report-roster-modal .modal-footer {
    padding-left: 0.9rem !important;
    padding-right: 0.9rem !important;
  }
  .award-report-roster-table-wrap {
    max-height: 52vh;
    overflow: auto;
  }
  .award-report-roster-table {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
  .award-report-roster-table thead {
    display: table-header-group;
  }
  .award-report-roster-table tbody {
    display: table-row-group;
  }
  .award-report-roster-table tbody tr {
    display: table-row;
    background: transparent;
    border: 0;
  }
  .award-report-roster-table thead th:nth-child(1) {
    width: 34%;
  }
  .award-report-roster-table thead th:nth-child(2),
  .award-report-roster-table thead th:nth-child(3) {
    width: 33%;
  }
  .award-report-roster-table td {
    display: table-cell;
    padding: 0.7rem 0.45rem;
    background: #fff;
    border-top: 1px solid var(--bs-border-color);
    font-size: 0.74rem;
    color: rgba(var(--bs-secondary-rgb), 0.9);
    vertical-align: top;
    word-break: break-word;
  }
  .award-report-roster-table th {
    word-break: break-word;
    white-space: normal;
  }
  .award-report-roster-table td div {
    word-break: break-word;
  }
  .award-report-roster-table td div + div {
    margin-top: 0.18rem;
  }
  .award-report-roster-table .award-report-cell-strong {
    font-size: 0.8rem;
    line-height: 1.3;
  }
  .award-report-roster-close {
    min-width: 0;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .award-report-assign-note {
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.72rem;
    padding-top: 0.7rem;
    padding-bottom: 0.65rem;
  }
  .award-report-assign-table-wrap {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }
  .award-report-assign-table {
    width: 100%;
    min-width: 34rem;
    table-layout: fixed;
  }
  .award-report-assign-table th,
  .award-report-assign-table td {
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    font-size: 0.74rem;
    vertical-align: middle;
    word-break: break-word;
  }
  .award-report-assign-table thead th {
    font-size: 0.64rem;
  }
  .award-report-assign-table th:nth-child(1),
  .award-report-assign-table td:nth-child(1) {
    width: 2.5rem;
  }
  .award-report-assign-table th:nth-child(2),
  .award-report-assign-table td:nth-child(2) {
    width: 26%;
  }
  .award-report-assign-table th:nth-child(3),
  .award-report-assign-table td:nth-child(3) {
    width: 20%;
  }
  .award-report-assign-table th:nth-child(4),
  .award-report-assign-table td:nth-child(4) {
    width: 18%;
  }
  .award-report-assign-table th:nth-child(5),
  .award-report-assign-table td:nth-child(5) {
    width: 36%;
  }
  .award-report-assign-check {
    width: 2.5rem;
    min-width: 2.5rem;
  }
  .award-report-assign-check .form-check-input {
    width: 1rem;
    height: 1rem;
  }
  .award-report-assign-table .award-report-cell-strong {
    font-size: 0.78rem;
    line-height: 1.3;
  }
  .award-report-assign-trigger,
  .award-report-assign-done {
    min-height: 38px;
    font-size: 0.76rem;
  }
  .award-report-assign-trigger {
    padding: 0.45rem 0.65rem;
    gap: 0.45rem;
    border-radius: 12px;
  }
  .award-report-assign-trigger span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .award-report-assign-menu {
    width: min(15rem, 100vw - 2rem);
    max-width: min(15rem, 100vw - 2rem);
    padding: 0.7rem 0.7rem 0.75rem;
    border-radius: 14px;
  }
  .award-report-assign-menu-copy {
    font-size: 0.72rem;
    margin-bottom: 0.6rem;
  }
  .award-report-assign-menu-groups {
    max-height: 220px;
  }
  .award-report-assign-group-toggle {
    font-size: 0.64rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
  }
  .award-report-assign-option {
    font-size: 0.74rem;
    padding-top: 0.42rem;
    padding-bottom: 0.42rem;
  }
  .award-report-assign-bulk {
    padding-top: 0.85rem;
    padding-bottom: 0.75rem;
  }
  .award-report-assign-bulk-label {
    font-size: 0.78rem;
  }
  .award-report-assign-bulk-help {
    font-size: 0.72rem;
    line-height: 1.45;
  }
  .award-report-main-table-wrap {
    background: transparent;
    border: 0;
    overflow: visible;
    border-radius: 0;
  }
  .award-report-main-table {
    display: block;
  }
  .award-report-main-table > thead {
    display: none;
  }
  .award-report-main-table > tbody,
  .award-report-main-table > tfoot {
    display: block;
  }
  .award-report-main-table > tbody {
    display: grid;
    gap: 0.9rem;
  }
  .award-report-row.award-report-mobile-card,
  .award-report-warning-row.award-report-mobile-card,
  .award-report-total-row.award-report-mobile-total-card {
    display: block;
    background: #fff;
    border: 1px solid var(--bs-border-color);
    border-radius: 18px;
    overflow: hidden;
  }
  .award-report-row.award-report-mobile-card td,
  .award-report-warning-row.award-report-mobile-card td,
  .award-report-total-row.award-report-mobile-total-card td {
    display: block;
    width: 100%;
    border-top: 0;
  }
  .award-report-row.award-report-mobile-card {
    padding: 0.95rem 1rem 0.9rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "level students" "syllabus syllabus" "percentage percentage";
    row-gap: 0.55rem;
    column-gap: 0.8rem;
    align-items: start;
  }
  .award-report-row.award-report-mobile-card td {
    padding: 0;
  }
  .award-report-mobile-level {
    grid-area: level;
  }
  .award-report-mobile-students {
    grid-area: students;
    text-align: right !important;
    font-size: 0.92rem !important;
    line-height: 1.2;
  }
  .award-report-mobile-syllabus {
    grid-area: syllabus;
    color: rgba(var(--bs-secondary-rgb), 0.7);
    font-size: 0.78rem !important;
    line-height: 1.3;
  }
  .award-report-mobile-percentage {
    grid-area: percentage;
  }
  .award-report-mobile-card .award-report-level-cell {
    gap: 0.7rem;
    align-items: center;
  }
  .award-report-mobile-card .award-report-level-cell strong {
    font-size: 0.88rem;
    line-height: 1.25;
  }
  .award-report-mobile-card .award-report-level-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    font-size: 0.9rem;
  }
  .award-report-mobile-card .award-report-progress-cell {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
  }
  .award-report-mobile-card .award-report-progress {
    width: 100%;
    max-width: none;
    height: 8px;
    flex: 1 1 auto;
  }
  .award-report-mobile-card .award-report-progress-cell strong {
    flex-shrink: 0;
    font-size: 0.82rem;
    color: var(--bs-secondary);
  }
  .award-report-warning-row.award-report-mobile-card td {
    padding: 0.9rem 1rem;
  }
  .award-report-total-row.award-report-mobile-total-card {
    margin-top: 0.9rem;
  }
  .award-report-total-row.award-report-mobile-total-card td {
    padding: 1rem;
    font-size: 0.82rem;
  }
  .award-report-total-row.award-report-mobile-total-card td:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    text-align: left;
  }
  .award-report-total-mobile-count {
    display: inline-block;
    color: var(--bs-primary);
    font-size: 0.96rem;
    font-weight: 900;
    line-height: 1;
    flex-shrink: 0;
  }
  .award-report-total-row.award-report-mobile-total-card td:nth-child(2),
  .award-report-total-row.award-report-mobile-total-card td:nth-child(3),
  .award-report-total-row.award-report-mobile-total-card td:nth-child(4) {
    display: none;
  }
  .award-report-preview-dialog {
    max-width: calc(100vw - 0.9rem);
    margin: 0.45rem auto;
  }
  .award-report-preview-modal {
    border-radius: 18px;
  }
  .award-report-preview-modal .modal-header {
    padding-top: 0.85rem !important;
    padding-bottom: 0.85rem !important;
  }
  .award-report-preview-badge {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 0.9rem;
  }
  .award-report-preview-modal .modal-header .d-flex.align-items-start.gap-3 {
    gap: 0.7rem !important;
    min-width: 0;
    flex: 1 1 auto;
  }
  .award-report-modal-title {
    font-size: 0.92rem;
    line-height: 1.2;
  }
  .award-report-modal-sub {
    font-size: 0.74rem;
    line-height: 1.3;
    word-break: break-word;
  }
  .award-report-preview-sheet {
    padding: 0.55rem;
    border-radius: 14px;
  }
  .award-report-order-doc {
    padding: 0.85rem 0.75rem;
    border-radius: 12px;
  }
  .award-report-order-doc-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.7rem;
  }
  .award-report-order-doc-title-wrap {
    text-align: left;
  }
  .award-report-order-doc-copy {
    line-height: 1.5;
  }
  .award-report-preview-modal .modal-footer {
    flex-wrap: nowrap;
    justify-content: space-between !important;
  }
  .award-report-preview-btn {
    width: auto;
    min-width: 0;
    font-size: 0.72rem;
    gap: 0.4rem;
  }
}
.cs-month-headers--mobile {
  display: none;
}

.cs-month-mobile {
  display: none;
}

.cs-month-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

@media (max-width: 767.98px) {
  .cs-month-wrap {
    padding-inline: 0.5rem;
    padding-bottom: 1rem;
  }
  .cs-month-headers--desktop {
    display: none;
  }
  .cs-month-headers--mobile {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
  }
  .cs-month-headers--mobile .cs-month-dh {
    font-size: 0.65rem;
    letter-spacing: 0;
    padding: 2px 0;
  }
  .cs-month-grid {
    gap: 3px;
  }
  .cs-month-cell:not(.empty) {
    min-height: 52px;
    height: 52px;
    padding: 4px 2px;
    align-items: center;
    text-align: center;
    gap: 2px;
    -webkit-tap-highlight-color: transparent;
  }
  .cs-month-cell.empty {
    min-height: 52px;
    height: 52px;
  }
  .cs-month-cell.today {
    border-color: var(--bs-primary);
  }
  .cs-month-cell.selected {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
    border-color: var(--bs-primary) !important;
    border-width: 2px;
  }
  .cs-month-num {
    width: 22px;
    height: 22px;
    margin-bottom: 0;
    font-size: 0.75rem;
  }
  .cs-month-num.today {
    background-color: var(--bs-primary);
    color: var(--bs-white, #fff);
  }
  .cs-month-desktop {
    display: none !important;
  }
  .cs-month-mobile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    min-height: 0;
  }
  .cs-month-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    flex-wrap: nowrap;
    max-width: 100%;
  }
  .cs-month-overflow {
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--bs-primary);
    line-height: 1;
  }
}
.cs-detail-sheet-backdrop,
.cs-detail-sheet-top {
  display: none;
}

@media (min-width: 768px) {
  .cs-detail-sheet-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1080;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(15, 23, 42, 0.4);
    cursor: pointer;
  }
  .cs-detail-panel {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1081;
    margin: 0 !important;
    width: min(560px, calc(100vw - 48px));
    max-height: min(80vh, 720px);
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.25);
  }
  .cs-detail-header {
    flex-shrink: 0;
  }
  .cs-detail-body {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
  }
}

@media (max-width: 767.98px) {
  .cs-detail-sheet-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1080;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(15, 23, 42, 0.45);
    -webkit-tap-highlight-color: transparent;
  }
  .cs-detail-panel {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1081;
    margin: 0 !important;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    border-radius: 22px 22px 0 0;
    border-bottom: none;
    overflow: hidden;
  }
  .cs-detail-sheet-top {
    display: block;
    flex-shrink: 0;
    background: #fff;
    padding-top: 0.55rem;
  }
  .cs-detail-sheet-handle {
    display: block;
    width: 42px;
    height: 5px;
    border-radius: 999px;
    background: #dbe3ef;
    margin: 0 auto 0.35rem;
  }
  .cs-detail-header {
    flex-shrink: 0;
  }
  .cs-detail-body {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 1rem) !important;
  }
  .cs-day-list {
    padding-inline: 12px;
    padding-bottom: 12px;
  }
  .cs-day-header {
    padding: 4px 12px 14px;
  }
  .cs-day-list .cs-day-card,
  .cs-detail-body .cs-day-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    margin: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .cs-dc-time {
    min-width: 64px;
    flex-shrink: 0;
  }
  .cs-dc-info {
    flex: 1;
    min-width: 0;
    width: auto;
  }
  .cs-dc-name {
    margin-bottom: 2px;
  }
  .cs-dc-stats {
    flex-shrink: 0;
    min-width: 52px;
    text-align: right;
  }
  .cs-day-card .cs-fill-bar {
    display: none;
  }
  .cs-week-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
  }
  .cs-wc-time {
    flex-shrink: 0;
    min-width: 72px;
    margin-bottom: 0;
    font-size: 0.72rem;
    line-height: 1.25;
  }
  .cs-wc-name {
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
  }
  .cs-wc-foot {
    flex-shrink: 0;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    min-width: 56px;
  }
  .cs-detail-body .cs-empty {
    padding: 2rem 0;
  }
}
@media (min-width: 768px) {
  .cs-week-grid.cs-week-grid--3day {
    grid-template-columns: repeat(3, 1fr);
    padding: 0 16px 24px;
    min-width: auto;
  }
}
@media (max-width: 767.98px) {
  .cs-week-grid.cs-week-grid--3day {
    grid-template-columns: 1fr;
    padding: 0;
    gap: 10px;
  }
  .cs-week-grid .cs-col {
    padding: 8px;
    border-radius: 10px;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #e8eaf0);
  }
  .cs-col-header--toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 8px 4px;
    margin-bottom: 0;
    border: none;
    border-bottom: 2px solid var(--bs-border-color, #e8eaf0);
    background: transparent;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .cs-col-header--toggle.today {
    border-bottom-color: var(--bs-primary);
  }
  .cs-col-header-main {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }
  .cs-col-header-main .cs-col-abbr {
    margin: 0;
    min-width: 2rem;
  }
  .cs-col-header-main .cs-col-circle {
    margin: 0;
  }
  .cs-col-header-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
  }
  .cs-col-summary {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-secondary, #6b7280);
    white-space: nowrap;
  }
  .cs-col-chevron {
    font-size: 0.85rem;
    color: var(--bs-secondary, #6b7280);
    transition: transform 0.15s ease;
  }
  .cs-col.is-expanded .cs-col-chevron {
    transform: rotate(180deg);
  }
  .cs-col-body {
    display: none;
    padding-top: 8px;
  }
  .cs-col.is-expanded .cs-col-body {
    display: block;
  }
}
@media (min-width: 768px) {
  .cs-col-header--toggle {
    display: block;
    width: 100%;
    padding: 8px 4px;
    margin-bottom: 10px;
    border: none;
    border-bottom: 2px solid var(--bs-border-color, #e8eaf0);
    background: transparent;
    pointer-events: none;
    cursor: default;
    text-align: center;
    appearance: none;
    -webkit-appearance: none;
  }
  .cs-col-header--toggle.today {
    border-bottom-color: var(--bs-primary);
  }
  .cs-col-header-meta {
    display: none !important;
  }
  .cs-col-header-main {
    display: block;
    text-align: center;
  }
  .cs-col-body {
    display: block !important;
  }
  .cs-week-card {
    display: block;
  }
  .cs-wc-time {
    min-width: unset;
    margin-bottom: 2px;
  }
  .cs-wc-name {
    margin-bottom: 5px;
  }
  .cs-wc-foot {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    min-width: unset;
    gap: 4px;
  }
}
.class-state-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.class-state-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

.class-state-pill-open {
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
}

.class-state-pill-open .class-state-dot {
  background: var(--bs-primary);
}

.class-state-pill-full {
  background: #fffbeb;
  color: #92400e;
  border: 1px solid #fcd34d;
}

.class-state-pill-full .class-state-dot {
  background: #d97706;
}

.class-full-note {
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid #fcd34d;
  background: #fffbeb;
  color: #92400e;
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}

.class-mobile-head {
  width: 100%;
  justify-content: left;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  padding-bottom: 4px;
}

.class-mobile-title {
  font-size: 1.35rem;
  line-height: 1.2;
}

.basket-nav-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
}

.sw-navbar .class-details-header-title {
  position: static !important;
  transform: none !important;
  width: auto;
  flex: 1 1 220px;
  min-width: 0;
  justify-content: center;
  text-align: center;
  flex-wrap: wrap;
  order: 2;
}

@media (min-width: 768px) {
  .sw-navbar .class-details-nav-container {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: clamp(0.5rem, 2vw, 2rem);
  }
  .sw-navbar .class-details-nav-container > .class-details-header-title {
    width: 100%;
  }
}
.sw-navbar .class-details-header-title > .fw-bold {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  line-height: 1.15;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: clamp(0.9rem, 2.2vw, 1.5rem);
}

.sw-navbar > .container > a {
  flex: 0 0 auto;
  order: 1;
}

.sw-navbar > .container > .justify-content-center {
  order: 3;
  flex: 0 0 auto;
  min-width: 0;
}

.sw-navbar .class-mobile-head {
  justify-content: center;
  min-width: 0;
  flex-wrap: nowrap;
}

.sw-navbar .class-mobile-title {
  min-width: 0;
  max-width: 72%;
  flex: 1 1 auto;
  text-align: center;
  overflow-wrap: anywhere;
}

.sw-navbar .class-mobile-head .class-state-pill {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .sw-navbar .class-details-nav-container {
    display: flex;
  }
  .sw-navbar .class-details-header-title {
    display: none !important;
  }
  .sw-navbar .class-mobile-title {
    font-size: clamp(1rem, 5vw, 1.35rem);
  }
}
.pp-remove-wl-shell {
  padding: 2px 4px 0;
}

.pp-remove-wl-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

.pp-remove-wl-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(180deg, #fff1f2 0%, #ffe4e6 100%);
  color: #dc2626;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
  border: 1px solid #fecdd3;
}

.pp-remove-wl-title {
  font-size: 1.22rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.15;
}

.pp-remove-wl-sub {
  font-size: 0.85rem;
  color: #8a96b0;
  margin-top: 4px;
}

.pp-remove-wl-details {
  margin-top: 4px;
  border: 1px solid #e8eef6;
  border-radius: 16px;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f7fd 100%);
  padding: 16px 18px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.pp-remove-wl-label {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #94a3b8;
  font-weight: 800;
  margin-bottom: 6px;
}

.pp-remove-wl-name {
  font-size: 1.15rem;
  font-weight: 800;
  color: #1e2a4a;
  line-height: 1.25;
}

.pp-remove-wl-row {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  color: #64748b;
  font-size: 0.92rem;
  font-weight: 500;
}

.pp-remove-wl-row span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.pp-remove-wl-field {
  margin-bottom: 20px;
}

.pp-remove-wl-field:last-child {
  margin-bottom: 0;
}

.pp-remove-wl-field label {
  display: inline-block;
  margin-bottom: 8px;
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
}

.pp-remove-wl-select,
.pp-remove-wl-textarea {
  border-radius: 12px;
  border: 1px solid #d6e0ec;
  background: #fff;
  color: #1e293b;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.pp-remove-wl-select {
  min-height: 46px;
  font-size: 1rem;
  padding-left: 14px;
}

.pp-remove-wl-textarea {
  min-height: 138px;
  font-size: 1rem;
  padding: 14px;
  resize: vertical;
}

.pp-remove-wl-select:focus,
.pp-remove-wl-textarea:focus {
  border-color: #c4b5fd;
  box-shadow: 0 0 0 0.2rem rgba(124, 58, 237, 0.12);
}

.pp-remove-wl-warning {
  margin-top: 6px;
  border: 1px solid #fdba74;
  background: linear-gradient(180deg, #fffaf0 0%, #fff7ed 100%);
  color: #b45309;
  border-radius: 14px;
  padding: 14px 15px;
  font-size: 0.95rem;
  line-height: 1.5;
  font-weight: 600;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.pp-remove-wl-actions {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.pp-remove-btn {
  border-radius: 14px;
  padding: 13px 16px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  min-height: 48px;
}

.pp-remove-btn.keep {
  background: #fff;
  border: 1px solid #d7e3f4;
  color: #475569;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.pp-remove-btn.confirm {
  background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);
  border: 1px solid #dc2626;
  color: #fff;
  box-shadow: 0 10px 24px rgba(220, 38, 38, 0.18);
}

.pp-remove-btn.keep:hover:not(:disabled),
.pp-remove-btn.keep:focus:not(:disabled) {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #1f2937;
}

.pp-remove-btn.confirm:hover:not(:disabled),
.pp-remove-btn.confirm:focus:not(:disabled) {
  background: linear-gradient(180deg, #dc2626 0%, #b91c1c 100%);
}

@media (max-width: 575.98px) {
  .pp-remove-wl-actions {
    grid-template-columns: 1fr;
  }
}
.smart-scroll {
  max-height: 520px;
  overflow: auto;
}

.list-group-item:hover {
  background: rgba(0, 0, 0, 0.02);
}

.card-header .badge {
  font-weight: 500;
}

.gap-2 {
  gap: 0.5rem;
}

.terms-acceptance-pagination {
  border-top: 1px solid #e5e7eb;
  padding-top: 0.75rem;
}

.terms-required-notice {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  border: 2px solid #f0ad4e;
  border-radius: 0.65rem;
  background: #fff8e8;
  color: #5c3b00;
}

.terms-required-notice__icon {
  flex: 0 0 auto;
  font-size: 1.45rem;
  line-height: 1.25;
  color: #c77700;
}

.terms-required-notice__title {
  font-size: 1.05rem;
  font-weight: 700;
}

.terms-required-notice__text {
  margin-top: 0.2rem;
  line-height: 1.45;
}

.terms-required-actions {
  display: flex;
  justify-content: flex-start;
}

.terms-accept-button {
  min-width: 220px;
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .terms-required-actions,
  .terms-accept-button {
    width: 100%;
  }
}
.subscription-price-dropdown {
  position: relative;
}

.subscription-price-dropdown__trigger {
  display: block;
  height: auto;
  min-height: 38px;
  overflow: visible;
  padding-right: 2.5rem;
  text-align: left;
  white-space: normal;
}

.subscription-price-dropdown__menu {
  position: absolute;
  z-index: 1050;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 260px;
  overflow-y: auto;
  padding: 0.35rem;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.subscription-price-dropdown__option {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border-radius: 0.35rem;
  cursor: pointer;
}

.subscription-price-dropdown__option:hover {
  background: var(--bs-light);
}

.subscription-price-dropdown__option input {
  flex: 0 0 auto;
}

.two-factor-page {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  padding: 2rem 1.25rem 4rem;
  background: #f6f8fc;
  color: #14213d;
}

.two-factor-page__glow {
  position: absolute;
  width: 25rem;
  height: 25rem;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
}

.two-factor-page__glow--one {
  top: -12rem;
  left: -8rem;
  background: rgba(77, 163, 255, 0.16);
}

.two-factor-page__glow--two {
  right: -10rem;
  bottom: -14rem;
  background: rgba(108, 54, 185, 0.1);
}

.two-factor-shell {
  position: relative;
  z-index: 1;
  width: min(100%, 980px);
  margin: 0 auto;
}

.two-factor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
}

.two-factor-brand img {
  width: 175px;
  height: auto;
}

.two-factor-security-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #71809c;
  font-size: 0.84rem;
  font-weight: 600;
}

.two-factor-security-badge i {
  color: #4da3ff;
}

.two-factor-content,
.two-factor-success-panel {
  padding: clamp(1.5rem, 4vw, 3.5rem);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #e3e9f3;
  border-radius: 24px;
  box-shadow: 0 24px 70px rgba(25, 47, 87, 0.1);
}

.two-factor-intro {
  max-width: 640px;
}

.two-factor-eyebrow {
  color: #4d72ae;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.two-factor-intro h1, .two-factor-success-panel h1 {
  margin: 0.45rem 0 0.75rem;
  color: #14213d;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 750;
  letter-spacing: -0.04em;
}

.two-factor-intro p, .two-factor-success-panel p {
  margin: 0;
  color: #71809c;
  font-size: 1rem;
  line-height: 1.7;
}

.two-factor-progress {
  display: flex;
  align-items: center;
  max-width: 520px;
  margin: 2rem 0 2.25rem;
}

.two-factor-progress__item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: #a0abc0;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.two-factor-progress__item span {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: #edf1f7;
  color: #8996ad;
}

.two-factor-progress__item.is-active {
  color: #345c9e;
}

.two-factor-progress__item.is-active span {
  background: #4da3ff;
  color: #fff;
  box-shadow: 0 5px 14px rgba(77, 163, 255, 0.28);
}

.two-factor-progress__line {
  flex: 1;
  height: 1px;
  margin: 0 1rem;
  background: #dce3ef;
}

.two-factor-setup-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr);
  gap: 1.25rem;
}

.two-factor-instructions {
  display: grid;
  gap: 1rem;
}

.two-factor-step-card, .two-factor-key-card, .two-factor-verify-card {
  border: 1px solid #e4eaf3;
  border-radius: 17px;
  background: #fff;
}

.two-factor-step-card {
  display: flex;
  gap: 1rem;
  padding: 1.35rem;
}

.two-factor-step-card h2, .two-factor-verify-card h2 {
  margin: 0 0 0.4rem;
  color: #1d2b49;
  font-size: 1.1rem;
  font-weight: 750;
}

.two-factor-step-card p, .two-factor-verify-card p {
  margin: 0;
  color: #7b88a0;
  font-size: 0.9rem;
  line-height: 1.6;
}

.two-factor-step-number {
  display: grid;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 9px;
  background: #edf5ff;
  color: #378ee3;
  font-weight: 800;
}

.two-factor-qr-card {
  display: grid;
  justify-items: center;
  gap: 0.8rem;
  padding: 1.35rem;
  border: 1px solid #e4eaf3;
  border-radius: 17px;
  background: #fff;
  text-align: center;
}

.two-factor-qr-card img {
  width: min(100%, 230px);
  aspect-ratio: 1;
  padding: 0.55rem;
  border: 1px solid #e4eaf3;
  border-radius: 12px;
  background: #fff;
}

.two-factor-qr-card p {
  margin: 0;
  color: #8996ad;
  font-size: 0.8rem;
}

.two-factor-key-card {
  padding: 1.35rem;
  background: linear-gradient(145deg, #f3f8ff, #f9f7ff);
}

.two-factor-key-card__label {
  margin-bottom: 0.7rem;
  color: #74829b;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.two-factor-key-card code {
  display: block;
  overflow-wrap: anywhere;
  color: #315994;
  font-size: clamp(0.9rem, 2vw, 1.15rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.8;
}

.two-factor-key-card small {
  display: block;
  margin-top: 0.7rem;
  color: #8996ad;
  font-size: 0.75rem;
}

.two-factor-verify-card {
  padding: 1.5rem;
  box-shadow: 0 12px 30px rgba(31, 55, 94, 0.06);
}

.two-factor-verify-card__icon {
  display: grid;
  width: 2.7rem;
  height: 2.7rem;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: 12px;
  background: #eaf4ff;
  color: #378ee3;
  font-size: 1.15rem;
}

.two-factor-verify-card .two-factor-step-number {
  margin-bottom: 0.9rem;
}

.two-factor-code-field {
  margin-top: 1.3rem;
}

.two-factor-code-field input {
  width: 100%;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
  outline: none;
  padding: 0.9rem 1rem;
  color: #1c2e50;
  font-size: 1.5rem;
  font-weight: 750;
  letter-spacing: 0.3em;
  text-align: center;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.two-factor-code-field input:focus {
  border-color: #4da3ff;
  box-shadow: 0 0 0 4px rgba(77, 163, 255, 0.13);
}

.two-factor-validation {
  display: block;
  margin-top: 0.5rem;
  color: #dc3545;
  font-size: 0.8rem;
}

.two-factor-error {
  margin-top: 0.8rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #ffd0d5;
  border-radius: 10px;
  background: #fff3f4;
  color: #b42334;
  font-size: 0.82rem;
}

.two-factor-primary-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin-top: 1.25rem;
  border: 0;
  border-radius: 11px;
  padding: 0.85rem 1.1rem;
  background: #4da3ff;
  color: #fff !important;
  font-size: 0.9rem;
  font-weight: 750;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(77, 163, 255, 0.2);
  transition: transform 0.2s, background 0.2s;
}

.two-factor-primary-button:hover {
  background: #378fe8;
  transform: translateY(-1px);
}

.two-factor-primary-button:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

.two-factor-primary-button--full {
  width: 100%;
}

.two-factor-help {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.25rem;
  color: #8996ad;
  font-size: 0.8rem;
}

.mfa-login-panel {
  max-width: 760px;
  margin: 0 auto;
}

.mfa-login-card {
  max-width: 500px;
  margin: 2rem auto 0;
  padding: 1.5rem;
  border: 1px solid #e4eaf3;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(31, 55, 94, 0.06);
}

.mfa-login-card h2 {
  margin: 0 0 0.4rem;
  color: #1d2b49;
  font-size: 1.1rem;
  font-weight: 750;
}

.mfa-login-card > p {
  margin: 0;
  color: #7b88a0;
  font-size: 0.9rem;
  line-height: 1.6;
}

.mfa-remember-machine {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 1rem;
  color: #71809c;
  font-size: 0.85rem;
}

.mfa-remember-machine input {
  accent-color: #4da3ff;
}

.mfa-recovery-link {
  margin-top: 1.25rem;
  color: #8996ad;
  font-size: 0.8rem;
  text-align: center;
}

.mfa-recovery-link a {
  color: #378fe8;
  font-weight: 700;
  text-decoration: none;
}

.mfa-recovery-link a:hover {
  text-decoration: underline;
}

.recovery-login-panel {
  max-width: 760px;
  margin: 0 auto;
}

.recovery-login-card {
  max-width: 500px;
  margin: 2rem auto 0;
  padding: 1.5rem;
  border: 1px solid #e4eaf3;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(31, 55, 94, 0.06);
}

.recovery-login-card h2 {
  margin: 0 0 0.4rem;
  color: #1d2b49;
  font-size: 1.1rem;
  font-weight: 750;
}

.recovery-login-card > p {
  margin: 0;
  color: #7b88a0;
  font-size: 0.9rem;
  line-height: 1.6;
}

.recovery-code-field input {
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-align: left;
}

.recovery-login-note {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 1.25rem;
  color: #8996ad;
  font-size: 0.78rem;
  line-height: 1.5;
}

.recovery-login-note i {
  margin-top: 0.15rem;
  color: #4da3ff;
}

.two-factor-success-panel {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}

.two-factor-success-icon {
  display: grid;
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.2rem;
  place-items: center;
  border-radius: 18px;
  background: #e9f9f0;
  color: #20a464;
  font-size: 1.5rem;
}

.two-factor-recovery-wrap {
  margin-top: 1.5rem;
  text-align: left;
}

.two-factor-recovery-codes {
  margin-top: 1.5rem;
  padding: 1.25rem;
  border: 2px solid #f1bd42;
  border-radius: 16px;
  background: linear-gradient(145deg, #fffaf0, #fff);
}

.two-factor-recovery-codes__header {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.two-factor-recovery-codes__icon {
  display: grid;
  flex: 0 0 2.6rem;
  width: 2.6rem;
  height: 2.6rem;
  place-items: center;
  border-radius: 11px;
  background: #fff0c7;
  color: #ae7610;
}

.two-factor-recovery-codes__eyebrow {
  color: #ae7610;
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.two-factor-recovery-codes h2 {
  margin: 0.2rem 0 0;
  color: #553d13;
  font-size: 1.1rem;
  font-weight: 800;
}

.two-factor-recovery-codes__warning {
  margin: 1rem 0;
  color: #745d31;
  font-size: 0.84rem;
  line-height: 1.6;
}

.two-factor-recovery-codes__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  padding: 0.9rem;
  border: 1px solid #f0d894;
  border-radius: 12px;
  background: #fffdf8;
}

.two-factor-recovery-codes__code {
  display: block;
  padding: 0.65rem 0.7rem;
  border: 1px solid #f0dfaf;
  border-radius: 8px;
  background: #fff;
  color: #533e18;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-align: center;
}

.two-factor-recovery-codes__footer {
  margin-top: 0.9rem;
  color: #8c7447;
  font-size: 0.75rem;
}

@media (max-width: 700px) {
  .two-factor-page {
    padding: 1rem 0.75rem 2rem;
  }
  .two-factor-header {
    margin-bottom: 1rem;
  }
  .two-factor-brand img {
    width: 145px;
  }
  .two-factor-security-badge span {
    display: none;
  }
  .two-factor-content, .two-factor-success-panel {
    border-radius: 18px;
    padding: 1.25rem;
  }
  .two-factor-progress__item strong {
    display: none;
  }
  .two-factor-setup-grid {
    grid-template-columns: 1fr;
  }
}
.mp-access-summary {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(109, 125, 153, 0.2);
  color: #66758f;
  font-size: 0.78rem;
  line-height: 1.35;
}

.mp-access-heading {
  color: #243858;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.mp-access-role {
  display: inline-block;
  min-width: 3.6rem;
  color: #243858;
  font-weight: 700;
}

/* Session timeout warning */
.session-timeout-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0.55);
}

.session-timeout-dialog {
  width: min(100%, 30rem);
  padding: 2rem;
  text-align: center;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 1.25rem;
  box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, 0.25);
}

.session-timeout-icon {
  width: 3.5rem;
  height: 3.5rem;
  display: grid;
  place-items: center;
  margin: 0 auto 1rem;
  color: #2563eb;
  background: #eff6ff;
  border-radius: 1rem;
  font-size: 1.35rem;
}

.session-timeout-dialog h2 {
  margin-bottom: 0.75rem;
  color: #172554;
  font-size: 1.35rem;
}

.session-timeout-dialog p {
  margin-bottom: 1.5rem;
  color: #64748b;
}

.student-class-sections {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.student-class-section-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.student-class-section-toggle__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.375rem;
  height: 1.375rem;
  padding: 0 0.375rem;
  border-radius: 999px;
  background-color: var(--bs-primary);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
}

.student-class-section-toggle__chevron {
  font-size: 0.75rem;
  color: var(--bs-secondary-color);
}

.student-class-section-view-more-row {
  padding: 0;
}

.student-class-section-view-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 0;
  background: transparent;
  color: var(--bs-primary);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
}

.student-class-section-view-more:hover {
  background-color: rgba(var(--bs-primary-rgb), 0.06);
}

.student-class-section-view-more__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.375rem;
  height: 1.375rem;
  padding: 0 0.375rem;
  border-radius: 999px;
  background-color: var(--bs-primary);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1;
}

.student-class-section-view-more__chevron {
  font-size: 0.6875rem;
  color: var(--bs-primary);
}

.student-class-pending-removal {
  font-size: 0.6875rem;
  font-weight: 600;
  white-space: nowrap;
}

.student-class-list .list-group-item {
  padding: 0.5rem 0.75rem;
}

.student-class-list__columns {
  background-color: var(--bs-light);
  border-bottom: 1px solid var(--bs-border-color);
}

.student-class-row {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) 8.75rem 8.75rem 2.25rem;
  gap: 0.35rem 0.625rem;
  align-items: center;
}

.student-class-row--header {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.student-class-row__class,
.student-class-row__group {
  min-width: 0;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.student-class-row__label {
  display: none;
}

.student-class-row__value {
  min-width: 0;
  overflow-wrap: anywhere;
}

.student-class-row__class a {
  color: inherit;
}

.student-class-row__starting,
.student-class-row__ending {
  display: flex;
  align-items: center;
}

.student-class-session-datetime {
  white-space: pre-line;
  line-height: 1.35;
}

.student-class-row__actions {
  display: flex;
  align-items: center;
  justify-content: center;
}

.student-class-row__starting .badge {
  white-space: nowrap;
  font-size: 0.6875rem;
  padding: 0.2em 0.45em;
  line-height: 1.2;
  font-weight: 500;
}

.student-class-row__actions .btn-sm {
  padding: 0.125rem 0.375rem;
  line-height: 1.2;
}

@media (max-width: 1199.98px) {
  .student-class-list__columns {
    display: none;
  }
  .student-class-list > .list-group-item-light {
    border: 0;
    background: transparent;
    padding-bottom: 0.25rem;
  }
  .student-class-list__card {
    margin-top: 0.5rem;
    border: 1px solid #c8ced8;
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.75rem;
    box-shadow: 0 1px 3px rgba(var(--bs-secondary-rgb), 0.1);
  }
  .student-class-list__columns + .student-class-list__card {
    margin-top: 0;
  }
  .student-class-row {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    position: relative;
    padding-right: 2.75rem;
    align-items: stretch;
  }
  .student-class-row__label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--bs-secondary-color);
    margin-bottom: 0.125rem;
    line-height: 1.2;
  }
  .student-class-row__value {
    font-size: 0.875rem;
    line-height: 1.35;
    min-width: 0;
  }
  .student-class-row__starting,
  .student-class-row__ending {
    display: block;
  }
  .student-class-row__actions {
    position: absolute;
    top: 0;
    right: 0;
    justify-content: flex-end;
  }
  .student-class-row__actions .btn-sm {
    padding: 0.375rem 0.5rem;
    min-width: 2.25rem;
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }
  .student-class-row__actions .btn-sm i {
    font-size: 1rem;
  }
  .student-class-row__starting .badge,
  .student-class-row__ending .badge {
    white-space: normal;
  }
}
@media (max-width: 1199.98px) and (min-width: 768px) {
  .student-class-list__card {
    padding: 1rem 1.125rem;
    border-radius: 0.625rem;
    margin-top: 0.625rem;
  }
  .student-class-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem 1.25rem;
    padding-right: 0;
  }
  .student-class-row__class {
    grid-column: 1/-1;
    padding-right: 3rem;
  }
  .student-class-row__label {
    font-size: 0.75rem;
    margin-bottom: 0.1875rem;
  }
  .student-class-row__value {
    font-size: 0.9375rem;
  }
  .student-class-row__actions {
    top: 0;
    right: 0;
  }
  .student-class-section-view-more {
    font-size: 0.875rem;
    padding: 0.75rem;
  }
}
.class-members-mobile-sheet__backdrop {
  position: fixed;
  inset: 0;
  z-index: 1090;
  border: 0;
  padding: 0;
  background: rgba(15, 23, 42, 0.36);
  pointer-events: auto;
}

.class-members-mobile-sheet__panel {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1100;
  width: 100%;
  box-sizing: border-box;
  pointer-events: auto;
  background: #fff;
  border-top: 1px solid #e6edf8;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.14);
  padding: 0.55rem 1rem calc(0.85rem + env(safe-area-inset-bottom));
}

.class-members-mobile-sheet__panel.is-expanded {
  max-height: min(72vh, 640px);
  overflow-y: auto;
}

.class-members-mobile-sheet__summary {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 3rem;
  padding: 0 0.15rem;
  border: 0;
  background: transparent;
  color: var(--bs-primary);
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
}

.class-members-mobile-sheet__summary .fa-chevron-up {
  margin-left: auto;
  font-size: 0.82rem;
  opacity: 0.75;
}

.class-members-mobile-sheet__collapse {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 0.15rem 0 0.55rem;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.class-members-mobile-sheet__handle-bar {
  display: block;
  width: 2.5rem;
  height: 0.28rem;
  border-radius: 999px;
  background: #cbd5e1;
}

.class-members-mobile-sheet__content {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.class-members-mobile-sheet__title {
  color: var(--bs-primary);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.class-members-mobile-sheet__subtitle {
  color: #8a96b0;
  font-size: 0.78rem;
  font-weight: 700;
}

.class-members-mobile-sheet__actions {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.class-members-mobile-sheet__action {
  width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 3rem;
  padding: 0 0.95rem;
  border: 1.5px solid #e3e8f2;
  border-radius: 14px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.class-members-mobile-sheet__action:hover,
.class-members-mobile-sheet__action:focus-visible {
  background: var(--members-action-hover-bg, rgba(var(--bs-primary-rgb), 0.08));
  border-color: rgba(var(--bs-primary-rgb), 0.24);
  outline: none;
}

.class-members-mobile-sheet__clear {
  width: 100%;
  min-height: 2.75rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #94a3b8;
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
}

.class-list-mobile-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.class-list-mobile-header-actions > * + * {
  margin-inline-start: 0.85rem;
}

button.class-list-mobile-select-all {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 1.85rem;
  padding: 0 0.65rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.35);
  border-radius: 999px;
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

button.class-list-mobile-select-all:hover,
button.class-list-mobile-select-all:focus-visible {
  background: rgba(var(--bs-primary-rgb), 0.06);
  border-color: rgba(var(--bs-primary-rgb), 0.5);
  outline: none;
}

.class-list-mobile-select-all.is-partial {
  background: rgba(var(--bs-primary-rgb), 0.08);
  border-color: rgba(var(--bs-primary-rgb), 0.45);
  color: var(--bs-primary);
}

.class-list-mobile-select-all.is-selected {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.class-list-mobile-select-all.is-selected:hover,
.class-list-mobile-select-all.is-selected:focus-visible {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  filter: brightness(0.96);
}

.class-list-mobile-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.class-list-mobile-card {
  padding: 1rem;
  border: 1px solid #e6edf8;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.class-list-mobile-card.is-selected {
  background: #fbfaff;
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  box-shadow: 0 10px 24px rgba(var(--bs-primary-rgb), 0.08);
}

.class-list-mobile-card__top {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.class-list-mobile-card__avatar {
  width: 2.35rem;
  height: 2.35rem;
  font-size: 0.75rem;
}

.class-list-mobile-card__copy {
  min-width: 0;
  flex: 1 1 auto;
}

button.class-list-mobile-card__delete-btn {
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
  margin-inline-start: auto;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1.5px solid #fda4af;
  border-radius: 10px;
  background: #fff;
  color: #ef4444;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

button.class-list-mobile-card__delete-btn:hover,
button.class-list-mobile-card__delete-btn:focus-visible {
  background: #fef2f2;
  border-color: #f87171;
  color: #dc2626;
  outline: none;
}

.class-list-mobile-card__name {
  display: block;
  color: var(--bs-secondary);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.25;
}

.class-list-mobile-card__meta {
  margin-top: 0.75rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.class-list-mobile-card__age-pill,
.class-list-mobile-card__award-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 0.7rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.2;
}

.class-list-mobile-card__age-pill {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: var(--bs-secondary);
}

.class-list-mobile-card__award-pill {
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #c2410c;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.class-list-mobile-card__award-pill.is-empty {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
  font-weight: 700;
}

.class-list-mobile-card__gender-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 30px;
  padding: 0 0.7rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.2;
}

.class-list-mobile-card__gender-chip.is-female {
  background: #fff1f2;
  border-color: #fda4af;
  color: #e11d48;
}

.class-list-mobile-card__gender-chip.is-male {
  background: #ecfeff;
  border-color: #7dd3fc;
  color: #0284c7;
}

.class-list-mobile-card__select-btn {
  margin-top: 0.85rem;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.5rem;
  padding: 0 1rem;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.35);
  border-radius: 12px;
  background: #fff;
  color: var(--bs-primary);
  font-size: 0.88rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.class-list-mobile-card__select-btn:hover,
.class-list-mobile-card__select-btn:focus-visible {
  background: rgba(var(--bs-primary-rgb), 0.06);
  border-color: rgba(var(--bs-primary-rgb), 0.5);
  outline: none;
}

.class-list-mobile-card__select-btn.is-selected {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), 0.22);
}

.class-list-mobile-card__select-btn.is-selected:hover,
.class-list-mobile-card__select-btn.is-selected:focus-visible {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  filter: brightness(0.96);
}

.class-list-mobile-card__date-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 0.7rem;
  border-radius: 999px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.2;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.class-list-mobile-card__actions {
  margin-top: 0.85rem;
  display: flex;
  align-items: stretch;
  gap: 0.55rem;
}

.class-list-mobile-card__actions-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.5rem;
}

.class-list-mobile-card__action-btn {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 2.5rem;
  padding: 0 0.85rem;
  border-radius: 12px;
  font-size: 0.88rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.class-list-mobile-card__action-btn.is-primary {
  border: 1px solid var(--bs-primary);
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), 0.18);
}

.class-list-mobile-card__action-btn.is-primary:hover,
.class-list-mobile-card__action-btn.is-primary:focus-visible {
  filter: brightness(0.96);
  outline: none;
}

.class-list-mobile-card__action-btn.is-danger {
  border: 1px solid #fca5a5;
  background: #fff;
  color: #dc2626;
}

.class-list-mobile-card__action-btn.is-danger.is-full {
  flex: 1 1 100%;
}

.class-list-mobile-card__action-btn.is-danger:hover,
.class-list-mobile-card__action-btn.is-danger:focus-visible {
  background: #fef2f2;
  border-color: #f87171;
  outline: none;
}

.class-list-mobile-card__select-btn.is-inline {
  margin-top: 0;
  width: auto;
  flex: 1 1 0;
}

.class-list-mobile-card__action-btn .fa-paper-plane {
  font-size: 0.82rem;
}

.class-list-mobile-card__status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 0.7rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.2;
  border: 1px solid transparent;
}

.class-list-mobile-card__status-pill.is-attended {
  background: #ecfdf5;
  border-color: #6ee7b7;
  color: #047857;
}

.class-list-mobile-card__status-pill.is-absent {
  background: #fff7ed;
  border-color: #fdba74;
  color: #c2410c;
}

.class-list-mobile-card__status-pill.is-none {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #64748b;
}

@media (max-width: 575.98px) {
  .class-list-mobile-card {
    padding: 0.9rem;
    border-radius: 16px;
  }
  .class-list-mobile-card__name {
    font-size: 0.95rem;
  }
  .class-list-mobile-card__age-pill,
  .class-list-mobile-card__award-pill,
  .class-list-mobile-card__date-pill,
  .class-list-mobile-card__status-pill,
  .class-list-mobile-card__gender-chip {
    min-height: 26px;
    padding: 0 0.55rem;
    font-size: 0.72rem;
  }
  .class-list-mobile-card__select-btn,
  .class-list-mobile-card__action-btn {
    min-height: 2.35rem;
    font-size: 0.82rem;
  }
}

/* ============================================================
   CLASS MANAGEMENT  (admin Add/Edit Classes page)
   Ported verbatim from class-management-handoff.html, scoped to
   .cm-page so the page's generic class names (.seg, .line, .chip,
   .form-label …) cannot leak into the rest of the app.
   The brand demo :root block is intentionally NOT copied — brand
   colours arrive from ClubCssStyles as --bs-primary / --bs-secondary.
   ============================================================ */
.cm-page {
  /* on-brand text colours (text that sits ON a brand fill) */
  --m-on-primary: var(--bs-primary-foreground, #ffffff);
  --m-on-secondary: var(--bs-secondary-foreground, #ffffff);
  --m-primary-mid: rgba(var(--bs-primary-rgb), .85);

  /* brand-derived emphasis tokens the handoff expects Bootstrap to supply */
  --bs-primary-text-emphasis: color-mix(in srgb, var(--bs-primary) 78%, black);
  --bs-emphasis-color: var(--bs-secondary);

  /* Neutral surface tokens (native Bootstrap values, pinned so the page
     renders identically to the handoff) */
  --bs-body-bg: #f1f3f6;
  --bs-body-color: #374151;
  --bs-secondary-color: #8a96b0;
  --bs-tertiary-bg: #f4f6f9;
  --bs-secondary-bg: #eef1f5;
  --bs-border-color: #e5e7eb;

  --shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 8px 24px rgba(16, 24, 40, .06);

  /* The handoff specifies Inter; the app is set in Nunito, so inherit
     the app's body font rather than loading a second typeface. */
  font-family: var(--bs-body-font-family, "Nunito", sans-serif);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  -webkit-font-smoothing: antialiased;
}

/* ═══════════════════════════════════════════════════════════════
   PAGE FRAME
═══════════════════════════════════════════════════════════════ */
.cm-page .frame { max-width: 1240px; margin: 14px auto 28px; border: 1px solid var(--bs-border-color); border-radius: 18px; overflow: hidden; background: var(--bs-body-bg); box-shadow: var(--shadow-card); }
/* Table View uses the full main column so wide grids need less sideways scroll. */
.cm-page.is-table-view .frame {
  max-width: none;
  width: auto;
  margin: 14px 12px 28px;
}
.cm-page.is-table-view .tv-card {
  margin: 16px 12px 20px;
}

.cm-page .page-head { background: var(--bs-white, #fff); border-bottom: 1px solid var(--bs-border-color); padding: 18px 24px; }
.cm-page .crumb { font-size: .78rem; font-weight: 700; color: var(--bs-secondary-color); }
.cm-page .crumb a { color: var(--bs-primary); text-decoration: none; }
.cm-page .page-title { margin: 4px 0 0; font-size: 1.5rem; font-weight: 800; color: var(--bs-emphasis-color); letter-spacing: -.01em; }

/* ── Two-pane layout ── */
.cm-page .cm-layout { display: flex; align-items: flex-start; gap: 20px; padding: 20px 24px 28px; }
.cm-page .cm-sidebar { flex: 0 0 320px; width: 320px; position: sticky; top: 16px; }
.cm-page .cm-main { flex: 1 1 auto; min-width: 0; }

.cm-page .card-box { background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 14px; box-shadow: var(--shadow-card); }

/* ── Sidebar tree ── */
.cm-page .side-head { display: flex; align-items: center; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--bs-tertiary-bg); font-weight: 800; color: var(--bs-emphasis-color); font-size: .95rem; }
.cm-page .side-head .bi { color: var(--bs-primary); }
.cm-page .side-body { padding: 14px 14px 12px; }
/* Mobile-only tree collapse toggle */
.cm-page .side-toggle { display: none; margin-left: auto; border: 1px solid var(--bs-border-color); background: var(--bs-white, #fff); color: var(--bs-secondary-color); border-radius: 8px; width: 30px; height: 30px; align-items: center; justify-content: center; cursor: pointer; }
.cm-page .side-toggle .bi { color: var(--bs-secondary-color); font-size: .85rem; transition: transform .15s ease; }
.cm-page .cm-sidebar.collapsed .side-toggle .bi { transform: rotate(-90deg); }

/* Active / Inactive segmented toggle */
.cm-page .seg { display: flex; background: var(--bs-tertiary-bg); border-radius: 10px; padding: 3px; gap: 4px; margin-bottom: 12px; }
.cm-page .seg-btn { flex: 1; text-align: center; padding: 7px 10px; border-radius: 6px; border: none; cursor: pointer; font-family: inherit; font-weight: 700; font-size: .82rem; background: transparent; color: var(--bs-secondary-color); }
.cm-page .seg-btn.active { background: var(--bs-white, #fff); color: var(--bs-emphasis-color); box-shadow: 0 1px 2px rgba(16, 24, 40, .10); }
.cm-page .seg.seg-sm { margin-bottom: 0; }
.cm-page .seg.seg-sm .seg-btn { padding: 5px 12px; font-size: .76rem; }

.cm-page .tree { max-height: calc(100vh - 240px); overflow-y: auto; }
.cm-page .cls-row:focus-visible, .cm-page .grp:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 1px; }

/* Class row — the CHEVRON toggles expansion, clicking the NAME selects the class */
.cm-page .cls-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; cursor: pointer; border-left: 2px solid transparent; }
.cm-page .cls-row:hover { background: var(--bs-tertiary-bg); }
.cm-page .cls-row.selected { background: var(--bs-primary-bg-subtle); border-left-color: var(--bs-primary); }
.cm-page .cls-chev-btn { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: none; background: transparent; border-radius: 6px; color: var(--bs-secondary-color); cursor: pointer; padding: 0; }
.cm-page .cls-chev-btn:hover { background: var(--bs-primary-bg-subtle); color: var(--bs-primary); }
.cm-page .cls-chev-btn .bi { font-size: .8rem; transition: transform .15s ease; }
.cm-page .cls.collapsed .cls-chev-btn .bi { transform: rotate(-90deg); }
.cm-page .tree-name { position: relative; flex: 1 1 auto; min-width: 0; }
.cm-page .cls-name { display: block; font-size: .86rem; font-weight: 700; color: var(--bs-emphasis-color); background: transparent; border: none; padding: 0; text-align: left; font-family: inherit; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-page .cls-row.selected .cls-name { color: var(--bs-primary-text-emphasis); }
.cm-page .cls-actions { margin-left: auto; flex-shrink: 0; opacity: 0; transition: opacity .12s; }
.cm-page .cls-row:hover .cls-actions, .cm-page .cls-row:focus-within .cls-actions { opacity: 1; }

.cm-page .grp { display: flex; align-items: center; gap: 8px; padding: 6px 10px 6px 36px; border-radius: 8px; cursor: pointer; border-left: 2px solid transparent; }
.cm-page .grp:hover { background: var(--bs-tertiary-bg); }
.cm-page .grp.selected { background: var(--bs-primary-bg-subtle); border-left-color: var(--bs-primary); }
.cm-page .grp-name { display: block; font-size: .84rem; font-weight: 600; color: var(--bs-body-color); background: transparent; border: none; padding: 0; text-align: left; font-family: inherit; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-page .grp-name.untitled { font-style: italic; color: var(--bs-secondary-color); }
.cm-page .grp.selected .grp-name { color: var(--bs-primary-text-emphasis); font-weight: 500; }
.cm-page .grp-dots { margin-left: auto; flex-shrink: 0; opacity: 0; transition: opacity .12s; }

/* Full name tip — fixed so the sidebar/tree overflow cannot clip it.
   Sit fully above the row (translateY -100%) so long names never cover + / ⋯. */
.cm-page .tree-name-tip {
  position: fixed;
  z-index: 1080;
  max-width: min(340px, 70vw);
  padding: 6px 10px;
  background: var(--bs-white, #fff);
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(16, 24, 40, .14);
  color: var(--bs-emphasis-color);
  font-size: .84rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
  pointer-events: none;
  transform: translateY(calc(-100% - 8px));
}
.cm-page .tree-name-tip.is-class { font-weight: 700; font-size: .86rem; }

/* New Class CTA — dashed, active view only */
.cm-page .new-class-btn { display: flex; align-items: center; gap: 8px; width: calc(100% - 12px); margin: 10px 6px 4px;
  padding: 8px 10px; background: transparent; border: 1.5px dashed var(--bs-border-color); border-radius: 8px;
  cursor: pointer; color: var(--bs-primary); font-size: .8rem; font-weight: 700; }
.cm-page .new-class-btn:hover { background: var(--bs-primary-bg-subtle); border-color: var(--bs-primary); }
.cm-page .grp:hover .grp-dots, .cm-page .grp.selected .grp-dots, .cm-page .grp:focus-within .grp-dots { opacity: 1; }

/* Duplicate-group flash (tree highlight after Duplicate group) */
@keyframes dupFlash {
  0%   { background: rgba(var(--bs-primary-rgb), .35); }
  100% { background: var(--bs-primary-bg-subtle); }
}
.cm-page .grp.dup-flash { animation: dupFlash 1.2s ease-out 1; }

.cm-page .icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; border: none; background: transparent; color: var(--bs-secondary-color); cursor: pointer; }
.cm-page .icon-btn:hover { background: var(--bs-primary-bg-subtle); color: var(--bs-primary); }

/* Portaled context menu (tree "+" and "⋯" — fixed-position so the
   scrolling tree can never clip it) */
.cm-page .ctx-menu { position: fixed; z-index: 1080; min-width: 210px; background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 12px; box-shadow: var(--shadow-card); padding: 6px; max-height: calc(100vh - 24px); overflow-y: auto; }
.cm-page .ctx-item { display: flex; align-items: center; gap: 9px; width: 100%; border: none; background: transparent; text-align: left; padding: 8px 10px; border-radius: 8px; font-family: inherit; font-size: .84rem; font-weight: 600; color: var(--bs-emphasis-color); cursor: pointer; }
.cm-page .ctx-item:hover { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); }
.cm-page .ctx-item .bi { color: var(--bs-primary); }
.cm-page .ctx-item.danger, .cm-page .ctx-item.danger .bi { color: var(--bs-danger); }
.cm-page .ctx-item.danger:hover { background: var(--bs-danger-bg-subtle); }
.cm-page .ctx-head { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--bs-secondary-color); padding: 6px 10px 4px; }

/* Toast — bottom-centre floating status pill */
.cm-page .dup-pill { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 1090; display: flex; align-items: center; gap: 8px; background: var(--bs-secondary); color: var(--m-on-secondary); font-size: .82rem; font-weight: 700; border-radius: 999px; padding: 9px 18px; box-shadow: var(--shadow-card); }
.cm-page .dup-pill .bi { color: var(--bs-primary); }

/* ── Detail panel ── */
.cm-page .detail-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 18px 20px 0; }
.cm-page .detail-title { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--bs-emphasis-color); }
.cm-page .detail-sub { margin: 2px 0 0; font-size: .82rem; color: var(--bs-secondary-color); }

/* Card "Edit" button — opens the matching form in a pop-up dialog */
.cm-page .card-edit { display: inline-flex; align-items: center; gap: 5px; background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 8px; padding: 4px 12px; font-size: .75rem; font-weight: 600; color: var(--bs-primary); cursor: pointer; flex-shrink: 0; }
.cm-page .card-edit:hover { background: var(--bs-primary-bg-subtle); }
.cm-page .card-edit .bi { font-size: .7rem; }
.cm-page .sec-label .card-edit { margin-left: auto; }

/* Edit pop-up (Group Info / Times / Subscriptions) */
.cm-page .cm-backdrop { position: fixed; inset: 0; background: rgba(15, 20, 40, .45); z-index: 1070; }
.cm-page .cm-dialog { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 880px; max-width: 94vw; max-height: 90vh; display: flex; flex-direction: column; background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 14px; box-shadow: 0 24px 70px rgba(15, 20, 40, .30); z-index: 1071; }
.cm-page .cm-backdrop.cm-stack-above { z-index: 1080; }
.cm-page .cm-dialog.cm-stack-above { z-index: 1081; }
.cm-page .cm-dialog-wide { width: 1180px; }
.cm-page .cm-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 22px; border-bottom: 1px solid var(--bs-border-color-translucent); flex-shrink: 0; }
.cm-page .cm-dialog-head h4 { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--bs-secondary); letter-spacing: -.3px; display: flex; align-items: center; gap: 8px; }
.cm-page .cm-dialog-head h4 .bi { color: var(--bs-primary); }
.cm-page .cm-dialog-head h4 .dlg-sub { font-weight: 500; color: var(--bs-secondary-color); font-size: .9rem; }
.cm-page .cm-dialog-close { background: none; border: none; color: var(--bs-secondary-color); font-size: 1.05rem; line-height: 1; padding: 4px; cursor: pointer; }
.cm-page .cm-dialog-body { padding: 20px 22px; overflow-y: auto; }
.cm-page .tab-body { padding: 18px 20px 22px; }

.cm-page .sec-label { font-size: .68rem; font-weight: 800; color: var(--bs-primary-text-emphasis); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.cm-page .sec-label .count { color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); border-radius: 999px; padding: 1px 8px; font-size: .66rem; }
.cm-page .sec-label .sec-sum { margin-left: auto; font-size: .7rem; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--bs-secondary-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }

/* Payment-structure banner (read-only) */
.cm-page .pay-banner { display: flex; align-items: center; gap: 10px; border: 1px solid var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); border-radius: 12px; padding: 12px 16px; margin-bottom: 18px; }
.cm-page .pay-banner .bi { color: var(--bs-primary); font-size: 1.1rem; }
.cm-page .pay-banner .pb-label { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--bs-secondary-color); }
.cm-page .pay-banner .pb-value { font-size: .9rem; font-weight: 800; color: var(--bs-primary-text-emphasis); }

/* Overview hero */
.cm-page .ov-hero { display: flex; gap: 14px; align-items: flex-start; border: 1px solid var(--bs-tertiary-bg); border-radius: 14px; padding: 16px 18px; background: var(--bs-white, #fff); }
.cm-page .ov-hero-ico { width: 42px; height: 42px; border-radius: 12px; background: var(--bs-primary-bg-subtle); color: var(--bs-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 1.15rem; flex-shrink: 0; }
.cm-page .ov-hero h3 { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--bs-emphasis-color); }
.cm-page .ov-hero .cls-ref { font-size: .82rem; color: var(--bs-secondary-color); font-weight: 600; }
.cm-page .ov-hero p { margin: 8px 0 0; font-size: .86rem; color: var(--bs-body-color); line-height: 1.5; }
/* Overview two-card layout (info + image) when a group has an image */
.cm-page .ov-header-row { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.cm-page .ov-header-row .ov-hero { flex: 1 1 380px; }
.cm-page .ov-image-card { flex: 1 1 260px; min-width: 220px; border: 1px solid var(--bs-secondary-bg); border-radius: 14px; overflow: hidden; background: var(--bs-white, #fff); box-shadow: var(--shadow-card); min-height: 140px; display: flex; }
.cm-page .ov-image-card img { width: 100%; height: 100%; min-height: 140px; max-height: 220px; object-fit: cover; display: block; }
.cm-page .ov-image-card .ov-youtube,
.cm-page .ov-image-card iframe {
  width: 100%;
  min-height: 140px;
  max-height: 220px;
  border: 0;
  background: #000;
}
/* Small text cards (description / notes) sitting beside the overview hero */
.cm-page .ov-note-card { flex: 1 1 200px; min-width: 0; border: 1px solid var(--bs-tertiary-bg); border-radius: 14px; padding: 12px 14px; background: var(--bs-white, #fff); box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
.cm-page .ov-note-label { font-size: .64rem; font-weight: 800; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .06em; display: flex; align-items: center; gap: 6px; }
.cm-page .ov-note-label .bi { color: var(--bs-primary); }
.cm-page .ov-note-card p { margin: 6px 0 0; font-size: .84rem; color: var(--bs-body-color); line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.cm-page .ov-note-card p.ov-note-empty { font-style: italic; color: var(--bs-secondary-color); }

/* Fact tiles */
.cm-page .fact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-top: 16px; }
.cm-page .fact-tile { border: 1px solid var(--bs-tertiary-bg); border-radius: 12px; padding: 12px 14px; background: #fafbfc; }
.cm-page .fact-label { font-size: .64rem; font-weight: 800; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .06em; display: flex; align-items: center; gap: 6px; }
.cm-page .fact-label .bi { color: var(--bs-primary); }
.cm-page .fact-value { font-size: .92rem; font-weight: 700; color: var(--bs-emphasis-color); margin-top: 5px; }

.cm-page .fact-tile--capacity .class-capacity-bar {
  margin-top: 8px;
}

.cm-page .fact-tile--capacity .classes-admin-explorer__cap-head {
  margin-bottom: 0.4rem;
  font-size: 0.88rem;
  font-weight: 800;
}

.cm-page .fact-tile--capacity .classes-admin-explorer__cap-track {
  height: 10px;
}

.cm-page .class-capacity-bar__note {
  margin-top: 0.4rem;
  color: var(--bs-secondary-color);
  font-size: 0.72rem;
  font-weight: 700;
}

.cm-page .class-capacity-bar--sessions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.cm-page .class-capacity-bar__session-label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.35rem;
  color: var(--bs-emphasis-color);
  font-size: 0.78rem;
  font-weight: 800;
}

.cm-page .class-capacity-bar__session-label .classes-admin-explorer__session-pill {
  margin-top: 0;
}

.cm-page .line-main {
  flex: 1 1 auto;
  min-width: 0;
}

.cm-page .line--with-capacity {
  align-items: center;
  gap: 14px;
}

.cm-page .line-capacity {
  flex: 0 0 168px;
  width: 168px;
  max-width: 168px;
  margin-top: 0;
  margin-left: auto;
}

.cm-page .line-capacity .class-capacity-bar--inline .classes-admin-explorer__cap-head {
  margin-bottom: 0.3rem;
  font-size: 0.8rem;
  font-weight: 800;
}

.cm-page .line-capacity .class-capacity-bar--inline .classes-admin-explorer__cap-track {
  height: 8px;
}

.cm-page .line-capacity .class-capacity-bar--inline .class-capacity-bar__session-label {
  margin-bottom: 0.3rem;
  justify-content: flex-end;
}

.cm-page .line-capacity .class-capacity-bar--inline .classes-admin-explorer__session-pill {
  font-size: 0.72rem;
}

@media (max-width: 767.98px) {
  .cm-page .line--with-capacity {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .cm-page .line--with-capacity .line-main {
    flex: 1 1 calc(100% - 28px);
  }

  .cm-page .line--with-capacity .line-capacity {
    flex: 1 1 100%;
    width: auto;
    max-width: none;
    margin-left: 1.55rem;
    margin-top: 0.45rem;
  }
}
.cm-page .fact-sub { font-size: .72rem; color: var(--bs-secondary-color); margin-top: 2px; }

/* Info cards (times / subs / staff) */
.cm-page .info-card { border: 1px solid var(--bs-tertiary-bg); border-radius: 14px; padding: 16px 18px; background: var(--bs-white, #fff); margin-top: 16px; }
.cm-page .line { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-top: 1px solid var(--bs-tertiary-bg); }
.cm-page .line:first-of-type { border-top: none; }
.cm-page .line .bi-lead { color: var(--bs-primary); font-size: .9rem; margin-top: 2px; }
.cm-page .line-title { font-size: .85rem; font-weight: 700; color: var(--bs-emphasis-color); }
.cm-page .line-sub { font-size: .78rem; color: var(--bs-secondary-color); display: flex; align-items: center; gap: 5px; margin-top: 1px; flex-wrap: wrap; }
.cm-page .line-sub .bi { color: var(--bs-primary); }
.cm-page .line-right { margin-left: auto; font-size: .82rem; color: var(--bs-body-color); white-space: nowrap; display: flex; align-items: center; gap: 8px; }

.cm-page .chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 999px; background: var(--bs-primary-bg-subtle); border: 1px solid var(--bs-primary-border-subtle); color: var(--bs-primary-text-emphasis); font-size: .72rem; font-weight: 700; white-space: nowrap; }

/* Status badges */
.cm-page .badge-status { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; }
.cm-page .badge-status.on  { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
.cm-page .badge-status.off { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }

/* Forms */
.cm-page .form-sec { border: 1px solid var(--bs-tertiary-bg); border-radius: 14px; padding: 16px 18px; background: var(--bs-white, #fff); margin-bottom: 16px; }
.cm-page .form-label { font-size: .74rem; font-weight: 700; color: var(--bs-emphasis-color); margin-bottom: 5px; }
.cm-page .form-label .req { color: var(--bs-danger); }
.cm-page .form-hint { font-size: .72rem; color: var(--bs-secondary-color); margin-top: 4px; line-height: 1.45; }
.cm-page .check-row { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; }
.cm-page .check-row .ct { font-size: .84rem; font-weight: 600; color: var(--bs-emphasis-color); }
.cm-page .check-row .cd { font-size: .74rem; color: var(--bs-secondary-color); margin-top: 1px; line-height: 1.45; }
.cm-page .check-row.sub-opt { margin-left: 28px; padding-top: 0; }
.cm-page .form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); }
.cm-page .form-control:focus, .cm-page .form-select:focus { border-color: var(--bs-primary); box-shadow: 0 0 0 3px var(--bs-primary-bg-subtle); }
.cm-page .char-count { font-size: .7rem; color: var(--bs-secondary-color); text-align: right; margin-top: 3px; }

/* Trials yes/no segmented buttons */
.cm-page .trial-seg { display: flex; gap: 10px; flex-wrap: wrap; }
.cm-page .trial-btn { border: 1px solid var(--bs-border-color); background: var(--bs-white, #fff); border-radius: 10px; padding: 9px 16px; font-family: inherit; font-size: .82rem; font-weight: 700; color: var(--bs-body-color); cursor: pointer; }
.cm-page .trial-btn.active { border-color: var(--bs-primary); background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); }

/* Upload drop-zones */
.cm-page .upload-box { border: 1.5px dashed var(--bs-border-color); border-radius: 12px; padding: 18px; text-align: center; color: var(--bs-secondary-color); font-size: .8rem; background: var(--bs-tertiary-bg); }
.cm-page .upload-box .bi { font-size: 1.3rem; color: var(--bs-primary); display: block; margin-bottom: 6px; }

/* Defaults-from-groups list (class overview) */
.cm-page .default-line { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--bs-tertiary-bg); font-size: .84rem; }
.cm-page .default-line:first-of-type { border-top: none; }
.cm-page .default-line .bi { color: var(--bs-primary); }
.cm-page .default-src { margin-left: auto; font-size: .74rem; color: var(--bs-secondary-color); white-space: nowrap; }

/* Staff (subgroups) table — real <table> so it can stack on mobile */
.cm-page .staff-table { width: 100%; border-collapse: collapse; }
.cm-page .staff-table th { font-size: .66rem; font-weight: 800; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .05em; padding: 0 10px 8px 0; border-bottom: 1px solid var(--bs-tertiary-bg); text-align: left; }
.cm-page .staff-table td { padding: 12px 10px 12px 0; border-top: 1px solid var(--bs-tertiary-bg); font-size: .84rem; vertical-align: middle; }
.cm-page .staff-table td.coach { font-weight: 700; color: var(--bs-emphasis-color); white-space: nowrap; }
.cm-page .staff-table td.coach .bi { color: var(--bs-primary); margin-right: 6px; }

/* Times / Subscriptions cards */
.cm-page .stack-card { border: 1px solid var(--bs-tertiary-bg); border-radius: 12px; padding: 14px 18px; background: var(--bs-white, #fff); margin-bottom: 12px; display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.cm-page .stack-card .lead-ico { width: 36px; height: 36px; border-radius: 10px; background: var(--bs-primary-bg-subtle); color: var(--bs-primary); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cm-page .stack-main { min-width: 0; flex: 1 1 260px; }
.cm-page .stack-title { font-size: .9rem; font-weight: 700; color: var(--bs-emphasis-color); }
.cm-page .stack-meta { font-size: .78rem; color: var(--bs-secondary-color); display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 3px; }
.cm-page .stack-meta .bi { color: var(--bs-primary); }
.cm-page .stack-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; margin-left: auto; }

/* Apply-to-all-groups switch row (Subscriptions) */
.cm-page .apply-all { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; border: 1px solid var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); border-radius: 12px; padding: 12px 16px; margin-bottom: 16px; }
.cm-page .apply-all .st { font-size: .85rem; font-weight: 700; color: var(--bs-primary-text-emphasis); }
.cm-page .apply-all .sd { font-size: .74rem; color: var(--bs-secondary-color); margin-top: 1px; }

.cm-page .btn-brand { --bs-btn-color: var(--m-on-primary); --bs-btn-bg: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-color: var(--m-on-primary); --bs-btn-hover-bg: var(--m-primary-mid); --bs-btn-hover-border-color: var(--m-primary-mid); --bs-btn-active-bg: var(--m-primary-mid); --bs-btn-active-border-color: var(--m-primary-mid); font-weight: 700; }
.cm-page .btn-brand-soft { --bs-btn-color: var(--bs-primary-text-emphasis); --bs-btn-bg: var(--bs-primary-bg-subtle); --bs-btn-border-color: var(--bs-primary-border-subtle); --bs-btn-hover-bg: var(--bs-primary-border-subtle); --bs-btn-hover-border-color: var(--bs-primary-border-subtle); --bs-btn-hover-color: var(--bs-primary-text-emphasis); font-weight: 700; }

.cm-page .save-footer { display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--bs-tertiary-bg); padding-top: 16px; margin-top: 4px; }

/* Loading / empty states (real-app additions, styled to the handoff) */
.cm-page .cm-state { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 28px 16px; font-size: .84rem; color: var(--bs-secondary-color); }
.cm-page .cm-empty-state { padding: 48px 20px; text-align: center; color: var(--bs-secondary-color); }
.cm-page .cm-empty-state .bi { font-size: 1.9rem; color: var(--bs-primary); display: block; margin-bottom: 10px; }
.cm-page .cm-empty-state .es-title { font-size: .92rem; font-weight: 700; color: var(--bs-emphasis-color); }
.cm-page .cm-empty-state .es-sub { font-size: .8rem; margin-top: 3px; }
.cm-page .tree-empty { padding: 24px 8px; color: var(--bs-secondary-color); font-size: .84rem; text-align: center; }
.cm-page .grp-empty { padding: 4px 10px 8px 36px; color: var(--bs-secondary-color); font-size: .78rem; font-style: italic; }

/* Flat search results, standing in for the tree while it is folded away */
.cm-page .side-results { display: none; max-height: 320px; overflow-y: auto; }
.cm-page .sr-item { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 10px; border: none; border-left: 2px solid transparent; border-radius: 8px; background: transparent; text-align: left; font-family: inherit; cursor: pointer; }
.cm-page .sr-item:hover { background: var(--bs-tertiary-bg); }
.cm-page .sr-item.selected { background: var(--bs-primary-bg-subtle); border-left-color: var(--bs-primary); }
.cm-page .sr-item .bi { color: var(--bs-primary); font-size: .85rem; flex-shrink: 0; }
.cm-page .sr-item-group { padding-left: 24px; }
.cm-page .sr-name { font-size: .86rem; font-weight: 700; color: var(--bs-emphasis-color); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-page .sr-item.selected .sr-name { color: var(--bs-primary-text-emphasis); }
.cm-page .sr-kind { margin-left: auto; max-width: 45%; font-size: .7rem; font-weight: 600; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cm-page .sr-empty { padding: 16px 8px; text-align: center; font-size: .82rem; color: var(--bs-secondary-color); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .cm-page .cm-layout { flex-direction: column; }
  .cm-page .cm-sidebar { width: 100%; flex-basis: auto; position: static; }
  .cm-page .cm-main { width: 100%; align-self: stretch; }
  .cm-page .tree { max-height: 320px; }
  /* No hover on touch — keep row actions always visible */
  .cm-page .cls-actions, .cm-page .grp-dots { opacity: 1; }
  .cm-page .side-toggle { display: inline-flex; }
  /* Collapsed folds the filters and tree away but keeps search reachable. */
  .cm-page .cm-sidebar.collapsed .side-body > .seg,
  .cm-page .cm-sidebar.collapsed .side-body > .tree,
  .cm-page .cm-sidebar.collapsed .side-body > .cm-state { display: none; }
  .cm-page .cm-sidebar.collapsed .side-results { display: block; }
}
@media (max-width: 640px) {
  .cm-page .staff-table thead { display: none; }
  .cm-page .staff-table, .cm-page .staff-table tbody, .cm-page .staff-table tr, .cm-page .staff-table td { display: block; width: 100%; }
  .cm-page .staff-table tr { border: 1px solid var(--bs-tertiary-bg); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
  .cm-page .staff-table td { border: none; padding: 4px 0; }
  .cm-page .staff-table td::before { content: attr(data-label); display: inline-block; min-width: 96px; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); }
}

/* ── Table View (global overview) ── */
.cm-page .page-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cm-page .page-head-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; flex-wrap: wrap; }
.cm-page .cm-loc-filter { position: relative; }
.cm-page .cm-loc-filter .tv-btn { padding: 7px 12px; gap: 7px; max-width: 220px; }
.cm-page .cm-loc-filter .tv-btn > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.cm-page .cm-loc-filter .tv-btn.is-active { border-color: var(--bs-primary); color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .06); }
.cm-page .cm-loc-filter__backdrop { position: fixed; inset: 0; z-index: 1055; border: 0; margin: 0; padding: 0; background: transparent; cursor: default; }
.cm-page .cm-loc-menu { right: auto; left: 0; min-width: 220px; max-width: min(280px, 80vw); max-height: min(320px, 50vh); overflow: auto; z-index: 1060; }
.cm-page .cm-loc-menu__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); padding-bottom: 4px; margin-bottom: 2px; border-bottom: 1px solid var(--bs-border-color); }
.cm-page .cm-loc-menu__clear { border: none; background: transparent; color: var(--bs-primary); font-family: inherit; font-size: .72rem; font-weight: 700; text-transform: none; letter-spacing: 0; cursor: pointer; padding: 0; }
.cm-page .cm-loc-menu__clear:hover { text-decoration: underline; }
.cm-page .view-seg { margin-bottom: 0; flex: 0 0 auto; }
.cm-page .view-seg .seg-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; font-size: .78rem; }
.cm-page .view-seg .seg-btn.active { color: var(--bs-primary); }
.cm-page .tv-card { margin: 20px 24px; padding: 20px; }
.cm-page .tv-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.cm-page .tv-search { position: relative; flex: 1 1 220px; min-width: 180px; }
.cm-page .tv-search > i { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--bs-secondary-color); font-size: .8rem; }
.cm-page .tv-search > input { padding-left: 30px; font-size: .8rem; border-radius: 8px; }
.cm-page .tv-filter { width: auto; flex: 0 1 auto; font-size: .8rem; border-radius: 8px; max-width: 190px; }
.cm-page .tv-toolbar-right { display: flex; gap: 8px; margin-left: auto; }
.cm-page .tv-cols-wrap { position: relative; }
.cm-page .tv-btn { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--bs-border-color); background: var(--bs-white, #fff); border-radius: 8px; padding: 5px 12px; font-family: inherit; font-size: .78rem; font-weight: 600; color: var(--bs-secondary); cursor: pointer; white-space: nowrap; }
.cm-page .tv-btn:hover { border-color: var(--bs-primary); color: var(--bs-primary); }
.cm-page .tv-btn-sm { padding: 3px 9px; font-size: .72rem; }
.cm-page .tv-colmenu { position: absolute; right: 0; top: calc(100% + 6px); background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 10px; box-shadow: 0 10px 28px rgba(var(--bs-secondary-rgb), .16); padding: 10px 12px; z-index: 1060; display: flex; flex-direction: column; gap: 6px; min-width: 190px; }
.cm-page .tv-colmenu label { display: flex; align-items: center; gap: 8px; font-size: .78rem; cursor: pointer; margin: 0; }
.cm-page .tv-colmenu .form-check-input { margin: 0; }
.cm-page .tv-hint { font-size: .75rem; color: var(--bs-secondary-color); margin-bottom: 10px; }
.cm-page .tv-wrap { overflow: auto; max-height: 68vh; border: 1px solid var(--bs-border-color); border-radius: 10px; }
.cm-page .tv-table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: .78rem; }
.cm-page .tv-th { position: sticky; top: 0; z-index: 3; background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 8px 10px; border-bottom: 1px solid var(--bs-border-color); white-space: nowrap; text-align: left; }
.cm-page .tv-sticky { position: sticky; left: 0; z-index: 2; background: var(--bs-white, #fff); min-width: 200px; max-width: 240px; box-shadow: 2px 0 0 rgba(15, 23, 42, .05); vertical-align: middle; }
.cm-page th.tv-sticky { z-index: 4; background: var(--bs-tertiary-bg); }
.cm-page .tv-classcell { background: linear-gradient(rgba(var(--bs-primary-rgb), .10), rgba(var(--bs-primary-rgb), .10)) var(--bs-white, #fff) !important; border-top: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); padding: 0; overflow: hidden; }
.cm-page .tv-classfill { background: rgba(var(--bs-primary-rgb), .10); border-top: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); }
.cm-page .tv-classcell button { display: flex; align-items: center; gap: 8px; border: none; background: transparent; font-family: inherit; font-weight: 700; color: var(--bs-secondary); font-size: .8rem; padding: 7px 10px; flex: 1 1 auto; min-width: 0; cursor: pointer; text-align: left; }
.cm-page .tv-classcell.tv-classedit { padding: 5px 10px; font-weight: 600; color: var(--bs-secondary); white-space: nowrap; }
.cm-page .tv-classedit-hint { display: flex; align-items: center; gap: 4px; font-size: .58rem; font-weight: 700; color: var(--bs-primary); text-transform: uppercase; letter-spacing: .04em; padding: 0 10px 6px 28px; }
.cm-page .tv-synccell { white-space: nowrap; }
.cm-page .tv-synclabel { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; font-size: .72rem; font-weight: 700; color: var(--bs-primary); margin: 0; }
.cm-page .tv-synclabel .form-check-input { margin: 0; cursor: pointer; width: 15px; height: 15px; flex-shrink: 0; }
.cm-page .tv-synclabel i { font-size: .85rem; }
.cm-page .tv-syncedico { color: var(--bs-primary); margin-right: 6px; font-size: .9rem; vertical-align: -1px; }
.cm-page .tv-classedit-hint .bi { font-size: .7rem; }
.cm-page .tv-chev { font-size: .65rem; color: var(--bs-secondary-color); flex-shrink: 0; }
.cm-page .tv-clsname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1 1 auto; min-width: 0; }
.cm-page .tv-count { margin-left: 6px; font-weight: 600; font-size: .66rem; color: var(--bs-secondary-color); background: var(--bs-white, #fff); border-radius: 999px; padding: 1px 8px; white-space: nowrap; flex: 0 0 auto; }
.cm-page .tv-groupcell { padding: 6px 10px 6px 28px; font-weight: 600; color: var(--bs-secondary); border-bottom: 1px solid var(--bs-tertiary-bg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cm-page .tv-groupcell.tv-active { overflow: visible; }
.cm-page .tv-groupcell .tv-cellinner { display: flex; align-items: center; gap: 6px; overflow: hidden; }
.cm-page .tv-groupcell .tv-val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.cm-page .tv-emptycell { padding: 6px 10px 6px 28px; font-size: .74rem; color: var(--bs-secondary-color); font-style: italic; border-bottom: 1px solid var(--bs-tertiary-bg); }
.cm-page .tv-td { padding: 5px 10px; border-bottom: 1px solid var(--bs-tertiary-bg); white-space: nowrap; position: relative; vertical-align: middle; }
.cm-page .tv-td-ro { color: var(--bs-secondary-color); }
/* Stacked sessions: the session columns share one cell per group */
.cm-page .tv-td.tv-sesscell { padding: 0; vertical-align: top; }
.cm-page .tv-sessline { display: flex; align-items: center; min-height: 33px; padding: 3px 10px; border-bottom: 1px solid var(--bs-tertiary-bg); }
.cm-page .tv-sessline:last-child { border-bottom: none; }
.cm-page .tv-staffico { color: var(--bs-primary); font-size: .8rem; margin-right: 6px; flex-shrink: 0; }
.cm-page .tv-staffname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Session values stay fully readable: the column widens for them and the table scrolls,
   rather than the value being clipped to an ellipsis. */
.cm-page .tv-sf { display: flex; align-items: center; gap: 6px; width: 100%; }
.cm-page .tv-sf .tv-val { white-space: nowrap; overflow: visible; text-overflow: clip; }
.cm-page .tv-sf .tv-pen, .cm-page .tv-sf .tv-ok { margin-left: 0; flex: 0 0 auto; }
.cm-page .tv-sf.tv-td-edit { border-radius: 6px; padding: 1px 5px; margin: -1px -5px; }
.cm-page .tv-sf.tv-td-edit.tv-active { padding: 2px 5px; margin: -2px -5px; border-radius: 6px; }
.cm-page .tv-td-edit { cursor: pointer; }
.cm-page .tv-td-edit:hover { background: rgba(var(--bs-primary-rgb), .08); }
.cm-page .tv-td-edit.tv-saving { pointer-events: none; }
.cm-page .tv-pen { opacity: 0; font-size: .62rem; color: var(--bs-primary); margin-left: 6px; }
.cm-page .tv-td-edit:hover .tv-pen { opacity: 1; }
.cm-page .tv-td-edit.tv-active { background: rgba(var(--bs-primary-rgb), .10); overflow: visible; position: relative; z-index: 5; }
.cm-page .tv-td-edit.tv-active.tv-error { background: var(--bs-danger-bg-subtle); }
.cm-page .tv-sticky.tv-td-edit:hover { background: linear-gradient(rgba(var(--bs-primary-rgb), .08), rgba(var(--bs-primary-rgb), .08)) var(--bs-white, #fff); }
.cm-page .tv-sticky.tv-td-edit.tv-active { background: linear-gradient(rgba(var(--bs-primary-rgb), .10), rgba(var(--bs-primary-rgb), .10)) var(--bs-white, #fff); }
.cm-page .tv-sticky.tv-td-edit.tv-active.tv-error { background: var(--bs-danger-bg-subtle); }
.cm-page .tv-editor { display: inline-flex; align-items: center; gap: 4px; width: max-content; max-width: none; vertical-align: middle; background: var(--bs-white, #fff); border: 2px solid var(--bs-primary); border-radius: 8px; padding: 3px; box-shadow: 0 4px 12px rgba(15, 23, 42, .12); }
.cm-page .tv-td-edit.tv-active.tv-error .tv-editor { border-color: var(--bs-danger); }
.cm-page .tv-input { font-size: .75rem !important; padding: 2px 6px !important; width: auto !important; min-width: 84px; max-width: 160px; }
.cm-page select.tv-input { padding-right: 1.5rem !important; max-width: 220px; background-position: right 6px center; text-overflow: ellipsis; }
/* Paired inputs (boys/girls capacity, an age range) share one cell, so each half stays narrow. */
.cm-page .tv-input-xs { min-width: 56px !important; max-width: 76px !important; }
.cm-page .tv-inputsep { font-size: .66rem; color: var(--bs-secondary-color); flex: 0 0 auto; white-space: nowrap; }
.cm-page .tv-ygpick { display: inline-flex; flex-direction: column; gap: 4px; min-width: 210px; max-width: 270px; }
.cm-page .tv-ygcount { font-size: .62rem; font-weight: 700; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .04em; }
.cm-page .tv-yglist { display: flex; flex-direction: column; gap: 2px; max-height: 132px; overflow-y: auto; padding: 3px; border: 1px solid var(--bs-border-color); border-radius: 6px; outline: none; }
.cm-page .tv-ygrow { display: flex; align-items: center; gap: 7px; margin: 0; padding: 2px 4px; border-radius: 4px; font-size: .72rem; font-weight: 500; line-height: 1.3; color: var(--bs-secondary); white-space: normal; cursor: pointer; }
.cm-page .tv-ygrow:hover { background: rgba(var(--bs-primary-rgb), .08); }
.cm-page .tv-ygrow .form-check-input { margin: 0; flex: 0 0 auto; width: 14px; height: 14px; cursor: pointer; }
.cm-page .tv-ygempty { padding: 3px 4px; font-size: .7rem; font-style: italic; color: var(--bs-secondary-color); }
.cm-page .tv-cur { color: var(--bs-secondary-color); font-size: .75rem; }
.cm-page .tv-cellbtn { border: none; background: var(--bs-primary); color: var(--m-on-primary); border-radius: 6px; width: 22px; height: 22px; flex: 0 0 22px; padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: .7rem; cursor: pointer; }
.cm-page .tv-cellbtn-x { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }
.cm-page .tv-err { display: block; font-size: .66rem; color: var(--bs-danger); margin-top: 3px; white-space: normal; }
.cm-page .tv-spin { display: inline-block; width: 13px; height: 13px; border: 2px solid rgba(var(--bs-primary-rgb), .3); border-top-color: var(--bs-primary); border-radius: 50%; animation: tvSpin .6s linear infinite; vertical-align: middle; }
@keyframes tvSpin { to { transform: rotate(360deg); } }
.cm-page .tv-ok { color: var(--bs-success); font-size: .8rem; }
.cm-page .tv-savedval { display: inline-flex; align-items: center; gap: 5px; }
.cm-page .tv-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: .64rem; font-weight: 700; }
.cm-page .tv-badge-act { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
.cm-page .tv-badge-inact { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }
.cm-page .tv-badge-pay { background: rgba(var(--bs-primary-rgb), .16); color: var(--bs-primary); }
.cm-page .tv-toggle { display: inline-flex; align-items: center; width: 30px; height: 17px; border-radius: 999px; background: var(--bs-border-color); padding: 2px; transition: background .15s; }
.cm-page .tv-toggle.on { background: var(--bs-primary); }
.cm-page .tv-toggle.mixed { background: var(--bs-white, #fff); box-shadow: inset 0 0 0 1.5px var(--bs-secondary-color); justify-content: center; }
.cm-page .tv-dot { width: 13px; height: 13px; border-radius: 50%; background: var(--bs-white, #fff); transition: transform .15s; }
.cm-page .tv-toggle.on .tv-dot { transform: translateX(13px); }
.cm-page .tv-toggle.mixed .tv-dot { width: 9px; height: 3px; border-radius: 2px; background: var(--bs-secondary-color); transform: none; }
.cm-page .tv-foot { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; margin-top: 10px; font-size: .72rem; color: var(--bs-secondary-color); }
.cm-page .tv-devnote { display: inline-flex; align-items: flex-start; gap: 6px; max-width: 680px; }
/* Bulk edit: a tick down the side of every class and group, and one action bar above the table */
.cm-page .tv-check { margin: 0; flex: 0 0 auto; width: 15px; height: 15px; cursor: pointer; }
.cm-page .tv-check-part { background-color: var(--bs-primary); border-color: var(--bs-primary); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); }
.cm-page .tv-headcheck { display: inline-flex; align-items: center; gap: 8px; }
.cm-page .tv-classrow { display: flex; align-items: center; gap: 8px; padding-left: 10px; min-width: 0; }
.cm-page .tv-classrow button { padding-left: 0; }
.cm-page .tv-bulkbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; padding: 10px 12px; border: 1.5px solid var(--bs-primary); border-radius: 10px; background: rgba(var(--bs-primary-rgb), .06); }
.cm-page .tv-bulkcount { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; color: var(--bs-primary); white-space: nowrap; }
.cm-page .tv-bulkinput { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cm-page .tv-bulkpair { display: inline-flex; align-items: center; gap: 6px; }
.cm-page .tv-bulkinput .tv-input { max-width: 210px; }
.cm-page .tv-bulksave { font-size: .78rem; padding: 4px 18px; }
.cm-page .tv-bulkmsg { display: inline-flex; align-items: flex-start; gap: 6px; font-size: .72rem; }
.cm-page .tv-bulknote { color: var(--bs-secondary-color); }
.cm-page .tv-bulkerr { color: var(--bs-danger); font-weight: 600; }
.cm-page .tv-bulkok { color: var(--bs-success-text-emphasis); font-weight: 600; }
@media (max-width: 768px) {
  .cm-page .tv-toolbar { flex-direction: column; align-items: stretch; }
  /* flex-basis becomes a height once the toolbar stacks, which stretched the
     search wrapper and dropped its centred icon far below the input. */
  .cm-page .tv-search { flex: 0 0 auto; min-width: 0; }
  .cm-page .tv-toolbar-right { margin-left: 0; }
  .cm-page .tv-filter { max-width: none; }
  .cm-page .tv-sticky { min-width: 150px; max-width: 170px; }
  .cm-page .tv-wrap { max-height: none; }
}
@media (max-width: 575px) {
  .cm-page .page-head-row { align-items: stretch; flex-direction: column; }
  .cm-page .page-head-actions { width: 100%; }
  .cm-page .page-head-actions .view-seg { flex: 1 1 auto; }
  .cm-page .page-head-actions .view-seg .seg-btn { flex: 1 1 auto; justify-content: center; }
  .cm-page .cm-loc-filter { flex: 1 1 auto; min-width: 0; }
  .cm-page .cm-loc-filter .tv-btn { width: 100%; max-width: none; justify-content: space-between; }
  .cm-page .tv-card { margin: 16px; padding: 14px; }
}
@media (max-width: 575px) {
  .cm-page .page-head, .cm-page .cm-layout { padding-left: 16px; padding-right: 16px; }
  .cm-page .fact-grid { grid-template-columns: 1fr 1fr; }
}

/* ── New Class button in the sidebar header ──────────────────────
   Compact variant of the dashed CTA, sitting beside the panel title
   rather than at the foot of the tree.
   ─────────────────────────────────────────────────────────────── */
.cm-page .side-head .new-class-btn-inline {
  width: auto;
  margin: 0 0 0 auto;
  padding: 5px 10px;
  font-size: .72rem;
  gap: 5px;
  white-space: nowrap;
  flex-shrink: 0;
}
.cm-page .side-head .new-class-btn-inline .bi { font-size: .7rem; }
/* The collapse toggle only appears on narrow viewports, where it now
   follows the button instead of claiming the free space itself. */
.cm-page .side-head .new-class-btn-inline + .side-toggle { margin-left: 8px; }

/* ── Detail panel surface ────────────────────────────────────────
   The handoff sits white cards directly on the white .card-box, so
   only their 1px border separates them. Tinting the panel body with
   the design's own off-white surface token gives a three-step ramp
   — frame #f1f3f6, panel body #f4f6f9, cards #fff — so the cards
   read as distinct surfaces.
   ─────────────────────────────────────────────────────────────── */
.cm-page .tab-body {
  background: var(--bs-tertiary-bg);
  border-top: 1px solid var(--bs-tertiary-bg);
  border-bottom-left-radius: 14px;
  border-bottom-right-radius: 14px;
}
.cm-page .tab-body .ov-hero,
.cm-page .tab-body .info-card,
.cm-page .tab-body .fact-tile {
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
/* Against the tinted body these tiles need to stay clearly lighter. */
.cm-page .tab-body .fact-tile { background: var(--bs-white, #fff); }

/* ── Paired info cards (Times beside Subscriptions) ──────────────
   The handoff stacks every .info-card full width; the agreed design
   sits Times and Subscriptions side by side. flex-basis lets a lone
   card (payment structures with no subscriptions) fill the row, and
   lets the pair stack on narrow viewports.
   ─────────────────────────────────────────────────────────────── */
.cm-page .info-pair {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 16px;
  margin-top: 16px;
}
.cm-page .info-pair > .info-card {
  flex: 1 1 340px;
  min-width: 0;
  margin-top: 0;
}
/* Half-width cards cannot fit the label, filter and add button on one
   row, so let the header controls drop below the title. */
.cm-page .info-pair .sec-label { flex-wrap: wrap; }
.cm-page .info-pair .line { flex-wrap: wrap; }
.cm-page .info-pair .line-right { white-space: normal; flex-wrap: wrap; }
.cm-page .info-pair .apply-all { flex-wrap: wrap; gap: 10px; }

/* ── Handoff form language outside .cm-page ──────────────────────
   AddEditClassForm is also embedded in the admin setup wizard, which
   is not inside .cm-page. Repeat just the form-section rules there so
   the rebuilt markup does not render unstyled.
   ─────────────────────────────────────────────────────────────── */
.cm-form {
  --cm-form-border: #e5e7eb;
  --cm-form-muted: #8a96b0;
  --cm-form-heading: var(--bs-secondary, #1f2937);
}
.cm-form .form-sec {
  border: 1px solid var(--cm-form-border);
  border-radius: 14px;
  padding: 16px 18px;
  background: #fff;
  margin-bottom: 16px;
}
.cm-form .sec-label {
  font-size: .68rem;
  font-weight: 800;
  color: var(--cm-form-heading);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cm-form .form-label {
  font-size: .74rem;
  font-weight: 700;
  color: var(--cm-form-heading);
  margin-bottom: 5px;
}
.cm-form .form-label .req { color: var(--bs-danger); }
.cm-form .char-count { font-size: .7rem; color: var(--cm-form-muted); margin-top: 3px; }
.cm-form .save-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  border-top: 1px solid var(--cm-form-border);
  padding-top: 16px;
  margin-top: 4px;
}

/* ── Pop-up form bodies ──────────────────────────────────────────
   The Add/Edit Class, Group, Times and Subscription forms keep their
   own markup (they carry all the validation and business rules), so
   their existing section/grid wrappers are mapped onto the handoff's
   form language here instead of being rebuilt.
   ─────────────────────────────────────────────────────────────── */
.cm-page .cm-dialog-body .form-section {
  border: 1px solid var(--bs-tertiary-bg);
  border-radius: 14px;
  background: var(--bs-white, #fff);
  box-shadow: none;
  margin-bottom: 16px;
}
.cm-page .cm-dialog-body .section-header {
  background: transparent;
  padding: 16px 18px 0;
  font-size: .68rem;
  font-weight: 800;
  color: var(--bs-primary-text-emphasis);
  text-transform: uppercase;
  letter-spacing: .07em;
  gap: 8px;
}
.cm-page .cm-dialog-body .section-header i { color: var(--bs-primary); font-size: .8rem; opacity: 1; }
.cm-page .cm-dialog-body .section-body { padding: 14px 18px 4px; }
.cm-page .cm-dialog-body .form-actions {
  background: transparent;
  border-top: 1px solid var(--bs-tertiary-bg);
  padding: 16px 18px;
}

.cm-page .cm-dialog-body h5 {
  font-size: .95rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
}
.cm-page .cm-dialog-body label.form-label {
  font-size: .74rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
  margin-bottom: 5px;
}
.cm-page .cm-dialog-body .form-control,
.cm-page .cm-dialog-body .form-select {
  border-color: var(--bs-border-color);
  border-radius: 8px;
  font-size: .84rem;
}
.cm-page .cm-dialog-body .form-floating > label {
  font-size: .82rem;
  color: var(--bs-secondary-color);
}
.cm-page .cm-dialog-body .form-text,
.cm-page .cm-dialog-body small.text-muted {
  font-size: .72rem;
  color: var(--bs-secondary-color);
}
.cm-page .cm-dialog-body .btn {
  border-radius: 8px;
  font-weight: 700;
}
.cm-page .cm-dialog-body .btn-primary {
  --bs-btn-color: var(--m-on-primary);
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: var(--m-on-primary);
  --bs-btn-hover-bg: var(--m-primary-mid);
  --bs-btn-hover-border-color: var(--m-primary-mid);
}
.cm-page .cm-dialog-body .list-group-item { font-size: .84rem; }
.cm-page .cm-dialog-body hr { border-color: var(--bs-tertiary-bg); opacity: 1; }

/* ── Manage groups together ──────────────────────────────────────
   The handoff renders each default as a single line of text with a
   plain "from <group>" on the right. The design adds an explanatory
   intro, wraps the rows in their own bordered list, and gives each
   row an icon tile, a label above its value, and a chip naming the
   group the default came from.
   ─────────────────────────────────────────────────────────────── */
.cm-page .def-intro {
  margin: -4px 0 14px;
  font-size: .82rem;
  color: var(--bs-secondary-color);
  line-height: 1.5;
}
.cm-page .def-list {
  border: 1px solid var(--bs-tertiary-bg);
  border-radius: 12px;
  overflow: hidden;
}
.cm-page .def-list .default-line {
  gap: 12px;
  padding: 12px 14px;
  border-top: 1px solid var(--bs-tertiary-bg);
  flex-wrap: wrap;
}
.cm-page .def-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border-radius: 9px;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary);
  font-size: .9rem;
}
/* Claims the free space so a long hint wraps here instead of pushing the action onto its own line. */
.cm-page .def-text { min-width: 0; flex: 1 1 240px; }
.cm-page .def-label {
  font-size: .64rem;
  font-weight: 800;
  color: var(--bs-secondary-color);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.cm-page .def-value {
  font-size: .86rem;
  font-weight: 700;
  color: var(--bs-emphasis-color);
  margin-top: 2px;
  overflow-wrap: anywhere;
}
.cm-page .def-preview {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .78rem;
  font-weight: 700;
  color: var(--bs-primary);
  text-decoration: none;
  white-space: nowrap;
  background: none;
  border: 0;
  padding: 0;
  font-family: inherit;
  cursor: pointer;
}
.cm-page .def-preview:hover { text-decoration: underline; }
.cm-page .img-preview { display: flex; justify-content: center; }
.cm-page .img-preview-video {
  width: 100%;
}
.cm-page .img-preview-youtube,
.cm-page .img-apply-youtube-preview {
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 180px;
  border: 0;
  background: #000;
  display: block;
}
.cm-page .img-preview img {
  max-width: 100%;
  max-height: 68vh;
  border-radius: 10px;
  object-fit: contain;
  box-shadow: 0 6px 18px rgba(16, 24, 40, .12);
}
.cm-page .def-src {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary-text-emphasis);
  font-size: .74rem;
  font-weight: 700;
  white-space: nowrap;
}
/* Without a Preview link the chip takes over pushing itself right. */
.cm-page .def-preview + .def-src { margin-left: 0; }
.cm-page .def-text + .def-src { margin-left: auto; }
.cm-page .def-src .bi { color: var(--bs-primary); }
/* Turns a promoted default off for the whole class */
.cm-page .def-switch { flex-shrink: 0; padding-left: 2.4em; }
.cm-page .def-text + .def-switch { margin-left: auto; }
/* Preview sits beside Change, so only the first of the pair claims the free space. */
.cm-page .def-preview + .def-preview { margin-left: 0; }
/* Says why a row is still listed once its class-wide switch is off */
.cm-page .def-hint { font-size: .74rem; color: var(--bs-secondary-color); margin-top: 2px; }
/* Worked register headings, so the switch shows its real before and after */
.cm-page .def-eg { font-size: .74rem; color: var(--bs-secondary-color); margin-top: 4px; overflow-wrap: anywhere; }
.cm-page .def-eg + .def-eg { margin-top: 2px; }
.cm-page .def-eg strong { font-weight: 700; color: var(--bs-emphasis-color); }

/* Group image pop-up: a working thumbnail, not the full-height preview */
.cm-page .img-edit-preview { display: flex; justify-content: center; }
.cm-page .img-edit-preview img {
  max-width: 100%;
  max-height: 220px;
  border-radius: 10px;
  object-fit: contain;
  border: 1px solid var(--bs-tertiary-bg);
}

/* Bulk apply image: class → group tree */
.cm-page .img-apply-tree {
  max-height: 340px;
  overflow: auto;
  border: 1px solid var(--bs-tertiary-bg);
  border-radius: 10px;
  padding: 6px 10px;
}
.cm-page .img-apply-class + .img-apply-class {
  border-top: 1px solid var(--bs-tertiary-bg);
}
.cm-page .img-apply-class-row {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 0;
}
.cm-page .img-apply-expand {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: var(--bs-secondary-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  cursor: pointer;
  padding: 0;
}
.cm-page .img-apply-expand:hover { background: var(--bs-tertiary-bg); color: var(--bs-emphasis-color); }
.cm-page .img-apply-groups {
  margin: 0 0 6px 40px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cm-page .img-apply-groups .check-row { padding: 6px 0; }
.cm-page .img-apply-group-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.cm-page .img-apply-file {
  margin-left: auto;
  max-width: 46%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: none;
  padding: 2px 0;
  font-family: inherit;
  font-size: .72rem;
  font-weight: 600;
  color: var(--bs-primary);
  cursor: pointer;
  min-width: 0;
  text-decoration: none;
}
.cm-page .img-apply-file:hover { text-decoration: underline; }
.cm-page .img-apply-file-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-page .img-apply-file .bi { flex-shrink: 0; }

/* Apply register name: a class row can carry two facts at once (what its groups
   use now, and what new groups will start on), so they are pills with their own
   outline rather than two runs of text that read as one sentence. */
.cm-page .reg-chips {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 1;
  min-width: 0;
  max-width: 60%;
}
.cm-page .reg-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  padding: 2px 9px;
  border: 1px solid var(--bs-border-color);
  border-radius: 999px;
  background: var(--bs-tertiary-bg);
  font-size: .68rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  white-space: nowrap;
}
.cm-page .reg-chip .bi { font-size: .72rem; flex-shrink: 0; }
.cm-page .reg-chip-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.cm-page .reg-chip-rule {
  border-color: rgba(var(--bs-primary-rgb), .35);
  background: rgba(var(--bs-primary-rgb), .10);
  color: var(--bs-primary);
}
/* A group cannot say "new groups start here" in the space left beside its register
   heading, so it carries the rule as the chip's icon on its own. */
.cm-page .reg-sync {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(var(--bs-primary-rgb), .35);
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), .10);
  color: var(--bs-primary);
}
.cm-page .reg-sync .bi { font-size: .72rem; }
@media (max-width: 575.98px) {
  .cm-page .reg-chips { flex-wrap: wrap; justify-content: flex-end; }
}

.cm-page .sqcheck.partial {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
}
.cm-page .sqcheck.partial::after {
  content: "";
  display: block;
  width: 8px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
}
.cm-page .img-apply-upload {
  border-top: 1px solid var(--bs-tertiary-bg);
  padding-top: 14px;
}
.cm-page .img-apply-file-pick {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 0;
}
.cm-page .img-apply-file-pick .btn.disabled {
  pointer-events: none;
  opacity: .65;
}
.cm-page .img-apply-file-chosen {
  font-size: .78rem;
  color: var(--bs-secondary-color);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-page .img-apply-existing {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 220px;
  overflow: auto;
}
.cm-page .img-apply-existing-item {
  display: flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  background: var(--bs-body-bg);
  padding: 6px;
  min-width: 0;
}
.cm-page .img-apply-existing-item.active {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 1px var(--bs-primary);
}
.cm-page .img-apply-existing-pick {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: none;
  padding: 2px 4px;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  color: inherit;
}
.cm-page .img-apply-existing-thumb {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bs-tertiary-bg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--bs-primary);
  font-size: 1.15rem;
}
.cm-page .img-apply-existing-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cm-page .img-apply-existing-thumb.pdf,
.cm-page .img-apply-existing-thumb.youtube {
  color: var(--bs-primary);
}
.cm-page .img-apply-existing-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cm-page .img-apply-existing-name {
  font-size: .8rem;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-page .img-apply-existing-kind {
  font-size: .72rem;
  color: var(--bs-secondary-color);
}
.cm-page .img-apply-existing-preview {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: none;
  color: var(--bs-primary);
  cursor: pointer;
  border-radius: 8px;
}
.cm-page .img-apply-existing-preview:hover {
  background: var(--bs-primary-bg-subtle, #f3eefc);
}

/* Subscription group picker: name on the left, peek icon on the right */
.cm-page .subs-group-pick-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  min-width: 0;
}
.cm-page .subs-group-pick-row .check-row { padding: 0; min-width: 0; }
.cm-page .subs-group-peek-count {
  flex-shrink: 0;
  font-size: .78rem;
  font-weight: 700;
  color: var(--bs-secondary-color);
  min-width: 1.1em;
  text-align: right;
  line-height: 1;
}
.cm-page .subs-group-peek {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 8px;
  background: var(--bs-body-bg);
  color: var(--bs-primary);
  padding: 0;
  cursor: pointer;
}
.cm-page .subs-group-peek:hover {
  background: var(--bs-primary-bg-subtle, #f3eefc);
  border-color: var(--bs-primary);
}
.cm-page .subs-group-peek:disabled {
  opacity: .55;
  cursor: not-allowed;
}

/* ── Which group the class-wide subscriptions came from ──────────
   A tick alone read as a fresh choice, so the group already copied
   from is named above the list and tagged on its own row.
   ─────────────────────────────────────────────────────────────── */
.cm-page .subs-group-source-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--bs-primary-bg-subtle, #f3eefc);
  font-size: .82rem;
  line-height: 1.4;
}
.cm-page .subs-group-source-note > i {
  color: var(--bs-primary);
  line-height: inherit;
}
.cm-page .subs-group-source-tag {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--bs-primary-bg-subtle, #f3eefc);
  color: var(--bs-primary);
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}

/* ── Which subscriptions went class-wide ─────────────────────────
   "Applied to all groups" on its own never said what was applied, so
   the promoted subscriptions are listed under it with their plans.
   ─────────────────────────────────────────────────────────────── */
.cm-page .def-subs {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cm-page .def-sub {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: .8rem;
  font-weight: 600;
  color: var(--bs-body-color);
}
.cm-page .def-sub-name { overflow-wrap: anywhere; }
.cm-page .def-sub-plan {
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}

/* ── Dialog chrome and form sections, per the agreed design ──────
   The handoff puts a leading icon, title and subtitle on one line and
   wraps each form section in a bordered card. The design stacks the
   title over a descriptive subtitle, boxes the close button, and
   separates flat sections with a rule instead of a card border.
   ─────────────────────────────────────────────────────────────── */
.cm-page .cm-dialog-head { align-items: flex-start; padding: 18px 22px 14px; }
.cm-page .cm-dialog-heading { min-width: 0; }
.cm-page .cm-dialog-head h4 {
  display: block;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--bs-emphasis-color);
  letter-spacing: -.2px;
}
.cm-page .cm-dialog-sub {
  margin: 4px 0 0;
  font-size: .84rem;
  font-weight: 500;
  color: var(--bs-secondary-color);
}
.cm-page .cm-dialog-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 8px;
  background: var(--bs-tertiary-bg);
  font-size: .85rem;
}
.cm-page .cm-dialog-close:hover {
  background: var(--bs-secondary-bg);
  color: var(--bs-emphasis-color);
}

/* Flat sections separated by a rule, not bordered cards. Applies to
   the rebuilt .form-sec markup and to the group form's older
   .form-section wrappers alike. */
.cm-page .cm-dialog-body .form-sec,
.cm-page .cm-dialog-body .form-section,
.cm-form .form-sec {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  margin-bottom: 22px;
  box-shadow: none;
}
.cm-page .cm-dialog-body .sec-label,
.cm-page .cm-dialog-body .section-header,
.cm-form .sec-label {
  color: var(--bs-primary);
  background: transparent;
  border-bottom: 1px solid var(--bs-border-color);
  padding: 0 0 10px;
  margin-bottom: 16px;
}
.cm-page .cm-dialog-body .section-body { padding: 0; }
.cm-page .cm-dialog-body .form-label,
.cm-form .form-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .7rem;
}
.cm-page .cm-dialog-body .form-label .label-info,
.cm-form .form-label .label-info {
  color: var(--bs-secondary-color);
  font-size: .78rem;
  margin-left: 3px;
  cursor: help;
}
.cm-page .cm-dialog-body .save-footer,
.cm-form .save-footer { border-top-color: var(--bs-border-color); padding-top: 18px; }
.cm-page .cm-dialog-body .save-footer .btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px; }

/* ============================================================
   CLASS MANAGEMENT — DIALOG FORMS
   Ported from group-and-class-dialog-handoff.html, scoped to .cm-fm
   so the handoff's generic names (.input, .fld, .chip, .seg-btn,
   .line …) cannot collide with the page CSS above or leak into the
   rest of the app. .cm-fm sits on the dialog body / form wrapper.

   The handoff's brand demo values are NOT copied — brand colours
   arrive from ClubCssStyles as --bs-primary / --bs-secondary, per the
   file's own BRAND-COLOUR SWAP RULE. Its Bootstrap-grid mimic is not
   copied either: the real Bootstrap 5.3.3 grid is used in the markup.
   ============================================================ */
.cm-fm {
  --fm-label: #8a96b0;
  --fm-muted: #8a96b0;
  --fm-text: #374151;
  --fm-border: #d1d5db;
  --fm-border-soft: #e8eaf0;
  --fm-divider: #f1f3f6;
  --fm-heading: var(--bs-secondary, #1e2a4a);
  --fm-brand: var(--bs-primary);
  --fm-brand-subtle: rgba(var(--bs-primary-rgb), .12);
  --fm-brand-border: rgba(var(--bs-primary-rgb), .32);
  --fm-on-brand: var(--bs-primary-foreground, #fff);
  --fm-danger: #dc2626;
  --fm-success: #15803d;
  color: var(--fm-text);
}

/* ── Section label + hairline rule ───────────────────────────── */
.cm-fm .sec-label {
  display: block;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--fm-brand);
  margin-bottom: 6px;
}
.cm-fm .sec-rule { height: 1px; background: var(--fm-divider); margin: 4px 0 18px; }

/* ── Field labels ────────────────────────────────────────────── */
.cm-fm label.fld {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--fm-label);
  margin-bottom: 5px;
}
.cm-fm .req { color: var(--fm-danger); }
.cm-fm .label-row { display: flex; align-items: center; gap: 6px; }
.cm-fm .label-row label.fld { margin-bottom: 6px; }

/* ── Inputs ──────────────────────────────────────────────────── */
.cm-fm .input,
.cm-fm select.input,
.cm-fm textarea.input {
  width: 100%;
  border: 1.5px solid var(--fm-border);
  border-radius: 8px;
  font-size: .85rem;
  font-family: inherit;
  color: var(--fm-heading);
  padding: 9px 12px;
  background: #fff;
  outline: none;
  transition: border-color .15s;
}
.cm-fm textarea.input { resize: vertical; }
.cm-fm .input::placeholder,
.cm-fm textarea.input::placeholder { color: var(--fm-muted); }
.cm-fm .input:focus,
.cm-fm select.input:focus,
.cm-fm textarea.input:focus { border-color: var(--fm-brand); }
.cm-fm .input:disabled,
.cm-fm select.input:disabled { background: var(--fm-divider); color: var(--fm-muted); cursor: not-allowed; }

/* Blazor stamps .invalid / .modified onto EditForm inputs. */
.cm-fm .input.invalid,
.cm-fm select.input.invalid,
.cm-fm textarea.input.invalid { border-color: var(--fm-danger); }
.cm-fm .field-err { font-size: .72rem; font-weight: 600; color: var(--fm-danger); margin-top: 4px; }
.cm-fm .validation-message { font-size: .72rem; font-weight: 600; color: var(--fm-danger); margin-top: 4px; }

/* Native-select chevron overlay */
.cm-fm .select-wrap { position: relative; }
.cm-fm .select-wrap > select.input { appearance: none; -webkit-appearance: none; padding-right: 32px; cursor: pointer; }
.cm-fm .select-wrap > .sel-chev {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  color: var(--fm-muted); font-size: .78rem; pointer-events: none;
}

/* File inputs sit in the same shell but need less vertical padding. */
.cm-fm input[type="file"].input { padding: 6px 8px; cursor: pointer; }

/* The browser's native file control can't be restyled, so the input is hidden
   and its label carries the dialog's own button classes instead. */
.cm-fm .file-pick { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.cm-fm .file-pick > label.btn-fm { margin: 0; }
.cm-fm .file-pick > label.btn-fm.is-disabled { opacity: .65; cursor: not-allowed; pointer-events: none; }
.cm-fm .file-pick-name {
  font-size: .76rem; color: var(--fm-muted); min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ── Helper text ─────────────────────────────────────────────── */
.cm-fm .help { font-size: .7rem; color: var(--fm-muted); margin-top: 4px; line-height: 1.4; }
.cm-fm .help-row { display: flex; justify-content: space-between; gap: 8px; font-size: .7rem; color: var(--fm-muted); margin-top: 4px; }
.cm-fm .help-tip { display: inline-flex; align-items: center; gap: 4px; color: #a3aec5; }
.cm-fm .help-tip .bi { font-size: .78rem; }
.cm-fm .muted-italic { font-size: .85rem; color: var(--fm-muted); font-style: italic; }
.cm-fm .empty-note { border: 1px dashed var(--fm-border); border-radius: 8px; padding: 12px; font-size: .82rem; color: var(--fm-muted); }

/* ── Info-circle trigger + popover copy card ─────────────────── */
.cm-fm .info-btn {
  background: none; border: none; padding: 0; cursor: pointer;
  color: var(--fm-muted); display: inline-flex; align-items: center; line-height: 1; margin-bottom: 6px;
}
.cm-fm .info-btn:hover { color: var(--fm-brand); }
/* The field column anchors the bubble; right-aligning lets a wider card stay inside the form. */
.cm-fm .info-anchor { position: relative; }
.cm-fm .info-pop { display: inline-flex; }
.cm-fm .popover-copy {
  position: absolute; z-index: 1090; bottom: 100%;
  right: calc(var(--bs-gutter-x, 1rem) * .5); left: auto;
  width: min(440px, calc(100vw - 32px)); max-height: min(72vh, 520px); overflow-y: auto;
  border: 1px solid var(--fm-border-soft); border-radius: 10px; background: var(--bs-white, #fff);
  box-shadow: 0 12px 30px rgba(16, 24, 40, .18);
  padding: 12px 14px; font-size: .8rem; color: #4b5563; line-height: 1.5; text-align: left;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .07s linear, visibility .07s linear;
}
.cm-fm .info-btn:hover + .popover-copy,
.cm-fm .info-btn:focus-visible + .popover-copy,
.cm-fm .popover-copy:hover,
.cm-fm .popover-copy.open { opacity: 1; visibility: visible; pointer-events: auto; }
.cm-fm .popover-copy .pc-title {
  display: flex; align-items: center; gap: 6px;
  font-weight: 700; color: var(--fm-heading); font-size: .84rem; margin-bottom: 6px;
}
.cm-fm .popover-copy p { margin: 0 0 6px; }
.cm-fm .popover-copy p:last-child { margin-bottom: 0; }
.cm-fm .popover-copy strong { color: var(--fm-heading); }

/* ── Read-only payment-structure banner ──────────────────────── */
.cm-fm .pay-banner {
  display: flex; align-items: center; gap: 12px; height: 100%;
  background: var(--fm-brand-subtle);
  border: 1px solid rgba(var(--bs-primary-rgb), .25);
  border-radius: 8px; padding: 12px 16px;
}
/* Direct child only, so the select's chevron keeps its own muted colour. */
.cm-fm .pay-banner > .bi { color: var(--fm-brand); font-size: 1.15rem; flex-shrink: 0; }
.cm-fm .pay-banner .pay-body { flex: 1 1 auto; min-width: 0; }
.cm-fm .pay-banner .k {
  display: block; font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: var(--fm-muted); margin-bottom: 5px;
}
.cm-fm .pay-banner .select-wrap > select.input { font-weight: 600; }
.cm-fm .pay-banner .help { margin-top: 7px; }

/* ── Square checkbox + card-style toggles ────────────────────── */
.cm-fm .sqcheck {
  width: 20px; height: 20px; flex-shrink: 0; border-radius: 6px; margin-top: 1px;
  border: 1.5px solid #cbd2e0; background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  appearance: none; -webkit-appearance: none; cursor: pointer; padding: 0;
}
.cm-fm .sqcheck:checked { border-color: var(--fm-brand); background: var(--fm-brand); }
.cm-fm .sqcheck:checked::after {
  content: "\F26E";                     /* bi-check-lg */
  font-family: "bootstrap-icons";
  font-size: .72rem; color: var(--fm-on-brand); line-height: 1;
}
.cm-fm .sqcheck:disabled { opacity: .5; cursor: not-allowed; }
.cm-fm .sqcheck.partial { border-color: var(--fm-brand); background: var(--fm-brand); }
.cm-fm .sqcheck.partial::after {
  content: "";
  display: block;
  width: 8px;
  height: 2px;
  background: var(--fm-on-brand, #fff);
  border-radius: 1px;
}

.cm-fm .toggle-card { border: 1px solid var(--fm-border-soft); border-radius: 10px; padding: 14px 16px; background: #fafbfc; }
.cm-fm .toggle-card.on { background: #f5f6ff; }
.cm-fm .toggle-card > label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; margin: 0; }
.cm-fm .toggle-card .t-title { display: block; font-size: .88rem; font-weight: 600; color: var(--fm-heading); line-height: 1.3; }
.cm-fm .toggle-card .t-desc { font-size: .76rem; color: var(--fm-muted); }
.cm-fm .toggle-nested { border-left: 2px solid #d9dde5; margin-left: 9px; padding-left: 20px; margin-top: 12px; }
.cm-fm .toggle-nested label { display: flex; align-items: center; gap: 10px; margin: 0; font-size: .83rem; color: #4b5563; cursor: pointer; }

/* Plain inline checkbox rows (awards options, unique email, split toggles) */
.cm-fm .check-row { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: .83rem; color: #4b5563; cursor: pointer; }
.cm-fm .check-row .cr-sub { display: block; font-size: .74rem; color: var(--fm-muted); }
.cm-fm .check-row-static { cursor: default; padding-left: 30px; }
.cm-fm .check-inline {
  display: flex; align-items: center; gap: 8px; margin-bottom: 0; cursor: pointer;
  font-size: .88rem; font-weight: 600; color: var(--fm-heading); min-height: 38px;
}
.cm-fm .check-inline input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--fm-brand); cursor: pointer; }

/* ── Multi-select style trigger (staff / awards / add-ons) ───── */
.cm-fm .ms-trigger { display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; }
.cm-fm .ms-trigger .ph { color: var(--fm-muted); }
.cm-fm .ms-trigger .val { color: var(--fm-heading); }

/* Scroll panels that stand in for the mockup's pop-out lists. */
.cm-fm .pick-list {
  border: 1.5px solid var(--fm-border); border-radius: 8px;
  padding: 8px 10px; max-height: 210px; overflow-y: auto; background: #fff;
}
.cm-fm .pick-list .pick-row { display: flex; align-items: flex-start; gap: 9px; padding: 4px 0; margin: 0; font-size: .83rem; color: #4b5563; cursor: pointer; }
.cm-fm .pick-list .pick-row:hover { color: var(--fm-heading); }
/* The same list inside a table cell: shorter, tighter and left aligned against a centred column. */
.cm-fm .pick-list-cell { max-height: 132px; padding: 6px 9px; text-align: left; }
.cm-fm .pick-list-cell .pick-row { align-items: center; gap: 8px; padding: 2px 0; font-size: .8rem; white-space: nowrap; }

/* ── Selected add-on rows ────────────────────────────────────── */
.cm-fm .upsell-row { border: 1px solid var(--fm-border-soft); border-radius: 10px; padding: 10px 12px; background: #fff; }
.cm-fm .upsell-row .u-head { display: flex; align-items: center; gap: 8px; }
.cm-fm .u-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0;
  background: var(--fm-brand-subtle); color: var(--fm-brand);
}
.cm-fm .u-name { font-weight: 600; font-size: .85rem; color: var(--fm-heading); }
.cm-fm .u-price { background: var(--fm-brand-subtle); color: var(--fm-brand); border-radius: 6px; padding: 1px 6px; font-size: .72rem; font-weight: 600; }
.cm-fm .u-remove { margin-left: auto; background: transparent; border: none; color: var(--fm-muted); cursor: pointer; padding: 4px; }
.cm-fm .u-remove:hover { color: var(--fm-danger); }
.cm-fm .u-mand { display: flex; align-items: center; gap: 8px; margin: 8px 0 0 40px; font-size: .8rem; color: #4b5563; cursor: pointer; }
.cm-fm .u-mand .muted { font-size: .72rem; color: var(--fm-muted); }
.cm-fm .upsell-summary { margin-top: 12px; font-size: .74rem; color: var(--fm-muted); }

/* ── Chips (year groups) — extra specificity beats .cm-page .chip ── */
.cm-fm .chips,
.cm-page .cm-fm .chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cm-fm .chip,
.cm-page .cm-fm .chip {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--fm-brand-subtle); border: 1px solid var(--fm-brand-border);
  color: var(--fm-brand); border-radius: 8px; padding: 5px 8px 5px 10px;
  font-size: .78rem; font-weight: 600; white-space: nowrap;
}
.cm-fm .chip .range,
.cm-page .cm-fm .chip .range { background: rgba(var(--bs-primary-rgb), .15); border-radius: 6px; padding: 1px 6px; font-size: .7rem; }
.cm-fm .chip .x,
.cm-page .cm-fm .chip .x { background: transparent; border: none; color: var(--fm-brand); cursor: pointer; display: flex; align-items: center; padding: 0; }

/* ── Segmented buttons (trials) — beats .cm-page .seg-btn ────── */
.cm-fm .seg-btns,
.cm-page .cm-fm .seg-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.cm-fm .seg-btn,
.cm-page .cm-fm .seg-btn {
  flex: 0 0 auto; text-align: left;
  background: #fff; border: 1.5px solid var(--fm-border); color: #4b5563;
  border-radius: 8px; padding: 8px 14px; font-size: .82rem; font-weight: 600;
  cursor: pointer; display: flex; align-items: center; gap: 6px; font-family: inherit;
  box-shadow: none;
}
.cm-fm .seg-btn.active,
.cm-page .cm-fm .seg-btn.active {
  background: var(--fm-brand); border-color: var(--fm-brand); color: var(--fm-on-brand); box-shadow: none;
}

/* ── £ prefixed input ────────────────────────────────────────── */
.cm-fm .money-wrap { position: relative; }
.cm-fm .money-wrap .cur { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--fm-muted); font-size: .85rem; font-weight: 600; pointer-events: none; }
.cm-fm .money-wrap .input { padding-left: 26px; }

/* ── Staff picker (search + tick several, then add) ──────────── */
.cm-fm .staff-pick { border: 1px solid var(--fm-border-soft); border-radius: 12px; padding: 14px; background: #fafbfc; }
.cm-fm .staff-pick-closed { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.cm-fm .staff-pick-closed .help { margin-top: 0; }
.cm-fm .staff-pick-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.cm-fm .staff-pick-count { font-size: .72rem; font-weight: 700; color: var(--fm-brand); }
.cm-fm .staff-pick-search { position: relative; }
.cm-fm .staff-pick-search .bi { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--fm-muted); font-size: .85rem; pointer-events: none; }
.cm-fm .staff-pick-search .input { padding-left: 34px; }
.cm-fm .staff-pick-search .input::-webkit-search-cancel-button { cursor: pointer; }
/* Caps at roughly four and a half rows: a long staff list scrolls here instead of
   stretching the dialog. overscroll-behavior keeps the wheel inside the list. */
.cm-fm .staff-pick-list {
  margin-top: 10px; max-height: 220px; overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid var(--fm-border); border-radius: 10px; background: #fff;
}
.cm-fm .staff-pick-row {
  display: flex; align-items: center; gap: 10px; margin: 0;
  padding: 8px 12px; cursor: pointer; font-size: .85rem;
}
.cm-fm .staff-pick-row + .staff-pick-row { border-top: 1px solid #eef1f5; }
.cm-fm .staff-pick-row:hover { background: var(--fm-brand-subtle); }
.cm-fm .staff-pick-row.is-added { cursor: default; }
.cm-fm .staff-pick-row.is-added:hover { background: #fff; }
.cm-fm .staff-pick-who { display: flex; flex-direction: column; min-width: 0; }
.cm-fm .staff-pick-name { font-weight: 600; color: var(--fm-heading); }
.cm-fm .staff-pick-email { font-size: .74rem; color: var(--fm-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-fm .staff-pick-added {
  margin-left: auto; display: inline-flex; align-items: center; gap: 4px;
  font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--fm-muted);
}
.cm-fm .staff-pick-empty { margin-top: 10px; font-size: .82rem; color: var(--fm-muted); font-style: italic; }
.cm-fm .staff-pick-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.cm-fm .staff-pick-actions .help { margin-top: 0; }

/* ── Award syllabus picker ───────────────────────────────────────
   Reuses the staff picker's card, search box and list so the two
   pickers in this form read the same; only the per-syllabus fold and
   its indented levels are new. */
.cm-fm .syl-lead { font-size: .78rem; font-weight: 600; color: var(--fm-heading); }
.cm-fm .syl-group + .syl-group { border-top: 1px solid #eef1f5; }
.cm-fm .syl-head {
  width: 100%; display: flex; align-items: center; gap: 9px; padding: 9px 12px;
  background: none; border: none; font-family: inherit; text-align: left; cursor: pointer;
}
.cm-fm .syl-head:hover { background: var(--fm-brand-subtle); }
.cm-fm .syl-group.is-open .syl-head { background: #f8fafc; }
.cm-fm .syl-chev { color: var(--fm-muted); font-size: .72rem; flex-shrink: 0; }
.cm-fm .syl-name { font-size: .85rem; font-weight: 700; color: var(--fm-heading); }
.cm-fm .syl-meta { margin-left: auto; text-align: right; }
.cm-fm .syl-count { font-size: .72rem; color: var(--fm-muted); }
/* Levels are indented under their syllabus heading, so the heading reads as the group. */
.cm-fm .syl-levels { border-top: 1px solid #eef1f5; }
.cm-fm .syl-levels .staff-pick-row { padding-left: 33px; }
.cm-fm .syl-levels .staff-pick-row + .staff-pick-row { border-top: 1px solid #f4f6f9; }
.cm-fm .syl-level-name { color: var(--fm-heading); }

/* ── Shop add-on picker ──────────────────────────────────────────
   Same card/search/list as the staff picker, but each row stacks: the
   tickable product line (category under the name, price pinned right)
   and, once ticked, its Mandatory choice — so a picked item is
   configured in place instead of in a second card below the list. */
/* Picked rows are double height, so this list gets a taller cap than the staff one. */
.cm-fm .addon-pick-list { max-height: 300px; }
.cm-fm .addon-pick-row { flex-direction: column; align-items: stretch; gap: 0; padding: 0; cursor: default; }
.cm-fm .addon-pick-row:hover { background: transparent; }
.cm-fm .addon-pick-row.is-picked { background: #fbfcfe; }
.cm-fm .addon-pick-main {
  display: flex; align-items: center; gap: 10px; margin: 0;
  padding: 8px 12px; cursor: pointer;
}
.cm-fm .addon-pick-main:hover { background: var(--fm-brand-subtle); }
.cm-fm .addon-pick-row .staff-pick-who { flex: 1 1 auto; }
.cm-fm .addon-cat { font-size: .72rem; color: var(--fm-muted); }
.cm-fm .addon-price { margin-left: auto; flex-shrink: 0; white-space: nowrap; }
.cm-fm .addon-pick-row .u-mand { margin: 0 0 9px 34px; }

/* ── Coach assignment table ──────────────────────────────────── */
.cm-fm .coach-table {
  width: 100%; border-collapse: collapse; font-size: .85rem;
  border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden;
}
.cm-fm .coach-table thead tr { background: #f8fafc; }
.cm-fm .coach-table th {
  text-align: left; padding: 10px 14px; font-size: .72rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .05em; color: var(--fm-muted); white-space: nowrap;
}
.cm-fm .coach-table th.c { text-align: center; }
.cm-fm .coach-table td { padding: 10px 14px; vertical-align: middle; border-top: 1px solid #eef1f5; }
.cm-fm .coach-table td.c { text-align: center; padding: 10px 8px; }
.cm-fm .coach-name { font-size: .9rem; font-weight: 700; color: var(--fm-heading); }
.cm-fm .coach-email { font-size: .76rem; color: var(--fm-muted); }
.cm-fm .age-input { width: 72px; text-align: center; border: 1.5px solid var(--fm-border); border-radius: 8px; padding: 6px 8px; font-size: .85rem; font-family: inherit; }
.cm-fm .coach-table input[type="checkbox"] { accent-color: var(--fm-brand); width: 17px; height: 17px; cursor: pointer; }
.cm-fm .coach-trash { background: transparent; border: none; color: var(--fm-danger); cursor: pointer; }

/* ── Accordion (CollapsibleSection) ──────────────────────────── */
.cm-fm .accordion-sec { margin-bottom: 8px; }
.cm-fm .acc-head {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px;
  background: none; border: none; padding: 0; margin-bottom: 6px; cursor: pointer; font-family: inherit;
}
.cm-fm .acc-title { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.cm-fm .acc-title .bi { color: var(--fm-brand); font-size: .8rem; line-height: 1; }
/* Dialogs give .sec-label a bottom hairline and 10px of padding, which made the label
   taller than its text and dropped the icon, summary and chevron below it. Accordion
   heads have their own full-width rule, so strip it here. */
.cm-page .cm-dialog-body .cm-fm .acc-title .sec-label,
.cm-fm .acc-title .sec-label { margin: 0; padding: 0; border-bottom: 0; line-height: 1.2; }
.cm-fm .acc-right { display: flex; align-items: center; gap: 8px; min-width: 0; }
.cm-fm .acc-summary {
  font-size: .74rem; font-weight: 500; color: var(--fm-muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; text-align: right;
}
.cm-fm .acc-chev { color: var(--fm-muted); font-size: .8rem; flex-shrink: 0; }
.cm-fm .acc-rule { height: 1px; background: var(--fm-divider); margin: 4px 0 14px; }

/* ── Footers ─────────────────────────────────────────────────── */
.cm-fm .tab-save-foot {
  display: flex; justify-content: flex-end; align-items: center; gap: 12px;
  padding-top: 16px; border-top: 1px solid var(--fm-divider); flex-wrap: wrap;
}
.cm-fm .tab-save-foot .saved { color: var(--fm-success); font-size: .8rem; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.cm-fm .tab-save-foot .err { color: var(--fm-danger); font-size: .8rem; font-weight: 600; display: flex; align-items: center; gap: 6px; }

/* Pinned to the bottom of the scrolling dialog body so Cancel/Save stay
   reachable in a long form. Dropping the body's bottom padding keeps the
   stuck and resting positions identical, so the bar never jumps. Scoped to
   dialogs because the setup wizard renders the same form inline. */
.cm-page .cm-dialog-body.cm-fm:has(.tab-save-foot) { padding-bottom: 0; }
.cm-page .cm-dialog-body.cm-fm .tab-save-foot {
  position: sticky; bottom: 0; z-index: 5;
  margin: 12px -24px 0; padding: 14px 24px;
  background: var(--bs-white, #fff);
  border-top: 1px solid var(--fm-border-soft);
  border-radius: 0 0 13px 13px;
  box-shadow: 0 -8px 16px rgba(15, 20, 40, .05);
}

/* Sits above the footer when a save has to hand the user over to another page, so the
   redirect is announced before it happens. */
.cm-fm .redirect-note {
  display: flex; align-items: flex-start; gap: 10px;
  margin-top: 16px; padding: 12px 14px;
  border: 1px solid var(--fm-border-soft); border-left: 3px solid var(--fm-brand);
  border-radius: 10px; background: rgba(var(--bs-primary-rgb), .05);
}
.cm-fm .redirect-note > .bi { color: var(--fm-brand); font-size: 1rem; line-height: 1.35; }
.cm-fm .redirect-note strong { display: block; font-size: .83rem; color: var(--fm-heading); }
.cm-fm .redirect-note p { margin: 4px 0 0; font-size: .78rem; color: var(--fm-muted); }

/* ── Buttons ─────────────────────────────────────────────────── */
.cm-fm .btn-fm {
  border-radius: 8px; font-size: .83rem; font-weight: 600; cursor: pointer;
  padding: 8px 20px; display: inline-flex; align-items: center; gap: 6px; font-family: inherit;
}
.cm-fm .btn-fm .bi { font-size: 1rem; }
.cm-fm .btn-ghost { background: #fff; border: 1.5px solid var(--fm-border); color: #4b5563; }
.cm-fm .btn-ghost:hover { border-color: #b9c0cd; color: var(--fm-heading); }
.cm-fm .btn-brand { background: var(--fm-brand); border: 1.5px solid var(--fm-brand); color: var(--fm-on-brand); font-weight: 700; }
.cm-fm .btn-brand:hover { background: rgba(var(--bs-primary-rgb), .88); border-color: rgba(var(--bs-primary-rgb), .88); }
.cm-fm .btn-fm:disabled { opacity: .65; cursor: not-allowed; }
/* Small secondary action sitting beside a picker (e.g. Add coach). */
.cm-fm .btn-fm.btn-sm-fm { padding: 8px 14px; font-size: .8rem; }

/* ── Dialog chrome, aligned to the handoff's modal shell ─────── */
.cm-page .cm-dialog-head { padding: 20px 24px 16px; border-bottom: 1px solid var(--bs-tertiary-bg); }
.cm-page .cm-dialog-head h4 { font-size: 1rem; font-weight: 700; }
.cm-page .cm-dialog-sub { margin: 2px 0 0; font-size: .78rem; }
.cm-page .cm-dialog-sub strong { color: var(--bs-secondary); font-weight: 700; }
.cm-page .cm-dialog-body { padding: 24px; }
.cm-page .cm-dialog-foot {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  padding: 16px 24px; border-top: 1px solid var(--bs-tertiary-bg);
  background: #fafafa; border-radius: 0 0 14px 14px; flex-shrink: 0;
}

/* The group dialog is the wide one in the handoff (820px); the class
   dialog is narrower (780px). Both were 1180px before this pass. */
.cm-page .cm-dialog.cm-dialog-group { width: 820px; }
.cm-page .cm-dialog.cm-dialog-class { width: 780px; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 767.98px) {
  .cm-page .cm-dialog.cm-dialog-group,
  .cm-page .cm-dialog.cm-dialog-class { width: 100%; max-width: 100%; border-radius: 12px; }
  .cm-page .cm-dialog-head,
  .cm-page .cm-dialog-body,
  .cm-page .cm-dialog-foot { padding-left: 16px; padding-right: 16px; }
  .cm-page .cm-dialog-body.cm-fm .tab-save-foot {
    margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px;
  }
  .cm-fm .toggle-nested { padding-left: 14px; }
  .cm-fm .u-mand { margin-left: 0; }

  /* Coach table collapses to stacked label/value rows. */
  .cm-fm .coach-table,
  .cm-fm .coach-table thead,
  .cm-fm .coach-table tbody,
  .cm-fm .coach-table th,
  .cm-fm .coach-table td,
  .cm-fm .coach-table tr { display: block; }
  .cm-fm .coach-table thead { display: none; }
  .cm-fm .coach-table tr { border: 1px solid #eef1f5; border-radius: 10px; margin-bottom: 10px; padding: 6px 4px; }
  .cm-fm .coach-table td { border: none; padding: 6px 12px; display: flex; justify-content: space-between; gap: 12px; }
  .cm-fm .coach-table td::before { content: attr(data-label); font-weight: 700; font-size: .72rem; text-transform: uppercase; color: var(--fm-muted); }
  .cm-fm .coach-table td.c { justify-content: space-between; text-align: left; }
}

/* ============================================================
   CLASS MANAGEMENT — GROUP POP-UPS (Times / Subscriptions / Staff)
   Ported from group-popups-handoff.html, scoped to .cm-page so the
   handoff's generic names (.row, .head, .ico …) cannot collide with
   the page CSS or leak into the rest of the app.

   The pop-up shell itself reuses the existing .cm-dialog chrome, and
   the forms inside keep their .cm-fm styling — only the list, row,
   add/empty and inline-editor pieces below are new. The handoff's
   brand demo values are NOT copied: brand colours arrive from
   ClubCssStyles as --bs-primary / --bs-secondary.
   ============================================================ */
.cm-page .cm-dialog-gp { width: 960px; }

/* ── Section head: label + count + status filter ─────────────── */
.cm-page .gp-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.cm-page .gp-head .gp-title { display: flex; align-items: center; gap: 8px; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--bs-primary); }
.cm-page .gp-head .gp-count { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); border-radius: 999px; padding: 1px 8px; font-size: .7rem; font-weight: 800; }
.cm-page .gp-head .gp-head-tools { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.cm-page .gp-rule { height: 1px; background: var(--bs-tertiary-bg); margin: 4px 0 16px; }
.cm-page .gp-lead { font-size: .78rem; color: var(--bs-secondary-color); margin: -6px 0 14px; }

/* ── Collapsed summary rows ──────────────────────────────────── */
.cm-page .gp-list { display: flex; flex-direction: column; gap: 10px; }
.cm-page .gp-row { display: flex; align-items: flex-start; gap: 12px; border: 1px solid var(--bs-border-color); border-radius: 12px; padding: 12px 14px; background: var(--bs-white, #fff); }
.cm-page .gp-row:hover { border-color: var(--bs-primary-border-subtle); }
.cm-page .gp-row.is-off { background: var(--bs-tertiary-bg); }
.cm-page .gp-row > .bi-lead { color: var(--bs-primary); font-size: .95rem; margin-top: 2px; flex-shrink: 0; }
.cm-page .gp-row .gp-main { flex: 1 1 auto; min-width: 0; }
.cm-page .gp-row .gp-row-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .88rem; font-weight: 700; color: var(--bs-emphasis-color); }
.cm-page .gp-row .gp-row-sub { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: .76rem; color: var(--bs-secondary-color); margin-top: 3px; }
.cm-page .gp-row .gp-row-sub .bi { font-size: .72rem; }
.cm-page .gp-row .gp-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }

/* ── Icon-only action button ─────────────────────────────────── */
.cm-page .gp-ico { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 8px; color: var(--bs-primary); font-size: .78rem; cursor: pointer; padding: 0; }
.cm-page .gp-ico:hover { background: var(--bs-primary-bg-subtle); }
.cm-page .gp-ico:disabled { opacity: .5; cursor: not-allowed; }
.cm-page .gp-ico.danger { color: #dc2626; }
.cm-page .gp-ico.danger:hover { background: var(--bs-danger-bg-subtle, #fdecec); }

/* ── Dashed add button + empty state ─────────────────────────── */
.cm-page .gp-add { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px dashed var(--bs-primary-border-subtle); border-radius: 12px; background: transparent; color: var(--bs-primary); font-family: inherit; font-weight: 700; font-size: .8rem; padding: 11px 14px; cursor: pointer; margin-top: 12px; }
.cm-page .gp-add:hover { background: var(--bs-primary-bg-subtle); }
.cm-page .gp-add:disabled { opacity: .5; cursor: not-allowed; }
.cm-page .gp-empty { border: 1px dashed var(--bs-border-color); border-radius: 12px; padding: 22px 16px; text-align: center; font-size: .82rem; color: var(--bs-secondary-color); }
.cm-page .gp-empty .bi { display: block; font-size: 1.3rem; margin-bottom: 6px; }

/* ── Inline editor card (hosts the existing add/edit form) ───── */
.cm-page .gp-editor { border: 1px solid var(--bs-primary-border-subtle); border-radius: 12px; background: #fcfdff; padding: 14px 16px 4px; }
.cm-page .gp-editor-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.cm-page .gp-editor-title { display: flex; align-items: center; gap: 7px; font-size: .82rem; font-weight: 800; color: var(--bs-emphasis-color); }
.cm-page .gp-editor-title .bi { color: var(--bs-primary); }
.cm-page .gp-editor-head .gp-editor-cancel { margin-left: auto; }
/* Save / cancel row for the editors the pop-up draws itself, such as staff. */
.cm-page .gp-editor-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; padding-bottom: 12px; }
.cm-page .gp-editor-foot .help { margin-top: 0; }

/* ── Staff table extras ─────────────────────────────────────── */
.cm-page .gp-staff-mail { display: block; font-size: .72rem; font-weight: 600; color: var(--bs-secondary-color); }

@media (max-width: 640px) {
  .cm-page .gp-row { flex-wrap: wrap; }
  .cm-page .gp-row .gp-actions { margin-left: auto; }
}

/* ── First-time group setup walkthrough ──────────────────────────
   Heads the Times and Subscriptions pop-ups while a brand-new group
   is walked through its set-up steps in order. Staff is not a step:
   the add-group form already collects it.
   ─────────────────────────────────────────────────────────────── */
.cm-page .gp-setup { border: 1px solid var(--bs-primary-border-subtle); background: var(--bs-primary-bg-subtle); border-radius: 14px; padding: 12px 14px; margin-bottom: 16px; }
.cm-page .gp-setup-track { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.cm-page .gp-setup-step { display: inline-flex; align-items: center; gap: 7px; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); background: var(--bs-white, #fff); border: 1px solid var(--bs-border-color); border-radius: 999px; padding: 4px 12px 4px 5px; }
.cm-page .gp-setup-step .gp-setup-num { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 999px; background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); font-size: .68rem; font-weight: 800; }
.cm-page .gp-setup-step.is-now { color: var(--bs-primary); border-color: var(--bs-primary); }
.cm-page .gp-setup-step.is-now .gp-setup-num { background: var(--bs-primary); color: #fff; }
.cm-page .gp-setup-step.is-done { color: var(--bs-emphasis-color); }
.cm-page .gp-setup-step.is-done .gp-setup-num { background: var(--bs-success, #198754); color: #fff; }
.cm-page .gp-setup-body { display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.cm-page .gp-setup-copy { flex: 1 1 260px; min-width: 0; }
.cm-page .gp-setup-title { font-size: .92rem; font-weight: 800; color: var(--bs-emphasis-color); }
.cm-page .gp-setup-lead { font-size: .8rem; color: var(--bs-secondary-color); margin: 2px 0 0; }
.cm-page .gp-setup-skip { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; border: 1px solid var(--bs-primary); border-radius: 10px; background: transparent; color: var(--bs-primary); font-family: inherit; font-weight: 700; font-size: .78rem; padding: 8px 14px; cursor: pointer; white-space: nowrap; }
.cm-page .gp-setup-skip:hover { background: var(--bs-primary); color: #fff; }

@media (max-width: 640px) {
  .cm-page .gp-setup-skip { margin-left: 0; width: 100%; justify-content: center; }
}

/* The "edit email" action shares the chip row with the status chips, so it borrows their shape. */
.cm-page button.reg-chip { font-family: inherit; cursor: pointer; }
.cm-page .reg-chip-action { border-color: rgba(var(--bs-primary-rgb), .35); background: rgba(var(--bs-primary-rgb), .10); color: var(--bs-primary); }
.cm-page .reg-chip-action:hover:not(:disabled) { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
.cm-page .reg-chip-action:disabled { opacity: .5; cursor: default; }

/* Add to class — First Lesson Date year accordion (PAYG / standard groups) */
.addtoclass-fld { position: relative; z-index: 1; }
.addtoclass-fld--open { z-index: 1080; }
/* Modal content clips children; let the open picker paint over the dialog edge. */
.members-modal-content:has(.addtoclass-fld--open),
.members-modal-body:has(.addtoclass-fld--open) {
  overflow: visible;
}
.addtoclass-fld.form-floating > .addtoclass-fld__toggle {
  height: calc(3.5rem + 2px);
  min-height: calc(3.5rem + 2px);
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
}
.addtoclass-fld.form-floating > label {
  opacity: .65;
  transform: scale(.85) translateY(-0.5rem) translateX(0.15rem);
}
.addtoclass-fld__panel {
  position: absolute;
  z-index: 1080;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  bottom: auto;
  max-height: min(280px, 45vh);
  overflow: auto;
  background: var(--bs-white, #fff);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.375rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .12);
}
.addtoclass-fld__year + .addtoclass-fld__year { border-top: 1px solid var(--bs-border-color); }
.addtoclass-fld__year-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: 0;
  background: var(--bs-tertiary-bg);
  color: var(--bs-emphasis-color);
  font: inherit;
  font-weight: 700;
  font-size: .85rem;
  padding: 8px 12px;
  cursor: pointer;
  text-align: left;
}
.addtoclass-fld__year-toggle:hover { background: var(--bs-secondary-bg); }
.addtoclass-fld__year-toggle .bi { font-size: .75rem; color: var(--bs-secondary-color); }
.addtoclass-fld__dates { display: flex; flex-direction: column; padding: 4px 0; }
.addtoclass-fld__date {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--bs-body-color);
  font: inherit;
  font-size: .82rem;
  text-align: left;
  padding: 7px 14px 7px 28px;
  cursor: pointer;
}
.addtoclass-fld__date:hover { background: var(--bs-tertiary-bg); }
.addtoclass-fld__date.is-selected {
  background: var(--bs-primary-bg-subtle);
  color: var(--bs-primary-text-emphasis);
  font-weight: 600;
}
.addtoclass-fld__empty {
  padding: 8px 14px 10px 28px;
  font-size: .78rem;
  color: var(--bs-secondary-color);
}
@charset "UTF-8";@import url("https://p.typekit.net/p.css?s=1&k=rwo1ylc&ht=tk&f=32202.32203.32204.32205.32206.32207&a=82700395&app=typekit&e=css");.tk-stolzl{font-family:"stolzl",sans-serif;}.members-group-header{padding:.75rem 1.25rem;background:#f5f5f5;border:0;margin:0 0 0 0;border-radius:0;}.members-group-title{margin:0;color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;}.members-group-count{display:inline;padding:0;background:transparent;color:#6b7280;border:0;font-weight:600;font-size:.75rem;line-height:1;}@media(max-width:767.98px){.members-group-header{padding:.5rem;}.members-group-title{font-size:.85rem;}}.btn-waitlist-add{background:#5b6cf6;color:#fff;border:0;border-radius:8px;padding:.55rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s ease;}.btn-waitlist-add:hover{background:#4a5ae0;color:#fff;}.btn-waitlist-add:active,.btn-waitlist-add:focus{background:#3a4ad0;color:#fff;}.btn-waitlist-add i{font-size:.875rem;}.btn-waitlist-filter{background:#fff;color:#5b6cf6;border:1.5px solid #d0d5f6;border-radius:8px;padding:.55rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s ease;}.btn-waitlist-filter:hover{background:#f8f9ff;border-color:#b0b8f0;color:#4a5ae0;}.btn-waitlist-filter:active,.btn-waitlist-filter:focus{background:#f0f2ff;border-color:#5b6cf6;color:#4a5ae0;}.btn-waitlist-filter i{font-size:.875rem;}.btn-waitlist-filter .badge{background:#e8eaff;color:#5b6cf6;border-radius:6px;padding:.15rem .45rem;font-size:.75rem;font-weight:700;margin-left:.25rem;}.view-controls{display:flex;align-items:center;gap:1rem;}.view-controls-label{color:#6b7280;font-size:.875rem;font-weight:500;margin:0;}.view-controls-dropdown{position:relative;}.view-controls-dropdown .dropdown-toggle{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:.4rem .75rem;font-size:.875rem;font-weight:500;color:#374151;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease;}.view-controls-dropdown .dropdown-toggle:hover{border-color:#d1d5db;background:#f9fafb;}.view-controls-dropdown .dropdown-toggle::after{margin-left:.25rem;}.btn-view-columns{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:.4rem .85rem;font-size:.875rem;font-weight:500;color:#374151;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease;}.btn-view-columns:hover{border-color:#d1d5db;background:#f9fafb;}.btn-view-columns i{font-size:.875rem;}.btn-view-columns .badge{background:#f3f4f6;color:#6b7280;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:600;margin-left:.25rem;}.class-invite-flow{display:flex;flex-direction:column;min-height:78vh;background:#fff;}.class-invite-flow__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 0 1rem;border-bottom:1px solid #edf1f7;}.class-invite-flow__header-copy{display:flex;align-items:flex-start;gap:.9rem;}.class-invite-flow__header-icon{width:54px;height:54px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:1.35rem;flex-shrink:0;}.class-invite-flow__title{margin:0;color:var(--bs-secondary);font-size:1.9rem;font-weight:800;letter-spacing:-.03em;}.class-invite-flow__subtitle{margin:.15rem 0 0;color:#93a2c2;font-size:.95rem;}.class-invite-flow__close{width:46px;height:46px;border:0;border-radius:50%;background:#f7f9fd;color:#8392b1;display:inline-flex;align-items:center;justify-content:center;font-size:1.45rem;}.class-invite-flow__stage-bar{padding:1.25rem 0 1rem;border-bottom:1px solid #edf1f7;}.class-invite-flow__steps{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;}.class-invite-flow__step{display:inline-flex;align-items:center;gap:.7rem;color:#91a0bf;font-weight:700;white-space:nowrap;}.class-invite-flow__step-dot{width:38px;height:38px;border-radius:50%;border:2px solid #8ea0c4;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;line-height:1;}.class-invite-flow__step.is-active{color:#e52c2c;}.class-invite-flow__step.is-active .class-invite-flow__step-dot,.class-invite-flow__step.is-complete .class-invite-flow__step-dot{border-color:#e52c2c;background:#e52c2c;color:#fff;}.class-invite-flow__step-line{flex:1;height:2px;min-width:44px;background:#e7ecf5;}.class-invite-flow__stage-title{margin:0;color:var(--bs-secondary);font-size:1.75rem;font-weight:800;letter-spacing:-.03em;}.class-invite-flow__stage-subtitle{margin:.25rem 0 0;color:#96a5c5;font-size:.98rem;}.class-invite-flow__body{flex:1;overflow-y:auto;padding:1.35rem 1.4rem;background:#fbfcff;display:flex;flex-direction:column;gap:1rem;}.class-invite-flow__card,.class-invite-flow__preview{border:1px solid rgba(239,68,68,.34);border-radius:22px;background:#fff;overflow:hidden;}.class-invite-flow__preview.is-invite-preview{border-color:rgba(16,185,129,.34);}.class-invite-flow__card.is-leave-card{padding:1.2rem 1.3rem;}.class-invite-flow__card.is-audit-card,.class-invite-flow__card.is-move-from-card{padding:.9rem 1rem;border-color:#e8edf5;border-radius:14px;}.class-invite-flow__audit-head{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.85rem;}.class-invite-flow__audit-head .class-invite-flow__card-icon.is-purple{width:34px;height:34px;border-radius:10px;font-size:.85rem;}.class-invite-flow__audit-title{margin:0;color:#8a98b6;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;}.class-invite-flow__audit-subtitle{margin:.15rem 0 0;color:#9aa8c6;font-size:.76rem;}.class-invite-flow__audit-notes{margin-bottom:0;}.class-invite-flow__card.is-audit-card .class-invite-label{font-size:.68rem;margin-bottom:.45rem;}.class-invite-flow__card.is-audit-card .class-invite-input,.class-invite-flow__card.is-audit-card .class-invite-textarea{font-size:.84rem;padding:.45rem .8rem;border-radius:12px;color:var(--bs-secondary);}.class-invite-flow__card.is-audit-card .class-invite-textarea{min-height:72px;}.class-invite-flow__card.is-audit-card .class-invite-flow__field-hint{font-size:.72rem;margin-top:.35rem;}.class-invite-flow__checkbox-row{display:flex;align-items:center;gap:.55rem;padding-left:0;margin-bottom:0;}.class-invite-flow__checkbox-row .form-check-input{position:static;float:none;margin:0;flex-shrink:0;}.class-invite-flow__checkbox-copy{display:flex;align-items:center;gap:.38rem;flex-wrap:nowrap;min-width:0;}.class-invite-flow__checkbox-label{margin-bottom:0;line-height:1.35;}.class-invite-flow__inline-help{border:0;background:transparent;padding:0;color:#b0bbd0;font-size:1rem;line-height:1;flex-shrink:0;}.class-invite-flow__inline-help:hover{color:var(--bs-primary);}.class-invite-flow__inline-help:focus-visible{outline:0;color:var(--bs-primary);}.class-invite-flow__field-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.1rem .42rem;border-radius:999px;font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle;}.class-invite-flow__field-badge.is-required{background:#ffe8e8;color:#e52c2c;}.class-invite-flow__field-badge.is-optional{background:#eef2f8;color:#8a98b6;}.class-invite-flow__move-from-top{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.8rem;}.class-invite-flow__move-from-icon-wrap{width:30px;height:30px;border-radius:999px;background:#f3f5f9;color:#8a98b6;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;flex-shrink:0;}.class-invite-flow__move-from-copy{min-width:0;}.class-invite-flow__move-from-label{display:block;color:#8a98b6;font-size:.64rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:.2rem;}.class-invite-flow__move-from-classline{margin:0;font-size:.88rem;line-height:1.35;color:var(--bs-secondary);}.class-invite-flow__move-from-classline strong{font-weight:700;}.class-invite-flow__move-from-dot,.class-invite-flow__move-from-schedule{color:#8a98b6;font-weight:500;}.class-invite-flow__move-from-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem .65rem;}.class-invite-flow__move-from-bottom.is-single-student{gap:.5rem .55rem;}.class-invite-flow__move-from-bottom.is-single-student .class-invite-flow__move-from-avatar{margin-right:0;}.class-invite-flow__move-from-student-name{color:var(--bs-secondary);font-size:.82rem;font-weight:700;white-space:nowrap;}.class-invite-flow__move-from-avatars{display:flex;align-items:center;}.class-invite-flow__move-from-avatar{width:28px;height:28px;border-radius:999px;border:2px solid #fff;margin-right:-.3rem;display:inline-flex!important;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;flex-shrink:0;}.class-invite-flow__move-from-avatar.is-tone-1{background:#dcfce7;color:#15803d;}.class-invite-flow__move-from-avatar.is-tone-2{background:#ede9fe;color:#6d28d9;}.class-invite-flow__move-from-avatar.is-tone-3{background:#ccfbf1;color:#0f766e;}.class-invite-flow__move-from-avatar.is-tone-4{background:#fce7f3;color:#be185d;}.class-invite-flow__move-from-avatar.is-tone-5{background:#ffedd5;color:#c2410c;}.class-invite-flow__move-from-avatar.is-tone-6{background:#ecfccb;color:#4d7c0f;}.class-invite-flow__move-from-count{color:var(--bs-secondary);font-size:.78rem;font-weight:700;white-space:nowrap;}.class-invite-flow__move-from-plan{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;background:#f4f6fb;color:var(--bs-secondary);font-size:.72rem;white-space:nowrap;}.class-invite-flow__move-from-plan strong{font-weight:700;}.class-invite-flow__move-from-plan span{color:#8a98b6;font-weight:500;}.class-invite-flow__class-sub-badge{display:inline-flex;align-items:center;gap:.32rem;padding:.28rem .55rem;border-radius:999px;border:1px solid #e0d4ff;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;}.class-invite-flow__class-sub-badge i{font-size:.62rem;}.class-invite-flow__move-from-empty{margin:0;color:#9aa8c6;font-size:.8rem;}.class-invite-flow__move-from-loading{min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;padding:1rem;}.class-invite-flow__move-from-customise-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid #edf1f7;}.class-invite-flow__move-from-customise{border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:.45rem;color:#8a98b6;font-size:.76rem;font-weight:600;text-align:left;cursor:pointer;}.class-invite-flow__move-from-addon-badge{display:inline-flex;align-items:center;padding:.18rem .48rem;border-radius:999px;border:1px solid rgba(var(--bs-secondary-rgb),.28);background:rgba(var(--bs-secondary-rgb),.08);color:var(--bs-secondary);font-size:.6rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;}.class-invite-flow__move-from-customise:hover{color:var(--bs-secondary);}.class-invite-flow__move-from-customise i{font-size:.68rem;}.class-invite-flow__leave-customise{margin-top:.75rem;border:1px solid #e8edf5;border-radius:12px;background:#fff;padding:.8rem .85rem .85rem;}.class-invite-flow__leave-customise-intro{margin:0 0 .7rem;color:#8a98b6;font-size:.74rem;line-height:1.45;}.class-invite-flow__leave-customise-list{display:flex;flex-direction:column;gap:.55rem;}.class-invite-flow__leave-customise-student{border:1px solid #e8edf5;border-radius:10px;background:#fbfcff;padding:.65rem .7rem .7rem;}.class-invite-flow__leave-customise-student-top{display:flex;align-items:center;gap:.55rem;margin-bottom:.55rem;}.class-invite-flow__leave-customise-empty{color:#8a98b6;font-size:.72rem;font-weight:600;}.class-invite-flow__leave-customise-footer{margin-top:.75rem;padding-top:.7rem;border-top:1px solid #edf1f7;}.class-invite-flow__sub-review-badge.is-complete{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.class-invite-flow__sub-review-option-class{display:inline-flex;align-items:center;padding:.08rem .32rem;border-radius:999px;background:rgba(var(--bs-secondary-rgb),.1);color:var(--bs-secondary);font-size:.58rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}.class-invite-flow__sub-review{margin-top:.85rem;border:1px solid #fde8c8;border-radius:12px;background:#fffaf3;padding:.8rem .85rem .85rem;}.class-invite-flow__sub-review.is-below-customise{margin-top:.75rem;}.class-invite-flow__sub-review.is-complete{border-color:rgba(var(--bs-primary-rgb),.28);background:#f7fffb;}.class-invite-flow__sub-review-head{margin-bottom:.45rem;}.class-invite-flow__sub-review-badge{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;background:#ffedd5;color:#c2410c;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}.class-invite-flow__sub-review.is-complete .class-invite-flow__sub-review-badge{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.class-invite-flow__sub-review-intro{margin:0 0 .7rem;color:#8a98b6;font-size:.74rem;line-height:1.45;}.class-invite-flow__sub-review-list{display:flex;flex-direction:column;gap:.55rem;}.class-invite-flow__sub-review-student{border:1px solid #fde8c8;border-radius:10px;background:#fff;padding:.65rem .7rem .7rem;}.class-invite-flow__sub-review-student.is-complete{border-color:rgba(var(--bs-primary-rgb),.22);}.class-invite-flow__sub-review-student-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem;margin-bottom:.55rem;}.class-invite-flow__sub-review-student-main{display:flex;align-items:center;gap:.55rem;min-width:0;}.class-invite-flow__sub-review-avatar{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;flex-shrink:0;}.class-invite-flow__sub-review-copy{min-width:0;display:flex;flex-direction:column;gap:.08rem;}.class-invite-flow__sub-review-copy strong{color:var(--bs-secondary);font-size:.8rem;font-weight:700;line-height:1.25;}.class-invite-flow__sub-review-copy span{color:#8a98b6;font-size:.7rem;line-height:1.25;}.class-invite-flow__sub-review-status{display:inline-flex;align-items:center;gap:.28rem;padding:.18rem .45rem;border-radius:999px;font-size:.62rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;}.class-invite-flow__sub-review-status.is-needs-choice{background:#ffedd5;color:#c2410c;}.class-invite-flow__sub-review-status.is-selected{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.class-invite-flow__sub-review-status.is-no-subscriptions{background:rgba(var(--bs-secondary-rgb),.1);color:var(--bs-secondary);}.class-invite-flow__sub-review-options{display:flex;flex-wrap:wrap;gap:.42rem;}.class-invite-flow__sub-review-option{border:1px solid #dce4f1;border-radius:999px;background:#fff;color:var(--bs-secondary);font-size:.72rem;font-weight:600;padding:.32rem .62rem .32rem .42rem;display:inline-flex;align-items:center;gap:.38rem;cursor:pointer;}.class-invite-flow__sub-review-option.is-selected{border-color:rgba(var(--bs-secondary-rgb),.35);background:rgba(var(--bs-secondary-rgb),.08);color:var(--bs-secondary);}.class-invite-flow__sub-review-option-check{width:14px;height:14px;border:1.5px solid #c7d2e3;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:.55rem;flex-shrink:0;}.class-invite-flow__sub-review-option-check.is-selected{border-color:var(--bs-secondary);background:var(--bs-secondary);color:#fff;}.class-invite-flow__footer.is-leave-step{align-items:center;gap:.75rem;}.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-left,.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right{flex:0 0 auto;}.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right{flex:1;justify-content:flex-end;}.class-invite-flow__primary-btn.is-leave-continue{min-height:38px;padding:.5rem 1rem;font-size:.82rem;font-weight:700;border-radius:12px;}.class-invite-flow__primary-btn.is-leave-blocked{flex:1;max-width:100%;min-height:38px;padding:.5rem .85rem;border:0;border-radius:12px;background:#eef1f6;color:#8a98b6;font-size:.78rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;cursor:not-allowed;opacity:1;}.class-invite-flow__primary-btn.is-leave-blocked i{font-size:.82rem;}.class-invite-flow__footer.is-leave-step .class-invite-flow__secondary-btn{min-height:38px;padding:.5rem .95rem;font-size:.82rem;font-weight:600;border-radius:12px;}.class-invite-flow__footer.is-invite-step{align-items:center;gap:.75rem;}.class-invite-flow__footer.is-invite-step .class-invite-flow__footer-right{flex:1;justify-content:flex-end;}.class-invite-flow__footer.is-invite-step .class-invite-flow__secondary-btn{min-height:38px;padding:.5rem .95rem;font-size:.82rem;font-weight:600;border-radius:12px;}.class-invite-flow__move-step-card{border:1px solid rgba(16,185,129,.28);border-radius:14px;background:#fff;padding:.85rem .95rem;}.class-invite-flow__move-step-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.75rem;}.class-invite-flow__move-step-badge{width:22px;height:22px;border-radius:999px;background:#10b981;color:#fff;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.class-invite-flow__move-step-title{margin:0;color:var(--bs-secondary);font-size:.88rem;font-weight:700;}.class-invite-flow__move-class-list{border:1px solid #e8edf5;border-radius:12px;overflow:hidden;background:#fff;}.class-invite-flow__move-class{background:#fff;}.class-invite-flow__move-class+.class-invite-flow__move-class{border-top:1px solid #edf1f7;}.class-invite-flow__move-class.is-expanded{background:#f0fdf8;border-top:1px solid rgba(16,185,129,.22);border-bottom:1px solid rgba(16,185,129,.22);}.class-invite-flow__move-class.is-expanded+.class-invite-flow__move-class{border-top:0;}.class-invite-flow__move-class-trigger{width:100%;border:0;background:transparent;padding:.7rem .8rem;display:flex;align-items:center;gap:.65rem;text-align:left;}.class-invite-flow__move-class-icon{width:30px;height:30px;border-radius:8px;background:#f3f5f9;color:#8a98b6;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;flex-shrink:0;}.class-invite-flow__move-class-icon.is-active{background:#ecfdf5;color:var(--bs-primary);}.class-invite-flow__move-class-icon.is-expanded{background:#10b981;color:#fff;}.class-invite-flow__move-class-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:.12rem;}.class-invite-flow__move-class-copy strong{color:var(--bs-secondary);font-size:.84rem;font-weight:700;}.class-invite-flow__move-class-copy span{color:#8a98b6;font-size:.72rem;}.class-invite-flow__move-class-selected{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .5rem;border-radius:999px;background:#ecfdf5;color:var(--bs-primary);font-size:.68rem;font-weight:700;white-space:nowrap;}.class-invite-flow__move-class-chevron{color:#b0bbd0;font-size:.72rem;flex-shrink:0;}.class-invite-flow__move-class-chevron.is-expanded{color:var(--bs-primary);}.class-invite-flow__move-class-options{padding:0 .55rem .55rem;background:#f0fdf8;display:flex;flex-direction:column;gap:.42rem;}.class-invite-flow__move-group-option{width:100%;border:1px solid #e8edf5;border-radius:10px;background:#fff;padding:.62rem .72rem;display:flex;align-items:center;gap:.65rem;text-align:left;}.class-invite-flow__move-group-option.is-full{border-color:#fdba74;}.class-invite-flow__move-group-option.is-selected{border-color:#10b981;background:#f8fffc;box-shadow:inset 0 0 0 1px rgba(16,185,129,.08);}.class-invite-flow__move-group-radio{width:16px;height:16px;border-radius:999px;border:2px solid #c7d2e3;flex-shrink:0;position:relative;}.class-invite-flow__move-group-radio.is-selected{border-color:#10b981;}.class-invite-flow__move-group-radio.is-selected::after{content:"";position:absolute;inset:3px;border-radius:999px;background:#10b981;}.class-invite-flow__move-group-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;}.class-invite-flow__move-group-main strong{color:var(--bs-secondary);font-size:.8rem;font-weight:700;}.class-invite-flow__move-group-spaces{color:#8a98b6;font-size:.7rem;}.class-invite-flow__move-group-full{display:inline-flex;align-items:center;gap:.28rem;padding:.12rem .42rem;border-radius:999px;background:#fff4e8;color:#c2410c;font-size:.64rem;font-weight:700;width:fit-content;}.class-invite-flow__move-group-full i{font-size:.62rem;}.class-invite-flow__pending-list-backdrop{position:fixed;inset:0;z-index:1200;background:rgba(30,42,74,.45);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;}.class-invite-flow__pending-list-modal{width:min(100%,520px);border-radius:16px;background:#fff;box-shadow:0 18px 48px rgba(30,42,74,.18);overflow:hidden;}.class-invite-flow__pending-list-head{display:flex;align-items:flex-start;gap:.85rem;padding:1.15rem 1.25rem 1rem;background:#fff8ef;border-bottom:1px solid #fde8c8;}.class-invite-flow__pending-list-icon{width:40px;height:40px;border-radius:10px;background:#ffedd5;color:#d97706;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;}.class-invite-flow__pending-list-title{margin:0;color:#9a3412;font-size:1.15rem;font-weight:800;line-height:1.25;}.class-invite-flow__pending-list-subtitle{margin:.2rem 0 0;color:#6b7280;font-size:.82rem;line-height:1.45;}.class-invite-flow__pending-list-body{padding:1.1rem 1.25rem 1.2rem;}.class-invite-flow__pending-list-copy{margin:0;color:#374151;font-size:.88rem;line-height:1.6;}.class-invite-flow__pending-list-note{margin-top:.9rem;padding:.85rem .95rem;border-radius:12px;background:#f8fafc;border:1px solid #e5e7eb;display:flex;align-items:flex-start;gap:.55rem;color:#4b5563;font-size:.8rem;line-height:1.5;}.class-invite-flow__pending-list-note i{color:#9aa8c6;margin-top:.12rem;flex-shrink:0;}.class-invite-flow__pending-list-footer{padding:0 1.25rem 1.2rem;display:flex;justify-content:flex-end;}.class-invite-flow__send-endings-body{display:flex;flex-direction:column;gap:.9rem;}.class-invite-flow__move-group-price{display:inline-flex;align-items:center;gap:.28rem;padding:.22rem .48rem;border-radius:999px;background:#f4f6fb;font-size:.72rem;font-weight:600;white-space:nowrap;margin-left:auto;flex-shrink:0;}.class-invite-flow__move-group-price i{color:var(--bs-primary);font-size:.65rem;}.class-invite-flow__move-group-price span{color:var(--bs-primary);}.class-invite-flow__move-month-grid{display:flex;flex-wrap:wrap;gap:.45rem;}.class-invite-flow__move-month{border:1px solid #dce4f1;border-radius:999px;background:#fff;color:var(--bs-secondary);font-size:.76rem;font-weight:600;padding:.38rem .72rem;min-width:0;}.class-invite-flow__move-month.is-selected{border-color:#10b981;background:#ecfdf5;color:var(--bs-primary);}.class-invite-flow__footer.is-review-step{align-items:center;gap:.75rem;}.class-invite-flow__footer.is-review-step .class-invite-flow__footer-right{flex:1;justify-content:flex-end;}.class-invite-flow__footer.is-review-step .class-invite-flow__secondary-btn{min-height:38px;padding:.5rem .95rem;font-size:.82rem;font-weight:600;border-radius:12px;}.class-invite-flow__review-card{border:1px solid #e8edf5;border-radius:14px;background:#fff;padding:.95rem 1rem 1rem;}.class-invite-flow__review-intro{margin:0 0 .9rem;color:var(--bs-secondary);font-size:.82rem;line-height:1.5;}.class-invite-flow__review-recipients-wrap{position:relative;display:inline-block;}.class-invite-flow__review-recipients-link{border:0;background:transparent;padding:0;color:var(--bs-primary);font-size:.82rem;font-weight:700;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;cursor:pointer;}.class-invite-flow__review-recipients-popover{position:absolute;left:0;top:calc(100% + .45rem);z-index:20;width:280px;border:1px solid #e8edf5;border-radius:12px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.12);overflow:hidden;}.class-invite-flow__review-recipients-popover-head{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#f7f9fd;color:#8a98b6;font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.class-invite-flow__review-recipients-popover-list{max-height:220px;overflow-y:auto;padding:.35rem 0;}.class-invite-flow__review-recipient-row{display:flex;align-items:center;gap:.55rem;padding:.45rem .75rem;}.class-invite-flow__review-recipient-row strong{display:block;color:var(--bs-secondary);font-size:.8rem;font-weight:700;}.class-invite-flow__review-recipient-row span{display:block;color:#8a98b6;font-size:.72rem;}.class-invite-flow__review-rows{border-top:1px solid #edf1f7;}.class-invite-flow__review-row{display:grid;grid-template-columns:110px 1fr;gap:.75rem;padding:.7rem 0;border-bottom:1px solid #edf1f7;}.class-invite-flow__review-label{color:#8a98b6;font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding-top:.1rem;}.class-invite-flow__review-value strong{display:block;color:var(--bs-secondary);font-size:.84rem;font-weight:700;}.class-invite-flow__review-hint{display:block;margin-top:.2rem;color:#8a98b6;font-size:.74rem;line-height:1.4;}.class-invite-flow__review-hint strong{display:inline;color:var(--bs-secondary);font-size:.74rem;font-weight:600;}.class-invite-flow__review-help{margin-left:.2rem;color:#b0bbd0;font-size:.72rem;}.class-invite-flow__review-options-intro{margin-bottom:.55rem;}.class-invite-flow__review-options-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem;}.class-invite-flow__review-options-list li{color:#5a6b8c;font-size:.78rem;line-height:1.45;}.class-invite-flow__review-options-list li strong{display:inline;color:var(--bs-secondary);font-size:.8rem;font-weight:700;}.class-invite-flow__review-pending-headline{display:block;color:var(--bs-secondary);font-size:.84rem;font-weight:700;margin-bottom:.2rem;}.class-invite-flow__review-email{display:flex;align-items:flex-start;gap:.65rem;margin-top:.85rem;padding-top:.85rem;border-top:1px solid #edf1f7;cursor:pointer;}.class-invite-flow__review-email-check{margin-top:.15rem;accent-color:var(--bs-primary);}.class-invite-flow__review-email-copy{display:flex;flex-direction:column;gap:.15rem;}.class-invite-flow__review-email-copy strong{color:var(--bs-secondary);font-size:.82rem;font-weight:700;}.class-invite-flow__review-email-copy span{color:#8a98b6;font-size:.74rem;line-height:1.4;}.class-invite-flow__card.is-invite-card{border-color:rgba(16,185,129,.35);}.class-invite-flow__card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.class-invite-flow__card-copy{display:flex;align-items:flex-start;gap:.9rem;}.class-invite-flow__card-icon{width:54px;height:54px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:1.2rem;flex-shrink:0;}.class-invite-flow__card-icon.is-purple{background:#f4efff;color:#7c4dff;}.class-invite-flow__card-icon.is-invite{background:#ecfdf5;color:#10b981;}.class-invite-flow__card-title{margin:0;color:#24345d;font-size:1.45rem;font-weight:800;}.class-invite-flow__card-subtitle{margin:.22rem 0 0;color:#9aa8c6;font-size:.94rem;}.class-invite-flow__student-count{border-radius:999px;background:#fff1f1;color:#e04747;padding:.45rem .9rem;font-size:.92rem;font-weight:700;}.class-invite-flow__student-count.is-invite{background:#ecfdf5;color:#0f9f73;}.class-invite-flow__leave-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;}.class-invite-flow__pill,.class-invite-flow__preview-sub,.class-invite-flow__review-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid #dfe5f1;border-radius:12px;background:#f7f9fc;color:#31405f;padding:.48rem .8rem;font-size:.92rem;font-weight:700;}.class-invite-flow__pill span,.class-invite-flow__preview-sub span{color:#7c8cae;font-weight:600;}.class-invite-flow__pill.is-leave-group{border-color:rgba(239,68,68,.45);background:#fff6f6;color:#db3e3e;}.class-invite-flow__pill.is-custom{border-color:rgba(239,68,68,.45);background:#fff6f6;}.class-invite-flow__custom-badge{border-radius:8px;background:#f4efff;color:#7c4dff;padding:.32rem .56rem;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.class-invite-flow__date-box,.class-invite-flow__row-date-box{display:inline-flex;align-items:center;gap:.6rem;border:1px solid rgba(239,68,68,.45);border-radius:16px;background:#fff8f8;padding:.35rem .5rem .35rem .8rem;}.class-invite-flow__date-label,.class-invite-flow__row-date-label{display:inline-flex;align-items:center;gap:.45rem;color:#dc3c3c;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;}.class-invite-flow__date-select,.class-invite-flow__row-date-select,.class-invite-flow__search-input{border:1px solid rgba(239,68,68,.32);border-radius:10px;background:#fff;color:#24345d;min-height:40px;padding:.4rem .75rem;font-size:.94rem;font-weight:700;}.class-invite-flow__cancel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;background:#fff8f8;border-bottom:1px solid rgba(239,68,68,.18);}.class-invite-flow__cancel-title-wrap{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}.class-invite-flow__cancel-icon{color:#e04545;font-size:1rem;}.class-invite-flow__cancel-title{margin:0;color:#d93636;font-size:1.22rem;font-weight:800;}.class-invite-flow__cancel-source{color:#f16a6a;font-size:.9rem;}.class-invite-flow__cancel-list{display:flex;flex-direction:column;}.class-invite-flow__cancel-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1.2rem;border-bottom:1px solid #edf1f7;}.class-invite-flow__cancel-row.is-selected{background:#fff7f7;}.class-invite-flow__cancel-row-main,.class-invite-flow__cancel-row-side,.class-invite-flow__library-search,.class-invite-flow__library-row,.class-invite-flow__footer,.class-invite-flow__footer-right,.class-invite-flow__footer-left,.class-invite-flow__preview-student{display:flex;align-items:center;gap:.8rem;}.class-invite-flow__cancel-row-side{margin-left:auto;}.class-invite-flow__cancel-checkbox{margin:0;width:18px;height:18px;border-color:#d8e0ee;}.class-invite-flow__cancel-count{color:#92a0bd;font-size:.88rem;font-weight:700;}.class-invite-flow__remove-custom{width:34px;height:34px;border:1px solid #dfe5f1;border-radius:10px;background:#fff;color:#9aa6c1;display:inline-flex;align-items:center;justify-content:center;}.class-invite-flow__add-more{display:flex;align-items:center;gap:.8rem;width:100%;padding:1rem 1.2rem;border:0;border-top:1px solid #edf1f7;background:#fff;text-align:left;}.class-invite-flow__add-more-icon{width:28px;height:28px;border-radius:10px;border:1px solid rgba(239,68,68,.22);color:#ef4444;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.class-invite-flow__add-more-copy,.class-invite-flow__join-card-head,.class-invite-flow__review-copy{display:flex;flex-direction:column;gap:.18rem;}.class-invite-flow__add-more-title{color:#2d3c60;font-size:1.02rem;font-weight:800;}.class-invite-flow__add-more-subtitle{color:#97a4c3;font-size:.88rem;}.class-invite-flow__library{padding:0 1.2rem 1.2rem;}.class-invite-flow__library-search{padding:.9rem 0 .6rem;}.class-invite-flow__search-input{flex:1;border-color:#dbe3ef;}.class-invite-flow__library-cancel,.class-invite-flow__secondary-btn{border:1px solid #dce4f1;border-radius:14px;background:#fff;color:#8a99b8;min-height:44px;padding:.75rem 1rem;font-size:.95rem;font-weight:700;}.class-invite-flow__library-list{max-height:190px;overflow-y:auto;border:1px solid #e6ecf5;border-radius:16px;background:#fff;}.class-invite-flow__library-row{justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid #edf1f7;}.class-invite-flow__library-row:last-child{border-bottom:0;}.class-invite-flow__library-add{border:0;background:transparent;color:#ef4444;display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:800;}.class-invite-flow__preview-head,.class-invite-flow__preview-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.35fr);gap:1rem;align-items:start;}.class-invite-flow__preview-head{padding:.95rem 1rem;border-bottom:1px solid #edf1f7;color:#9aa8c6;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}.class-invite-flow__preview-row{padding:1rem;border-bottom:1px solid #edf1f7;background:#fff9f9;}.class-invite-flow__preview-row:last-child{border-bottom:0;}.class-invite-flow__preview-avatar{width:40px;height:40px;border-radius:50%;background:#f5e7ff;color:#8a52ff;display:inline-flex;align-items:center;justify-content:center;font-size:.92rem;font-weight:800;flex-shrink:0;}.class-invite-flow__preview-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.class-invite-flow__preview-avatar.is-female{background:#fce7f3;color:#db2777;}.class-invite-flow__preview-name{color:#24345d;font-size:1rem;font-weight:800;}.class-invite-flow__preview-meta{color:#e04545;font-size:.88rem;font-weight:700;margin-top:.2rem;}.class-invite-flow__preview-class{display:flex;flex-direction:column;gap:.45rem;min-width:0;}.class-invite-flow__preview-class-card{border:1px solid rgba(239,68,68,.45);border-radius:12px;background:#fff6f6;padding:.72rem .8rem;display:flex;flex-direction:column;gap:.28rem;}.class-invite-flow__preview-class-name{color:#d53b3b;font-size:.95rem;font-weight:800;text-decoration:line-through;}.class-invite-flow__preview-class-name span{color:#c98989;font-weight:700;margin-left:.35rem;}.class-invite-flow__preview-class-date{display:inline-flex;width:fit-content;color:#d53b3b;padding:0;font-size:.84rem;font-weight:800;text-decoration:line-through;}.class-invite-flow__preview-subs,.class-invite-flow__review-chips,.class-invite-flow__join-list{display:flex;flex-wrap:wrap;gap:.65rem;}.class-invite-flow__preview-sub.is-selected{border-color:rgba(239,68,68,.45);background:#fff2f2;color:#d53b3b;text-decoration:line-through;}.class-invite-flow__preview-sub.is-selected span{color:#d68f8f;}.class-invite-flow__preview-sub.is-selected strong{display:inline-flex;border-radius:10px;background:#fff;color:#d53b3b;padding:.26rem .5rem;font-size:.8rem;font-weight:800;}.class-invite-flow__preview-subs.is-leave-preview{margin-top:.6rem;}.class-invite-flow__preview-empty{color:#9caccc;font-weight:700;}.class-invite-flow__join-card,.class-invite-flow__review-card{flex:1 1 280px;border:1px solid #e2e8f3;border-radius:18px;background:#fff;padding:1rem;}.class-invite-flow__join-title,.class-invite-flow__review-title{margin:0;color:#24345d;font-size:1.12rem;font-weight:800;}.class-invite-flow__join-subtitle,.class-invite-flow__review-copy span{color:#94a3c1;font-size:.9rem;}.class-invite-flow__review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}.class-invite-flow__review-copy strong{color:#24345d;font-size:.98rem;}.class-invite-flow__review-chip.is-remove{border-color:rgba(239,68,68,.34);background:#fff5f5;color:#dc3c3c;text-decoration:line-through;}.class-invite-flow__review-chip.is-add{border-color:rgba(124,77,255,.28);background:#f5f1ff;color:#7c4dff;}.class-invite-flow__review-chip.is-email{border-color:rgba(var(--bs-primary-rgb),.28);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.class-invite-flow__invite-chip-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem;}.class-invite-flow__invite-chip{border:1px solid rgba(16,185,129,.35);border-radius:12px;background:#ecfdf5;color:#0f9f73;padding:.5rem .75rem;display:inline-flex;align-items:center;gap:.6rem;font-size:.92rem;font-weight:800;}.class-invite-flow__invite-chip span span{color:#5ba88a;font-weight:700;margin-left:.25rem;}.class-invite-flow__invite-week-card{margin-top:1rem;border:1px solid #e3eaf4;border-radius:18px;background:#f8fafc;padding:1rem;}.class-invite-flow__invite-week-head,.class-invite-flow__catalogue-head,.class-invite-flow__catalogue-group-head,.class-invite-flow__catalogue-row,.class-invite-flow__catalogue-row-main,.class-invite-flow__catalogue-row-side,.class-invite-flow__invite-option{display:flex;align-items:center;justify-content:space-between;gap:.8rem;}.class-invite-flow__invite-week-title,.class-invite-flow__catalogue-title,.class-invite-flow__catalogue-group-title{display:inline-flex;align-items:center;gap:.5rem;color:#31405f;font-size:.95rem;font-weight:800;text-transform:uppercase;}.class-invite-flow__invite-week-copy,.class-invite-flow__catalogue-group-count{color:#97a4c3;font-size:.84rem;font-weight:700;}.class-invite-flow__invite-week-nav{display:flex;align-items:center;gap:.55rem;margin-top:.8rem;}.class-invite-flow__invite-week-list{display:flex;flex:1;min-width:0;gap:.65rem;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;}.class-invite-flow__invite-week-list::-webkit-scrollbar{display:none;}.class-invite-flow__invite-week-arrow{width:42px;height:42px;border:1px solid #dfe5f1;border-radius:12px;background:#fff;color:#31405f;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.class-invite-flow__invite-week-arrow:disabled{opacity:.45;cursor:not-allowed;}.class-invite-flow__invite-week{flex:0 0 auto;min-width:140px;border:1px solid #dfe5f1;border-radius:14px;background:#fff;color:#31405f;padding:.8rem .9rem;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;font-weight:800;}.class-invite-flow__invite-week.is-selected{border-color:rgba(16,185,129,.4);background:#ecfdf5;}.class-invite-flow__invite-week-label{color:#97a4c3;font-size:.78rem;text-transform:uppercase;}.class-invite-flow__invite-week-range{color:#31405f;font-size:.96rem;}.class-invite-flow__catalogue{margin-top:1rem;border:1px solid rgba(16,185,129,.35);border-radius:18px;background:#fff;padding:1rem;}.class-invite-flow__catalogue-groups{display:flex;flex-direction:column;gap:1rem;}.class-invite-flow__catalogue-group{border:1px solid #dfe5f1;border-radius:16px;overflow:hidden;background:#fff;}.class-invite-flow__catalogue-group-head{padding:.85rem 1rem;background:#f8fafc;}.class-invite-flow__catalogue-group-name{color:#31405f;font-size:1rem;font-weight:800;}.class-invite-flow__catalogue-group-list{display:flex;flex-direction:column;gap:.65rem;padding:.8rem;}.class-invite-flow__catalogue-row{border:1px solid #e3eaf4;border-radius:14px;background:#fff;padding:.75rem .9rem;}.class-invite-flow__catalogue-row.is-selected{border-color:rgba(16,185,129,.4);background:#ecfdf5;}.class-invite-flow__catalogue-checkbox{margin:0;width:18px;height:18px;border-color:#d8e0ee;}.class-invite-flow__invite-date-box{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(16,185,129,.4);border-radius:10px;background:#fff;padding:.35rem .55rem;color:#0f9f73;}.class-invite-flow__invite-date-select{border:0;background:transparent;color:#31405f;font-size:.88rem;font-weight:700;min-width:112px;}.class-invite-flow__capacity-pill{border-radius:999px;background:#ecfdf5;color:#0f9f73;padding:.35rem .7rem;font-size:.84rem;font-weight:800;}.class-invite-flow__capacity-pill.is-trial{background:#eff6ff;color:#3b82f6;}.class-invite-flow__preview-head.is-invite-preview,.class-invite-flow__preview-row.is-invite-preview{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);background:#effcf8;}.class-invite-flow__preview-meta.is-invite{color:#0f9f73;}.class-invite-flow__invite-options{display:flex;flex-direction:column;gap:.55rem;}.class-invite-flow__invite-option{justify-content:flex-start;border:1px solid rgba(16,185,129,.28);border-radius:14px;background:#fff;padding:.75rem .85rem;}.class-invite-flow__invite-option-index{width:28px;height:28px;border-radius:50%;background:#ecfdf5;color:#0f9f73;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;flex-shrink:0;}.class-invite-flow__invite-option-main{display:flex;flex-direction:column;gap:.16rem;min-width:0;flex:1;}.class-invite-flow__invite-option-name{color:#24345d;font-size:.94rem;font-weight:800;}.class-invite-flow__invite-option-group{color:#5da88b;font-size:.88rem;font-weight:700;}.class-invite-flow__invite-option-date{border-radius:10px;background:#ecfdf5;color:#0f9f73;padding:.35rem .6rem;font-size:.82rem;font-weight:800;}.class-invite-flow__info-banner{display:flex;align-items:center;gap:.65rem;border:1px solid rgba(16,185,129,.32);border-radius:16px;background:#ecfdf5;color:#1f7a63;padding:.75rem .95rem;font-size:.82rem;font-weight:700;}.class-invite-flow__subscriptions-stage{display:flex;flex-direction:column;gap:.9rem;}.class-invite-flow__subscription-group-card{border:1px solid rgba(16,185,129,.28);border-radius:18px;background:#fff;overflow:hidden;}.class-invite-flow__subscription-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.95rem 1rem .8rem;background:#f4fffa;border-bottom:1px solid rgba(16,185,129,.14);}.class-invite-flow__subscription-group-copy{display:flex;align-items:flex-start;gap:.7rem;}.class-invite-flow__subscription-group-icon{width:38px;height:38px;border-radius:12px;border:1px solid rgba(16,185,129,.24);background:#fff;color:#10b981;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.class-invite-flow__subscription-group-title{margin:0;color:#24345d;font-size:.96rem;font-weight:800;}.class-invite-flow__subscription-group-subtitle{margin:.16rem 0 0;color:#2d8a71;font-size:.78rem;font-weight:700;}.class-invite-flow__subscription-group-count{border-radius:10px;border:1px solid rgba(16,185,129,.24);background:#fff;color:#1d7f67;padding:.38rem .68rem;font-size:.76rem;font-weight:800;}.class-invite-flow__subscription-group-list{display:flex;flex-direction:column;}.class-invite-flow__subscription-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem 1rem;border-bottom:1px solid #edf7f2;background:#fff;}.class-invite-flow__subscription-row.is-selected{background:#ecfdf5;}.class-invite-flow__subscription-row-main,.class-invite-flow__subscription-row-side{display:flex;align-items:center;gap:.75rem;}.class-invite-flow__subscription-row-side{margin-left:auto;}.class-invite-flow__subscription-checkbox{margin:0;width:18px;height:18px;border-color:#d8e0ee;}.class-invite-flow__pill.is-invite-sub{border-color:rgba(16,185,129,.28);background:#f4fffa;color:#1a7e66;}.class-invite-flow__invite-date-box.is-subscription-start{border-color:rgba(16,185,129,.32);background:#fff;padding-right:.45rem;}.class-invite-flow__invite-start-label{color:#1d8d72;font-size:.74rem;font-weight:800;text-transform:uppercase;}.class-invite-flow__invite-date-select.is-text{min-width:70px;padding:.22rem .42rem;text-align:center;}.class-invite-flow__add-more.is-invite-add{border-top:1px solid #edf7f2;color:#2d3c60;}.class-invite-flow__add-more.is-invite-add .class-invite-flow__add-more-icon{border-color:rgba(16,185,129,.24);color:#10b981;}.class-invite-flow__add-more.is-invite-add .class-invite-flow__add-more-title{color:var(--bs-secondary);}.class-invite-flow__add-more.is-invite-add .class-invite-flow__add-more-subtitle{color:#97a4c3;}.class-invite-flow__library.is-invite-library{padding-top:0;}.class-invite-flow__library-search.is-invite-library{gap:.6rem;}.class-invite-flow__search-input.is-invite-library{border-color:rgba(16,185,129,.28);}.class-invite-flow__library-list.is-invite-library{border-color:#d6f5e7;}.class-invite-flow__library-row.is-invite-library{background:#fff;}.class-invite-flow__library-add.is-invite-library{color:#10b981;}.class-invite-flow__library-empty{padding:.9rem 1rem;color:#94a3b8;font-size:.78rem;font-weight:700;}.class-invite-flow__footer{justify-content:space-between;padding:1rem 1.4rem 1.25rem;border-top:1px solid #edf1f7;background:#fff;}.class-invite-flow__primary-btn{border:0;border-radius:14px;background:var(--bs-primary);color:#fff;min-height:48px;padding:.8rem 1.3rem;display:inline-flex;align-items:center;gap:.55rem;font-size:.98rem;font-weight:800;}.class-invite-flow__primary-btn.is-muted{background:#8f9bb3;box-shadow:none;}.class-invite-flow__primary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;}.class-invite-flow__form-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:1rem;}@media(max-width:991.98px){.class-invite-flow{min-height:auto;}.class-invite-flow__header,.class-invite-flow__stage-bar,.class-invite-flow__body,.class-invite-flow__footer{padding-left:1rem;padding-right:1rem;}.class-invite-flow__leave-summary,.class-invite-flow__cancel-row,.class-invite-flow__footer,.class-invite-flow__library-search,.class-invite-flow__review-grid,.class-invite-flow__form-grid{grid-template-columns:1fr;flex-direction:column;align-items:stretch;}.class-invite-flow__step-line{display:none;}.class-invite-flow__steps{gap:.7rem;flex-wrap:wrap;}.class-invite-flow__cancel-row-side{margin-left:0;justify-content:space-between;flex-wrap:wrap;}.class-invite-flow__preview-head{display:none;}.class-invite-flow__preview-row{grid-template-columns:1fr;gap:.8rem;}.class-invite-flow__catalogue-row,.class-invite-flow__catalogue-row-main,.class-invite-flow__catalogue-row-side,.class-invite-flow__invite-option,.class-invite-flow__invite-week-head,.class-invite-flow__subscription-group-head,.class-invite-flow__subscription-row,.class-invite-flow__subscription-row-main,.class-invite-flow__subscription-row-side{flex-direction:column;align-items:stretch;}.class-invite-flow__invite-chip-row,.class-invite-flow__invite-week-list{flex-wrap:wrap;}.class-invite-flow__invite-week-nav{flex-direction:row;align-items:center;}.class-invite-flow__invite-week-list{flex-wrap:nowrap;overflow-x:auto;}.class-invite-flow__invite-week-arrow{width:34px;flex:0 0 34px;}.class-invite-flow__footer-right{width:100%;flex-direction:column;}.class-invite-flow__primary-btn,.class-invite-flow__secondary-btn,.class-invite-flow__library-cancel{width:100%;justify-content:center;}}.bg-a2b-brand-wave{background-image:url("../img/a2b-brand-wave-bg.svg");background-size:cover;background-position:bottom center;background-repeat:no-repeat;}.rounded-image-100{width:100px;height:100px;object-fit:cover;border-radius:50%;}.image-cover-50{width:50px;height:50px;object-fit:cover;}.image-cover-80{width:80px;height:80px;object-fit:cover;}.daterangepicker td.in-range{background-color:rgba(var(--bs-primary-rgb),.1)!important;}.daterangepicker td.active{background-color:var(--bs-primary)!important;color:var(--bs-primary-foreground)!important;}.daterangepicker select.monthselect,.daterangepicker select.yearselect{display:inline-block;}[aria-expanded]::after{transition:all .2s ease-in-out;transform:rotate(0deg);}[aria-expanded=true]::after{transform:rotate(180deg);}.nested-nav{border-left:1px solid #dee2e6;margin-left:1.625rem;padding-left:.625rem;padding-top:.625rem;padding-bottom:.625rem;font-size:.875em;}.trial-actions-bar{position:relative;z-index:1030;}.trial-actions-bar .dropdown-menu{z-index:1060;}.trials-toolbar-action-dropdown{--bs-dropdown-zindex:1035;}.settings-hub-page{background:#f1f3f6;}.settings-hub-page .doc-wrapper,.settings-hub-page .nj-shell{width:min(100%,1280px);box-sizing:border-box;}.settings-hub-container{max-width:1100px;}.settings-hub-header{border-radius:12px;}.settings-hub-breadcrumb{font-size:.78rem;}.settings-hub-breadcrumb .breadcrumb-item,.settings-hub-breadcrumb .breadcrumb-item.active{color:#8a96b0;}.settings-hub-breadcrumb .breadcrumb-item+.breadcrumb-item::before{color:#cbd5e1;}.settings-hub-breadcrumb a{color:var(--bs-primary);text-decoration:none;}.settings-hub-breadcrumb a:hover{color:var(--bs-link-hover-color);text-decoration:underline;}.settings-hub-title{color:var(--bs-secondary);font-size:1.5rem;font-weight:700;letter-spacing:-.02rem;}.settings-hub-subtitle{color:#8a96b0;font-size:.9rem;}.settings-group-title{color:var(--bs-secondary);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.settings-group-description{color:#8a96b0;font-size:.82rem;}.settings-hub-card{border:1px solid #e2e8f0;border-radius:12px;color:inherit;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;}.settings-card-icon{width:40px;height:40px;border-radius:10px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease;}.settings-card-title{color:var(--bs-secondary);font-size:.9rem;font-weight:700;line-height:1.35;}.settings-card-description{color:#8a96b0;font-size:.8rem;line-height:1.45;}.settings-card-chevron{color:#cbd5e1;opacity:0;transform:translateX(0);transition:opacity .2s ease,color .2s ease,transform .2s ease;}.settings-hub-card:hover{border-color:var(--bs-primary-border-subtle);box-shadow:0 10px 25px -5px rgba(var(--bs-primary-rgb),.15);transform:translateY(-2px);}.settings-hub-card:hover .settings-card-icon{background:color-mix(in srgb,var(--bs-primary) 12%,#fff);color:var(--bs-link-hover-color);}.settings-hub-card:hover .settings-card-title{color:var(--bs-primary);}.settings-hub-card:hover .settings-card-chevron{color:var(--bs-primary);opacity:1;transform:translateX(2px);}.club-class-name-row{align-items:center;width:100%;max-width:100%;}.club-class-toggle-btn{min-width:0;overflow:hidden;}.club-class-toggle-label{min-width:0;flex:1 1 0;overflow:hidden;}.club-class-toggle-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}@media(max-width:991.98px){.club-class-name-row .club-class-share-btn.btn{--bs-btn-padding-x:0;--bs-btn-padding-y:0;flex:0 0 2.25rem;align-self:center;width:2.25rem;height:2.25rem;min-height:2.25rem;max-height:2.25rem;padding:0;border-radius:50%;line-height:1;}.club-class-toggle-label{flex-wrap:nowrap;}}@media(min-width:576px) and (max-width:991.98px){.club-class-name-row{gap:.75rem;}.club-class-name-row .club-class-share-btn.btn{flex:0 0 2.5rem;width:2.5rem;height:2.5rem;min-height:2.5rem;max-height:2.5rem;}}@media(min-width:992px){.club-class-name-row .club-class-share-btn.btn{width:auto;height:auto;min-height:auto;max-height:none;padding:.25rem .75rem;border-radius:var(--bs-border-radius-sm);font-size:.875rem;}.club-class-name-row .club-class-share-btn.btn::after{content:"Share";margin-left:.5rem;}}.page-container{max-width:1200px;}.back-link{display:inline-flex;align-items:center;gap:6px;color:#8a96b0;text-decoration:none;font-weight:700;font-size:.82rem;margin-bottom:.55rem;}.back-link:hover{color:#4b5563;}.subtitle{color:#6b7a99;margin-top:.2rem;}.badge-trial{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#fef3c7;border:1px solid #fcd34d;color:#92400e;font-weight:700;font-size:.78rem;}.badge-category{display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;font-weight:700;font-size:.82rem;}.badge-category-rec{color:#059669;background:rgba(5,150,105,.12);}.badge-category-camp{color:#c2410c;background:rgba(234,88,12,.12);}.badge-category-term{color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.12);}.badge-category-payg{color:#b45309;background:rgba(245,158,11,.12);}.chip-strip{overflow-x:auto;-webkit-overflow-scrolling:touch;}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem;}.info-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef1f4;color:#4b5563;padding:7px 13px;font-weight:600;font-size:.8rem;}.info-chip i{color:var(--bs-primary);}.content-card{background:#fff;border-radius:18px;box-shadow:0 2px 12px rgba(0,0,0,.06);padding:1.25rem;}.card-hdr{display:flex;align-items:center;gap:8px;padding:18px 22px 14px;font-size:.85rem;font-weight:800;color:var(--bs-primary);margin:0;}.card-hdr i{font-size:.95rem;color:var(--bs-primary);}.desc-text{font-size:.88rem;color:#4b5870;line-height:1.7;padding:0 22px 20px;margin:0;}.term-banner{padding:10px 22px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #f3f4f6;}.term-name-col{min-width:160px;}.term-name-label{display:block;font-size:.72rem;color:#8a96b0;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;}.term-name-value{font-size:1.95rem;line-height:1;font-weight:800;color:#1e2a4a;}.term-dates-row{display:flex;align-items:flex-end;gap:16px;}.term-date-col{min-width:130px;}.term-date-sublabel{font-size:.72rem;color:#8a96b0;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;}.term-date-val-start,.term-date-val-end{font-size:1.35rem;font-weight:800;line-height:1.1;border-bottom:3px solid transparent;padding-bottom:3px;}.term-date-val-start{color:#1e2a4a;border-bottom-color:rgba(var(--bs-primary-rgb),.55);}.term-date-val-end{color:#ef4444;border-bottom-color:#ef4444;}.term-arrow{font-size:1.2rem;color:#9ca3af;font-weight:700;padding-bottom:5px;}.tl-count{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);border:1px solid rgba(var(--bs-primary-rgb),.22);border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700;}.tl-card-hdr{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f3f4f6;padding:16px 22px 12px;}.tl-card-title{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:800;color:#1e2a4a;}.tl-col-hdr{display:grid;grid-template-columns:110px 1fr 1fr 96px;padding:11px 22px;border-bottom:1px solid #f3f4f6;color:#8a96b0;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}.tl-col-hdr span:last-child{text-align:right;}.tl-row{display:grid;grid-template-columns:110px 1fr 1fr;align-items:center;gap:0;padding:14px 22px;border-bottom:1px solid #f8f9fc;}.tl-row:last-of-type{border-bottom:0;}.tl-row:nth-child(even){background:#fafbfc;}.tl-row-term{display:grid;grid-template-columns:110px 1fr 1fr 96px;align-items:center;gap:0;padding:14px 22px;border-bottom:1px solid #f8f9fc;}.tl-row-term:last-of-type{border-bottom:0;}.tl-price{font-size:.88rem;font-weight:800;color:var(--bs-primary);text-align:right;}.term-sessions-wrap{padding:10px 22px 12px;border-bottom:2px solid #f8f9fc;}.term-sessions-label{font-size:.74rem;color:#8a96b0;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}.term-sessions-list{display:flex;gap:8px;flex-wrap:wrap;}.term-session-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:8px;border:1px solid rgba(var(--bs-primary-rgb),.22);background:rgba(var(--bs-primary-rgb),.06);color:#4b5563;font-size:.82rem;font-weight:600;}.day-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 11px;border-radius:8px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:.78rem;font-weight:800;}.tl-time{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:#1e2a4a;padding:0 12px;}.tl-time i{color:#8a96b0;}.tl-loc{display:flex;align-items:flex-start;gap:6px;font-size:.82rem;color:#6b7a99;line-height:1.45;}.tl-loc i{color:var(--bs-primary);margin-top:2px;flex-shrink:0;}.tl-footer{padding:12px 0 14px;border-top:1px solid #f3f4f6;display:flex;justify-content:flex-end;}.tl-footer-wide{justify-content:stretch;}.me-row{padding:16px 22px;border-bottom:1px solid #f3f4f6;}.me-row:last-of-type{border-bottom:0;}.me-row:nth-child(even){background:#fafbfc;}.me-row-r1{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;}.me-name{font-weight:800;font-size:.92rem;color:#1e2a4a;display:flex;align-items:center;gap:8px;}.me-name i{color:var(--bs-primary);}.me-price{font-weight:900;font-size:1rem;color:var(--bs-primary);flex-shrink:0;margin-left:12px;}.me-meta{display:flex;align-items:center;gap:5px;font-size:.81rem;color:#4b5563;font-weight:600;margin-bottom:5px;}.me-meta i{color:#8a96b0;}.me-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}.me-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:10px;font-size:.72rem;font-weight:800;}.me-pill-ok{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.me-pill-low{background:#fef3c7;color:#92400e;}.me-pill-grey{background:#f3f4f6;color:#6b7280;font-weight:700;}.payg-sess-row{padding:16px 22px;border-bottom:1px solid #f3f4f6;}.payg-sess-row:last-of-type{border-bottom:0;}.payg-sess-row:nth-child(even){overflow:hidden;}.class-session-selector{position:relative;}.class-session-selector__backdrop{position:fixed;inset:0;border:0;background:transparent;padding:0;}.class-session-selector__panel{position:relative;padding:1.5rem;border:1px solid #dbe4f0;background:#fff;border-radius:var(--bs-border-radius);}.class-session-selector__panel.is-register-only .class-session-selector__grid{grid-template-columns:minmax(0,1fr) auto;}.class-session-selector__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:1.25rem;align-items:start;}.class-session-selector__field,.class-session-selector__dropdown{position:relative;}.class-session-selector__label{display:block;margin-bottom:.55rem;color:#212529;font-size:1rem;font-weight:600;}.class-session-selector__trigger{width:100%;min-height:3rem;display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;border:1px solid #d8e0ec;border-radius:1rem;background:#fff;color:#212529;text-align:left;font-weight:600;box-shadow:none;}.class-session-selector__trigger:hover{border-color:rgba(var(--bs-primary-rgb),.32);}.class-session-selector__trigger.is-open,.class-session-selector__trigger:focus-visible{outline:0;border-color:rgba(var(--bs-primary-rgb),.55);box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.18);}.class-session-selector__trigger-icon{color:var(--bs-primary);font-size:.95rem;}.class-session-selector__trigger-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;}.class-session-selector__count-badge{width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:999px;background:var(--bs-primary);color:var(--bs-primary-foreground);font-size:.82rem;font-weight:700;}.class-session-selector__chevron{color:#7b8aa3;font-size:.8rem;flex-shrink:0;margin-left:.5rem;}.class-session-selector__helper-wrap{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.5rem;}.class-session-selector__helper{display:block;margin-top:.5rem;color:#6c757d;font-size:.78rem;font-weight:400;}.class-session-selector__helper-wrap .class-session-selector__helper{margin-top:0;}.class-session-selector__helper-action{border:0;background:transparent;color:var(--bs-primary);font-size:.8rem;font-weight:600;white-space:nowrap;}.class-session-selector__menu{position:absolute;top:calc(100% + .45rem);left:0;right:0;z-index:1052;overflow:hidden;border:1px solid #dde4ef;border-radius:1rem;background:#fff;box-shadow:0 18px 40px rgba(15,23,42,.14);}.class-session-selector__menu.is-register{max-height:21rem;}.class-session-selector__list{max-height:21rem;overflow:auto;}.class-session-selector__group{padding:.25rem 0;}.class-session-selector__group-label{padding:.8rem 1.1rem .35rem;color:#71839d;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}.class-session-selector__register-option{width:100%;display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border:0;border-radius:.85rem;background:transparent;color:#212529;font-size:1rem;font-weight:600;}.class-session-selector__register-option:hover{background:#f5f7fb;}.class-session-selector__register-option.is-selected{color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.14);}.class-session-selector__register-option-tick{width:1rem;display:inline-flex;justify-content:center;color:var(--bs-primary);flex-shrink:0;}.class-session-selector__search-wrap,.class-session-selector__bulk,.class-session-selector__footer{padding:.85rem 1rem;}.class-session-selector__search-wrap,.class-session-selector__bulk{border-bottom:1px solid #e9eef5;}.class-session-selector__search{position:relative;}.class-session-selector__search i{position:absolute;top:50%;left:.9rem;transform:translateY(-50%);color:#8d9bb1;font-size:.85rem;}.class-session-selector__search input{width:100%;min-height:2.8rem;padding:.7rem 1rem .7rem 2.5rem;border:1px solid #dce3ee;border-radius:.85rem;background:#f8fafe;color:#212529;font-size:1rem;font-weight:400;}.class-session-selector__search input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.55);background:#fff;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.14);}.class-session-selector__bulk{align-items:center;gap:.75rem;}.class-session-selector__bulk-btn{min-height:2.2rem;padding:.35rem .95rem;border:1px solid #d9e0ec;border-radius:999px;background:#fff;color:var(--bs-primary);font-size:.82rem;font-weight:600;}.class-session-selector__bulk-btn:hover{border-color:rgba(var(--bs-primary-rgb),.25);background:rgba(var(--bs-primary-rgb),.08);}.class-session-selector__bulk-btn.is-active{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.class-session-selector__bulk-summary{margin-left:auto;color:#6c757d;font-size:.82rem;font-weight:600;text-align:right;}.class-session-selector__check-row{display:flex;align-items:center;gap:.85rem;padding:.8rem 1rem;margin:0;border-bottom:1px solid #eef2f7;cursor:pointer;}.class-session-selector__check-row:last-child{border-bottom:0;}.class-session-selector__check-row:hover{background:#f8fafe;}.class-session-selector__check-row input[type=checkbox]{width:1rem;height:1rem;margin:0;accent-color:var(--bs-primary);flex-shrink:0;cursor:pointer;}.class-session-selector__check-copy{min-width:0;color:#212529;font-size:1rem;font-weight:600;}.class-session-selector__check-time{margin-left:auto;color:#71839d;font-size:.9rem;font-weight:400;white-space:nowrap;}.class-session-selector__none{padding:1.2rem 1rem;color:#71839d;font-size:.84rem;font-weight:400;text-align:center;}.class-session-selector__footer{display:flex;justify-content:flex-end;gap:.75rem;background:#fbfcfe;}.class-session-selector__footer-btn{min-height:3rem;padding:.65rem 1.35rem;border-radius:.9rem;font-size:.95rem;font-weight:600;}.class-session-selector__footer-btn.is-ghost{border:1px solid #d9e0ec;background:#fff;color:#56657e;}.class-session-selector__footer-btn.is-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:var(--bs-primary-foreground);}.class-session-selector__counters{display:flex;align-items:center;gap:.85rem;padding-top:1.95rem;}.class-session-selector__counter{display:inline-flex;align-items:center;gap:.55rem;min-height:2.7rem;padding:.55rem 1rem;border:1px solid #d9e0ec;border-radius:999px;background:#fff;color:#6c757d;font-size:.95rem;font-weight:400;white-space:nowrap;}.class-session-selector__counter strong{color:#212529;font-weight:700;}.class-session-selector__dot{width:.55rem;height:.55rem;border-radius:999px;flex-shrink:0;}.class-session-selector__dot.is-enrolled{background:#1f9d60;}.class-session-selector__dot.is-trials{background:#5b21b6;}.class-session-selector__dot.is-capacity{background:var(--bs-primary);}.class-session-selector__applied{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e8edf5;}.class-session-selector__applied-label{color:#6c757d;font-size:.95rem;font-weight:600;}.class-session-selector__chip{display:inline-flex;align-items:center;min-height:2rem;padding:.3rem .9rem;border:1px solid rgba(var(--bs-primary-rgb),.32);border-radius:999px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:.95rem;font-weight:600;}@media(max-width:991.98px){.class-session-selector__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.class-session-selector__counters{grid-column:1/-1;padding-top:0;flex-wrap:wrap;}}@media(max-width:575.98px){.class-session-selector__panel{padding:1rem;border-radius:1.15rem;}.class-session-selector__grid{grid-template-columns:minmax(0,1fr);gap:1rem;}.class-session-selector__trigger{min-height:3.15rem;}.class-session-selector__menu{left:-.15rem;right:-.15rem;}.class-session-selector__bulk,.class-session-selector__applied,.class-session-selector__helper-wrap,.class-session-selector__counters{flex-wrap:wrap;}.class-session-selector__bulk-summary,.class-session-selector__check-time{margin-left:0;width:100%;text-align:left;}.class-session-selector__footer{justify-content:stretch;}.class-session-selector__footer-btn{flex:1 1 0;}.class-session-selector__counter{flex:1 1 0;justify-content:center;}}.classes-admin-explorer{display:flex;flex-direction:column;gap:1rem;}.classes-admin-explorer__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.classes-admin-explorer__mobile-actions,.classes-admin-explorer__mobile-summary,.classes-admin-explorer__mobile-sheet-backdrop,.classes-admin-explorer__mobile-sheet-head,.classes-admin-explorer__filters-foot{display:none;}.classes-admin-explorer__filters-card{display:flex;flex-direction:column;gap:.95rem;}.classes-admin-explorer__filters-foot{margin-top:.35rem;justify-content:flex-end;gap:12px;}.classes-admin-explorer__filters-reset{border:1px solid #dfe5ef;background:#fff;color:#64748b;border-radius:12px;min-height:36px;padding:8px 14px;font-size:.8rem;font-weight:700;}.classes-admin-explorer__filters-reset:disabled{opacity:.5;}.classes-admin-explorer__filters-apply{display:none;border:0;border-radius:12px;min-height:36px;padding:8px 16px;background:var(--bs-primary);color:#fff;font-size:.8rem;font-weight:700;}.classes-admin-explorer__title{margin:0;color:var(--bs-secondary);font-size:1.55rem;font-weight:800;line-height:1.1;}.classes-admin-explorer__subtitle,.classes-admin-explorer__stat-copy,.classes-admin-explorer__location,.classes-admin-explorer__when-sub,.classes-admin-explorer__mobile-meta{color:#6b7a99;font-size:.84rem;line-height:1.45;}.classes-admin-explorer__stats{display:block;}.classes-admin-explorer__stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem;}.classes-admin-explorer__stat{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border:1px solid #e3e8f0;border-radius:16px;background:#fff;}.classes-admin-explorer__stat-icon{width:50px;height:50px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.classes-admin-explorer__stat-icon.is-primary{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.classes-admin-explorer__stat-icon.is-success{background:rgba(14,159,110,.12);color:#0f9f6e;}.classes-admin-explorer__stat-icon.is-info{background:rgba(14,165,233,.12);color:#0ea5e9;}.classes-admin-explorer__stat-icon.is-danger{background:rgba(239,68,68,.12);color:#ef4444;}.classes-admin-explorer__stat-icon.is-warning{background:rgba(245,158,11,.14);color:#f59e0b;}.classes-admin-explorer__stat-label{color:#6b7a99;font-size:.74rem;font-weight:800;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;}.classes-admin-explorer__stat-value{color:var(--bs-secondary);font-size:.95rem;font-weight:800;line-height:1.2;margin-top:.2rem;}.classes-admin-explorer__toolbar{display:flex;flex-direction:column;gap:.95rem;padding:1rem 1.1rem;border:1px solid #e3e8f0;border-radius:18px;background:#fff;}.classes-admin-explorer__search-wrap{position:relative;}.classes-admin-explorer__search-wrap i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#8a96b0;font-size:.88rem;}.classes-admin-explorer__search{width:100%;min-height:48px;padding:.8rem 1rem .8rem 2.6rem;border:1px solid #d9e1ec;border-radius:14px;background:#fbfcfe;color:#1e2a4a;font-size:.9rem;font-weight:600;outline:0;transition:border-color .15s ease,box-shadow .15s ease;}.classes-admin-explorer__search:focus{border-color:rgba(var(--bs-primary-rgb),.35);box-shadow:0 0 0 4px rgba(var(--bs-primary-rgb),.08);}.classes-admin-explorer__day-chips,.classes-admin-explorer__toolbar-row,.classes-admin-explorer__mobile-pills,.classes-admin-explorer__group-bar-row,.classes-admin-explorer__group-title-row,.classes-admin-explorer__mobile-top,.classes-admin-explorer__cap-head{display:flex;align-items:center;gap:.6rem;}.classes-admin-explorer__day-chips,.classes-admin-explorer__toolbar-row,.classes-admin-explorer__mobile-pills{flex-wrap:wrap;}.classes-admin-explorer__chip,.classes-admin-explorer__filter-btn,.classes-admin-explorer__segment-btn{border:1px solid #d9e1ec;background:#fff;color:#1e2a4a;font-size:.85rem;font-weight:700;line-height:1.2;}.classes-admin-explorer__chip{min-height:38px;padding:.5rem .95rem;border-radius:12px;}.classes-admin-explorer__chip.is-active{border-color:rgba(var(--bs-primary-rgb),.32);background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);}.classes-admin-explorer__segment{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem;border:1px solid #d9e1ec;border-radius:14px;background:#fff;}.classes-admin-explorer__segment-btn{min-height:38px;padding:.5rem .95rem;border-radius:10px;display:inline-flex;align-items:center;gap:.45rem;}.classes-admin-explorer__segment-btn.is-active{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);border-color:transparent;}.classes-admin-explorer__filter-btn{min-height:40px;padding:.6rem .95rem;border-radius:14px;display:inline-flex;align-items:center;gap:.5rem;}.classes-admin-explorer__dropdown{min-width:240px;padding:1rem;border-radius:16px;border:1px solid #d9e1ec;box-shadow:0 18px 40px rgba(15,23,42,.12);}.classes-admin-explorer__dropdown.is-wide{min-width:300px;}.classes-admin-explorer__dropdown.is-payment{min-width:300px;}.classes-admin-explorer__dropdown.is-columns{min-width:300px;}.classes-admin-explorer__dropdown.is-capacity{min-width:390px;}.classes-admin-explorer__dropdown-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem;color:#6b7a99;font-size:.8rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}.classes-admin-explorer__dropdown-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:.8rem;}.classes-admin-explorer__dropdown-action{min-height:46px;padding:.7rem .9rem;border:1px solid #d9e1ec;border-radius:14px;background:#fff;color:#68778f;font-size:.85rem;font-weight:800;text-align:center;}.classes-admin-explorer__dropdown-action.is-active{border-color:rgba(var(--bs-primary-rgb),.16);background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.classes-admin-explorer__dropdown-action.is-success{border-color:rgba(15,159,110,.32);background:rgba(15,159,110,.12);color:#166534;}.classes-admin-explorer__dropdown-action.is-danger{border-color:rgba(239,68,68,.32);background:rgba(239,68,68,.12);color:#b91c1c;}.classes-admin-explorer__toggle-row{width:100%;display:flex;align-items:center;gap:.8rem;padding:.45rem .25rem;border:0;background:transparent;color:#1e2a4a;font-size:.9rem;font-weight:700;text-align:left;}.classes-admin-explorer__toggle-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.8rem;color:var(--bs-secondary);}.classes-admin-explorer__toggle-label{display:inline-flex;align-items:center;gap:.55rem;min-width:0;}.classes-admin-explorer__toggle-icon{color:#6b7a99;font-size:.8rem;flex-shrink:0;}.classes-admin-explorer__toggle-count{color:#68778f;font-size:.82rem;font-weight:700;flex-shrink:0;}.classes-admin-explorer__toggle-switch{width:46px;height:26px;padding:3px;border-radius:999px;background:#e9edf3;position:relative;transition:background-color .18s ease;flex-shrink:0;}.classes-admin-explorer__toggle-switch.is-on{background:var(--bs-primary);}.classes-admin-explorer__toggle-knob{width:20px;height:20px;display:block;border-radius:999px;background:#fff;box-shadow:0 2px 4px rgba(15,23,42,.15);transition:transform .18s ease;}.classes-admin-explorer__toggle-switch.is-on .classes-admin-explorer__toggle-knob{transform:translateX(20px);}.classes-admin-explorer__toggle{width:18px;height:18px;border-radius:999px;border:1.5px solid #cdd7e4;background:#eef2f7;position:relative;flex-shrink:0;}.classes-admin-explorer__toggle.is-on{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.15);}.classes-admin-explorer__toggle.is-on::after{content:"";position:absolute;inset:3px;border-radius:999px;background:var(--bs-primary);}.classes-admin-explorer__filter-count,.classes-admin-explorer__filter-meta{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:.1rem .45rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.76rem;font-weight:800;white-space:nowrap;}.classes-admin-explorer__filter-meta.is-over{background:rgba(239,68,68,.12);color:#ef4444;}.classes-admin-explorer__capacity-summary,.classes-admin-explorer__capacity-threshold-row,.classes-admin-explorer__capacity-customise-toggle,.classes-admin-explorer__capacity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.classes-admin-explorer__capacity-summary{margin-bottom:.8rem;}.classes-admin-explorer__capacity-range-value{color:#223154;font-size:1.05rem;font-weight:900;}.classes-admin-explorer__capacity-range-value.is-over{color:#e63946;}.classes-admin-explorer__capacity-count{color:#6f7f95;font-size:.82rem;font-weight:700;}.classes-admin-explorer__capacity-slider{position:relative;margin-bottom:1rem;padding:.25rem 0 .35rem;}.classes-admin-explorer__capacity-slider-track{height:6px;border-radius:999px;}.classes-admin-explorer__capacity-range{position:absolute;left:0;top:0;width:100%;height:13px;margin:0;background:transparent;pointer-events:none;appearance:none;-webkit-appearance:none;}.classes-admin-explorer__capacity-range::-webkit-slider-runnable-track{height:6px;background:transparent;}.classes-admin-explorer__capacity-range::-moz-range-track{height:6px;background:transparent;}.classes-admin-explorer__capacity-range::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6px;border:3px solid #5d63f3;border-radius:999px;background:#fff;box-shadow:0 3px 10px rgba(93,99,243,.18);pointer-events:auto;appearance:none;-webkit-appearance:none;}.classes-admin-explorer__capacity-range::-moz-range-thumb{width:18px;height:18px;border:3px solid #5d63f3;border-radius:999px;background:#fff;box-shadow:0 3px 10px rgba(93,99,243,.18);pointer-events:auto;}.classes-admin-explorer__capacity-legend{padding:.9rem .9rem .75rem;border-radius:14px;background:#f8fafc;margin-bottom:.9rem;}.classes-admin-explorer__capacity-legend-title{margin-bottom:.7rem;color:#6f7f95;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}.classes-admin-explorer__capacity-legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:.65rem;padding:.2rem 0;}.classes-admin-explorer__capacity-dot{width:12px;height:12px;border-radius:999px;display:inline-block;flex-shrink:0;}.classes-admin-explorer__capacity-dot.is-low{background:#e63946;}.classes-admin-explorer__capacity-dot.is-mid{background:#ffbf00;}.classes-admin-explorer__capacity-dot.is-high{background:#1f8f57;}.classes-admin-explorer__capacity-dot.is-over{background:#e63946;}.classes-admin-explorer__capacity-dot.is-trial{background:#22b8db;}.classes-admin-explorer__capacity-legend-range{color:var(--bs-secondary);font-size:.83rem;font-weight:800;}.classes-admin-explorer__capacity-legend-copy,.classes-admin-explorer__capacity-help,.classes-admin-explorer__capacity-threshold-copy{color:#6f7f95;font-size:.8rem;}.classes-admin-explorer__capacity-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:.75rem;}.classes-admin-explorer__capacity-preset,.classes-admin-explorer__capacity-clear,.classes-admin-explorer__capacity-save,.classes-admin-explorer__capacity-reset{min-height:46px;border:1px solid #d9e1ec;border-radius:14px;background:#fff;color:#6f7f95;font-size:.84rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-align:center;}.classes-admin-explorer__capacity-preset{padding:.65rem .9rem;}.classes-admin-explorer__capacity-preset.is-full-row{grid-column:1/-1;}.classes-admin-explorer__capacity-preset.is-active.is-low{border-color:rgba(230,57,70,.32);background:rgba(230,57,70,.1);color:#b4232d;}.classes-admin-explorer__capacity-preset.is-active.is-mid{border-color:rgba(255,191,0,.38);background:rgba(255,191,0,.14);color:#9c6a00;}.classes-admin-explorer__capacity-preset.is-active.is-high{border-color:rgba(31,143,87,.32);background:rgba(31,143,87,.12);color:#166534;}.classes-admin-explorer__capacity-preset.is-active.is-over{border-color:rgba(230,57,70,.5);background:rgba(230,57,70,.08);color:#b4232d;}.classes-admin-explorer__capacity-clear{width:100%;margin-bottom:.9rem;color:#223154;}.classes-admin-explorer__capacity-customise{padding-top:.85rem;border-top:1px solid #e8edf6;}.classes-admin-explorer__capacity-customise-toggle{width:100%;padding:0;border:0;background:transparent;color:#6f7f95;font-size:.84rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.classes-admin-explorer__capacity-customise-chevron{transition:transform .18s ease;}.classes-admin-explorer__capacity-customise-chevron.is-open{transform:rotate(180deg);}.classes-admin-explorer__capacity-customise-body{margin-top:.9rem;}.classes-admin-explorer__capacity-threshold{margin-top:.85rem;}.classes-admin-explorer__capacity-threshold-label{margin-bottom:.45rem;display:inline-flex;align-items:center;gap:.45rem;color:var(--bs-secondary);font-size:.84rem;font-weight:800;}.classes-admin-explorer__capacity-threshold-row{align-items:center;justify-content:flex-start;flex-wrap:wrap;}.classes-admin-explorer__capacity-input{width:76px;height:44px;padding:.45rem .75rem;border:1px solid #d9e1ec;border-radius:12px;color:var(--bs-secondary);font-size:.95rem;font-weight:800;}.classes-admin-explorer__capacity-actions{margin-top:1rem;}.classes-admin-explorer__capacity-save,.classes-admin-explorer__capacity-reset{flex:1 1 0;}.classes-admin-explorer__capacity-save{border-color:rgba(93,99,243,.22);background:#5d63f3;color:#fff;}.classes-admin-explorer__capacity-reset{color:#8a96b0;}.classes-admin-explorer__capacity-save:disabled,.classes-admin-explorer__capacity-reset:disabled{opacity:.55;cursor:default;}.classes-admin-explorer__groups{display:flex;flex-direction:column;gap:.9rem;}.classes-admin-explorer__group{border:1px solid rgba(var(--bs-secondary-rgb),.28);border-radius:18px;background:#fff;overflow:visible;}.classes-admin-explorer__group-head{width:100%;padding:1rem 1.15rem;border:0;background:transparent;text-align:left;position:relative;z-index:2;}.classes-admin-explorer__group-kicker{display:inline-flex;align-items:center;gap:.5rem;color:var(--bs-secondary);font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}.classes-admin-explorer__group-kicker span{color:#6b7a99;font-weight:700;}.classes-admin-explorer__group-chevron{margin-left:auto;color:var(--bs-secondary);transition:transform .18s ease;}.classes-admin-explorer__group-head.is-collapsed .classes-admin-explorer__group-chevron{transform:rotate(90deg);}.classes-admin-explorer__group-bar-row{margin-top:.75rem;}.classes-admin-explorer__group-percent{min-width:56px;display:inline-flex;align-items:center;gap:.3rem;font-size:.95rem;font-weight:800;}.classes-admin-explorer__group-percent.is-low{color:#ef4444;}.classes-admin-explorer__group-percent.is-mid{color:#f59e0b;}.classes-admin-explorer__group-percent.is-high{color:#0f9f6e;}.classes-admin-explorer__group-percent.is-over{color:#e63946;}.classes-admin-explorer__group-track,.classes-admin-explorer__cap-track{flex:1 1 auto;display:flex;position:relative;height:16px;border-radius:999px;background:#e8edf6;overflow:visible;}.classes-admin-explorer__bar-segment{position:relative;}.classes-admin-explorer__group-fill,.classes-admin-explorer__cap-fill{height:100%;display:block;border-radius:0;}.classes-admin-explorer__group-fill:first-child,.classes-admin-explorer__cap-fill:first-child{border-top-left-radius:999px;border-bottom-left-radius:999px;}.classes-admin-explorer__group-fill:last-child,.classes-admin-explorer__cap-fill:last-child{border-top-right-radius:999px;border-bottom-right-radius:999px;}.classes-admin-explorer__group-fill:first-child:last-child,.classes-admin-explorer__cap-fill:first-child:last-child{border-radius:999px;}.classes-admin-explorer__group-fill.is-low,.classes-admin-explorer__cap-fill.is-low{background:#e63946;}.classes-admin-explorer__group-fill.is-mid,.classes-admin-explorer__cap-fill.is-mid{background:#ffbf00;}.classes-admin-explorer__group-fill.is-high,.classes-admin-explorer__cap-fill.is-high{background:#1f9d62;}.classes-admin-explorer__group-fill.is-over,.classes-admin-explorer__cap-fill.is-over{background:#e63946;}.classes-admin-explorer__group-fill.is-trial,.classes-admin-explorer__cap-fill.is-trial{background:#22b8db;}@media(hover:hover){.classes-admin-explorer__bar-segment[data-tooltip]:hover::after,.classes-admin-explorer__bar-segment[data-tooltip]:focus-visible::after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);padding:.42rem .72rem;border-radius:.65rem;background:#000;color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.02em;line-height:1;white-space:nowrap;box-shadow:0 10px 24px rgba(15,23,42,.2);pointer-events:none;z-index:12;}.classes-admin-explorer__bar-segment[data-tooltip]:hover::before,.classes-admin-explorer__bar-segment[data-tooltip]:focus-visible::before{content:"";position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #000;pointer-events:none;z-index:12;}}.classes-admin-explorer__group-meta,.classes-admin-explorer__trial-note,.classes-admin-explorer__session-pill,.classes-admin-explorer__pill,.classes-admin-explorer__payment-pill,.classes-admin-explorer__status,.classes-admin-explorer__location{display:inline-flex;align-items:center;gap:.4rem;}.classes-admin-explorer__group-meta{color:#52647f;font-size:.82rem;font-weight:700;white-space:nowrap;}.classes-admin-explorer__trial-note{color:#0e7490;}.classes-admin-explorer__trial-dot,.classes-admin-explorer__status-dot{width:8px;height:8px;border-radius:999px;background:currentColor;flex-shrink:0;}.classes-admin-explorer__table-wrap{padding:0 0 .15rem;}.classes-admin-explorer__table{width:100%;border-collapse:separate;border-spacing:0;}.classes-admin-explorer__table th{padding:.85rem 1rem;background:rgba(255,255,255,.55);color:#6b7a99;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-top:1px solid rgba(var(--bs-secondary-rgb),.18);}.classes-admin-explorer__table td{padding:.95rem 1rem;background:#fff;border-top:1px solid #eef2f7;color:#1e2a4a;font-size:.86rem;vertical-align:middle;}.classes-admin-explorer__table-row{cursor:pointer;}.classes-admin-explorer__table-row:hover td{background:#fbfcff;}.classes-admin-explorer__table-row.is-selected td{background:rgba(var(--bs-primary-rgb),.06);}.classes-admin-explorer__name-cell{display:flex;align-items:center;gap:.8rem;}.classes-admin-explorer__name-bar{width:4px;min-height:38px;border-radius:999px;background:var(--bs-primary);flex-shrink:0;}.classes-admin-explorer__class-name{color:var(--bs-secondary);font-size:.92rem;font-weight:800;line-height:1.35;}.classes-admin-explorer__group-pill,.classes-admin-explorer__session-pill,.classes-admin-explorer__pill,.classes-admin-explorer__payment-pill,.classes-admin-explorer__status{min-height:28px;padding:.25rem .7rem;border-radius:999px;font-size:.78rem;font-weight:800;}.classes-admin-explorer__group-pill,.classes-admin-explorer__session-pill{margin-top:.35rem;}.classes-admin-explorer__group-pill{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);border:1px solid rgba(var(--bs-primary-rgb),.24);}.classes-admin-explorer__session-pill{background:#f3f5f9;color:var(--bs-secondary);}.classes-admin-explorer__when-main{color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.classes-admin-explorer__location{align-items:flex-start;}.classes-admin-explorer__location i{margin-top:.15rem;color:#8a96b0;}.classes-admin-explorer__cap-head{justify-content:space-between;color:var(--bs-secondary);font-size:.78rem;font-weight:700;margin-bottom:.35rem;}.classes-admin-explorer__pill{justify-content:center;}.classes-admin-explorer__pill.is-pending{background:rgba(239,68,68,.1);color:#ef4444;border:1px solid rgba(239,68,68,.2);}.classes-admin-explorer__pill.is-trial{background:rgba(34,184,219,.14);color:#0891b2;border:1px solid rgba(34,184,219,.22);}.classes-admin-explorer__pill.is-waiting{background:rgba(245,158,11,.14);color:#b45309;border:1px solid rgba(245,158,11,.24);}.classes-admin-explorer__pill.is-disabled{background:#f3f5f9;color:#7b879d;border:1px solid #e3e8f0;}.classes-admin-explorer__payment-pill{border:1px solid transparent;}.classes-admin-explorer__payment-pill.is-recurring{background:rgba(var(--bs-primary-rgb),.1);border-color:rgba(var(--bs-primary-rgb),.22);color:var(--bs-primary);}.classes-admin-explorer__payment-pill.is-term{background:rgba(34,184,219,.14);border-color:rgba(34,184,219,.22);color:#0891b2;}.classes-admin-explorer__payment-pill.is-multi{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.24);color:#b45309;}.classes-admin-explorer__payment-pill.is-payg{background:#f3f5f9;border-color:#e3e8f0;color:#65748b;}.classes-admin-explorer__payment-dates{display:flex;flex-direction:column;gap:.2rem;margin-top:.45rem;}.classes-admin-explorer__payment-date{display:inline-flex;align-items:center;gap:.4rem;color:#52647f;font-size:.78rem;font-weight:700;}.classes-admin-explorer__status.is-space{background:rgba(15,159,110,.12);color:#0f9f6e;}.classes-admin-explorer__status.is-full{background:rgba(239,68,68,.1);color:#ef4444;}.classes-admin-explorer__open-btn{width:34px;height:34px;border:1px solid rgba(var(--bs-primary-rgb),.28);border-radius:10px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.classes-admin-explorer__open-btn:hover{background:rgba(var(--bs-primary-rgb),.14);}.classes-admin-explorer__empty{color:#8a96b0;font-size:.85rem;font-weight:700;}.classes-admin-explorer__mobile-list{display:grid;gap:.8rem;padding:.9rem;}.classes-admin-explorer__mobile-card{width:100%;padding:.95rem .95rem 1rem;border:1px solid rgba(var(--bs-primary-rgb),.18);border-radius:16px;background:#fff;text-align:left;position:relative;}.classes-admin-explorer__mobile-card::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:999px;background:var(--bs-primary);}.classes-admin-explorer__mobile-card.is-selected{background:rgba(var(--bs-primary-rgb),.06);border-color:rgba(var(--bs-primary-rgb),.28);}.classes-admin-explorer__mobile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding-left:.55rem;}.classes-admin-explorer__mobile-title{min-width:0;}.classes-admin-explorer__mobile-top-actions{display:flex;align-items:flex-start;gap:.45rem;flex-shrink:0;}.classes-admin-explorer__mobile-meta{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.4rem .8rem;padding-left:.55rem;color:#52647f;font-size:.82rem;font-weight:700;}.classes-admin-explorer__mobile-meta span{display:inline-flex;align-items:center;gap:.4rem;}.classes-admin-explorer__mobile-meta i{color:#8a96b0;}.classes-admin-explorer__mobile-card .classes-admin-explorer__location,.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-head,.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-track,.classes-admin-explorer__mobile-card .classes-admin-explorer__mobile-pills{margin-left:.55rem;}.classes-admin-explorer__mobile-card .classes-admin-explorer__location{margin-top:.35rem;color:#52647f;font-size:.82rem;}.classes-admin-explorer__mobile-card .classes-admin-explorer__session-pill{margin-top:0;}.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-head{margin-top:.55rem;font-size:.88rem;font-weight:800;}.classes-admin-explorer__mobile-card .classes-admin-explorer__cap-track{height:8px;}.classes-admin-explorer__mobile-pills{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start;}.classes-admin-explorer__mobile-pills .classes-admin-explorer__pill,.classes-admin-explorer__mobile-pills .classes-admin-explorer__payment-pill{min-height:30px;}.classes-admin-explorer__mobile-pills .classes-admin-explorer__pill{gap:.35rem;}.classes-admin-explorer__mobile-pills .classes-admin-explorer__payment-dates{width:100%;margin-top:-.15rem;margin-left:.1rem;}.classes-admin-explorer__mobile-pills .classes-admin-explorer__payment-date{font-size:.8rem;}@media(max-width:1399.98px){.classes-admin-explorer__stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}@media(max-width:991.98px){.classes-admin-explorer__stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.classes-admin-explorer__group-bar-row{flex-wrap:wrap;}.classes-admin-explorer__group-meta{width:100%;justify-content:flex-end;}}@media(max-width:767.98px){.classes-admin-explorer__title{font-size:1.35rem;}.classes-admin-explorer__subtitle{display:none;}.classes-admin-explorer__mobile-summary{display:block;margin-top:.15rem;color:#64748b;font-size:.72rem;font-weight:600;line-height:1.2;}.classes-admin-explorer__mobile-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0;}.classes-admin-explorer__mobile-icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid #dbe3f1;background:#fff;color:#1e2a4a;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(15,23,42,.08);}.classes-admin-explorer__mobile-icon-btn.is-active{border-color:rgba(var(--bs-primary-rgb),.28);background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.classes-admin-explorer__mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:1090;border:0;background:rgba(15,23,42,.36);}.classes-admin-explorer__mobile-sheet-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-top:14px;flex-shrink:0;touch-action:none;user-select:none;}.classes-admin-explorer__mobile-sheet-title{color:#1e2a4a;font-size:1rem;font-weight:800;}.classes-admin-explorer__mobile-sheet-close{width:36px;height:36px;border:0;border-radius:12px;background:#f8fafc;color:#64748b;display:inline-flex;align-items:center;justify-content:center;}.classes-admin-explorer__mobile-sheet-handle{position:absolute;top:0;left:50%;transform:translateX(-50%);width:44px;height:5px;border-radius:999px;background:#dbe3f1;}.classes-admin-explorer__stats:not(.is-mobile-open){display:none;}.classes-admin-explorer__stats.is-mobile-open{position:fixed;left:0;right:0;bottom:0;z-index:1100;display:flex;flex-direction:column;margin:0;padding:20px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-radius:26px 26px 0 0;box-shadow:0 -20px 60px rgba(15,23,42,.18);max-height:min(72vh,620px);overflow:hidden;will-change:transform;box-sizing:border-box;width:100%;}.classes-admin-explorer__stats.is-mobile-open .classes-admin-explorer__stats-grid{display:grid;grid-template-columns:1fr;gap:.75rem;overflow-y:auto;padding-bottom:.25rem;}.classes-admin-explorer__stats.is-mobile-open .classes-admin-explorer__stat{padding:.85rem .95rem;}.classes-admin-explorer__filters-card:not(.is-mobile-open){display:none;}.classes-admin-explorer__filters-card.is-mobile-open{position:fixed;left:0;right:0;bottom:0;z-index:1100;display:flex;flex-direction:column;margin:0;border-radius:26px 26px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -20px 60px rgba(15,23,42,.18);max-height:min(82vh,760px);overflow:hidden;will-change:transform;gap:.85rem;box-sizing:border-box;width:100%;}.classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__day-chips,.classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__toolbar-row{overflow-y:auto;padding-bottom:.25rem;}.classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__dropdown{position:static;transform:none;display:none;float:none;width:100%;min-width:0;max-width:none;margin-top:.35rem;box-shadow:none;border:1px solid #e3e8f0;}.classes-admin-explorer__filters-card.is-mobile-open .classes-admin-explorer__dropdown.show{display:block;}.classes-admin-explorer__filters-foot{display:flex;justify-content:stretch;gap:10px;margin-top:auto;padding-top:.35rem;}.classes-admin-explorer__filters-reset,.classes-admin-explorer__filters-apply{width:100%;min-height:40px;font-size:.8rem;}.classes-admin-explorer__filters-apply{display:inline-flex;align-items:center;justify-content:center;}.classes-admin-explorer__toolbar{padding:.9rem;}.classes-admin-explorer__filter-btn,.classes-admin-explorer__segment,.classes-admin-explorer__segment-btn{width:100%;justify-content:center;}.classes-admin-explorer__toolbar-row>.dropdown{width:100%;}.classes-admin-explorer__dropdown{left:0;right:auto;width:100%;min-width:0;max-width:100%;}}.booking-card{position:sticky;top:1.25rem;}.gd-hdr{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#8a96b0;font-weight:700;padding:14px 16px;border-bottom:1px solid #eef1f4;}.gd-hdr-name{color:var(--bs-primary);}.gd-photo-wrap{position:relative;}.gd-photo{width:100%;object-fit:cover;display:block;}.gd-badge{position:absolute;right:10px;bottom:10px;border-radius:999px;padding:5px 12px;font-size:.75rem;font-weight:800;}.gd-badge-ok{background:rgba(var(--bs-primary-rgb),.92);color:#fff;border:1px solid rgba(var(--bs-primary-rgb),.4);}.gd-badge-low{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;}.gd-row{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid #f3f4f6;color:#6b7280;}.gd-row-last{border-bottom:0;}.gd-lbl{font-size:.82rem;color:#8a96b0;font-weight:400;}.gd-val{font-size:.85rem;font-weight:800;color:#1e2a4a;text-align:right;}.gd-val-suffix{font-size:.75rem;font-weight:600;color:#8a96b0;}.gd-subs{min-width:220px;max-width:250px;display:flex;flex-direction:column;gap:6px;}.sub-row{border:1px solid rgba(var(--bs-primary-rgb),.22);border-radius:10px;overflow:hidden;background:rgba(var(--bs-primary-rgb),.04);}.sub-row-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:rgba(var(--bs-primary-rgb),.06);padding:8px 10px;text-align:left;}.sub-row-name{color:#4b5a7a;font-size:.85rem;font-weight:700;flex:1;}.sub-row-price{color:var(--bs-primary);font-weight:800;font-size:1rem;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0;}.sub-row-price span{color:#8a96b0;font-weight:700;font-size:.76rem;}.sub-row-chevron{font-size:.72rem;color:var(--bs-primary);transition:transform .15s;}.sub-row.open .sub-row-chevron{transform:rotate(180deg);}.sub-row-body{border-top:1px dashed rgba(var(--bs-primary-rgb),.3);padding:8px 10px;color:#4b5a7a;font-size:.86rem;}.avail-banner{margin:0 12px 12px;border-radius:12px;padding:11px 12px;display:flex;gap:8px;font-weight:700;font-size:.82rem;align-items:flex-start;line-height:1.45;}.avail-ok{background:rgba(var(--bs-primary-rgb),.07);border:1px solid rgba(var(--bs-primary-rgb),.2);color:var(--bs-primary);}.avail-ok i{margin-top:1px;flex-shrink:0;}.avail-full{background:#fffbeb;border:1px solid #fcd34d;color:#92400e;}.avail-full i{margin-top:1px;flex-shrink:0;}.avail-me-ok{align-items:center;gap:10px;padding:12px 16px;background:rgba(var(--bs-primary-rgb),.07);border:1px solid rgba(var(--bs-primary-rgb),.22);color:var(--bs-primary);font-size:.95rem;font-weight:600;}.avail-me-ok .bi{font-size:1.2rem;flex-shrink:0;line-height:1;color:var(--bs-primary);}.btn-book-now{display:inline-flex;align-items:center;gap:8px;justify-content:center;width:100%;padding:11px 18px;border:0;border-radius:12px;background:var(--bs-primary);color:#fff;font-weight:800;font-size:.98rem;text-decoration:none;transition:filter .2s;}.btn-book-now:hover{filter:brightness(.93);color:#fff;}.btn-book-wide{width:100%;justify-content:center;border-radius:13px;min-height:52px;font-size:1.05rem;}.btn-book-now.btn-join-wl{background:#d97706;color:#fff;text-decoration:none;}.btn-book-now.btn-join-wl:hover{color:#fff;filter:brightness(.93);}.fade-swap{opacity:1;transition:opacity .18s ease-in-out;}.fade-swap.is-fading{opacity:0;}.booking-panel-only{background:transparent!important;padding:0!important;}.booking-panel-only .book-right{flex:0 0 100%;max-width:100%;}.booking-panel-only .book-right .card{border:1px solid rgba(var(--bs-primary-rgb),.15)!important;border-radius:14px;box-shadow:none!important;}.booking-panel-only .book-right .card-body{padding:1rem;}.booking-panel-only .booking-back{display:inline-flex;align-items:center;gap:.35rem;color:var(--bs-primary);font-size:.95rem;text-decoration:none;}.booking-panel-only .booking-steps{color:rgba(var(--bs-primary-rgb),.55)!important;font-size:.95rem;font-weight:600;row-gap:.25rem;}.booking-panel-only .trial-info{border:1px solid rgba(var(--bs-primary-rgb),.22);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);border-radius:12px;padding:.7rem .8rem;}.booking-panel-only .attendee-list{display:flex;flex-direction:column;gap:.55rem;}.booking-panel-only .attendee-card{border-radius:12px;border:1px solid rgba(var(--bs-primary-rgb),.18);overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.04);}.booking-panel-only .attendee-card-selected{border-color:var(--bs-primary);background:var(--bs-primary);}.booking-panel-only .attendee-card .attendee-row{width:100%;border:0;border-radius:0;margin:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.62rem .75rem;color:#000;font-weight:600;background:transparent;}.booking-panel-only .attendee-card:not(.attendee-card-selected) .attendee-row{background:#fff;}.booking-panel-only .attendee-card .attendee-row.attendee-row-selected{background:transparent;color:#fff;}.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .attendee-left i{color:#fff;}.booking-panel-only .attendee-row{width:100%;border:1px solid rgba(var(--bs-primary-rgb),.18);background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.62rem .75rem;color:var(--bs-primary);font-weight:600;}.booking-panel-only .attendee-row.attendee-row-selected{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.booking-panel-only .attendee-row:disabled{opacity:.8;cursor:not-allowed;}.booking-panel-only .attendee-card-body{background:#fff;padding:.75rem 1rem 1rem;border-top:1px solid rgba(255,255,255,.35);}.booking-panel-only .attendee-card-body .form-label{color:var(--bs-primary);letter-spacing:.04em;}.booking-panel-only .attendee-card:not(.attendee-card-selected) .attendee-card-body{border-top:1px solid rgba(var(--bs-primary-rgb),.2);}.booking-panel-only .attendee-left{display:inline-flex;align-items:center;gap:.55rem;}.booking-panel-only .attendee-check{width:18px;height:18px;border-radius:6px;border:1px solid rgba(0,0,0,.32);display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;color:#fff;background:rgba(var(--bs-primary-rgb),.06);}.booking-panel-only .attendee-check-selected{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.45);}.booking-panel-only .student-status-pill{border-radius:999px;font-size:.72rem;padding:.18rem .5rem;font-weight:700;}.booking-panel-only .trial-pill{border:1px solid rgba(var(--bs-warning-rgb),.55)!important;background:rgba(var(--bs-warning-rgb),.35)!important;color:#78350f!important;}.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .badge.trial-pill,.booking-panel-only .attendee-row.attendee-row-selected .badge.trial-pill{border:1px solid rgba(245,158,11,.85)!important;background:#fde68a!important;color:#78350f!important;box-shadow:none!important;}.booking-panel-only .class-offer-pill{border:1px solid rgba(34,197,94,.5)!important;background:rgba(34,197,94,.12)!important;color:#166534!important;padding-inline:.7rem;font-weight:800;letter-spacing:.01em;}.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .badge.class-offer-pill,.booking-panel-only .attendee-row.attendee-row-selected .badge.class-offer-pill{border:1px solid rgba(134,239,172,.75)!important;background:#dcfce7!important;color:#166534!important;box-shadow:0 0 0 1px rgba(22,101,52,.05) inset!important;}.booking-panel-only .too-young-pill{background:var(--bs-danger)!important;color:#fff!important;}.booking-panel-only .session-date-select{border:1px solid rgba(var(--bs-primary-rgb),.35)!important;border-radius:10px;box-shadow:none!important;font-size:1.05rem;}.booking-panel-only .summary-card{border:1px solid rgba(var(--bs-primary-rgb),.12)!important;}.booking-panel-only .booking-summary-class{font-size:.92rem;margin-bottom:.75rem;color:#6b7a99;}.booking-panel-only .booking-summary-class strong{color:#1e2a4a;}.booking-panel-only .booking-summary-student-card{background:#fff;border:1px solid rgba(var(--bs-primary-rgb),.14);border-radius:10px;padding:.65rem .85rem;margin-bottom:.5rem;box-shadow:0 1px 2px rgba(0,0,0,.04);}.booking-panel-only .booking-summary-student-card:last-child{margin-bottom:0;}.booking-panel-only .booking-summary-student-card i,.booking-panel-only .booking-summary-student-card label{display:none!important;}.booking-panel-only .booking-summary-student-name{font-weight:800;color:#1e2a4a;font-size:.9rem;margin-bottom:.2rem;}.booking-panel-only .booking-summary-student-detail{font-size:.82rem;color:#6b7a99;line-height:1.35;}.booking-panel-only .booking-summary-student-detail .text-warning{color:#d97706!important;}.booking-panel-only .multievent-help{color:#7c8ba8;font-size:.95rem;}.booking-panel-only .multievent-student-wrap{margin-bottom:1rem;}.booking-panel-only .multievent-student-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem;}.booking-panel-only .multievent-student-name{display:inline-flex;align-items:center;gap:.45rem;color:var(--bs-secondary);font-weight:800;}.booking-panel-only .multievent-selected-chip{border-radius:999px;padding:.15rem .55rem;background:rgba(var(--bs-primary-rgb),.14);color:var(--bs-primary);font-size:.74rem;font-weight:800;}.booking-panel-only .multievent-session-card{border:1px solid rgba(var(--bs-primary-rgb),.18);border-radius:12px;background:#fff;padding:.65rem .75rem;margin-bottom:.5rem;}.booking-panel-only .multievent-session-card.selected{border-color:rgba(var(--bs-primary-rgb),.55);background:rgba(var(--bs-primary-rgb),.06);}.booking-panel-only .multievent-session-top{display:flex;align-items:center;justify-content:space-between;gap:.7rem;}.booking-panel-only .multievent-session-name{display:inline-flex;align-items:center;gap:.5rem;color:#1e2a4a;font-weight:800;}.booking-panel-only .multievent-session-name .form-check-input{margin-top:0;}.booking-panel-only .multievent-session-price{color:var(--bs-primary);font-size:1.05rem;font-weight:900;}.booking-panel-only .multievent-session-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;color:#7c8ba8;font-size:.88rem;margin-top:.2rem;}.booking-panel-only .multievent-session-meta i{color:#9aa6c0;}.booking-panel-only .multievent-summary-student{border-bottom:1px solid #eceff5;padding-bottom:.55rem;margin-bottom:.55rem;}.booking-panel-only .multievent-summary-student-top{display:flex;justify-content:space-between;align-items:center;color:#1e2a4a;font-weight:800;margin-bottom:.2rem;}.booking-panel-only .multievent-summary-row{display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;color:#5f6f8f;margin-top:.15rem;}.booking-panel-only .multievent-summary-total{display:flex;justify-content:space-between;align-items:center;margin-top:.7rem;padding-top:.65rem;border-top:1px solid #dbe5ef;text-transform:uppercase;color:#8a96b0;font-weight:800;letter-spacing:.04em;}.booking-panel-only .multievent-summary-total strong{color:var(--bs-primary);font-size:1.9rem;font-weight:900;line-height:1;text-transform:none;letter-spacing:normal;}.booking-panel-only .payg-student-wrap{margin-bottom:1rem;padding:.85rem;border:1px solid rgba(var(--bs-primary-rgb),.14);border-radius:14px;background:#f8fbff;}.booking-panel-only .payg-student-hdr{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;}.booking-panel-only .payg-student-hdr .student-name{display:inline-flex;align-items:center;gap:.45rem;color:#1e2a4a;font-weight:800;font-size:.98rem;}.booking-panel-only .payg-student-hdr .student-name i{color:#6b7a99;}.booking-panel-only .payg-selected-chip{border-radius:999px;padding:.18rem .6rem;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.74rem;font-weight:800;white-space:nowrap;}.booking-panel-only .payg-list-box{display:flex;flex-direction:column;gap:.55rem;}.booking-panel-only .payg-list-row{border:1px solid rgba(var(--bs-primary-rgb),.16);border-radius:12px;background:#fff;padding:.72rem .85rem;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;cursor:pointer;}.booking-panel-only .payg-list-row.selected{border-color:rgba(var(--bs-primary-rgb),.45);background:rgba(var(--bs-primary-rgb),.05);box-shadow:0 4px 14px rgba(30,42,74,.06);}.booking-panel-only .payg-list-row.warning{border-color:rgba(217,119,6,.35);background:#fffaf2;}.booking-panel-only .payg-list-row.disabled{opacity:.7;cursor:not-allowed;}.booking-panel-only .payg-list-row-main{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}.booking-panel-only .payg-list-label{display:inline-flex;align-items:flex-start;gap:.6rem;margin:0;color:#1e2a4a;font-weight:800;font-size:.94rem;line-height:1.35;cursor:inherit;flex:1;}.booking-panel-only .payg-list-label .form-check-input{margin-top:.1rem;flex-shrink:0;}.booking-panel-only .payg-list-label span{display:inline-block;}.booking-panel-only .payg-list-row .session-price{color:var(--bs-primary);font-size:1.02rem;font-weight:900;line-height:1.2;white-space:nowrap;flex-shrink:0;}.booking-panel-only .payg-list-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem .65rem;margin-top:.4rem;color:#7c8ba8;font-size:.84rem;}.booking-panel-only .payg-list-row-meta>span{display:inline-flex;align-items:center;gap:.32rem;}.booking-panel-only .payg-list-row-meta i{color:#9aa6c0;}.booking-panel-only .status-alert-danger{border:1px solid rgba(var(--bs-danger-rgb),.35);background:rgba(var(--bs-danger),.07);color:var(--bs-danger);border-radius:8px;padding:.65rem .75rem;}.booking-panel-only .status-alert-warning{border:1px solid rgba(var(--bs-warning-rgb),.55);background:rgba(var(--bs-warning),.16);color:#7b5600;border-radius:10px;padding:.7rem .75rem;}.booking-panel-only .terms-toggle{border:1px solid rgba(var(--bs-primary-rgb),.2);border-radius:9px;padding:.45rem .65rem;font-size:.92rem;}.booking-panel-only .submitButton{border-radius:10px;font-weight:700;padding-top:.75rem!important;padding-bottom:.75rem!important;}.booking-panel-only .waitinglist-top-alert{font-size:.9rem;line-height:1.45;}.booking-panel-only .waitinglist-title{color:#1e2a4a;}.booking-panel-only .attendee-card-disabled{opacity:.6;}.booking-panel-only .waitinglist-chip{border:1px solid rgba(var(--bs-primary-rgb),.3);background:#fef3c7;color:#92400e;font-size:.72rem;font-weight:700;}.booking-panel-only .waitinglist-chip-success{border:1px solid rgba(22,163,74,.35);background:rgba(22,163,74,.12);color:#15803d;font-size:.72rem;font-weight:700;}.booking-panel-only .waitinglist-submit{width:100%;border-radius:12px;min-height:48px;font-size:1rem;}.booking-panel-only .attendee-row-selected .waitinglist-chip{border-color:#f59e0b;background:#fef3c7;color:#92400e;font-weight:800;}.booking-panel-only .attendee-card .attendee-row.attendee-row-selected .waitinglist-chip-success,.booking-panel-only .attendee-row.attendee-row-selected .waitinglist-chip-success{border-color:rgba(134,239,172,.75);background:#dcfce7;color:#166534;font-weight:800;box-shadow:0 0 0 1px rgba(22,101,52,.05) inset;}.booking-panel-only .waitinglist-multi-body{border-top:1px solid rgba(var(--bs-warning-rgb),.45);background:#fffdfa;padding:.65rem .7rem .7rem;}.booking-panel-only .waitinglist-multi-title{text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;font-weight:800;color:#b45309;margin-bottom:.45rem;}.booking-panel-only .waitinglist-session-card{width:100%;border:1px solid rgba(var(--bs-primary-rgb),.2);border-radius:10px;background:#fff;padding:.52rem .65rem;text-align:left;margin-bottom:.45rem;}.booking-panel-only .waitinglist-session-card:last-child{margin-bottom:0;}.booking-panel-only .waitinglist-session-card.selected{border-color:#d97706;background:#fff7ed;}.booking-panel-only .waitinglist-session-card:disabled{opacity:.65;cursor:not-allowed;}.booking-panel-only .waitinglist-session-card .attendee-check-selected{background:#d97706;border-color:#d97706;color:#fff;}.booking-panel-only .waitinglist-session-r1{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.2rem;}.booking-panel-only .waitinglist-session-name{display:inline-flex;align-items:center;gap:.45rem;color:#1e2a4a;font-weight:800;}.booking-panel-only .waitinglist-session-price{color:#d97706;font-weight:900;}.booking-panel-only .waitinglist-session-meta{font-size:.82rem;color:#7c8ba8;display:flex;align-items:center;flex-wrap:wrap;gap:.2rem;}.booking-panel-only .waitinglist-success-card{border:1px solid rgba(var(--bs-primary-rgb),.25);border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);padding:.9rem;}.booking-panel-only .waitinglist-success-title{font-weight:800;color:var(--bs-primary);font-size:1.15rem;margin-bottom:.4rem;display:flex;align-items:center;}.booking-panel-only .waitinglist-success-text{color:#3f4c66;font-size:.92rem;line-height:1.45;}.booking-panel-only .waitinglist-success-linkbox{background:rgba(255,255,255,.55);border-radius:10px;padding:.65rem .7rem;display:flex;flex-direction:column;gap:.55rem;}.booking-panel-only .waitinglist-success-linkrow{display:flex;align-items:center;gap:.65rem;}.booking-panel-only .waitinglist-success-linkrow small{display:block;color:#8a96b0;font-weight:700;line-height:1.1;margin-bottom:.1rem;}.booking-panel-only .waitinglist-success-linkrow a{color:var(--bs-primary);text-decoration:none;font-weight:800;}.booking-panel-only .waitinglist-success-linkrow strong{color:#1f3152;font-size:.98rem;}.booking-panel-only .waitinglist-success-ico{width:30px;height:30px;border-radius:8px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.booking-step-dot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid rgba(var(--bs-primary-rgb),.25);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.8rem;margin-right:.35rem;}.booking-step-dot-active{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}@media(max-width:991.98px){.chip-row{flex-wrap:nowrap;min-width:max-content;}.tl-row{grid-template-columns:1fr;gap:.4rem;}.tl-col-hdr{display:none;}.tl-row-term{grid-template-columns:1fr;gap:.4rem;}.tl-time{padding:0;}.tl-price{text-align:left;}.term-banner{flex-direction:column;align-items:flex-start;}.term-name-value{font-size:1.5rem;}.term-dates-row{width:100%;justify-content:space-between;}.term-date-val-start,.term-date-val-end{font-size:1rem;}.day-pill{width:8rem;}}.class-details-left-sticky{position:static;}.class-details-main-column .tl-footer{display:none;}@media(max-width:991.98px){.class-details-page:not(.mobile-booking-open) .class-details-main-column{padding-bottom:6.5rem;}.class-details-page:not(.mobile-booking-open) .class-details-booking-column .tl-footer{position:fixed;left:1rem;right:1rem;bottom:.75rem;z-index:1040;background:transparent;border-top:0;padding:0;margin:0;}.class-details-page:not(.mobile-booking-open) .class-details-booking-column .tl-footer .btn-book-now{width:100%;box-shadow:0 10px 28px rgba(0,0,0,.14);}.class-details-page.mobile-booking-open .class-details-main-column{display:none;}.class-details-page.mobile-booking-open .class-details-booking-column{order:1;}.class-details-page.mobile-booking-open .page-container{padding-bottom:6.5rem;}.booking-panel-only{padding-bottom:6.5rem!important;}.booking-panel-only .submitButton{position:sticky;bottom:.75rem;z-index:20;box-shadow:0 10px 28px rgba(0,0,0,.14);}}@media(min-width:992px){.class-details-page:not(.mobile-booking-open) .class-details-booking-column{position:sticky;top:1.5rem;align-self:flex-start;}.class-details-page.mobile-booking-open .class-details-main-column{position:sticky;top:1.5rem;align-self:flex-start;}}.basket-page-shell{min-height:100vh;background:#f3f4f6;}.basket-page-header{background:#fff;border-bottom:1px solid #e5e7eb;min-height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:0 1.5rem;}.basket-header-back{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;color:#8a96b0;text-decoration:none;}.basket-header-back:hover{color:#4b5563;}.basket-header-title{display:flex;align-items:center;justify-content:center;gap:.65rem;}.basket-header-title h1{margin:0;font-weight:900;font-size:1.45rem;color:#1e2a4a;line-height:1.15;}.basket-header-title i{color:var(--bs-primary);}.basket-header-badge{display:inline-flex;align-items:center;padding:.28rem .7rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.1);border:1px solid rgba(var(--bs-primary-rgb),.2);font-size:.73rem;font-weight:800;color:var(--bs-primary);}.basket-header-right{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;}.basket-header-total{display:inline-flex;align-items:center;gap:.35rem;font-size:.86rem;font-weight:800;color:var(--bs-primary);}.basket-header-total i{color:var(--bs-primary);}.basket-header-avatar{width:40px;height:40px;border-radius:50%;background:var(--bs-primary);color:var(--m-on-primary,#fff);display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:900;}.basket-body-container{max-width:1100px;margin:0 auto;padding:1.75rem 1.5rem 3.5rem;}.basket-card-base{background:#fff;border-radius:16px;border:1px solid #f1f1f5;box-shadow:0 2px 12px rgba(30,42,74,.06);overflow:hidden;}.basket-item-header{padding:1.1rem 1.35rem .95rem;border-bottom:1px solid #f3f4f6;display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;}.basket-item-class-name{font-weight:900;font-size:1.1rem;color:#1e2a4a;margin-bottom:.15rem;}.basket-item-group-name{font-size:.82rem;color:var(--bs-primary);font-weight:700;margin-bottom:.1rem;}.basket-item-student-name{font-size:.82rem;color:#8a96b0;font-weight:600;}.basket-item-student-meta{margin-top:.2rem;font-size:.76rem;color:#8a96b0;font-weight:700;}.basket-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;font-size:.72rem;font-weight:800;}.basket-badge svg{width:11px;height:11px;flex-shrink:0;}.basket-badge-primary,.basket-badge-event{background:rgba(var(--bs-primary-rgb),.08);border:1px solid rgba(var(--bs-primary-rgb),.22);color:var(--bs-primary);}.basket-badge-secondary{background:rgba(var(--bs-secondary-rgb),.08);border:1px solid rgba(var(--bs-secondary-rgb),.22);color:var(--bs-secondary);}.basket-badge-trial,.basket-badge-trial-small{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;}.basket-badge-trial-small{padding:.2rem .55rem;font-size:.67rem;}.basket-badge-trial-small svg{width:10px;height:10px;}.basket-badge-payg{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;}.basket-item-body{display:grid;grid-template-columns:1fr 1fr;}.basket-shop-body{display:block;}.basket-shop-line{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.35rem;border-bottom:1px solid #f3f4f6;}.basket-shop-line-info{min-width:0;}.basket-shop-line-name{font-size:.92rem;font-weight:700;color:#1e2a4a;line-height:1.3;}.basket-shop-line-variant,.basket-shop-line-qty{font-size:.8rem;color:#8a96b0;font-weight:600;margin-top:.15rem;}.basket-shop-line-price{font-size:.92rem;font-weight:700;color:#1e2a4a;white-space:nowrap;flex-shrink:0;}.basket-shop-total-row{padding:1rem 1.35rem;margin-top:0;}.basket-shop-location-card .basket-item-header{align-items:center;}.basket-shop-location-icon{font-size:1.35rem;color:var(--bs-primary);opacity:.7;}.basket-shop-location-body{padding:.85rem 1.35rem 1.25rem;}.basket-item-left,.basket-item-right{padding:1.15rem 1.35rem;}.basket-item-left{border-right:1px solid #f3f4f6;}.basket-item-right{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;}.basket-item-field{margin-bottom:1rem;}.basket-item-field:last-child{margin-bottom:0;}.basket-item-field-label,.basket-pay-today-label{font-size:.66rem;font-weight:800;color:#8a96b0;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem;}.basket-item-line{display:flex;align-items:center;gap:.45rem;color:#6b7a99;font-size:.82rem;font-weight:600;margin-top:.2rem;}.basket-item-line-strong{color:#1e2a4a;font-size:.86rem;font-weight:800;}.basket-item-date-title,.basket-item-address{color:#1e2a4a;font-size:.9rem;font-weight:800;line-height:1.45;}.basket-chip-row{display:flex;flex-wrap:wrap;gap:.45rem;}.basket-date-chip{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.71rem;font-weight:700;}.basket-date-chip-muted{background:#f3f4f6;border:1px solid #e5e7eb;color:#8a96b0;}.basket-date-chip-trial{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;}.basket-date-chip-payg{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;}.basket-payg-session-list,.basket-payg-additional-list{display:flex;flex-direction:column;gap:.45rem;}.basket-payg-additional-list{margin-top:.55rem;}.basket-payg-session-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.84rem;}.basket-payg-session-date{color:#1e2a4a;font-weight:600;}.basket-payg-session-price{color:#6b7a99;font-weight:700;white-space:nowrap;}.basket-payg-session-row-additional .basket-payg-session-date{color:#6b7a99;font-weight:500;}.basket-subscription-list,.basket-breakdown-list{display:flex;flex-direction:column;gap:.45rem;}.basket-subscription-row,.basket-breakdown-row{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;}.basket-subscription-name{font-size:.78rem;color:#8a96b0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}.basket-subscription-cost{font-size:.9rem;color:#1e2a4a;font-weight:800;}.basket-subscription-period{font-size:.78rem;color:#8a96b0;font-weight:600;}.basket-booking-toggle{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f6;border-radius:10px;padding:4px;gap:4px;margin-bottom:1rem;}.basket-btt-btn{border:0;background:transparent;border-radius:7px;padding:.5rem .4rem;}.basket-btt-btn.active{background:#fff;box-shadow:0 1px 4px rgba(30,42,74,.1);}.basket-btt-btn.active .basket-btt-label{color:#1e2a4a;}.basket-btt-btn.active .basket-btt-sub{color:var(--bs-primary);}.basket-btt-label{font-size:.72rem;font-weight:800;color:#8a96b0;}.basket-btt-sub{font-size:.7rem;font-weight:700;color:#b0b8cc;margin-top:.1rem;}.basket-pay-today-line{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;}.basket-pay-today-amount{font-size:1.2rem;font-weight:900;color:var(--bs-primary);}.basket-pay-today-amount-lg{font-size:1.9rem;line-height:1;}.basket-pay-today-note{font-size:.8rem;color:#8a96b0;font-weight:600;}.basket-breakdown-list{margin-top:.9rem;padding-top:.6rem;border-top:1px solid #f3f4f6;}.basket-breakdown-row span{font-size:.78rem;color:#8a96b0;font-weight:600;}.basket-breakdown-row strong{font-size:.8rem;color:#1e2a4a;font-weight:800;}.basket-breakdown-rich{display:flex;flex-direction:column;gap:.2rem;}.basket-breakdown-rich-top{font-size:.8rem;color:#6b7a99;font-weight:600;}.basket-breakdown-rich-bottom{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.45rem;font-size:.8rem;color:#8a96b0;font-weight:600;}.basket-badge-due-today{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.7rem;font-weight:800;}.basket-payg-note{margin-top:.9rem;padding:.65rem .75rem;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#7c3100;font-size:.8rem;font-weight:600;}.basket-payg-note-muted,.basket-term-note,.basket-payment-notice,.basket-trial-notice{margin-top:.7rem;padding:.65rem .75rem;border-radius:10px;font-size:.8rem;font-weight:700;display:flex;align-items:flex-start;gap:.55rem;line-height:1.45;}.basket-payg-note-muted{background:#f8f9fc;border:1px solid #eaecf4;color:#6b7a99;}.basket-term-note{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;}.basket-payment-notice,.basket-trial-notice{background:rgba(var(--bs-primary-rgb),.07);border:1px solid rgba(var(--bs-primary-rgb),.2);color:var(--bs-primary);}.basket-item-total-row,.basket-summary-total{display:flex;justify-content:space-between;align-items:center;padding-top:.65rem;border-top:1px solid #f3f4f6;}.basket-item-total-label{font-size:.8rem;color:#8a96b0;font-weight:600;}.basket-item-total-val{font-size:.9rem;color:#1e2a4a;font-weight:800;}.basket-btn-remove{display:inline-flex;align-items:center;gap:.45rem;border:0;background:none;color:#dc2626;font-size:.8rem;font-weight:700;padding:.7rem 0 0;}.basket-order-summary{position:sticky;top:3.5rem;}.basket-stepper{padding:.95rem 1.2rem;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}.basket-step-dot{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:900;}.basket-step-dot-active{background:rgba(var(--bs-primary-rgb),.15);border:2px solid var(--bs-primary);color:var(--bs-primary);}.basket-step-dot-pending{background:#e9eaf0;color:#8a96b0;}.basket-step-label{font-size:.78rem;font-weight:700;}.basket-step-label-active{color:var(--bs-primary);}.basket-step-label-pending,.basket-step-sep{color:#c7cdd8;}.basket-summary-title{display:flex;align-items:center;gap:.55rem;margin:0 0 .8rem;color:#1e2a4a;font-size:1.4rem;font-weight:900;}.basket-summary-expand{width:100%;border:0;background:none;padding:.35rem 0 .75rem;display:flex;align-items:center;justify-content:space-between;}.basket-summary-expand span{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:#8a96b0;font-weight:600;}.basket-summary-expand strong{font-size:.88rem;color:#1e2a4a;font-weight:800;}.basket-chevron-open{transform:rotate(180deg);}.basket-summary-item{display:flex;justify-content:space-between;gap:.8rem;padding:.45rem 0 .45rem .9rem;border-bottom:1px dashed #f3f4f6;}.basket-summary-item-left{display:flex;flex-direction:column;flex:1;gap:.2rem;font-size:.79rem;color:#4b5a7a;font-weight:700;}.basket-summary-item-left small{font-size:.69rem;color:#8a96b0;font-weight:600;}.basket-summary-item-right{font-size:.82rem;color:#1e2a4a;font-weight:800;}.basket-summary-badge{display:inline-flex;align-items:center;width:fit-content;padding:.1rem .4rem;border-radius:4px;font-size:.66rem;font-weight:800;}.basket-summary-badge-event,.basket-summary-badge-subscription{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.basket-summary-badge-term{background:rgba(var(--bs-secondary-rgb),.08);color:var(--bs-secondary);}.basket-summary-badge-trial{background:#fef3c7;color:#92400e;}.basket-summary-badge-payg{background:#fff7ed;color:#c2410c;}.basket-summary-total span{font-size:.86rem;color:#8a96b0;font-weight:600;}.basket-summary-total strong{font-size:1.15rem;color:#1e2a4a;font-weight:900;}.basket-promo-card{margin-top:.9rem;padding:.9rem;border-radius:14px;border:1px solid #dfe5f2;background:linear-gradient(180deg,#f8faff 0%,#f3f6fc 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.75);}.basket-promo-toggle{width:100%;border:1px dashed rgba(var(--bs-primary-rgb),.28);border-radius:12px;background:rgba(255,255,255,.72);padding:.85rem .95rem;display:flex;align-items:center;justify-content:space-between;gap:.85rem;text-align:left;}.basket-promo-toggle-icon{width:40px;height:40px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.basket-promo-toggle-copy{display:flex;flex-direction:column;flex:1;gap:.15rem;}.basket-promo-toggle-copy strong{color:#1e2a4a;font-size:.92rem;font-weight:900;}.basket-promo-toggle-copy small{color:#8a96b0;font-size:.73rem;font-weight:600;line-height:1.45;}.basket-promo-toggle-action{color:var(--bs-primary);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.basket-promo-body{margin:0;}.basket-promo-input .form-control{min-height:54px;border-color:#d7deed;background:#fff;color:#1e2a4a;box-shadow:none;}.basket-promo-input .form-control:focus{border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.basket-promo-input label{color:#7d8cab;font-weight:700;}.basket-promo-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;}.basket-promo-btn{min-width:102px;min-height:46px;border-radius:12px;font-size:.9rem;font-weight:800;}.basket-promo-btn-secondary{border-color:#cfd7e6;color:#374151;}.basket-promo-feedback{border-radius:10px;padding:.7rem .8rem;font-size:.82rem;font-weight:700;line-height:1.55;}.basket-promo-feedback-success{background:#ecfdf3;border:1px solid #bbf7d0;color:#15803d;}.basket-promo-feedback-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;}.basket-summary-item-discount{margin-top:.15rem;padding:.7rem 0 .7rem .9rem;border-bottom-style:solid;border-bottom-color:#edf2fb;}.basket-summary-item-left-discount{color:#2f4064;gap:.12rem;}.basket-summary-item-left-discount small{color:#8a96b0;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.basket-summary-item-right-discount{color:#15803d;}.basket-summary-total-discount{padding-top:.8rem;}.basket-btn-primary,.basket-btn-primary-secondary{width:100%;border:0;border-radius:12px;padding:.95rem 1rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;text-decoration:none;font-size:.95rem;font-weight:800;}.basket-btn-primary{background:var(--bs-secondary);color:var(--m-on-secondary,#fff);box-shadow:0 4px 18px rgba(30,42,74,.25);}.basket-btn-primary:hover{color:var(--m-on-secondary,#fff);}.basket-btn-primary-secondary{background:var(--bs-secondary);color:var(--m-on-secondary,#fff);}.basket-btn-primary-secondary:hover{color:var(--m-on-secondary,#fff);}.basket-btn-saved-card{width:100%;padding:.85rem .95rem;border-radius:12px;border:1.5px solid rgba(var(--bs-primary-rgb),.3);background:rgba(var(--bs-primary-rgb),.04);display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.basket-saved-card-info{display:flex;align-items:center;gap:.8rem;}.basket-saved-card-icon{width:48px;height:48px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0;}.basket-saved-card-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;}.basket-saved-card-brand{font-size:.98rem;font-weight:800;color:#8a96b0;text-transform:uppercase;letter-spacing:.02em;}.basket-saved-card-value{font-size:1rem;font-weight:900;color:#1e2a4a;}.basket-saved-card-pill{display:inline-flex;align-items:center;gap:.3rem;background:var(--bs-primary);color:var(--m-on-primary,#fff);border-radius:999px;padding:.35rem .75rem;font-size:.72rem;font-weight:800;}.basket-payment-divider{position:relative;text-align:center;margin:.35rem 0;}.basket-payment-divider::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid #e5e7eb;}.basket-payment-divider span{position:relative;padding:0 .8rem;background:#fff;color:#b5bdcf;font-size:.82rem;font-weight:800;}.basket-payment-helper{margin:.15rem 0 0;font-size:.76rem;color:#b5bdcf;text-align:center;line-height:1.5;}.basket-payment-options-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:5.5rem;padding:.5rem 0;}.basket-payment-options-loading-text{margin:.25rem 0 0;font-size:.8rem;color:#8a96b0;text-align:center;}.basket-policy-text{margin:0;font-size:.75rem;color:#8a96b0;text-align:center;line-height:1.6;}.basket-inline-alert{display:flex;align-items:flex-start;gap:.8rem;width:100%;padding:1rem 1.05rem;border-radius:1rem;border:1px solid #f5c2c7;background:linear-gradient(180deg,#fff8f8 0%,#fff1f2 100%);box-shadow:0 14px 28px rgba(122,28,47,.08);}.basket-inline-alert-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex:0 0 2rem;border-radius:999px;font-size:.95rem;}.basket-inline-alert-text{flex:1 1 auto;color:#7a1c2f;font-size:.98rem;font-weight:700;line-height:1.6;}.basket-inline-alert-error .basket-inline-alert-icon{background:rgba(185,28,28,.12);color:#b91c1c;box-shadow:inset 0 0 0 1px rgba(185,28,28,.08);}.basket-continue-link{display:inline-flex;align-items:center;justify-content:center;width:100%;gap:.45rem;color:var(--bs-primary);text-decoration:none;font-size:.84rem;font-weight:700;}.basket-empty-state{text-align:center;padding:3rem 1.5rem;}.basket-empty-state h2{color:#1e2a4a;font-size:1.4rem;font-weight:900;margin-bottom:.35rem;}.basket-empty-state p{color:#8a96b0;margin-bottom:1.2rem;}.basket-empty-icon{width:82px;height:82px;margin:0 auto 1rem;border-radius:50%;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);display:flex;align-items:center;justify-content:center;font-size:1.9rem;}.basket-empty-link{max-width:220px;margin:0 auto;}.nav-user-menu .dropdown-toggle::after{display:none;}.nav-user-trigger{width:2.5rem;height:2.5rem;border:0;border-radius:999px;background:var(--bs-primary);color:var(--m-on-primary,#fff);display:inline-flex;align-items:center;justify-content:center;padding:0;font-weight:800;box-shadow:0 4px 14px rgba(var(--bs-primary-rgb),.18);}.nav-user-trigger-text{font-size:.95rem;font-weight:800;letter-spacing:.01em;}.nav-user-dropdown{min-width:15.6rem;margin-top:.9rem;padding:.45rem 0 .55rem;border:1px solid #d8dee8;border-radius:14px;box-shadow:0 18px 40px rgba(20,32,62,.16);overflow:hidden;}.nav-user-item{display:flex;align-items:center;gap:.9rem;padding:.88rem 1.2rem;font-size:.86rem;font-weight:700;color:#1e2a4a;}.nav-user-item i{width:1rem;color:#7d89a7;}.nav-user-item:hover,.nav-user-item:focus{background:#f8fafc;color:#14203e;}.nav-user-divider{margin:.2rem 0 0;border-top-color:#e9edf4;}.nav-user-item-logout{margin-top:.55rem;background:#e62c2c;color:#fff;border-radius:0;}.nav-user-item-logout i,.nav-user-item-logout:hover,.nav-user-item-logout:focus,.nav-user-item-logout:hover i,.nav-user-item-logout:focus i{color:#fff;}.nav-user-item-logout:hover,.nav-user-item-logout:focus{background:#d82424;}.checkout-complete-page{padding-top:1.2rem;padding-bottom:2.8rem;}.checkout-loading-card,.checkout-missing-card{padding:1.5rem;}.checkout-loading-title{font-size:1rem;font-weight:800;color:#1e2a4a;}.checkout-loading-subtitle{font-size:.84rem;color:#8a96b0;font-weight:600;}.confirm-banner{display:flex;align-items:center;gap:1.2rem;padding:1.7rem 2rem;border-left:5px solid var(--bs-primary);box-shadow:0 10px 28px rgba(var(--bs-primary-rgb),.12);}.confirm-icon{width:70px;height:70px;border-radius:50%;background:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.confirm-icon svg{width:28px;height:28px;}.confirm-title{font-size:1.1rem;font-weight:900;color:#1e2a4a;margin-bottom:.25rem;}.confirm-sub{font-size:.96rem;color:#62739a;font-weight:500;}.checkout-bookings-head{padding:.95rem 1.35rem;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;gap:1rem;}.checkout-panel-title{display:inline-flex;align-items:center;gap:.55rem;font-size:1rem;font-weight:900;color:#1e2a4a;}.checkout-panel-title svg{width:16px;height:16px;}.checkout-brand-label{font-size:.75rem;font-weight:700;color:#8a96b0;text-transform:uppercase;letter-spacing:.04em;}.checkout-booking-row{padding:1.15rem 1.35rem;}.checkout-booking-row-border{border-bottom:1px solid #f3f4f6;}.checkout-booking-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.95rem;}.checkout-booking-class{font-size:1.05rem;font-weight:900;color:#1e2a4a;margin-bottom:.15rem;}.checkout-booking-group{font-size:.88rem;color:#8a96b0;font-weight:600;}.checkout-booking-badges{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end;}.checkout-confirmed-badge{display:inline-flex;align-items:center;gap:.38rem;padding:.35rem .8rem;border-radius:999px;background:#f0fdf4;border:1px solid #86efac;color:#16a34a;font-size:.76rem;font-weight:800;}.checkout-confirmed-badge svg{width:7px;height:7px;fill:currentColor;}.checkout-meta-label{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.35rem;font-size:.62rem;font-weight:800;color:#8a96b0;letter-spacing:.1em;text-transform:uppercase;}.checkout-meta-label svg{width:11px;height:11px;}.checkout-member-name,.checkout-location{font-size:.92rem;font-weight:700;color:#1e2a4a;line-height:1.45;}.checkout-member-name+.checkout-member-name{margin-top:.7rem;}.checkout-shop-student-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-top:.35rem;}.checkout-shop-student-meta{font-size:.84rem;font-weight:600;color:#8a96b0;white-space:nowrap;}.checkout-starting-date{margin-top:.45rem;font-size:.82rem;font-weight:700;color:#62739a;}.checkout-date-chip{display:inline-flex;align-items:center;gap:.35rem;margin-top:.55rem;padding:.28rem .7rem;border-radius:999px;background:#f3f4f6;color:#4b5563;font-size:.76rem;font-weight:700;}.checkout-date-chip svg{width:10px;height:10px;}.checkout-step-card{padding:.85rem 1.15rem;}.basket-stepper-complete{padding:0;border-bottom:0;}.checkout-step-item{display:flex;align-items:center;gap:.45rem;}.basket-step-dot-done{background:var(--bs-primary);color:#fff;}.basket-step-dot-done svg{width:11px;height:11px;}.checkout-step-label{font-size:.78rem;font-weight:700;color:#1e2a4a;white-space:nowrap;}.checkout-next-card{padding:1.25rem 1.35rem;}.checkout-next-title{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.05rem;font-size:1.05rem;font-weight:900;color:#1e2a4a;}.checkout-next-title svg{width:18px;height:18px;}.what-next-item{display:flex;gap:.9rem;align-items:flex-start;padding:.6rem 0;}.what-next-item:last-child{padding-bottom:0;}.what-next-icon{width:36px;height:36px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.what-next-icon svg{width:15px;height:15px;}.what-next-title{font-size:.98rem;color:#1e2a4a;font-weight:900;margin-bottom:.15rem;}.what-next-copy{font-size:.86rem;font-weight:500;color:#62739a;line-height:1.5;max-width:18rem;}.what-next-link{font-size:.86rem;font-weight:700;color:var(--bs-primary);text-decoration:none;line-height:1.4;}.what-next-link:hover{opacity:.85;}.checkout-amend-card{margin-top:.8rem;padding:.95rem 1rem;border-radius:12px;background:#f6f8fd;border:1px solid #e7ebf5;}.checkout-amend-title{font-size:.98rem;font-weight:900;color:#1e2a4a;margin-bottom:.3rem;}.checkout-amend-copy{font-size:.86rem;color:#62739a;font-weight:500;line-height:1.5;}.checkout-contact-banner{margin-top:1rem;padding:.85rem .95rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);border:1px solid rgba(var(--bs-primary-rgb),.18);display:flex;align-items:center;gap:.6rem;color:var(--bs-primary);font-size:.88rem;font-weight:600;}.checkout-contact-banner svg{width:15px;height:15px;flex-shrink:0;}.checkout-back-btn{margin-top:1rem;}.checkout-back-btn svg{width:16px;height:16px;}@media(max-width:991.98px){.basket-page-header{grid-template-columns:1fr;justify-items:flex-start;padding:1rem 1rem;}.basket-header-title,.basket-header-right{width:100%;justify-content:space-between;}.basket-body-container{padding:1.2rem 1rem 2.5rem;}.basket-item-body{grid-template-columns:1fr;}.basket-item-left{border-right:0;border-bottom:1px solid #f3f4f6;}.basket-order-summary{position:static;}.basket-stepper{gap:.3rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}.basket-stepper::-webkit-scrollbar{display:none;}.basket-step-label{font-size:.72rem;}.basket-step-sep{font-size:.7rem;}.confirm-banner{padding:1.2rem 1rem;gap:.9rem;}.confirm-icon{width:56px;height:56px;}.checkout-bookings-head,.checkout-booking-row,.checkout-next-card{padding-left:1rem;padding-right:1rem;}.checkout-booking-top{flex-direction:column;}.basket-item-header{padding:1.1rem .75rem .95rem;border-bottom:1px solid #f3f4f6;display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;}.basket-saved-card-icon{width:30px;height:30px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0;}.basket-saved-card-brand{font-size:.8rem;font-weight:800;color:#8a96b0;text-transform:uppercase;letter-spacing:.02em;}.basket-saved-card-value{font-size:.81rem;font-weight:900;color:#1e2a4a;}.basket-saved-card-pill{display:inline-flex;align-items:center;gap:.3rem;background:var(--bs-primary);color:var(--m-on-primary,#fff);border-radius:999px;padding:.35rem .75rem;font-size:.6rem;font-weight:800;}}.page-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:20px 24px 18px;}.page-header h4{margin:0;font-weight:800;color:#1e2a4a;font-size:1.15rem;letter-spacing:-.3px;}.page-header p{margin:4px 0 0;color:#6b7a99;font-size:.85rem;}.content-card{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:20px;}.section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8a96b0;margin-bottom:12px;padding-left:2px;}.stat-card{background:#fff;border-radius:14px;padding:16px 18px;box-shadow:0 2px 8px rgba(0,0,0,.05);display:flex;align-items:center;gap:12px;}.stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}.stat-icon-balance{background:rgba(22,163,74,.09);color:#16a34a;}.stat-icon-balance-debit{background:rgba(220,38,38,.09);color:#dc2626;}.stat-icon-subs{background:rgba(var(--bs-primary-rgb),.09);color:var(--bs-primary);}.stat-icon-cards{background:rgba(16,185,129,.09);color:#10b981;}.stat-label{font-size:.7rem;color:#8a96b0;font-weight:600;text-transform:uppercase;letter-spacing:.05em;}.stat-value{font-size:1.3rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.stat-badge{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;}.stat-badge-credit{background:rgba(22,163,74,.12);color:#16a34a;border:1px solid rgba(22,163,74,.2);}.stat-badge-debit{background:rgba(220,38,38,.12);color:#dc2626;border:1px solid rgba(220,38,38,.2);}.stat-sub-note{font-size:.65rem;color:#dc2626;font-weight:600;margin-top:2px;display:flex;align-items:center;gap:3px;}.failed-banner{padding:14px 18px;border-radius:12px;background:#fef2f2;border:1.5px solid #fecaca;display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;}.failed-banner-icon{width:32px;height:32px;border-radius:50%;background:#fee2e2;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;color:#dc2626;font-size:.9rem;}.failed-banner-title{font-weight:800;color:#b91c1c;font-size:.875rem;}.failed-banner-desc{font-size:.78rem;color:#dc2626;margin-top:3px;line-height:1.5;}@media(max-width:680px){.two-column-layout{flex-direction:column;}}.tx-row{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid #f3f4f6;}.tx-row:last-child{border-bottom:0;}.tx-row-failed{background:rgba(254,242,242,.5);margin:0 -20px;padding:13px 20px;border-radius:8px;}.tx-icon{width:34px;height:34px;border-radius:50%;flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;font-size:.85rem;}.tx-icon-ok{background:#f0fdf4;color:#16a34a;}.tx-icon-failed{background:#fee2e2;color:#dc2626;}.tx-icon-refund{background:#fff7ed;color:#ea580c;}.tx-icon-partial{background:#fffbeb;color:#d97706;}.tx-name{font-weight:700;font-size:.875rem;color:#1e2a4a;}.tx-name-failed{color:#b91c1c;}.tx-name-refund{color:#6b7280;text-decoration:line-through;}.tx-meta{font-size:.75rem;color:#8a96b0;margin-top:1px;}.tx-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:99px;font-size:.62rem;font-weight:700;}.tx-badge-failed{background:#fee2e2;color:#dc2626;border:1px solid #fecaca;}.tx-badge-refund{background:#fff7ed;color:#ea580c;border:1px solid #fed7aa;}.tx-badge-partial{background:#fffbeb;color:#d97706;border:1px solid #fde68a;}.tx-sub-link{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:.7rem;font-weight:600;color:var(--bs-primary);}.tx-sub-link-failed{color:#dc2626;}.tx-charge-desc{display:flex;align-items:flex-start;gap:4px;margin-top:4px;font-size:.7rem;color:#6b7a99;line-height:1.4;}.tx-refund-reason{display:flex;align-items:flex-start;gap:4px;margin-top:4px;font-size:.72rem;font-style:italic;line-height:1.4;}.tx-refund-reason-full{color:#ea580c;}.tx-refund-reason-partial{color:#d97706;}.tx-pay-now{display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:5px 12px;border-radius:7px;background:#dc2626;color:#fff;font-weight:700;font-size:.72rem;text-decoration:none;letter-spacing:.02em;}.tx-pay-now:hover{opacity:.9;color:#fff;}.tx-pay-btn{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 16px;border-radius:8px;background:#dc2626;color:#fff;font-weight:700;font-size:.75rem;text-decoration:none;letter-spacing:.02em;border:0;cursor:pointer;transition:background .15s,box-shadow .15s;box-shadow:0 1px 3px rgba(220,38,38,.18);}.tx-pay-btn:hover{background:#b91c1c;color:#fff;box-shadow:0 2px 6px rgba(220,38,38,.28);}.invoice-row{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid #f3f4f6;}.invoice-row:last-child{border-bottom:0;}.invoice-icon{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--bs-danger-bg-subtle);color:var(--bs-danger);}.invoice-desc{font-weight:600;color:#1e2a4a;font-size:.85rem;line-height:1.4;}.invoice-date{font-size:.72rem;color:#8a96b0;margin-top:2px;}.invoice-status-badge{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;padding:2px 9px;border-radius:99px;font-size:.66rem;font-weight:700;background:var(--bs-danger-bg-subtle);color:var(--bs-danger);border:1px solid var(--bs-danger);}.invoice-amount{flex-shrink:0;font-weight:800;font-size:1rem;min-width:64px;text-align:right;color:var(--bs-danger);}.invoice-pay-btn{display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:5px 12px;border-radius:7px;background:var(--bs-danger);color:#fff;font-weight:700;font-size:.72rem;text-decoration:none;letter-spacing:.02em;border:0;cursor:pointer;}.invoice-pay-btn:hover{opacity:.9;color:#fff;}.invoice-pay-btn.invoice-pay-btn-primary{background:var(--bs-primary);box-shadow:0 1px 4px rgba(var(--bs-primary-rgb),.25);}.invoice-pay-btn.invoice-pay-btn-primary:hover{filter:brightness(.93);opacity:1;color:#fff;}.invoice-pay-btn.invoice-pay-btn-primary:disabled{opacity:.65;cursor:not-allowed;}.tx-amount{flex-shrink:0;text-align:right;padding-top:2px;}.tx-amount-main{font-weight:800;font-size:1rem;color:#1e2a4a;}.tx-amount-main-failed{color:#dc2626;}.tx-amount-main-refund{color:#6b7280;text-decoration:line-through;}.tx-amount-sub{font-size:.68rem;font-weight:600;margin-top:1px;}.tx-amount-sub-failed{color:#dc2626;}.tx-amount-sub-refund{color:#ea580c;}.tx-amount-sub-partial{color:#d97706;}.tx-amount-sub-net{color:#8a96b0;}.tx-download-btn{flex-shrink:0;width:32px;height:32px;border-radius:8px;margin-top:1px;border:1.5px solid #e5e7eb;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7a99;transition:border-color .15s;padding:0;}.tx-download-btn:hover{border-color:var(--bs-primary);color:var(--bs-primary);}.basket-subscription-list .sub-row{display:flex;align-items:center;gap:10px;padding:11px 0;border:0!important;border-bottom:1px solid #f3f4f6!important;border-radius:0!important;background-color:transparent!important;}.basket-subscription-list .sub-row:last-child{border-bottom:0!important;}.basket-subscription-list .sub-row-icon{width:32px;height:32px;border-radius:8px;background:rgba(var(--bs-primary-rgb),.09);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--bs-primary);}.basket-subscription-list .sub-row-plan{font-weight:700;color:#1e2a4a;font-size:.82rem;}.basket-subscription-list .sub-freq-badge{display:inline-block;padding:1px 6px;border-radius:99px;font-size:.62rem;font-weight:700;letter-spacing:.3px;background:rgba(var(--bs-primary-rgb),.09);color:var(--bs-primary);}.basket-subscription-list .sub-row-member{font-size:.72rem;color:#8a96b0;margin-top:1px;}.sub-status-pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.65rem;font-weight:700;background:#f0fdf4;color:#16a34a;}.sub-renewal{font-size:.68rem;color:#8a96b0;display:flex;align-items:center;gap:3px;}.balance-row{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid #f3f4f6;}.balance-row:last-child{border-bottom:0;}.balance-icon{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;}.balance-icon-credit{background:var(--bs-success-bg-subtle);color:var(--bs-success);}.balance-icon-debit{background:var(--bs-danger-bg-subtle);color:var(--bs-danger);}.balance-note{font-weight:600;color:#1e2a4a;font-size:.85rem;line-height:1.4;}.balance-date{font-size:.72rem;color:#8a96b0;margin-top:2px;}.balance-badge{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;padding:2px 9px;border-radius:99px;font-size:.66rem;font-weight:700;}.balance-badge-credit{background:var(--bs-success-bg-subtle);color:var(--bs-success);border:1px solid var(--bs-success);}.balance-badge-debit{background:var(--bs-danger-bg-subtle);color:var(--bs-danger);border:1px solid var(--bs-danger);}.balance-amount{flex-shrink:0;font-weight:800;font-size:1rem;min-width:64px;text-align:right;}.balance-amount-credit{color:var(--bs-success);}.balance-amount-debit{color:var(--bs-danger);}.expand-btn{width:100%;padding:12px 20px;background:#fff;border:0;border-top:1px solid #f3f4f6;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--clr-sub);cursor:pointer;font-family:inherit;}.expand-btn:hover{background:#fafafa;}.page-header-branded{background:#fff;border-bottom:1px solid #e5e7eb;padding:20px 24px 18px;}.page-header-branded h4{margin:0;font-weight:800;color:#1e2a4a;font-size:1.15rem;letter-spacing:-.3px;}.page-header-branded p{margin:4px 0 0;color:#6b7a99;font-size:.85rem;}@media(max-width:575.98px){.page-header-branded{padding:16px;}.page-header-branded h4{font-size:1rem;}}.terms-version-strip{background:#fff;border-radius:12px;padding:10px 16px;box-shadow:0 1px 4px rgba(0,0,0,.05);}.terms-version-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:99px;font-size:.66rem;font-weight:700;background:#e2eeff;color:#0a58ca;}.terms-locked-pill{font-size:.7rem;color:#8a96b0;background:#f3f4f6;border-radius:6px;padding:3px 8px;font-weight:500;}.terms-acceptance-banner{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;padding:15px 18px;}.terms-acceptance-icon{width:36px;height:36px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;flex-shrink:0;}.terms-card{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.06);overflow:hidden;border:0;}.terms-prose{color:#374151;font-size:.875rem;line-height:1.75;padding:24px 28px;}.terms-prose h2{font-size:1rem;font-weight:800;color:#1e2a4a;margin:0 0 14px;letter-spacing:-.2px;}.terms-prose h3{font-size:.9rem;font-weight:700;color:#1e2a4a;margin:28px 0 8px;}.terms-prose p{margin:0 0 10px;}.terms-prose ul,.terms-prose ol{margin:6px 0 14px 0;padding-left:22px;}.terms-prose li{margin-bottom:5px;}.terms-prose strong{font-weight:700;color:#1e2a4a;}.terms-prose a{color:#0d6efd;}.terms-body-wrapper{position:relative;max-height:480px;overflow:hidden;transition:max-height .3s ease;}.terms-body-wrapper.expanded{max-height:none;overflow:visible;}.terms-fade{position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to bottom,transparent,#fff);pointer-events:none;opacity:1;transition:opacity .3s ease;}.terms-fade.hidden{opacity:0;}.btn-terms-expand{width:100%;padding:13px 28px;background:#fff;border:0;border-top:1px solid #f3f4f6;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;font-weight:700;color:#0d6efd;cursor:pointer;}.btn-terms-expand:hover{background:#fafafa;}.btn-terms-expand.expanded{background:#fafafa;}.terms-action-bar{background:#fff;border-radius:14px;padding:18px 20px;box-shadow:0 2px 8px rgba(0,0,0,.05);}.btn-terms-accept{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:10px;font-size:.8rem;font-weight:700;background:#0d6efd;color:#fff;border:0;box-shadow:0 2px 8px rgba(13,110,253,.28);white-space:nowrap;}.btn-terms-accept:hover{filter:brightness(.93);color:#fff;}.btn-terms-download{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:10px;font-size:.8rem;font-weight:700;background:#f3f4f6;color:#6b7a99;border:1px solid #e5e7eb;white-space:nowrap;}.btn-terms-download:hover{background:#e9eaf0;color:#6b7a99;}.btn-terms-download.accepted{background:#f0fdf4;color:#15803d;border-color:#86efac;}.btn-terms-download.accepted:hover{background:#dcfce7;color:#15803d;}.btn-terms-download-green{font-size:.76rem;font-weight:700;color:#15803d;background:#fff;border:1px solid #86efac;border-radius:9px;padding:7px 14px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}.btn-terms-download-green:hover{background:#f0fdf4;color:#15803d;}.terms-dot-sep{width:3px;height:3px;border-radius:50%;background:#d1d5db;display:inline-block;flex-shrink:0;}@media(max-width:575.98px){.terms-prose{padding:16px;}}.page-header{background:#fff;border-bottom:1px solid var(--bs-border-color);padding:20px 24px 18px;}.page-header h4{font-weight:800;color:#1e2a4a;font-size:1.15rem;letter-spacing:-.3px;margin:0;}.page-header p{color:#6b7a99;font-size:.85rem;margin:4px 0 0;}.card-top-bar{height:6px;background:var(--bs-primary);}.field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a96b0;margin-bottom:6px;}.field-label .req{color:var(--bs-primary);}.eye-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:0;color:#9ca3af;cursor:pointer;padding:4px;border-radius:6px;line-height:1;}.inline-check{position:absolute;right:44px;top:50%;transform:translateY(-50%);color:var(--bs-success);line-height:1;}.strength-bars{display:flex;gap:4px;margin-bottom:4px;}.strength-bar{flex:1;height:4px;border-radius:99px;background:#e5e7eb;transition:background .2s;}.strength-label{font-size:.72rem;font-weight:700;}.req-box{background:#fafbff;border:1.5px solid #e8eaf0;border-radius:10px;padding:12px 14px;}.req-box-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a96b0;margin-bottom:8px;}.req-item{display:flex;align-items:center;gap:7px;font-size:.78rem;margin-bottom:5px;}.req-item:last-child{margin-bottom:0;}.req-item.ok{color:var(--bs-success);font-weight:700;}.req-item.fail{color:#6b7a99;font-weight:400;}.req-dot{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--bs-border-color);flex-shrink:0;display:inline-block;}.btn-save{font-weight:700;font-size:.95rem;border-radius:12px;padding:13px 28px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;}.btn-save.btn-primary{background:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);box-shadow:0 2px 10px rgba(99,102,241,.35);}.btn-save.btn-primary:hover{background:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);}.btn-save:disabled,.btn-save.disabled{background:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);color:var(--bs-btn-disabled-color);box-shadow:none;opacity:1;}.btn-save.saving{background:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);}.success-badge{display:inline-flex;align-items:center;gap:6px;background:var(--bs-success-bg-subtle);border:1.5px solid var(--bs-success);color:var(--bs-success);border-radius:10px;padding:6px 12px;font-weight:700;font-size:.78rem;}.success-icon{width:64px;height:64px;border-radius:50%;background:var(--bs-success-bg-subtle);border:2px solid var(--bs-success);color:var(--bs-success);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}.error-icon{width:64px;height:64px;border-radius:50%;background:var(--bs-danger);color:var(--bs-danger);border:2px solid var(--bs-danger);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}@keyframes spin{to{transform:rotate(360deg);}}.spinner{display:inline-block;width:16px;height:16px;flex-shrink:0;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;}.helper-text{text-align:center;font-size:.75rem;color:#9ca3af;margin-top:10px;}.secure-footer{text-align:center;color:#c4cad6;font-size:.73rem;margin-top:28px;}:root{--md-bg:#f3f4f6;--md-white:#fff;--md-heading:#1e2a4a;--md-muted:#8a96b0;--md-muted-dark:#6b7a99;--md-border:#e5e7eb;--md-border-lg:#f1f3f6;--md-card-bg:#fafbff;--md-indigo:var(--bs-primary);--md-indigo-bg:var(--bs-primary-bg-subtle);--md-indigo-ring:rgba(var(--bs-primary-rgb),.12);--md-radius-card:18px;--md-radius-field:10px;--md-shadow-card:0 2px 12px rgba(0,0,0,.07);}.md-page-header{background:var(--md-white);border-bottom:1px solid var(--md-border);padding:20px 24px 18px;}.md-page-header h4{margin:0;font-weight:800;color:var(--md-heading);font-size:1.15rem;letter-spacing:-.3px;}.md-page-header p{margin:4px 0 0;color:var(--md-muted-dark);font-size:.85rem;}.md-saved-banner{display:none;align-items:center;gap:6px;background:#f0fdf4;border:1.5px solid #86efac;border-radius:10px;padding:6px 12px;color:#15803d;font-weight:700;font-size:.78rem;animation:md-fade-in .25s ease;}.md-saved-banner.visible{display:flex;}@keyframes md-fade-in{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}.md-content{max-width:720px;margin:0 auto;padding:24px 16px 40px;}.md-card{background:var(--md-white);border-radius:var(--md-radius-card);box-shadow:var(--md-shadow-card);overflow:hidden;margin-bottom:16px;}.md-card-accent{height:6px;background:linear-gradient(90deg,var(--bs-primary),var(--bs-primary-border-subtle));}.md-profile-body{padding:24px;}.md-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--bs-primary),var(--bs-primary-border-subtle));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;color:#fff;box-shadow:0 0 0 4px var(--bs-primary-bg-subtle);flex-shrink:0;user-select:none;}.md-avatar img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid var(--bs-primary-border-subtle);box-shadow:0 0 0 4px var(--bs-primary-bg-subtle);}.md-profile-name{font-weight:800;color:var(--md-heading);font-size:1.05rem;margin-bottom:2px;}.md-profile-email{font-size:.83rem;color:var(--md-muted-dark);display:flex;align-items:center;gap:5px;margin-bottom:10px;}.md-photo-btn{display:inline-flex;align-items:center;gap:6px;background:#f3f4f6;border:1.5px solid var(--md-border);border-radius:9px;padding:7px 14px;font-size:.78rem;font-weight:600;color:#374151;cursor:pointer;transition:background .12s;text-decoration:none;}.md-photo-btn:hover{background:#e9eaf0;}.md-photo-filename{font-size:.72rem;color:var(--md-muted);margin-left:4px;vertical-align:middle;}.md-photo-remove{background:none;border:0;color:#9ca3af;font-size:.72rem;cursor:pointer;text-decoration:underline;margin-left:6px;padding:0;}.md-section{padding:20px 24px;}.md-section-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;}.md-section-icon{width:28px;height:28px;border-radius:7px;background:var(--md-indigo-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;}.md-section-icon i{color:var(--md-indigo);font-size:.82rem;}.md-section-title{font-weight:700;color:var(--md-heading);font-size:.87rem;}.md-divider{height:1px;background:#f3f4f6;margin:0 24px;}.md-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--md-muted);margin-bottom:6px;}.md-label .md-required{color:var(--md-indigo);margin-left:3px;}.md-input{width:100%;padding:11px 13px;border:1.5px solid var(--md-border);border-radius:var(--md-radius-field);font-size:.87rem;color:var(--md-heading);background:var(--md-white);transition:border-color .15s,box-shadow .15s;outline:0;}.md-input:focus{border-color:var(--md-indigo);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.25);}.md-input.is-locked{background:#f9fafb;color:#6b7280;padding-right:44px;cursor:default;}.md-locked-wrap{position:relative;}.md-locked-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:.78rem;pointer-events:none;}.md-locked-hint{font-size:.72rem;color:#9ca3af;margin-top:5px;display:flex;align-items:center;gap:4px;}.md-postcode{max-width:220px;}.md-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.md-save-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;}.md-saving-text{font-size:.78rem;color:var(--md-muted);}.md-save-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--md-indigo);color:#fff;border:0;border-radius:11px;font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:0 2px 10px rgba(var(--bs-primary-rgb),.35);transition:background .15s,opacity .15s;min-width:140px;justify-content:center;}.md-save-btn:hover{background:var(--bs-link-hover-color);}.md-save-btn:disabled{opacity:.7;cursor:not-allowed;}.md-save-btn.is-saved{background:#16a34a;}.md-page-footer{text-align:center;color:#c4cad6;font-size:.73rem;margin-top:24px;}@media(max-width:420px){.md-name-grid{grid-template-columns:1fr;}.md-save-row{flex-direction:column;align-items:stretch;}.md-save-btn{width:100%;padding:14px;font-size:.95rem;}.md-page-header{padding:16px 16px 14px;}.md-section{padding:16px;}.md-profile-body{padding:16px;}.md-divider{margin:0 16px;}.md-content{padding:16px 12px 32px;}}@media(max-width:575px){.md-page-header h4{font-size:1rem;}}.contact-card{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:20px;border:0;}@media(min-width:576px){.contact-card{padding:24px;}}.avatar-circle{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem;color:#fff;flex-shrink:0;overflow:hidden;}.avatar-brand{background:var(--bs-primary);color:#fff;}.avatar-grey{background:#e5e7eb;color:#4b5563;}.avatar-sm{width:52px;height:52px;font-size:1.05rem;}.meta-item{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:#6b7a99;}.badge-custom{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:700;white-space:nowrap;}.badge-brand{background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);border:1px solid var(--bs-primary-border-subtle);}.badge-green{background:#f0fdf4;color:#15803d;}.badge-grey{background:#f3f4f6;color:#6b7a99;}.badge-silver{background:#f9fafb;color:#9ca3af;}.btn-brand{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;background:var(--bs-primary);color:#fff;border:0;border-radius:10px;font-weight:700;font-size:.85rem;cursor:pointer;font-family:inherit;}.btn-brand:hover{filter:brightness(.93);color:#fff;}.btn-ghost{padding:9px 16px;background:#f3f4f6;color:#6b7a99;border:1.5px solid #e5e7eb;border-radius:10px;font-weight:600;font-size:.85rem;cursor:pointer;font-family:inherit;}.btn-danger-soft{padding:9px 16px;background:#fef2f2;color:#ef4444;border:1.5px solid #fecaca;border-radius:10px;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;}.btn-icon{background:#f3f4f6;border:0;border-radius:8px;padding:7px;cursor:pointer;display:flex;align-items:center;color:#6b7a99;transition:background .12s;flex-shrink:0;}.btn-icon:hover{background:#e9eaf0;}.btn-icon-danger{color:#ef4444;}.btn-icon-danger:hover{background:#fee2e2;}.btn-dashed-brand{width:100%;padding:13px 20px;background:none;border:2px dashed var(--bs-primary-border-subtle);border-radius:14px;color:var(--bs-primary);font-weight:600;font-size:.875rem;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px;transition:border-color .15s,background .15s;}.btn-dashed-brand:hover{background:var(--bs-primary-bg-subtle);}.form-card{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:24px;border:0;overflow:visible;}.form-card-stripe{height:5px;background:linear-gradient(90deg,var(--bs-primary),var(--bs-primary-border-subtle));margin:-24px -24px 20px;border-radius:14px 14px 0 0;}.field-required{color:var(--bs-primary);}.field-error{margin-top:4px;font-size:.73rem;color:#ef4444;}.radio-brand{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:#6b7a99;}.radio-brand.active{font-weight:700;color:#1e2a4a;}.radio-brand-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none;}.form-card .radio-brand .checkbox-brand-control{width:20px;height:20px;border-radius:7px;border:2px solid #d1d5db;background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;font-size:.75rem;line-height:1;}.form-card .radio-brand .checkbox-brand-control.is-checked{border-color:var(--bs-primary);background:var(--bs-primary);}.radio-circle{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;}.radio-circle.checked{border-color:var(--bs-primary);background:var(--bs-primary);}.radio-dot{width:7px;height:7px;border-radius:50%;background:#fff;}.photo-guidelines{background:#f8f9ff;border:1.5px solid #e0e3f8;border-radius:12px;padding:14px 16px;margin-bottom:14px;}.photo-preview-circle{width:64px;height:64px;border-radius:50%;flex-shrink:0;overflow:hidden;background:#f3f4f6;border:2px solid #e5e7eb;display:flex;align-items:center;justify-content:center;transition:border-color .15s;}.photo-preview-circle.has-photo{border-color:var(--bs-primary);}.photo-icon-bg{width:28px;height:28px;border-radius:50%;background:var(--bs-primary-bg-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0;}.photo-icon-bg i{color:var(--bs-primary);}.delete-confirm{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}.info-banner{background:#fffbeb;border:1.5px solid #fde68a;border-radius:12px;padding:12px 16px;margin-bottom:20px;display:flex;gap:10px;align-items:flex-start;}.info-banner p{font-size:.8rem;color:#92400e;line-height:1.6;margin:0;}.btn-reset-brand{background:none;border:1.5px solid #e5e7eb;border-radius:10px;padding:8px 14px;font-size:.83rem;font-weight:600;color:#8a96b0;cursor:pointer;font-family:inherit;white-space:nowrap;align-self:flex-end;}@media(max-width:575.98px){.branding-panel{padding:12px 16px;}.photo-guidelines .row{--bs-gutter-x:0;}.photo-guidelines .col-6{flex:0 0 100%;max-width:100%;}}@media(min-width:576px) and (max-width:991.98px){.page-header-branded{padding:18px 20px 16px;}}.aam-modal-shell{border-radius:24px;overflow:hidden;}.aam-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.75rem 1.25rem;border-bottom:1px solid #e5e7eb;background:#fff;}.aam-header-content{display:flex;align-items:flex-start;gap:1rem;flex:1;}.aam-header-icon{width:52px;height:52px;border-radius:14px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;}.aam-title{margin:0 0 .25rem;color:#1e2a4a;font-size:1.25rem;font-weight:800;letter-spacing:-.02rem;}.aam-subtitle{margin:0;color:#8a96b0;font-size:.88rem;line-height:1.5;}.aam-close-btn{width:44px;height:44px;border:0;border-radius:12px;background:#f3f4f6;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .2s ease,color .2s ease;cursor:pointer;}.aam-close-btn:hover{background:rgba(var(--bs-danger-rgb),.1);color:var(--bs-danger);}.aam-body{padding:1.5rem 1.75rem;background:#fafbfc;max-height:calc(100vh - 320px);overflow-y:auto;}.aam-section-wrap{background:#fff;border-radius:16px;padding:1.25rem 1.5rem;margin-bottom:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05);}.aam-section-wrap:last-child{margin-bottom:0;}.aam-section-wrap.mb-0{margin-bottom:0!important;}.aam-section-title{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem;}.aam-section-icon{width:32px;height:32px;border-radius:10px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;}.aam-section-label{color:#1e2a4a;font-size:1rem;font-weight:700;}.aam-section-rule{margin:0 0 1.25rem;border-top:1px solid #e5e7eb;opacity:1;}.aam-label{display:block;margin-bottom:.5rem;color:#4b5563;font-size:.82rem;font-weight:600;}.aam-required{color:var(--bs-danger);margin-left:.15rem;}.aam-icon-wrap{position:relative;display:flex;align-items:center;}.aam-field-icon{position:absolute;left:1rem;color:#9ca3af;font-size:.95rem;pointer-events:none;z-index:1;}.aam-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#1e2a4a;font-size:.9rem;transition:border-color .2s ease,box-shadow .2s ease;}.aam-input:focus{outline:0;border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.1);}.aam-input:read-only{background:#f9fafb;color:#6b7280;cursor:not-allowed;}.aam-input-password{padding-right:3rem;}.aam-pw-toggle{position:absolute;right:.75rem;border:0;background:transparent;color:#9ca3af;padding:.5rem;cursor:pointer;transition:color .2s ease;z-index:1;}.aam-pw-toggle:hover{color:var(--bs-primary);}.aam-hint{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;border-radius:10px;background:rgba(var(--bs-primary-rgb),.05);border:1px solid rgba(var(--bs-primary-rgb),.15);color:var(--bs-primary);font-size:.82rem;line-height:1.5;}.aam-hint i{margin-top:.1rem;flex-shrink:0;}.aam-help-text{margin:0 0 .85rem;color:#6b7280;font-size:.85rem;line-height:1.5;}.aam-role-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border-radius:10px;border:1.5px solid transparent;font-size:.82rem;font-weight:700;transition:all .2s ease;cursor:pointer;background:#f3f4f6;color:#6b7280;}.aam-role-pill:hover{border-color:rgba(var(--bs-primary-rgb),.3);background:rgba(var(--bs-primary-rgb),.05);}.aam-role-pill.selected{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1);}.aam-role-pill-super{background:rgba(var(--bs-danger-rgb),.1);border-color:rgba(var(--bs-danger-rgb),.3);color:var(--bs-danger);}.aam-role-pill-super.selected{background:var(--bs-danger);border-color:var(--bs-danger);color:#fff;}.aam-role-pill-ops{background:rgba(var(--bs-primary-rgb),.1);border-color:rgba(var(--bs-primary-rgb),.3);color:var(--bs-primary);}.aam-role-pill-ops.selected{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.aam-role-pill-club{background:rgba(var(--bs-secondary-rgb),.1);border-color:rgba(var(--bs-secondary-rgb),.3);color:var(--bs-secondary);}.aam-role-pill-club.selected{background:var(--bs-secondary);border-color:var(--bs-secondary);color:#fff;}.aam-role-selector{position:relative;}.aam-role-selector-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:14px;border:1px solid #e5e7eb;background:#fff;color:#1f2937;font-size:.9rem;font-weight:700;}.aam-role-selector-menu{margin-top:.65rem;padding:.6rem;border-radius:14px;border:1px solid #e5e7eb;background:#fff;box-shadow:0 18px 40px rgba(15,23,42,.08);display:grid;gap:.4rem;}.aam-role-selector-option{display:flex;align-items:center;gap:.7rem;width:100%;padding:.7rem .8rem;border:0;border-radius:10px;background:transparent;color:#374151;font-size:.88rem;font-weight:700;text-align:left;}.aam-role-selector-option:hover{background:rgba(var(--bs-primary-rgb),.06);}.aam-role-selector-check{color:var(--bs-primary);font-size:.95rem;}.aam-role-groups{display:grid;gap:.9rem;margin-bottom:1rem;}.aam-role-group-card{border:1px solid #eceff3;border-radius:14px;padding:.95rem;background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%);}.aam-role-group-head{margin-bottom:.8rem;}.aam-role-group-title{color:#111827;font-size:.92rem;font-weight:800;}.aam-role-group-copy{margin-top:.2rem;color:#6b7280;font-size:.8rem;line-height:1.45;}.aam-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem;border:2px dashed #d1d5db;border-radius:14px;background:#fafbfc;cursor:pointer;transition:border-color .2s ease,background-color .2s ease;text-align:center;}.aam-upload:hover{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.02);}.aam-upload-icon{width:52px;height:52px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:.75rem;}.aam-upload-title{color:#1e2a4a;font-size:.92rem;font-weight:700;margin-bottom:.25rem;}.aam-upload-subtitle{color:#8a96b0;font-size:.8rem;}.aam-footer{display:flex;align-items:center;justify-content:flex-end;gap:.85rem;padding:1.25rem 1.75rem;border-top:1px solid #e5e7eb;background:#fff;}.aam-btn-cancel,.aam-btn-save{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:12px;font-size:.9rem;font-weight:700;transition:all .2s ease;min-width:120px;}.aam-btn-cancel{border:1.5px solid #e5e7eb;background:#fff;color:#6b7280;}.aam-btn-cancel:hover{border-color:#d1d5db;background:#f9fafb;color:#4b5563;}.aam-btn-save{border:0;background:var(--bs-primary);color:#fff;box-shadow:0 4px 14px rgba(var(--bs-primary-rgb),.3);}.aam-btn-save:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 6px 20px rgba(var(--bs-primary-rgb),.35);}.aam-btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none;}@media(max-width:575.98px){.aam-header,.aam-body,.aam-footer{padding-left:1rem;padding-right:1rem;}.aam-section-wrap{padding:1rem 1.25rem;}.aam-title{font-size:1.1rem;}.aam-footer{flex-direction:column-reverse;align-items:stretch;}.aam-btn-cancel,.aam-btn-save{width:100%;}}.aa-page{background:#f3f4f6;min-height:100vh;}.aa-container{max-width:1100px;}.aa-page-header,.mp-page-header{background:var(--bs-body-bg);border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:16px;}.aa-breadcrumb,.mp-breadcrumb{font-size:.78rem;margin-bottom:0;}.aa-breadcrumb .breadcrumb-item,.mp-breadcrumb .breadcrumb-item,.aa-breadcrumb .breadcrumb-item.active{color:#8a96b0;}.aa-breadcrumb .breadcrumb-item+.breadcrumb-item::before,.mp-breadcrumb .breadcrumb-item+.breadcrumb-item::before{color:#cbd5e1;}.aa-breadcrumb a,.mp-breadcrumb a{color:var(--bs-primary);text-decoration:none;}.aa-breadcrumb a:hover,.mp-breadcrumb a:hover{color:var(--bs-link-hover-color);text-decoration:underline;}.aa-page-title,.mp-page-title{color:#1e2a4a;font-size:1.5rem;font-weight:700;letter-spacing:-.02rem;margin:0;}.aa-page-subtitle,.mp-page-subtitle{color:#8a96b0;font-size:.9rem;margin:0;}.aa-add-btn,.mp-add-btn{background:var(--bs-primary);border:0;color:#fff;border-radius:8px;font-weight:600;font-size:.82rem;padding:8px 18px;transition:filter .15s;}.aa-add-btn:hover,.mp-add-btn:hover{filter:brightness(.93);color:#fff;}.aa-toolbar-count,.mp-toolbar-count{color:#1e2a4a;font-size:.875rem;}.aa-search-input,.mp-search-input{max-width:280px;}.aa-search-input .input-group-text,.mp-search-input .input-group-text{background:var(--bs-body-bg);border-color:var(--bs-border-color);color:#8a96b0;}.aa-search-input .form-control,.mp-search-input .form-control{border-color:var(--bs-border-color);font-size:.875rem;}.aa-search-input .form-control:focus,.mp-search-input .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25);}.aa-search-input .form-control:focus~.input-group-text,.mp-search-input .form-control:focus~.input-group-text{border-color:var(--bs-primary);}.aa-add-card,.mp-add-card{background:var(--bs-body-bg);border:2px dashed var(--bs-border-color);border-radius:12px;padding:24px;text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;}.aa-add-card:hover,.mp-add-card:hover{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.02);}.aa-add-icon,.mp-add-icon{width:48px;height:48px;border-radius:12px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:12px;}.aa-add-card-title,.mp-add-card-title{color:#1e2a4a;font-size:.95rem;margin-bottom:6px;}.aa-add-card-subtitle,.mp-add-card-subtitle{color:#8a96b0;font-size:.82rem;}.aa-card,.mp-card{background:var(--bs-body-bg);border-radius:12px;border:1px solid var(--bs-border-color);box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .2s ease,transform .2s ease;}.aa-card:hover,.mp-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px);}.aa-avatar,.mp-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#fff;flex-shrink:0;overflow:hidden;}.aa-avatar img,.mp-avatar img{width:100%;height:100%;object-fit:cover;}.aa-user-name,.mp-user-name{font-weight:700;color:#1e2a4a;font-size:.95rem;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.aa-user-email,.mp-user-email{font-size:.82rem;color:#8a96b0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.aa-user-wrap,.mp-user-wrap{min-width:0;flex:1;}.aa-card-footer,.mp-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--bs-border-color);}.aa-role-super{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:700;background:rgba(var(--bs-danger-rgb),.1);border:1px solid rgba(var(--bs-danger-rgb),.2);color:var(--bs-danger);}.aa-role-club{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:700;background:var(--bs-primary-bg-subtle);border:1px solid rgba(var(--bs-primary-rgb),.2);color:var(--bs-primary);}.aa-admin-label,.mp-parent-label{display:inline-flex;align-items:center;gap:4px;color:#8a96b0;font-size:.78rem;font-weight:600;}.aa-admin-label i,.mp-parent-label i{font-size:.82rem;}.aa-edit-btn,.mp-edit-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:8px;font-size:.82rem;font-weight:600;color:#6b7a99;cursor:pointer;transition:background .15s,color .15s,border-color .15s;}.aa-edit-btn:hover,.mp-edit-btn:hover{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary);}.aa-empty-state,.mp-empty-state{color:#8a96b0;padding:48px 24px;}.mp-alpha-filter{background:var(--bs-body-bg);border-radius:12px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);}.mp-alpha-row{display:flex;flex-wrap:wrap;gap:6px;}.mp-alpha-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:4px 10px;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:8px;font-size:.82rem;font-weight:700;color:#6b7a99;cursor:pointer;transition:all .15s;}.mp-alpha-btn:hover:not(.disabled){background:var(--bs-primary-bg-subtle);border-color:var(--bs-primary);color:var(--bs-primary);}.mp-alpha-btn.active{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.mp-alpha-btn.disabled{opacity:.4;cursor:not-allowed;}.cat-page-header{background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);padding:16px 24px 20px;}.cat-page-header-inner{max-width:860px;margin:0 auto;}.cat-breadcrumb-row{display:flex;align-items:center;gap:6px;margin-bottom:10px;}.cat-breadcrumb-row .cat-bc-link{color:var(--bs-primary);font-weight:600;font-size:.82rem;text-decoration:none;}.cat-breadcrumb-row .cat-bc-link:hover{text-decoration:underline;}.cat-breadcrumb-row .cat-bc-sep{color:var(--bs-border-color);font-size:.82rem;}.cat-breadcrumb-row .cat-bc-current{color:var(--bs-secondary-color);font-size:.82rem;font-weight:500;}.cat-page-header-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;}.cat-page-header-title{margin:0;font-weight:800;color:var(--bs-emphasis-color);font-size:1.3rem;letter-spacing:-.4px;}.cat-page-header-sub{margin:3px 0 0;color:var(--bs-secondary-color);font-size:.84rem;}.cat-count-badge{background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);border:1px solid rgba(var(--bs-primary-rgb),.15);border-radius:20px;padding:4px 12px;font-size:.78rem;font-weight:700;white-space:nowrap;}.cat-content-wrap{max-width:860px;margin:0 auto;padding:24px 24px 64px;}.cat-card{background:var(--bs-body-bg);border-radius:16px;border:1px solid var(--bs-border-color);overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.05);}.cat-card-header{padding:16px 20px 14px;border-bottom:1px solid var(--bs-border-color);display:flex;align-items:center;gap:10px;}.cat-card-title{font-weight:700;color:var(--bs-emphasis-color);font-size:.95rem;margin:0;}.cat-count-pill{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);border-radius:20px;padding:2px 10px;font-size:.72rem;font-weight:700;}.cat-row{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg);transition:background .15s;}.cat-row:last-child{border-bottom:0;}.cat-dot{width:8px;height:8px;border-radius:50%;background:var(--bs-primary);flex-shrink:0;box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.15);}.cat-name{flex:1;font-weight:600;color:var(--bs-emphasis-color);font-size:.9rem;min-width:0;}.cat-class-count{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);border-radius:20px;padding:3px 10px;font-size:.72rem;font-weight:600;white-space:nowrap;margin-right:4px;}.cat-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;border:1.5px solid var(--bs-border-color);background:var(--bs-tertiary-bg);cursor:pointer;font-family:inherit;flex-shrink:0;color:var(--bs-secondary-color);transition:border-color .15s,color .15s,background .15s;}.cat-icon-btn i{font-size:.78rem;}.cat-icon-btn:hover{border-color:var(--bs-primary);color:var(--bs-primary);background:var(--bs-primary-bg-subtle);}.cat-icon-btn.cat-del:hover{border-color:var(--bs-danger-border-subtle);color:var(--bs-danger);background:var(--bs-danger-bg-subtle);}.cat-row-editing{background:rgba(var(--bs-primary-rgb),.04);border-bottom:1px solid var(--bs-border-color);padding:12px 20px;}.cat-row-editing .form-control{border:2px solid var(--bs-primary);border-radius:9px;font-weight:600;box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.15);}.cat-row-editing .form-control.is-invalid{border-color:var(--bs-danger);box-shadow:0 0 0 3px rgba(var(--bs-danger-rgb),.15);}.cat-row-editing .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.15);}.cat-row-editing:last-child{border-bottom:0;}.cat-row-delete{background:var(--bs-danger-bg-subtle);border-bottom:1px solid var(--bs-border-color);padding:13px 20px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;}.cat-row-delete:last-child{border-bottom:0;}.cat-delete-msg{flex:1;min-width:160px;font-size:.87rem;}.cat-delete-msg strong{color:var(--bs-emphasis-color);}.cat-delete-msg .cat-del-action{color:var(--bs-danger);font-weight:700;}.cat-delete-msg .cat-del-warn{color:var(--bs-secondary-color);}.cat-reassign-panel-wrapper{border-bottom:1px solid var(--bs-border-color);background:var(--bs-danger-bg-subtle);}.cat-reassign-panel-wrapper:last-child{border-bottom:0;}.cat-reassign-panel{padding:16px 20px;}.cat-reassign-warn-box{display:flex;gap:10px;align-items:flex-start;background:var(--bs-danger-bg-subtle);border:1px solid var(--bs-danger-border-subtle);border-radius:10px;padding:11px 14px;margin-bottom:14px;}.cat-reassign-warn-icon{color:var(--bs-danger);flex-shrink:0;margin-top:2px;font-size:1rem;}.cat-reassign-warn-title{font-weight:700;color:var(--bs-danger-text-emphasis);font-size:.87rem;margin:0 0 2px;}.cat-reassign-warn-sub{margin:0;color:var(--bs-secondary-color);font-size:.8rem;line-height:1.5;}.cat-reassign-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:10px;margin-bottom:10px;}.cat-reassign-bulk-label{font-size:.8rem;font-weight:600;color:var(--bs-secondary-color);white-space:nowrap;}.cat-reassign-bulk-select{flex:1;min-width:160px;padding:7px 10px;border:1.5px solid var(--bs-border-color);border-radius:8px;font-size:.82rem;color:var(--bs-emphasis-color);background:var(--bs-body-bg);font-family:inherit;}.cat-btn-move-all{padding:7px 14px;background:var(--bs-primary);color:#fff;border:0;border-radius:8px;font-weight:700;font-size:.8rem;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:5px;}.cat-btn-move-all:disabled{opacity:.5;cursor:not-allowed;}.cat-btn-move-all:not(:disabled):hover{filter:brightness(.93);}.cat-reassign-list{border:1px solid var(--bs-border-color);border-radius:10px;overflow:hidden;margin-bottom:14px;}.cat-reassign-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg);}.cat-reassign-row:last-child{border-bottom:0;}.cat-reassign-row.moved{background:var(--bs-success-bg-subtle);}.cat-rrow-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--bs-border-color);}.cat-reassign-row.moved .cat-rrow-dot{background:var(--bs-success);}.cat-rrow-name{flex:1;font-weight:600;font-size:.85rem;color:var(--bs-emphasis-color);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.cat-reassign-row.moved .cat-rrow-name{color:var(--bs-success-text-emphasis);}.cat-rrow-select{min-width:180px;padding:6px 10px;border:1.5px solid var(--bs-border-color);border-radius:8px;font-size:.8rem;color:var(--bs-secondary-color);background:var(--bs-tertiary-bg);font-family:inherit;flex-shrink:0;}.cat-rrow-moved-label{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:.78rem;color:var(--bs-success);font-weight:600;}.cat-rrow-check{color:var(--bs-success);}.cat-rrow-undo{background:none;border:0;cursor:pointer;color:var(--bs-tertiary-color);font-size:.95rem;padding:4px;font-family:inherit;display:inline-flex;align-items:center;transition:color .15s;}.cat-rrow-undo:hover{color:var(--bs-secondary-color);}.cat-reassign-ready-box{display:flex;align-items:center;gap:8px;background:var(--bs-success-bg-subtle);border:1px solid var(--bs-success-border-subtle);border-radius:10px;padding:10px 14px;margin-bottom:14px;}.cat-ready-check{color:var(--bs-success);font-size:.95rem;}.cat-reassign-ready-text{font-size:.82rem;font-weight:600;color:var(--bs-success-text-emphasis);}.cat-reassign-footer{display:flex;gap:8px;justify-content:flex-end;}.cat-empty-state{padding:48px 24px;text-align:center;color:var(--bs-tertiary-color);font-size:.875rem;}.cat-empty-icon{width:52px;height:52px;border-radius:14px;background:var(--bs-primary-bg-subtle);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--bs-primary);font-size:1.3rem;}.cat-empty-title{font-weight:700;color:var(--bs-secondary-color);font-size:.9rem;margin-bottom:4px;}.cat-add-new-card{background:var(--bs-body-bg);border-radius:16px;border:1px solid var(--bs-border-color);overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.05);margin-top:16px;}.cat-add-new-header{padding:16px 20px 14px;border-bottom:1px solid var(--bs-border-color);font-weight:700;color:var(--bs-emphasis-color);font-size:.95rem;}.cat-add-new-body{padding:18px 20px;}.cat-add-new-body .form-label{font-weight:600;color:var(--bs-emphasis-color);margin-bottom:8px;}.cat-add-new-body .form-control{border-radius:10px;font-size:.9rem;}.cat-add-new-body .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12);}.cat-add-new-body .form-text{color:var(--bs-tertiary-color);font-size:.78rem;margin-top:10px;}.cat-what-card{background:var(--bs-body-bg);border-radius:16px;border:1px solid rgba(var(--bs-primary-rgb),.22);overflow:hidden;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.04);}.cat-what-header{width:100%;display:flex;align-items:center;gap:12px;padding:14px 20px;background:none;border:0;border-bottom:1px solid rgba(var(--bs-primary-rgb),.12);cursor:pointer;font-family:inherit;text-align:left;}.cat-what-header.collapsed{border-bottom:0;}.cat-what-icon{width:34px;height:34px;border-radius:10px;background:var(--bs-primary-bg-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--bs-primary);font-size:.9rem;}.cat-what-title{flex:1;font-weight:700;color:var(--bs-emphasis-color);font-size:.9rem;margin:0;}.cat-what-chevron{flex-shrink:0;color:var(--bs-primary);transition:transform .2s;}.cat-what-chevron.collapsed{transform:rotate(-90deg);}.cat-what-body{padding:18px 20px 20px;}.cat-what-body p{margin:0 0 12px;color:var(--bs-body-color);font-size:.85rem;line-height:1.65;}.cat-what-body p:last-child{margin-bottom:0;}.cat-what-body .cat-use-heading{font-weight:700;color:var(--bs-emphasis-color);font-size:.85rem;margin:0 0 10px;}.cat-use-item{display:flex;gap:10px;margin-bottom:10px;align-items:flex-start;}.cat-use-dot{width:6px;height:6px;border-radius:50%;background:var(--bs-primary);flex-shrink:0;margin-top:7px;box-shadow:0 0 0 2px rgba(var(--bs-primary-rgb),.18);}.cat-use-item-text{font-size:.84rem;line-height:1.55;}.cat-use-item-text strong{color:var(--bs-emphasis-color);}.cat-use-item-text span{color:var(--bs-secondary-color);}.cat-what-tip{margin-top:14px;padding:11px 14px;background:var(--bs-primary-bg-subtle);border:1px solid rgba(var(--bs-primary-rgb),.18);border-radius:10px;}.cat-what-tip p{color:var(--bs-primary-text-emphasis);font-size:.82rem;line-height:1.55;margin:0 0 5px;}.cat-what-tip p:last-child{margin:0;}.cat-what-tip .cat-tip-label{font-weight:700;}@media(max-width:575.98px){.cat-page-header{padding:14px 14px 12px;}.cat-content-wrap{padding:14px 12px 48px;}.cat-row{padding:12px 14px;}.cat-row-editing{padding:12px 14px;}.cat-row-delete{padding:12px 14px;}.cat-card-header{padding:14px 14px 12px;}.cat-add-new-header{padding:14px 14px 12px;}.cat-add-new-body{padding:14px 14px;}.cat-page-header-title{font-size:1rem;}.cat-class-count{display:none;}}.members-page{background:#f4f6fb;min-height:100%;}.members-page-shell{max-width:1280px;min-height:100%;display:flex;flex-direction:column;padding-top:1.5rem;padding-bottom:1rem;}.members-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;}.members-page-title{font-size:1.35rem;font-weight:800;color:var(--bs-secondary);margin:0 0 .2rem;}.members-page-subtitle{font-size:.78rem;color:#8a96b0;margin:0;}.members-filter-toggle{display:inline-flex;align-items:center;gap:.55rem;padding:.9rem 1.2rem;border:0;border-radius:12px;background:var(--bs-primary);color:#fff;font-size:.82rem;font-weight:800;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.22);}.members-filter-toggle-count{min-width:1.6rem;height:1.6rem;padding:0 .45rem;border-radius:999px;background:rgba(255,255,255,.22);display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:900;}.members-filter-panel-wrap.is-hidden{display:none;}.members-search-modal__dialog{margin:1rem auto;}.members-search-modal__content{display:flex;flex-direction:column;max-height:min(92vh,920px);border:0;border-radius:20px;overflow:hidden;}.members-search-modal__header{align-items:flex-start;gap:1rem;padding:1.25rem 1.35rem 1rem;border-bottom:1px solid #e8edf5;}.members-search-modal__title{color:var(--bs-secondary);font-weight:800;}.members-search-modal__helper{margin-top:.35rem;color:#8a96b0;font-size:.82rem;}.members-search-modal__body{overflow-y:auto;padding:1.1rem 1.35rem;background:#fff;}.members-search-modal__filters.filter-panel,.members-search-modal__filters{padding:0;gap:1.1rem;background:transparent;}.members-search-modal__footer{display:flex;justify-content:stretch;gap:.85rem;padding:1rem 1.35rem calc(1rem + env(safe-area-inset-bottom));border-top:1px solid #e8edf5;background:#fff;flex-shrink:0;}.members-search-modal__footer .members-filter-reset,.members-search-modal__footer .members-filter-submit{flex:1 1 0;min-height:48px;}.members-search-modal__footer .members-filter-reset:disabled,.members-search-modal__footer .members-filter-submit:disabled{opacity:.72;cursor:not-allowed;}.members-search-error{margin-bottom:1rem;}.members-retrieving-state{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:3rem 1.5rem;min-height:360px;}.members-retrieving-state__icon{margin-bottom:1.5rem;}.members-retrieving-state__title{color:var(--bs-secondary);font-weight:700;}.members-retrieving-state__text{max-width:320px;}.filter-panel{font-family:sans-serif;padding:20px;background:#fff;display:flex;flex-direction:column;gap:24px;}.filter-section-label{font-size:12px;font-weight:600;color:#4a5568;text-transform:uppercase;margin-bottom:12px;letter-spacing:.5px;}.status-pills-row{display:flex;gap:12px;}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:14px;background:#fff;cursor:pointer;border:1px solid #e2e8f0;}.status-pill.active{font-weight:700;}.status-pill.succeeded{color:var(--bs-primary);}.status-pill.succeeded.active{border-color:var(--bs-primary);background-color:rgba(var(--bs-primary-rgb),.1);}.status-pill.succeeded .dot{background-color:var(--bs-primary);width:8px;height:8px;border-radius:50%;}.status-pill.partial-refund{color:var(--bs-warning);}.status-pill.partial-refund.active{border-color:var(--bs-warning);background-color:#fff7ed;}.status-pill.partial-refund .dot{background-color:var(--bs-warning);width:8px;height:8px;border-radius:50%;}.status-pill.refunded{color:#9b2c2c;}.status-pill.refunded.active{border-color:#fc8181;background-color:#fff5f5;}.status-pill.refunded .dot{background-color:#e53e3e;width:8px;height:8px;border-radius:50%;}.field-row{display:flex;gap:16px;}.field-mini{font-size:12px;color:#718096;margin-bottom:6px;}.input-date,.pound-input{border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;min-width:140px;display:flex;align-items:center;background:#fff;}.pound-input input{border:0;outline:0;width:100%;margin-left:4px;color:#4a5568;}.pound-prefix{color:#a0aec0;}.filter-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px;}.btn-filter-reset{background:#fff;border:1px solid #e2e8f0;padding:10px 20px;border-radius:8px;cursor:pointer;color:#4a5568;font-weight:500;}.btn-filter-search{background-color:#4db6ac;color:#fff;border:0;padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:500;}.members-filter-search{position:relative;margin-bottom:1.25rem;}.members-filter-search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:.95rem;}.members-filter-search-input,.members-filter-input,.members-action-select{width:100%;min-height:48px;border:1.5px solid #e5e7eb;border-radius:12px;background:#f8fafc;color:#6f84a2;font-size:.84rem;font-weight:500;padding:.8rem 1rem;box-shadow:none;}.members-filter-search-input{padding-left:2.6rem;}.members-filter-search-input::placeholder,.members-filter-input::placeholder{color:#a1b1c7;}.members-filter-search-input:focus,.members-filter-input:focus,.members-action-select:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.members-filter-section{margin-bottom:1.25rem;}.members-filter-section .filter-label,.members-filter-layout-row .filter-label,.members-filter-side-stack .filter-label,.members-filter-date-row .filter-label,.members-filter-compact-row .filter-label{display:inline-block;margin:0 0 .7rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8fa1bc;}.members-filter-chip-list{display:flex;flex-wrap:wrap;gap:.65rem;}.members-filter-chip-list-tags{gap:.5rem;}.filter-chip{display:inline-flex;align-items:center;gap:.45rem;border:1.5px solid #dbe2ea;border-radius:12px;background:#f8fafc;color:#8ea0b7;font-size:.8rem;font-weight:600;padding:.6rem 1rem;}.members-filter-chip-list .filter-chip:not(.active){border-color:#dbe2ea!important;background:#f8fafc!important;color:#8ea0b7!important;}.filter-chip .chip-dot{width:.42rem;height:.42rem;border-radius:999px;background:#cbd5e1;}.members-filter-chip-list .filter-chip:not(.active) .chip-dot{background:#cbd5e1!important;}.filter-chip.active{background:none;}.filter-chip.active .chip-dot{background:currentColor;}.filter-chip.active.chip-indigo{border-color:rgba(99,102,241,.6);color:#6366f1;}.filter-chip.active.chip-amber{border-color:rgba(245,158,11,.65);color:#f59e0b;}.filter-chip.active.chip-slate{border-color:rgba(148,163,184,.65);color:#94a3b8;}.filter-chip.active.chip-sky{border-color:rgba(56,189,248,.65);color:#0ea5e9;}.filter-chip.active.chip-pink{border-color:rgba(var(--bs-secondary-rgb),.55);color:var(--bs-secondary);}.filter-chip.active.chip-emerald{border-color:rgba(16,185,129,.55);color:#10b981;}.filter-chip.active.chip-violet{border-color:rgba(139,92,246,.55);color:#8b5cf6;}.filter-chip.active.chip-red{border-color:rgba(239,68,68,.55);color:#ef4444;}.filter-chip.active.chip-tag{border-color:#f59e0b;color:#d97706;background:none;}.filter-chip.chip-day{min-width:3rem;justify-content:center;padding-left:.85rem;padding-right:.85rem;}.filter-chip.active.chip-category,.filter-chip.active.chip-day{border-color:var(--bs-primary);color:var(--bs-primary);background:none;}.members-filter-side-stack{display:flex;flex-direction:column;gap:1rem;}.members-filter-accordion{border:1.5px solid #e5e7eb;border-radius:14px;background:#f8fafc;overflow:hidden;}.members-filter-accordion-section+.members-filter-accordion-section{border-top:1px solid #eef2f7;}.members-filter-accordion-section.is-selected .members-filter-accordion-header{background:rgba(var(--bs-primary-rgb),.08);}.members-filter-accordion-header{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;background:#f8fafc;}.members-filter-accordion-check{display:inline-flex;align-items:center;gap:.7rem;min-width:0;cursor:pointer;}.members-filter-accordion-check input,.members-filter-accordion-option input{position:absolute;opacity:0;pointer-events:none;}.members-filter-accordion-check-box{width:1rem;height:1rem;border:1.5px solid #dbe2ea;border-radius:4px;background:#fff;flex-shrink:0;position:relative;}.members-filter-accordion-check input:checked+.members-filter-accordion-check-box,.members-filter-accordion-option input:checked+.members-filter-accordion-check-box{border-color:var(--bs-primary);background:var(--bs-primary);}.members-filter-accordion-check input:checked+.members-filter-accordion-check-box::after,.members-filter-accordion-option input:checked+.members-filter-accordion-check-box::after{content:"";font-family:"Font Awesome 6 Free";font-weight:900;color:#fff;font-size:.56rem;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}.members-filter-accordion-title{color:#2f3f5f;font-size:.84rem;font-weight:600;}.members-filter-accordion-actions{display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0;}.members-filter-accordion-count{min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:var(--bs-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;}.members-filter-accordion-toggle{width:1.5rem;height:1.5rem;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;padding:0;}.members-filter-accordion-body{max-height:168px;overflow-y:auto;}.members-filter-accordion-option{display:flex;align-items:center;gap:.7rem;padding:.7rem .85rem .7rem 1.35rem;background:#fbfcfe;color:#7083a0;font-size:.84rem;font-weight:500;cursor:pointer;}.members-filter-accordion-option.is-selected{background:#eaf6ff;color:var(--bs-primary);font-weight:700;}.members-filter-accordion-summary{margin-top:.45rem;color:var(--bs-primary);font-size:.78rem;font-weight:700;}.members-filter-actions{margin-top:1.4rem;display:flex;justify-content:flex-end;gap:.85rem;}.members-filter-reset,.members-filter-submit{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:0 1.35rem;border-radius:12px;font-size:.84rem;font-weight:800;}.members-filter-reset{border:1.5px solid #e5e7eb;background:#f8fafc;color:#94a3b8;}.members-filter-submit{border:0;background:var(--bs-primary);color:#fff;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.22);}.action-bar{background:#fff;border:1.5px solid rgba(var(--bs-primary-rgb),.24);border-radius:20px;box-shadow:0 2px 14px rgba(var(--bs-primary-rgb),.08);padding:1rem 1.1rem;margin-bottom:1rem;}.members-action-grid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:1rem;align-items:end;}.members-action-selected{min-height:48px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);display:inline-flex;align-items:center;gap:.55rem;padding:0 1rem;font-size:.82rem;font-weight:800;}.members-action-field{min-width:0;}.members-action-select{display:flex;align-items:center;justify-content:space-between;min-height:54px;border:1.5px solid #e3e8f2;border-radius:18px;background:#fff;color:#1e2a4a;box-shadow:0 8px 22px rgba(15,23,42,.05);padding:0 1rem;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;}.members-action-select:hover,.members-action-select:focus,.members-action-select:focus-visible,.members-action-select.show{border-color:rgba(var(--bs-primary-rgb),.24);background:#fff;box-shadow:0 10px 28px rgba(91,97,255,.12);}.members-action-select::after{margin-left:auto;color:#a2acc0;}.members-action-select-value{display:inline-flex;align-items:center;gap:.55rem;}.members-action-select-text{color:#1e2a4a;}.members-action-icon{width:1rem;text-align:center;flex-shrink:0;}.members-action-menu{border:1px solid #dde4f0;border-radius:18px;box-shadow:0 22px 48px rgba(15,23,42,.14);padding:.2rem 0 .75rem;overflow:hidden;}.members-action-menu-title{padding:.9rem 1rem .8rem;margin-bottom:.25rem;border-bottom:1px solid #eef2f8;font-size:.84rem;font-weight:700;color:#94a3b8;}.members-action-item{--members-action-accent:#5b61ff;--members-action-hover-bg:rgba(91,97,255,.12);display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;font-size:.84rem;font-weight:700;color:#1e2a4a;background:transparent;transition:background-color .18s ease,color .18s ease;}.members-action-item:hover,.members-action-item:focus,.members-action-item:focus-visible,.members-action-item.is-active{background:var(--members-action-hover-bg);color:var(--members-action-accent);}.members-action-item-text{line-height:1.2;}.members-action-select.is-none .members-action-icon,.members-action-item.is-none .members-action-icon{color:#94a3b8;}.members-action-item.is-none{--members-action-accent:#94a3b8;--members-action-hover-bg:rgba(148,163,184,.14);}.members-action-select.is-email .members-action-icon,.members-action-item.is-email .members-action-icon{color:#5b61ff;}.members-action-item.is-email{--members-action-accent:#5b61ff;--members-action-hover-bg:rgba(91,97,255,.12);}.members-action-select.is-send-offer .members-action-icon,.members-action-item.is-send-offer .members-action-icon{color:#16a34a;}.members-action-item.is-send-offer{--members-action-accent:#16a34a;--members-action-hover-bg:rgba(22,163,74,.12);}.members-action-select.is-bulk-charge .members-action-icon,.members-action-item.is-bulk-charge .members-action-icon{color:#00b8ff;}.members-action-item.is-bulk-charge{--members-action-accent:#00b8ff;--members-action-hover-bg:rgba(0,184,255,.12);}.members-action-select.is-email-invoice-links .members-action-icon,.members-action-item.is-email-invoice-links .members-action-icon{color:#8b5cf6;}.members-action-item.is-email-invoice-links{--members-action-accent:#8b5cf6;--members-action-hover-bg:rgba(139,92,246,.12);}.members-action-select.is-set-tags .members-action-icon,.members-action-item.is-set-tags .members-action-icon{color:#f4b000;}.members-action-item.is-set-tags{--members-action-accent:#f4b000;--members-action-hover-bg:rgba(244,176,0,.14);}.members-action-select.is-subscription-management .members-action-icon,.members-action-item.is-subscription-management .members-action-icon{color:#16a34a;}.members-action-item.is-subscription-management{--members-action-accent:#16a34a;--members-action-hover-bg:rgba(22,163,74,.12);}.members-action-select.is-set-affiliation .members-action-icon,.members-action-item.is-set-affiliation .members-action-icon{color:#12d8b6;}.members-action-item.is-set-affiliation{--members-action-accent:#12d8b6;--members-action-hover-bg:rgba(18,216,182,.12);}.members-action-select.is-set-sub-group .members-action-icon,.members-action-item.is-set-sub-group .members-action-icon{color:#ff7a21;}.members-action-item.is-set-sub-group{--members-action-accent:#ff7a21;--members-action-hover-bg:rgba(255,122,33,.12);}.members-action-select.is-manage-awards .members-action-icon,.members-action-item.is-manage-awards .members-action-icon{color:#e83e8c;}.members-action-item.is-manage-awards{--members-action-accent:#e83e8c;--members-action-hover-bg:rgba(232,62,140,.12);}.members-action-select.is-class-invitation .members-action-icon,.members-action-item.is-class-invitation .members-action-icon{color:#2563eb;}.members-action-item.is-class-invitation{--members-action-accent:#2563eb;--members-action-hover-bg:rgba(37,99,235,.12);}.members-action-select.is-member-transfer .members-action-icon,.members-action-item.is-member-transfer .members-action-icon{color:var(--bs-primary);}.members-action-item.is-member-transfer{--members-action-accent:var(--bs-primary);--members-action-hover-bg:rgba(var(--bs-primary-rgb),.12);}.members-action-select.is-credit-debit .members-action-icon,.members-action-item.is-credit-debit .members-action-icon{color:#f97316;}.members-action-item.is-credit-debit{--members-action-accent:#f97316;--members-action-hover-bg:rgba(249,115,22,.12);}.members-action-select.is-remove-from-class .members-action-icon,.members-action-item.is-remove-from-class .members-action-icon{color:#ef4444;}.members-action-item.is-remove-from-class{--members-action-accent:#ef4444;--members-action-hover-bg:rgba(239,68,68,.12);}.members-action-select.is-export .members-action-icon,.members-action-item.is-export .members-action-icon{color:#111827;}.members-action-item.is-export{--members-action-accent:#111827;--members-action-hover-bg:rgba(17,24,39,.08);}.members-action-select.is-send-receipt .members-action-icon,.members-action-item.is-send-receipt .members-action-icon{color:var(--bs-primary);}.members-action-item.is-send-receipt{--members-action-accent:var(--bs-primary);--members-action-hover-bg:rgba(var(--bs-primary-rgb),.12);}.members-action-footer{margin-top:.9rem;display:flex;gap:.75rem;align-items:center;}.members-action-apply,.members-action-clear{min-height:46px;border-radius:12px;font-size:.84rem;font-weight:800;}.members-action-apply{flex:1;border:0;background:var(--bs-primary);color:#fff;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.22);}.members-action-clear{min-width:180px;border:1.5px solid #e5e7eb;background:#fff;color:#94a3b8;}.members-action-clear-placeholder{display:inline-flex;align-items:center;justify-content:center;color:#cbd5e1;}.members-card{flex:1 0 auto;display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:0 2px 14px rgba(15,23,42,.06);overflow:visible;border:1px solid #eef2f7;}.members-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.4rem;border-bottom:1px solid #f1f5f9;}.view-switcher{display:inline-flex;gap:.2rem;background:#f3f4f6;border-radius:14px;padding:.25rem;}.view-btn{min-height:40px;border:0;border-radius:11px;padding:0 1rem;font-size:.82rem;font-weight:800;}.view-btn.active{background:#fff;color:#1e2a4a;box-shadow:0 2px 8px rgba(15,23,42,.08);}.members-card .view-btn.active{color:var(--bs-secondary);}.view-btn.inactive{background:transparent;color:#94a3b8;}.members-card-tools{display:flex;align-items:center;gap:1rem;}.members-columns-wrap{position:relative;}.members-card-sort-note{font-size:.76rem;color:#94a3b8;}.members-card-columns{display:inline-flex;align-items:center;gap:.5rem;min-height:42px;padding:0 1rem;border-radius:12px;border:1.5px solid rgba(var(--bs-primary-rgb),.42);background:#fff;color:var(--bs-primary);font-size:.82rem;font-weight:800;}.members-card-columns.is-open{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.18);}.members-card-columns-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;border-radius:999px;background:var(--bs-primary);color:#fff;font-size:.72rem;font-weight:900;}.members-per-page{display:inline-flex;align-items:center;gap:.55rem;min-height:42px;padding:0 .85rem;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;}.members-per-page__label{margin:0;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;}.members-per-page__select{appearance:none;border:0;background:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%2394a3b8' d='M4.427 6.427l3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 6H4.604a.25.25 0 0 0-.177.427z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;padding:0 1rem 0 .1rem;color:var(--bs-secondary);font-size:.82rem;font-weight:800;cursor:pointer;min-width:2.5rem;}.members-columns-panel{position:absolute;top:3rem;right:0;z-index:1050;width:260px;background:#fff;border:1px solid #edf1f7;border-radius:12px;box-shadow:0 10px 40px rgba(15,23,42,.15);}.members-columns-panel .card{border:0;border-radius:12px;}.members-columns-panel .card-body{padding:1.25rem;}.members-card{position:relative;}.members-columns-panel-title{margin-bottom:.9rem;color:#94a3b8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.members-columns-panel-actions{display:flex;gap:.6rem;margin-bottom:.8rem;}.members-columns-panel-btn{flex:1;min-height:36px;border-radius:10px;font-size:.74rem;font-weight:800;border:1.5px solid transparent;background:#fff;}.members-columns-panel-btn.is-show{border-color:#a7f3d0;background:#ecfdf5;color:#16a34a;}.members-columns-panel-btn.is-hide{border-color:#fecaca;background:#fef2f2;color:#ef4444;}.members-columns-toggle{width:100%;display:flex;align-items:center;gap:.8rem;min-height:42px;border:0;background:transparent;color:var(--bs-secondary);font-size:.82rem;font-weight:700;text-align:left;}.members-columns-switch{position:relative;width:2rem;height:1.25rem;border-radius:999px;display:inline-flex;align-items:center;padding:0 .16rem;transition:background .18s ease;flex-shrink:0;}.members-columns-switch.is-on{background:var(--bs-primary);justify-content:flex-end;}.members-columns-switch.is-off{background:#e5e7eb;justify-content:flex-start;}.members-columns-switch-knob{width:.88rem;height:.88rem;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.2);}.members-table{width:100%;border-collapse:separate;border-spacing:0;}.members-table th{background:#fff;color:#94a3b8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.95rem .75rem;border-bottom:1px solid #eef2f7;}.members-table-sort{width:100%;display:inline-flex;flex-direction:column;align-items:flex-start;gap:.2rem;border:0;background:transparent;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;}.members-table-sort-center{align-items:center;text-align:center;}.members-table-sort-icon{color:#cbd5e1;font-size:.9rem;transition:color .18s ease;}.members-table-sort.is-active .members-table-sort-icon{color:var(--bs-primary);}.members-table-sort:hover .members-table-sort-icon{color:rgba(var(--bs-primary-rgb),.8);}.members-table td{padding:.95rem .75rem;font-size:.8rem;color:#1e2a4a;border-bottom:1px solid #f3f4f6;vertical-align:middle;}.members-table tbody tr:nth-child(odd){background:#fcfdff;}.members-table tbody tr:nth-child(even){background:#f7f9fc;}.members-table tbody tr.is-selected{background:rgba(139,92,246,.08);}.members-table-check{width:56px;text-align:center;}.members-table-check-toggle,.members-table-row-check{width:18px;height:18px;border-radius:7px;border:1.5px solid #cbd5e1;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;}.members-table-check-toggle{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.members-table-check-toggle:not(.is-active){background:#fff;border-color:#cbd5e1;color:transparent;}.members-table-row-check.is-checked{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.members-table-name-link{display:inline-flex;align-items:center;gap:.75rem;color:var(--bs-secondary);text-decoration:none;font-weight:800;}.members-table-avatar{width:2.2rem;height:2.2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;flex-shrink:0;}.members-table-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.members-table-avatar.is-female{background:#fce7f3;color:#ec4899;}.members-table-name-wrap{display:flex;flex-direction:column;gap:.2rem;}.members-table-name{color:var(--bs-secondary);line-height:1.2;}.members-table-status{font-size:.7rem;color:#ef4444;font-weight:800;}.members-table-tags{display:flex;flex-wrap:wrap;gap:.45rem;}.badge-tag{display:inline-flex;align-items:center;min-height:1.7rem;padding:0 .6rem;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb;color:#6b7a99;font-size:.7rem;font-weight:700;}.members-table-empty{color:#cbd5e1;}.members-table-pill{display:inline-flex;align-items:center;gap:.35rem;min-height:1.8rem;padding:0 .65rem;border-radius:8px;font-size:.72rem;font-weight:700;line-height:1;white-space:nowrap;}.members-table-pill-list{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;width:100%;}.members-col-name{width:180px;}.members-col-class,.members-col-group,.members-col-subgroup,.members-col-award{width:1%;}.members-col-tags{width:90px;}.members-col-dob{width:92px;}.members-col-age{width:48px;}.members-col-sex{width:78px;}.members-col-photo,.members-col-insurance{width:62px;}.members-table-pill-class{background:#e0f2fe;border:1px solid #7dd3fc;color:#0369a1;}.members-table-pill-group{background:#f3e8ff;border:1px solid #d8b4fe;color:#7c3aed;}.members-table-pill-subgroup{background:#ecfdf5;border:1px solid #a7f3d0;color:#059669;}.members-table-pill-award{background:#fff7ed;border:1px solid #fdba74;color:#c2410c;}.members-table-pill-award i{font-size:.62rem;}.members-table-sex{display:inline-flex;align-items:center;min-height:1.9rem;padding:0 .8rem;border-radius:9px;font-size:.74rem;font-weight:800;}.members-table-sex.is-male{background:#e0f2fe;border:1px solid #7dd3fc;color:#0369a1;}.members-table-sex.is-female{background:#fce7f3;border:1px solid #f9a8d4;color:#be185d;}.members-table-bool{width:34px;height:34px;border:0;background:transparent;font-size:1.1rem;}.members-table-bool.is-true{color:#10b981;}.members-table-bool.is-false{color:#ef4444;}.members-card-footer{display:flex;flex-direction:column;align-items:stretch;gap:.85rem;padding:1rem 1.4rem;}.members-card-range{margin:0;font-size:.82rem;color:#64748b;font-weight:500;}.members-card-range strong{color:#334155;font-weight:700;}.members-pager{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;}.members-pager-status{flex:1 1 auto;text-align:center;font-size:.82rem;font-weight:700;color:#64748b;white-space:nowrap;}.members-pager-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:38px;padding:.45rem .85rem;border-radius:10px;font-size:.8rem;font-weight:700;white-space:nowrap;}.members-pager-btn:focus-visible{box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25);}.members-pager-btn:disabled{opacity:.45;cursor:not-allowed;}.members-audit-view{padding:1rem 1.4rem 1.4rem;}.members-audit-view .members-audit-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1rem;margin-bottom:1rem;border:1.5px solid rgba(var(--bs-primary-rgb),.22);border-radius:18px;background:#fff;}.members-audit-view .members-audit-selection-count{display:inline-flex;align-items:center;min-height:40px;padding:0 1rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.82rem;font-weight:800;}.members-audit-view .members-audit-selection-button{display:inline-flex;align-items:center;gap:.55rem;min-height:42px;padding:0 1rem;border:0;border-radius:12px;background:var(--bs-primary);color:#fff;font-size:.82rem;font-weight:800;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.2);}.members-audit-view .members-audit-summary-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:0 0 1rem;}.members-audit-view .members-audit-summary-left,.members-audit-view .members-audit-summary-right{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}.members-audit-view .members-audit-summary-right{margin-left:auto;justify-content:flex-end;text-align:right;}.members-audit-view .members-audit-summary-label,.members-audit-view .members-audit-meta-line{display:inline-flex;align-items:center;gap:.45rem;color:#94a3b8;font-size:.8rem;font-weight:600;}.members-audit-view .members-audit-meta-count{margin-left:auto;}.members-audit-view .members-audit-summary-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 .85rem;border-radius:10px;border:1px solid transparent;font-size:.76rem;font-weight:800;}.members-audit-view .members-audit-summary-pill.is-overdue{background:#fff1f2;border-color:#fda4af;color:#dc2626;}.members-audit-view .members-audit-summary-pill.is-missing{background:var(--bs-secondary);border-color:var(--bs-secondary);color:#fff;}.members-audit-view .members-audit-table-wrap{border-top:1px solid #eef2f7;}.members-audit-view .members-audit-table{width:100%;border-collapse:separate;border-spacing:0;}.members-audit-view .members-audit-table th{color:#94a3b8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.9rem .65rem;border-bottom:1px solid #eef2f7;background:#fff;}.members-audit-view .members-audit-table td{padding:.9rem .65rem;border-bottom:1px solid #f3f4f6;vertical-align:middle;font-size:.82rem;color:#1e2a4a;}.members-audit-view .members-audit-table tbody tr:nth-child(odd){background:#fcfdff;}.members-audit-view .members-audit-table tbody tr:nth-child(even){background:#f7f9fc;}.members-audit-view .members-audit-table tbody .members-audit-row td:first-child{position:relative;}.members-audit-view .members-audit-table tbody .members-audit-row td:first-child::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:999px;background:transparent;}.members-audit-view .members-audit-table tbody .members-audit-row.is-ok td:first-child::before{background:#10b981;}.members-audit-view .members-audit-table tbody .members-audit-row.is-warning td:first-child::before{background:#f59e0b;}.members-audit-view .members-audit-table tbody .members-audit-row.is-missing td:first-child::before{background:#ef4444;}.members-audit-view .members-audit-table tbody tr.is-selected{background:#effcf8;}.members-audit-view .members-audit-col-check{width:42px;text-align:center;}.members-audit-view .members-audit-col-status{width:72px;text-align:center;}.members-audit-view .members-audit-col-total{width:92px;min-width:92px;text-align:center;}.members-audit-view .members-audit-col-subscriptions{width:38%;}.members-audit-view .members-audit-checkbox{width:18px;height:18px;border-radius:6px;border:1.5px solid #cbd5e1;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0;}.members-audit-view .members-audit-checkbox.is-active{background:#10b981;border-color:#10b981;color:#fff;}.members-audit-view .members-audit-status{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;}.members-audit-view .members-audit-status.is-ok{background:#e8faf2;color:#16a34a;}.members-audit-view .members-audit-status.is-warning{background:#fff7ed;color:#f97316;}.members-audit-view .members-audit-status.is-missing{background:#fff1f2;color:#ef4444;}.members-audit-view .members-audit-name-cell{display:flex;align-items:center;gap:.75rem;}.members-audit-view .members-audit-avatar{width:2.1rem;height:2.1rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;flex-shrink:0;}.members-audit-view .members-audit-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.members-audit-view .members-audit-avatar.is-female{background:#fce7f3;color:#ec4899;}.members-audit-view .members-audit-name-copy{font-size:.86rem;font-weight:800;color:var(--bs-secondary);}.members-audit-view .members-audit-email{color:#4f46e5;text-decoration:none;}.members-audit-view .members-audit-empty,.subscription-audit .members-audit-empty{color:#cbd5e1;}.members-audit-view .members-audit-total-chip,.subscription-audit .members-audit-total-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:2rem;padding:0 .55rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.8rem;font-weight:800;}.members-audit-view .members-audit-header-inline{display:inline-flex;align-items:center;gap:.5rem;}.members-audit-view .members-audit-sort,.subscription-audit .members-audit-sort{display:inline-flex;align-items:center;gap:.35rem;border:0;background:transparent;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;}.members-audit-view .members-audit-sort-icon,.subscription-audit .members-audit-sort-icon{color:#cbd5e1;font-size:.84rem;transition:color .18s ease;}.members-audit-view .members-audit-sort.is-active .members-audit-sort-icon,.subscription-audit .members-audit-sort.is-active .members-audit-sort-icon{color:var(--bs-primary);}.members-audit-view .members-audit-sort:hover .members-audit-sort-icon,.subscription-audit .members-audit-sort:hover .members-audit-sort-icon{color:rgba(var(--bs-primary-rgb),.8);}.members-audit-view .members-audit-refresh{width:1.5rem;height:1.5rem;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;padding:0;}.members-audit-view .members-audit-subscription-list{display:flex;flex-wrap:wrap;gap:.55rem;}.members-audit-view .members-audit-subscription-chip,.members-audit-view .members-audit-subscription-pair{display:inline-flex;align-items:center;flex-wrap:wrap;border-radius:10px;overflow:hidden;font-size:.74rem;font-weight:800;}.members-audit-view .members-audit-subscription-chip{gap:.45rem;min-height:34px;padding:0 .8rem;}.members-audit-view .members-audit-subscription-chip.is-missing{background:#1f2b58;color:#fff;}.members-audit-view .members-audit-subscription-part{min-height:34px;display:inline-flex;align-items:center;gap:.4rem;padding:0 .7rem;border:1px solid transparent;}.members-audit-view .members-audit-subscription-pair.is-due .members-audit-subscription-part{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1;}.members-audit-view .members-audit-subscription-pair.is-paid .members-audit-subscription-part{background:#e8faf2;border-color:#86efac;color:#15803d;}.members-audit-view .members-audit-subscription-pair.is-overdue .members-audit-subscription-part{background:#fff1f2;border-color:#fda4af;color:#dc2626;}.members-audit-view .members-audit-subscription-pair .members-audit-subscription-part+.members-audit-subscription-part{border-left-width:0;}.subscription-audit .members-audit-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1rem;margin-bottom:1rem;border:1.5px solid rgba(var(--bs-primary-rgb),.22);border-radius:18px;background:#fff;}.subscription-audit .members-audit-selection-count{display:inline-flex;align-items:center;min-height:40px;padding:0 1rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.82rem;font-weight:800;}.subscription-audit .members-audit-selection-button{display:inline-flex;align-items:center;gap:.55rem;min-height:42px;padding:0 1rem;border:0;border-radius:12px;background:var(--bs-primary);color:#fff;font-size:.82rem;font-weight:800;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.2);}.subscription-audit .members-audit-summary-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:0 0 1rem;}.subscription-audit .members-audit-summary-left,.subscription-audit .members-audit-summary-right{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}.subscription-audit .members-audit-summary-right{margin-left:auto;justify-content:flex-end;text-align:right;}.subscription-audit .members-audit-summary-label,.subscription-audit .members-audit-meta-line{display:inline-flex;align-items:center;gap:.45rem;color:#94a3b8;font-size:.8rem;font-weight:600;}.subscription-audit .members-audit-meta-count{margin-left:auto;}.subscription-audit .members-audit-summary-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 .85rem;border-radius:10px;border:1px solid transparent;font-size:.76rem;font-weight:800;}.subscription-audit .members-audit-summary-pill.is-overdue{background:#fff1f2;border-color:#fda4af;color:#dc2626;}.subscription-audit .members-audit-summary-pill.is-missing{background:var(--bs-secondary);border-color:var(--bs-secondary);color:#fff;}.subscription-audit .members-audit-table-wrap{border-top:1px solid #eef2f7;}.subscription-audit .members-audit-table{width:100%;border-collapse:separate;border-spacing:0;}.subscription-audit .members-audit-table th{color:#94a3b8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.9rem .65rem;border-bottom:1px solid #eef2f7;background:#fff;}.subscription-audit .members-audit-table td{padding:.9rem .65rem;border-bottom:1px solid #f3f4f6;vertical-align:middle;font-size:.82rem;color:#1e2a4a;}.subscription-audit .members-audit-table tbody tr:nth-child(odd){background:#fcfdff;}.subscription-audit .members-audit-table tbody tr:nth-child(even){background:#f7f9fc;}.subscription-audit .members-audit-table tbody .members-audit-row td:first-child{position:relative;}.subscription-audit .members-audit-table tbody .members-audit-row td:first-child::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:999px;background:transparent;}.subscription-audit .members-audit-table tbody .members-audit-row.is-ok td:first-child::before{background:#10b981;}.subscription-audit .members-audit-table tbody .members-audit-row.is-warning td:first-child::before{background:#f59e0b;}.subscription-audit .members-audit-table tbody .members-audit-row.is-missing td:first-child::before{background:#ef4444;}.subscription-audit .members-audit-table tbody tr.is-selected{background:#effcf8;}.subscription-audit .members-audit-col-check{width:42px;text-align:center;}.subscription-audit .members-audit-col-status{width:72px;text-align:center;}.subscription-audit .members-audit-col-subscriptions{width:55%;}.subscription-audit .members-audit-checkbox{width:18px;height:18px;border-radius:6px;border:1.5px solid #cbd5e1;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0;}.subscription-audit .members-audit-checkbox.is-active{background:#10b981;border-color:#10b981;color:#fff;}.subscription-audit .members-audit-status{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;}.subscription-audit .members-audit-status.is-ok{background:#e8faf2;color:#16a34a;}.subscription-audit .members-audit-status.is-warning{background:#fff7ed;color:#f97316;}.subscription-audit .members-audit-status.is-missing{background:#fff1f2;color:#ef4444;}.subscription-audit .members-audit-name-cell{display:flex;align-items:center;gap:.75rem;}.subscription-audit .members-audit-avatar{width:2.1rem;height:2.1rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;flex-shrink:0;}.subscription-audit .members-audit-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.subscription-audit .members-audit-avatar.is-female{background:#fce7f3;color:#ec4899;}.subscription-audit .members-audit-name-copy{font-size:.86rem;font-weight:800;color:var(--bs-secondary);}.subscription-audit .members-audit-email{color:#4f46e5;text-decoration:none;}.subscription-audit .members-audit-empty{color:#cbd5e1;}.subscription-audit .members-audit-header-inline{display:inline-flex;align-items:center;gap:.5rem;}.subscription-audit .members-audit-refresh{width:1.5rem;height:1.5rem;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;padding:0;}.subscription-audit .members-audit-subscription-list{display:flex;flex-wrap:wrap;gap:.55rem;}.subscription-audit .members-audit-subscription-chip,.subscription-audit .members-audit-subscription-pair{display:inline-flex;align-items:center;flex-wrap:wrap;border-radius:10px;overflow:hidden;font-size:.74rem;font-weight:800;}.subscription-audit .members-audit-subscription-chip{gap:.45rem;min-height:34px;padding:0 .8rem;}.subscription-audit .members-audit-subscription-chip.is-missing{background:var(--bs-secondary);border-color:var(--bs-secondary);}.subscription-audit .members-audit-subscription-part{min-height:34px;display:inline-flex;align-items:center;gap:.4rem;padding:0 .7rem;border:1px solid transparent;}.subscription-audit .members-audit-subscription-pair.is-due .members-audit-subscription-part{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1;}.subscription-audit .members-audit-subscription-pair.is-paid .members-audit-subscription-part{background:#e8faf2;border-color:#86efac;color:#15803d;}.subscription-audit .members-audit-subscription-pair.is-overdue .members-audit-subscription-part{background:#fff1f2;border-color:#fda4af;color:#dc2626;}.subscription-audit .members-audit-subscription-pair .members-audit-subscription-part+.members-audit-subscription-part{border-left-width:0;}.members-pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;}.members-pagination li{list-style:none;}.members-page-btn{min-width:2.2rem;height:2.2rem;padding:0 .7rem;border-radius:.7rem;border:1.5px solid #e2e8f0;background:#fff;color:#8ea0b7;font-size:.82rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:background-color .18s ease,border-color .18s ease,color .18s ease;cursor:pointer;}.members-page-btn:hover{background:#f8fafc;border-color:#cfd8e3;}.members-page-btn.is-active{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;box-shadow:0 8px 18px rgba(var(--bs-primary-rgb),.22);}.members-card-range{margin:0;color:#64748b;font-size:.82rem;font-weight:500;}.members-card-range strong{color:#334155;font-weight:700;}.members-page-btn{min-width:42px;height:42px;border-radius:12px;border:1.5px solid #e5e7eb;background:#fff;color:#94a3b8;font-size:.8rem;font-weight:800;}.members-page-btn.is-active{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.capacity-display{display:flex;flex-direction:column;gap:.35rem;min-width:60px;}.capacity-text{font-size:.875rem;font-weight:600;line-height:1;}.capacity-used{font-weight:700;}.capacity-total{color:#9ca3af;font-weight:500;}.capacity-bar{width:100%;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;}.capacity-bar-fill{height:100%;border-radius:2px;transition:width .3s ease;}.capacity-display.is-available .capacity-used{color:#10b981;}.capacity-display.is-available .capacity-bar-fill{background:#10b981;}.capacity-display.is-high .capacity-used{color:#f59e0b;}.capacity-display.is-high .capacity-bar-fill{background:#f59e0b;}.capacity-display.is-almost-full .capacity-used{color:#f97316;}.capacity-display.is-almost-full .capacity-bar-fill{background:#f97316;}.capacity-display.is-full .capacity-used{color:#ef4444;}.capacity-display.is-full .capacity-bar-fill{background:#ef4444;}.send-email-modal-title,.bulk-charge-modal-title,.set-tags-modal-title,.manage-awards-title,.set-affiliation-title,.set-sub-group-title,.subscription-management-title,.export-members-modal-title,.class-invite-title,.member-transfer-modal__title,.remove-from-class-modal__title,.a2b-modal-title{color:var(--bs-secondary);}.members-modal-dialog{max-width:850px;padding:1rem .25rem;}.members-modal-content{border:0;border-radius:24px;box-shadow:0 24px 60px rgba(15,23,42,.2);overflow:hidden;}.members-modal-body{padding:0;scrollbar-width:none;-ms-overflow-style:none;}.members-modal-body>.row{margin-left:0;margin-right:0;padding:1rem 1rem 1.1rem;}.student-picker{padding-bottom:.25rem;}.student-picker .form-floating,.student-picker .btn{margin-bottom:.25rem;}.student-picker .list-group{margin-bottom:.4rem;}.members-modal-body::-webkit-scrollbar{width:0;height:0;}.export-members-modal{padding:1.5rem;}.export-members-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;margin-bottom:1.2rem;border-bottom:1px solid #edf2f7;}.export-members-modal-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.export-members-modal-icon{width:2.5rem;height:2.5rem;border-radius:14px;background:rgba(22,163,74,.12);color:#16a34a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.05rem;}.export-members-modal-title{margin:0 0 .15rem;font-size:1.15rem;font-weight:800;}.export-members-modal-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.export-members-modal-close{width:2.1rem;height:2.1rem;border:0;border-radius:10px;background:#f3f4f6;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;padding:0;}.export-members-modal-body{display:flex;flex-direction:column;gap:1.15rem;}.export-members-modal-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;}.export-members-modal-section-title{margin:0;color:#1e2a4a;font-size:.92rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.export-members-deselect{border:0;background:transparent;color:var(--bs-primary);font-size:.9rem;font-weight:700;}.export-members-group{display:flex;flex-direction:column;gap:.75rem;}.export-members-group-title{color:#94a3b8;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.export-members-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;}.export-members-column{width:100%;min-height:48px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:#64748b;display:inline-flex;align-items:center;gap:.65rem;padding:.75rem .9rem;text-align:left;font-size:.92rem;font-weight:700;}.export-members-column.is-selected{border-color:rgba(var(--bs-primary-rgb),.38);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.export-members-column-check{width:1.15rem;height:1.15rem;border-radius:6px;border:1.5px solid #dbe2ea;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.68rem;color:transparent;background:#fff;}.export-members-column.is-selected .export-members-column-check{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.export-members-summary{padding:1rem 1rem;border-radius:14px;border:1px solid #a7f3d0;background:#dff7ea;color:#15803d;font-size:.95rem;font-weight:700;}.export-members-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.85rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #edf2f7;}.export-members-secondary,.export-members-primary{min-height:50px;border-radius:14px;padding:0 1.4rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.92rem;font-weight:800;}.export-members-secondary{border:1px solid #e5e7eb;background:#fff;color:#64748b;}.export-members-primary{border:1px solid #16a34a;background:#16a34a;color:#fff;}.export-members-primary:disabled{border-color:#bbf7d0;background:#bbf7d0;color:#f8fafc;}.send-email-modal{padding:1.5rem;}.send-email-success{min-height:430px;padding:2.35rem 1.6rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;}.send-email-success-ring{width:4.4rem;height:4.4rem;border-radius:999px;border:1px solid rgba(16,185,129,.32);background:rgba(16,185,129,.08);color:#10b981;display:inline-flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:1.35rem;}.send-email-success-title{margin:0;color:var(--bs-secondary);font-size:1.1rem;font-weight:800;}.send-email-success-subtitle{max-width:32rem;margin:1rem auto 0;color:#7c8aa5;font-size:.92rem;line-height:1.65;}.send-email-success-pills{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem;}.send-email-success-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:999px;border:1px solid #e5e7eb;background:#f8fafc;color:#475569;font-size:.85rem;font-weight:700;}.send-email-success-actions{margin-top:1.55rem;}.send-email-success-btn{min-width:6.9rem;min-height:3.1rem;border:0;border-radius:14px;border:1px solid rgba(var(--bs-primary-rgb),.24);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);padding:.78rem 1.25rem;font-size:.98rem;font-weight:800;box-shadow:0 14px 28px rgba(99,102,241,.22);}.send-email-success.is-award-order .send-email-success-btn{border-color:var(--bs-primary);background:var(--bs-primary);color:var(--m-on-primary,#fff);box-shadow:0 14px 28px rgba(var(--bs-primary-rgb),.22);}.email-progress-toast-stack{position:fixed;top:1.15rem;right:1.15rem;z-index:1200;display:flex;flex-direction:column;gap:.75rem;width:min(26rem,100vw - 1.5rem);pointer-events:none;}.email-progress-toast{pointer-events:auto;border-radius:1.15rem;border:1px solid #edf0f7;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.14);padding:.95rem 1rem .85rem;}.email-progress-toast__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;}.email-progress-toast__icon{width:2.7rem;height:2.7rem;border-radius:.85rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(var(--bs-primary-rgb),.24);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:1rem;}.email-progress-toast.is-complete .email-progress-toast__icon{border-color:rgba(var(--bs-success-rgb),.24);background:rgba(var(--bs-success-rgb),.08);color:var(--bs-success);}.email-progress-toast__copy{min-width:0;}.email-progress-toast__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;}.email-progress-toast__title{color:var(--bs-secondary);font-size:.95rem;font-weight:800;line-height:1.2;}.email-progress-toast__percent{color:var(--bs-primary);font-size:.95rem;font-weight:800;line-height:1.2;}.email-progress-toast.is-complete .email-progress-toast__percent{color:var(--bs-success);}.email-progress-toast__subtitle{margin-top:.15rem;color:#7c8aa5;font-size:.82rem;line-height:1.4;}.email-progress-toast__close{width:1.9rem;height:1.9rem;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:.9rem;}.email-progress-toast__track{position:relative;overflow:hidden;height:.38rem;border-radius:999px;background:#eef2f7;margin-top:.85rem;}.email-progress-toast__bar{display:block;height:100%;border-radius:inherit;background:var(--bs-primary);transition:width .2s ease;}.email-progress-toast__bar.is-complete{background:var(--bs-success);}.send-email-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.send-email-modal-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.send-email-modal-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.send-email-modal-title{margin:0 0 .15rem;font-size:1.15rem;font-weight:800;}.send-email-modal-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.send-email-modal-close{width:2.1rem;height:2.1rem;border:0;border-radius:10px;background:#f3f4f6;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;padding:0;}.send-email-recipient-panel{border:1px solid #e9edf5;border-radius:16px;background:#fff;padding:.9rem;margin-bottom:1rem;}.send-email-recipient-toolbar{display:flex;align-items:center;gap:.85rem;margin-bottom:.75rem;}.send-email-recipient-label{display:inline-flex;align-items:center;gap:.45rem;color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.send-email-recipient-count{min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;background:var(--bs-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;}.send-email-recipient-tools{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0;}.send-email-recipient-search{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:.55rem;min-height:42px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:0 .85rem;color:#94a3b8;}.send-email-recipient-tools .send-email-recipient-action{flex-shrink:0;}.send-email-recipient-search-input{width:100%;border:0;background:transparent;color:var(--bs-secondary);font-size:.82rem;padding:0;outline:0;}.send-email-recipient-action{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:0 1rem;border-radius:10px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;font-size:.8rem;font-weight:800;}.send-email-recipient-action.is-outline{border-color:rgba(var(--bs-primary-rgb),.42);color:var(--bs-primary);}.send-email-recipient-list{display:flex;flex-wrap:wrap;gap:.55rem;}.send-email-recipient-manual{align-items:stretch;flex-wrap:nowrap;gap:0!important;width:100%;}.send-email-recipient-manual-icon{border:1px solid #e5e7eb;border-right:0!important;border-radius:12px 0 0 12px;background:#fff;color:#94a3b8;min-height:48px;padding:0 .95rem;box-shadow:none!important;}.send-email-recipient-manual-input{border:1px solid #e5e7eb!important;border-left:0!important;border-radius:0 12px 12px 0;padding-left:.1rem;box-shadow:none!important;background:#fff!important;}.send-email-recipient-manual-input:focus{border-color:rgba(var(--bs-primary-rgb),.45)!important;border-left:0!important;box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12)!important;}.send-email-recipient-manual .send-email-recipient-action{min-height:48px;border-radius:12px;padding:0 1.05rem;}.send-email-recipient-manual .send-email-recipient-action.is-primary{background:var(--bs-primary);border-color:var(--bs-primary);color:var(--m-on-primary,#fff);}.send-email-chip{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;max-width:100%;padding:0 .7rem;border-radius:999px;border:1px solid #e5e7eb;background:#f8fafc;}.send-email-chip-avatar{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:900;color:#7c2d12;flex-shrink:0;}.send-email-chip-label{max-width:240px;color:#4b5870;font-size:.78rem;font-weight:700;}.send-email-chip-action{border:0;background:transparent;color:#94a3b8;padding:0;display:inline-flex;align-items:center;justify-content:center;}.send-email-chip-action.is-star,.send-email-chip-action.is-saved-state{width:18px;height:18px;border-radius:999px;}.send-email-chip-action.is-star.is-active,.send-email-chip-action.is-saved-state.is-active{color:var(--bs-primary);}.send-email-chip-link{border:0;background:transparent;color:#4b5870;font-size:.78rem;font-weight:700;padding:0;min-width:0;}.send-email-saved{border-top:1px solid #eef2f7;padding-top:.75rem;}.send-email-saved-label{color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.55rem;}.send-email-saved-list{display:flex;flex-wrap:wrap;gap:.55rem;}.send-email-chip.is-saved{background:#fff;}.send-email-chip.is-saved.is-selected{border-color:rgba(var(--bs-primary-rgb),.2);background:rgba(var(--bs-primary-rgb),.06);}.send-email-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem .9rem;}.send-email-field-full{grid-column:1/-1;}.send-email-label{display:block;margin-bottom:.45rem;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.send-email-input{width:100%;min-height:48px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.84rem;padding:.8rem 1rem;box-shadow:none;}.send-email-input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.send-email-upload-wrap .mt-2{margin-top:0!important;}.send-email-upload-wrap .input-group{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;}.send-email-upload-wrap .form-control{min-height:48px;border:1px solid #e5e7eb;border-radius:12px!important;background:#fff;font-size:.84rem;padding:.8rem 1rem;box-shadow:none;width:100%;}.send-email-upload-wrap .btn{min-height:48px;border:0;border-radius:12px!important;background:var(--bs-primary);color:#fff;font-size:.84rem;font-weight:800;padding:0 1.15rem;}.send-email-upload-wrap small{color:#94a3b8!important;font-size:.76rem;}.send-email-document-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.55rem;}.send-email-document-hint{color:#94a3b8;font-size:.76rem;line-height:1.4;}.send-email-document-preview{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:0 .85rem;border:1px solid rgba(var(--bs-primary-rgb),.5);border-radius:10px;background:#fff;color:var(--bs-primary);font-size:.8rem;font-weight:800;flex-shrink:0;}.send-email-attachment-list{display:flex;flex-wrap:wrap;gap:.55rem;}.send-email-editor-shell{border:1px solid #e5e7eb;border-radius:16px;background:#fff;overflow:visible;}.send-email-editor-shell .rz-html-editor{border:0!important;border-radius:16px;overflow:visible;background:#fff;}.send-email-editor-shell .rz-html-editor-toolbar{border:0!important;border-bottom:1px solid #e5e7eb!important;border-radius:16px 16px 0 0;padding:.4rem .45rem;background:#fff;}.send-email-editor-shell .rz-html-editor-content{min-height:220px;border:0!important;border-radius:0 0 16px 16px;background:#fff;}.send-email-editor-shell .d-flex.align-items-center.gap-2{justify-content:flex-end;padding:.95rem 1rem 0;margin-top:0!important;}.send-email-editor-shell .btn.btn-sm.btn-primary{min-height:42px;border:1px solid var(--bs-primary);border-radius:12px;background:var(--bs-primary);color:#fff;padding:0 1.2rem;font-size:.84rem;font-weight:800;margin-top:0!important;}.send-email-editor-shell .btn.btn-sm.btn-primary:last-of-type{background:#fff;color:#4b5870;border:1px solid #e5e7eb;}.send-email-alert-wrap{margin:1rem .5rem .85rem;}.send-email-alert-wrap .alert{margin-bottom:0;border-radius:16px;border:1px solid transparent;padding:.95rem 1rem;font-size:.84rem;font-weight:700;}.send-email-alert-wrap .alert-success{background:#ecfdf5;border-color:#a7f3d0;color:#047857;}.send-email-alert-wrap .alert-danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c;}.bulk-charge-modal{padding:1.5rem;}.bulk-charge-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.bulk-charge-modal-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.bulk-charge-modal-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.bulk-charge-modal-icon .fa-link{color:var(--bs-primary);}.bulk-charge-modal-title{margin:0 0 .15rem;font-size:1.15rem;font-weight:800;color:var(--bs-secondary);}.bulk-charge-modal-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.bulk-charge-modal-close{width:2.1rem;height:2.1rem;border:0;border-radius:10px;background:#f3f4f6;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;padding:0;}.bulk-charge-modal-description{margin:0 0 1.1rem;color:#94a3b8;font-size:.88rem;line-height:1.55;}.bulk-charge-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem .9rem;}.bulk-charge-field-full{grid-column:1/-1;}.bulk-charge-label{display:block;margin-bottom:.45rem;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.bulk-charge-input{width:100%;min-height:48px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.84rem;padding:.8rem 1rem;box-shadow:none;}.bulk-charge-textarea{min-height:82px;resize:vertical;}.bulk-charge-input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.bulk-charge-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem;}.bulk-charge-modal-footer-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto;}.bulk-charge-primary,.bulk-charge-secondary{min-height:42px;border-radius:12px;font-size:.84rem;font-weight:800;padding:0 1.2rem;}.bulk-charge-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.18);}.bulk-charge-secondary{border:1px solid #e5e7eb;background:#fff;color:#4b5870;}.bulk-charge-loading{margin-top:1.25rem;}.bulk-charge-results{display:flex;flex-direction:column;gap:1.15rem;}.bulk-charge-results-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}.bulk-charge-results-banner{display:flex;align-items:flex-start;gap:.95rem;padding:1.35rem 1.3rem;border-radius:18px;border:1px solid rgba(var(--bs-primary-rgb),.28);background:rgba(var(--bs-primary-rgb),.08);}.bulk-charge-results-banner-icon{width:2.4rem;height:2.4rem;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:1rem;flex-shrink:0;}.bulk-charge-results-banner-title{color:var(--bs-primary);font-size:1.1rem;font-weight:800;}.bulk-charge-results-banner-copy{margin-top:.2rem;color:rgba(var(--bs-primary-rgb),.9);font-size:.95rem;font-weight:700;line-height:1.55;}.bulk-charge-results-stat{display:flex;align-items:center;gap:.9rem;padding:1.15rem 1.2rem;border-radius:18px;border:1px solid #e5e7eb;}.bulk-charge-results-stat.is-success{border-color:#a7f3d0;background:#ecfdf5;}.bulk-charge-results-stat.is-warning{border-color:#fcd34d;background:#fffbeb;}.bulk-charge-results-stat-icon{width:2.25rem;height:2.25rem;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.bulk-charge-results-stat.is-success .bulk-charge-results-stat-icon{background:#d1fae5;color:#059669;}.bulk-charge-results-stat.is-warning .bulk-charge-results-stat-icon{background:#fef3c7;color:#d97706;}.bulk-charge-results-stat-count{color:var(--bs-secondary);font-size:1.75rem;font-weight:800;line-height:1;}.bulk-charge-results-stat-label{margin-top:.2rem;color:#64748b;font-size:.92rem;font-weight:700;}.bulk-charge-results-section{border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;}.bulk-charge-results-section.is-success{border-color:#a7f3d0;}.bulk-charge-results-section.is-warning{border-color:#fcd34d;}.bulk-charge-results-section.is-invoice-link{border-color:rgba(var(--bs-primary-rgb),.22);}.bulk-charge-results-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1.15rem;font-size:.96rem;font-weight:800;}.bulk-charge-results-section.is-success .bulk-charge-results-section-header{background:#ecfdf5;color:#16803d;}.bulk-charge-results-section.is-warning .bulk-charge-results-section-header{background:#fffbeb;color:#b45309;}.bulk-charge-results-section.is-invoice-link .bulk-charge-results-section-header{background:rgba(var(--bs-primary-rgb),.06);color:var(--bs-primary);}.bulk-charge-results-section-meta{flex-shrink:0;font-size:.88rem;font-weight:700;}.bulk-charge-results-section-copy{padding:.95rem 1.15rem 0;color:#7c5c35;font-size:.9rem;line-height:1.6;}.bulk-charge-results-section-body{padding:.95rem 1.15rem 1.1rem;}.bulk-charge-results-chip-list{display:flex;flex-wrap:wrap;gap:.75rem;}.bulk-charge-results-chip{display:inline-flex;align-items:center;gap:.55rem;min-height:2.35rem;padding:.38rem .8rem .38rem .5rem;border-radius:12px;border:1px solid #e5e7eb;background:#fff;color:#334155;font-size:.88rem;font-weight:700;}.bulk-charge-results-chip.is-success{border-color:#86efac;background:#f0fdf4;color:#15803d;}.bulk-charge-results-chip.is-warning{border-color:#fcd34d;background:#fff7ed;color:#b45309;}.bulk-charge-results-chip.is-invoice-link{border-color:rgba(var(--bs-primary-rgb),.25);background:rgba(var(--bs-primary-rgb),.06);color:var(--bs-primary);}.bulk-charge-results-chip-avatar{width:1.65rem;height:1.65rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;flex-shrink:0;}.bulk-charge-results-chip-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.bulk-charge-results-chip-avatar.is-female{background:#fce7f3;color:#ec4899;}.bulk-charge-results-chip-name{font-weight:800;}.bulk-charge-results-chip-name.is-male{color:#0284c7;}.bulk-charge-results-chip-name.is-female{color:#db2777;}.bulk-charge-results-note{display:flex;align-items:flex-start;gap:.65rem;padding:1rem 1.1rem;border-radius:16px;border:1px solid rgba(var(--bs-primary-rgb),.28);background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:.9rem;font-weight:600;line-height:1.6;}.bulk-charge-results-note a{color:inherit;font-weight:800;}.bulk-charge-results .bulk-charge-modal-footer{justify-content:flex-end;margin-top:.25rem;}.bulk-charge-alert-wrap{margin-top:1rem;}.bulk-charge-alert-wrap .alert{margin-bottom:0;border-radius:16px;border:1px solid #a7f3d0;background:#ecfdf5;color:#047857;padding:.95rem 1rem;font-size:.84rem;font-weight:700;}@media(max-width:767.98px){.export-members-modal{padding:1rem;}.export-members-modal-topbar,.export-members-modal-footer{flex-direction:column;align-items:stretch;}.export-members-columns{grid-template-columns:1fr;}.export-members-primary,.export-members-secondary{width:100%;}.bulk-charge-results-summary{grid-template-columns:1fr;}}.set-tags-modal{padding:1.5rem;}.set-tags-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.set-tags-modal-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.set-tags-modal-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-tags-modal-title{margin:0 0 .15rem;font-size:1.15rem;font-weight:800;}.set-tags-modal-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.set-tags-modal-close{width:2.1rem;height:2.1rem;border:0;border-radius:10px;background:#f3f4f6;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;padding:0;}.set-tags-form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;}.set-tags-field-full{min-width:0;}.set-tags-label{display:block;margin-bottom:.45rem;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-tags-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;}.set-tags-input{width:100%;min-height:48px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.84rem;padding:.8rem 1rem;box-shadow:none;}.set-tags-input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.set-tags-add-button,.set-tags-primary,.set-tags-secondary{min-height:48px;border-radius:12px;font-size:.84rem;font-weight:800;padding:0 1.2rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;}.set-tags-add-button,.set-tags-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;}.set-tags-secondary{border:1px solid #e5e7eb;background:#fff;color:#4b5870;}.set-tags-chip-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.75rem;}.set-tags-chip{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;padding:0 .8rem;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#4b5870;font-size:.8rem;font-weight:700;}.set-tags-chip-remove{border:0;background:transparent;color:#94a3b8;padding:0;display:inline-flex;align-items:center;justify-content:center;}.set-tags-action-list{display:grid;gap:.65rem;}.set-tags-action-card{width:100%;border:1px solid #e5e7eb;border-radius:16px;background:#fff;color:var(--bs-secondary);padding:.95rem 1rem;display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:.85rem;align-items:center;text-align:left;}.set-tags-action-card.is-selected{border-color:rgba(var(--bs-primary-rgb),.28);background:rgba(var(--bs-primary-rgb),.08);}.set-tags-action-card.is-selected.is-success{border-color:#86efac;background:#ecfdf5;}.set-tags-action-card.is-selected.is-warning{border-color:#fcd34d;background:#fffbeb;}.set-tags-action-card.is-selected.is-danger{border-color:#fca5a5;background:#fef2f2;}.set-tags-action-radio{width:1.15rem;height:1.15rem;border-radius:999px;border:2px solid #dbe2ea;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.5rem;flex-shrink:0;}.set-tags-action-card.is-selected .set-tags-action-radio{border-color:var(--bs-primary);}.set-tags-action-card.is-selected.is-success .set-tags-action-radio,.set-tags-action-card.is-selected.is-success .set-tags-action-icon{color:#16a34a;}.set-tags-action-card.is-selected.is-success .set-tags-action-radio{border-color:#16a34a;}.set-tags-action-card.is-selected.is-success .set-tags-action-icon{background:rgba(22,163,74,.12);}.set-tags-action-card.is-selected.is-warning .set-tags-action-radio,.set-tags-action-card.is-selected.is-warning .set-tags-action-icon{color:#d97706;}.set-tags-action-card.is-selected.is-warning .set-tags-action-radio{border-color:#d97706;}.set-tags-action-card.is-selected.is-warning .set-tags-action-icon{background:rgba(217,119,6,.12);}.set-tags-action-card.is-selected.is-danger .set-tags-action-radio,.set-tags-action-card.is-selected.is-danger .set-tags-action-icon{color:#dc2626;}.set-tags-action-card.is-selected.is-danger .set-tags-action-radio{border-color:#dc2626;}.set-tags-action-card.is-selected.is-danger .set-tags-action-icon{background:rgba(220,38,38,.12);}.set-tags-action-icon{width:2rem;height:2rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-tags-action-copy{display:flex;flex-direction:column;gap:.15rem;min-width:0;}.set-tags-action-title{color:#374151;font-size:.92rem;font-weight:800;}.set-tags-action-description{color:#94a3b8;font-size:.8rem;font-weight:600;line-height:1.45;}.set-tags-notify-card{width:100%;border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;}.set-tags-notify-copy{display:flex;flex-direction:column;gap:.15rem;}.set-tags-notify-title{color:var(--bs-secondary);font-size:.92rem;font-weight:800;}.set-tags-notify-description{color:#94a3b8;font-size:.8rem;font-weight:600;}.set-tags-toggle{width:2.8rem;height:1.7rem;border-radius:999px;background:#e5e7eb;padding:.15rem;display:inline-flex;align-items:center;transition:background-color .2s ease;flex-shrink:0;}.set-tags-toggle.is-on{justify-content:flex-end;background:rgba(var(--bs-primary-rgb),.22);}.set-tags-toggle-knob{width:1.35rem;height:1.35rem;border-radius:999px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.16);}.set-tags-toggle.is-on .set-tags-toggle-knob{background:var(--bs-primary);}.set-tags-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:1.35rem;}.set-tags-modal-help{margin-top:.9rem;display:flex;justify-content:flex-end;}.set-tags-preview-copy{margin-bottom:1rem;}.set-tags-preview-title{margin:0 0 .3rem;color:var(--bs-secondary);font-size:1.3rem;font-weight:800;}.set-tags-preview-subtitle{margin:0;color:#94a3b8;font-size:.92rem;font-weight:600;line-height:1.6;}.set-tags-preview-table{border-top:1px solid #edf2f7;}.set-tags-preview-head,.set-tags-preview-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:center;}.set-tags-preview-head{padding:.85rem .25rem .75rem;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-tags-preview-head .is-success{color:#16a34a;}.set-tags-preview-head .is-danger{color:#ef4444;}.set-tags-preview-row{padding:.95rem .6rem;border-top:1px solid #f1f5f9;background:#fff;}.set-tags-preview-member{display:flex;align-items:center;gap:.85rem;min-width:0;}.set-tags-preview-avatar{width:2.25rem;height:2.25rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8rem;font-weight:800;}.set-tags-preview-avatar.is-male{background:#e0f2fe;color:#0284c7;}.set-tags-preview-avatar.is-female{background:#fce7f3;color:#db2777;}.set-tags-preview-name{color:var(--bs-secondary);font-size:.98rem;font-weight:800;}.set-tags-preview-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0;}.set-tags-preview-tag{display:inline-flex;align-items:center;min-height:2rem;padding:.22rem .65rem;border-radius:10px;border:1px solid #e5e7eb;background:#fff;color:#64748b;font-size:.84rem;font-weight:700;}.set-tags-preview-tag.is-success{border-color:#86efac;background:#ecfdf5;color:#16a34a;}.set-tags-preview-tag.is-remove,.set-tags-preview-tag.is-danger{border-color:#fca5a5;background:#fef2f2;color:#ef4444;}.set-tags-preview-empty{color:#cbd5e1;font-size:1.1rem;font-weight:700;}.set-tags-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem;}.set-tags-preview-apply{min-height:52px;border-radius:14px;padding:0 1.35rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:0;color:#fff;font-size:.9rem;font-weight:800;}.set-tags-preview-apply.is-success{background:#16a34a;}.set-tags-preview-apply.is-warning{background:#d97706;}.set-tags-preview-apply.is-danger{background:#ef4444;}.set-tags-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.25rem 0 .5rem;}.set-tags-success-icon{width:5.3rem;height:5.3rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #99f6e4;background:#ecfdf5;color:#15803d;font-size:2rem;}.set-tags-success-title{margin:1.5rem 0 .45rem;color:var(--bs-secondary);font-size:1.85rem;font-weight:800;}.set-tags-success-subtitle{margin:0;color:#94a3b8;font-size:1rem;font-weight:600;line-height:1.6;}.set-tags-success-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.6rem;}.set-tags-success-tag{display:inline-flex;align-items:center;gap:.45rem;min-height:2.45rem;padding:.3rem .95rem;border-radius:12px;border:1px solid #86efac;background:#ecfdf5;color:#16a34a;font-size:.92rem;font-weight:800;}.set-tags-success-button{min-width:150px;margin-top:2rem;}.set-affiliation-modal{padding:1.5rem;}.set-affiliation-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem;}.set-affiliation-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.set-affiliation-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:#ecfeff;color:#14b8a6;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-affiliation-title{margin:0 0 .15rem;font-size:1rem;font-weight:800;}.set-affiliation-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.set-affiliation-close{width:2.1rem;height:2.1rem;border:0;border-radius:999px;background:#f8fafc;color:#a0aec0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-affiliation-body{display:flex;flex-direction:column;gap:1rem;}.set-affiliation-info{display:flex;align-items:flex-start;gap:.85rem;padding:.95rem 1rem;border:1px solid #99f6e4;border-radius:14px;background:#f0fdfa;}.set-affiliation-info-icon{width:1.85rem;height:1.85rem;border-radius:10px;border:1px solid #99f6e4;color:#14b8a6;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-affiliation-info-copy h3{margin:0 0 .5rem;color:#14b8a6;font-size:.92rem;font-weight:800;}.set-affiliation-info-copy p{margin:0;color:#7c8aa5;font-size:.82rem;font-weight:600;line-height:1.65;}.set-affiliation-info-copy p+p{margin-top:.85rem;}.set-affiliation-info-copy strong,.set-affiliation-info-copy a,.set-affiliation-info-copy .is-affiliated{color:var(--bs-secondary);}.set-affiliation-info-copy .is-affiliated{color:#10b981;}.set-affiliation-info-copy .is-not-affiliated{color:#ef4444;}.set-affiliation-info-copy a{color:#14b8a6;text-decoration:none;}.set-affiliation-section{display:flex;flex-direction:column;gap:.65rem;}.set-affiliation-section-label{color:#94a3b8;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-affiliation-status-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.45rem;border-radius:14px;background:#f3f5f9;}.set-affiliation-status-option{min-height:2.7rem;border:0;border-radius:10px;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.88rem;font-weight:800;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease;}.set-affiliation-status-option.is-selected.is-affiliated{background:#10b981;color:#fff;box-shadow:0 12px 24px rgba(16,185,129,.18);}.set-affiliation-status-option.is-selected.is-not-affiliated{background:#ea2525;color:#fff;box-shadow:0 12px 24px rgba(234,37,37,.18);}.set-affiliation-table{border:1px solid #e5eaf3;border-radius:16px;overflow:hidden;background:#fff;}.set-affiliation-table-head,.set-affiliation-table-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr) minmax(0,.95fr);gap:.85rem;align-items:center;}.set-affiliation-table-head{padding:.8rem 1rem;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-affiliation-table-row{padding:.95rem 1rem;border-top:1px solid #eef2f7;}.set-affiliation-member{display:flex;align-items:center;gap:.75rem;min-width:0;}.set-affiliation-avatar,.set-affiliation-success-avatar{width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;flex-shrink:0;}.set-affiliation-avatar.is-male,.set-affiliation-success-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.set-affiliation-avatar.is-female,.set-affiliation-success-avatar.is-female{background:#fce7f3;color:#db2777;}.set-affiliation-member-name{min-width:0;color:#334155;font-size:.84rem;font-weight:700;}.set-affiliation-status-cell{display:inline-flex;align-items:center;}.set-affiliation-status-cell.is-after{gap:.55rem;}.set-affiliation-status-arrow{color:#14b8a6;font-size:1rem;}.set-affiliation-badge{min-height:1.8rem;padding:.16rem .58rem;border-radius:10px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.7rem;font-weight:800;white-space:nowrap;}.set-affiliation-badge.is-affiliated{border-color:#99f6e4;background:#f0fdfa;color:#10b981;}.set-affiliation-badge.is-not-affiliated{border-color:#fecaca;background:#fef2f2;color:#ef4444;}.set-affiliation-notify-card{width:100%;border:1px solid #e5e7eb;border-radius:14px;background:#fff;display:flex;align-items:center;gap:.85rem;padding:.95rem 1rem;text-align:left;}.set-affiliation-notify-copy{display:flex;flex-direction:column;gap:.15rem;}.set-affiliation-notify-title{color:var(--bs-secondary);font-size:.84rem;font-weight:800;}.set-affiliation-notify-description{color:#94a3b8;font-size:.74rem;font-weight:600;}.set-affiliation-toggle{width:2.5rem;height:1.5rem;padding:.15rem;border-radius:999px;background:#e5e7eb;display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0;}.set-affiliation-toggle.is-on{justify-content:flex-end;background:rgba(20,184,166,.22);}.set-affiliation-toggle-knob{width:1.2rem;height:1.2rem;border-radius:999px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.18);}.set-affiliation-toggle.is-on .set-affiliation-toggle-knob{background:#14b8a6;}.set-affiliation-error{margin-top:.2rem;}.set-affiliation-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem;}.set-affiliation-primary,.set-affiliation-secondary{min-height:42px;border-radius:12px;padding:0 1.15rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.84rem;font-weight:800;}.set-affiliation-primary{border:1px solid #14b8a6;background:#14b8a6;color:#fff;box-shadow:0 10px 24px rgba(20,184,166,.2);}.set-affiliation-secondary{border:1px solid #e5e7eb;background:#fff;color:#94a3b8;}.set-affiliation-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0 .5rem;}.set-affiliation-success-icon{width:4.5rem;height:4.5rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #99f6e4;background:#ecfeff;color:#14b8a6;font-size:1.65rem;}.set-affiliation-success-title{margin:1.4rem 0 .45rem;color:var(--bs-secondary);font-size:1.35rem;font-weight:800;}.set-affiliation-success-subtitle{margin:0;color:var(--bs-secondary);font-size:.88rem;font-weight:700;display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;}.set-affiliation-success-subtitle .is-affiliated{color:#10b981;}.set-affiliation-success-subtitle .is-not-affiliated{color:#ef4444;}.set-affiliation-success-students{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1.6rem;}.set-affiliation-success-student{display:inline-flex;align-items:center;gap:.5rem;min-height:2.1rem;padding:.24rem .72rem;border-radius:12px;border:1px solid #99f6e4;background:#f0fdfa;color:#14b8a6;font-size:.76rem;font-weight:700;}.set-affiliation-success-more{display:inline-flex;align-items:center;color:#94a3b8;font-size:.76rem;font-weight:700;}.set-affiliation-success-button{min-width:120px;margin-top:1.4rem;}.set-sub-group-modal{padding:1.5rem;}.set-sub-group-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem;}.set-sub-group-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.set-sub-group-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:#fff7ed;color:#ff7a1a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-sub-group-title{margin:0 0 .15rem;font-size:1rem;font-weight:800;}.set-sub-group-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.set-sub-group-close{width:2.1rem;height:2.1rem;border:0;border-radius:999px;background:#f8fafc;color:#a0aec0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-sub-group-body{display:flex;flex-direction:column;gap:1rem;}.set-sub-group-info{display:flex;align-items:flex-start;gap:.85rem;padding:.95rem 1rem;border:1px solid #fdba74;border-radius:14px;background:#fff7ed;}.set-sub-group-info-icon{width:1.85rem;height:1.85rem;border-radius:10px;border:1px solid #fdba74;color:#ff7a1a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.set-sub-group-info-copy h3{margin:0 0 .5rem;color:#ff7a1a;font-size:.92rem;font-weight:800;}.set-sub-group-info-copy p{margin:0;color:#7c8aa5;font-size:.82rem;font-weight:600;line-height:1.65;}.set-sub-group-info-copy .is-accent,.set-sub-group-info-copy strong{color:#ff7a1a;}.set-sub-group-section{display:flex;flex-direction:column;gap:.65rem;}.set-sub-group-section-label{color:#94a3b8;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-sub-group-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.45rem;border-radius:14px;background:#f3f5f9;}.set-sub-group-mode-option{min-height:2.7rem;border:0;border-radius:10px;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.88rem;font-weight:800;}.set-sub-group-mode-option.is-selected{background:#ff7a1a;color:#fff;box-shadow:0 12px 24px rgba(255,122,26,.18);}.set-sub-group-existing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;}.set-sub-group-existing-card{min-height:4.8rem;border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:.8rem .85rem;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:.5rem;}.set-sub-group-existing-card.is-selected{border-color:#fdba74;background:#fff7ed;}.set-sub-group-existing-card-top{display:flex;align-items:center;gap:.55rem;}.set-sub-group-existing-initials{width:1.55rem;height:1.55rem;border-radius:999px;background:#f1f5f9;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:800;flex-shrink:0;}.set-sub-group-existing-name{color:#334155;font-size:.84rem;font-weight:700;}.set-sub-group-existing-card.is-selected .set-sub-group-existing-initials{background:#ff7a1a;color:#fff;}.set-sub-group-existing-card.is-selected .set-sub-group-existing-name{color:#ff7a1a;}.set-sub-group-existing-meta{color:#94a3b8;font-size:.72rem;font-weight:600;}.set-sub-group-input{width:100%;min-height:44px;border:1px solid #fdba74;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.84rem;font-weight:600;padding:0 .9rem;outline:0;}.set-sub-group-input:focus{border-color:#ff7a1a;box-shadow:0 0 0 .18rem rgba(255,122,26,.12);}.set-sub-group-input-help{color:#94a3b8;font-size:.72rem;font-weight:600;}.set-sub-group-table{border:1px solid #e5eaf3;border-radius:16px;overflow:hidden;background:#fff;}.set-sub-group-table-head,.set-sub-group-table-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr) minmax(0,.95fr);gap:.85rem;align-items:center;}.set-sub-group-table-head{padding:.8rem 1rem;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-sub-group-table-row{padding:.95rem 1rem;border-top:1px solid #eef2f7;}.set-sub-group-member{display:flex;align-items:center;gap:.75rem;min-width:0;}.set-sub-group-avatar,.set-sub-group-success-avatar{width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;flex-shrink:0;}.set-sub-group-avatar.is-male,.set-sub-group-success-avatar.is-male{background:#fff7ed;color:#c2410c;}.set-sub-group-avatar.is-female,.set-sub-group-success-avatar.is-female{background:#fce7f3;color:#db2777;}.set-sub-group-member-name{min-width:0;color:#334155;font-size:.84rem;font-weight:700;}.set-sub-group-status-cell{display:inline-flex;align-items:center;}.set-sub-group-status-cell.is-after{gap:.55rem;}.set-sub-group-status-arrow{color:#ff7a1a;font-size:1rem;}.set-sub-group-badge{min-height:1.8rem;padding:.16rem .58rem;border-radius:10px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;white-space:nowrap;}.set-sub-group-badge.is-current{border-color:#e5e7eb;background:#f8fafc;color:#64748b;}.set-sub-group-badge.is-next{border-color:#fdba74;background:#fff7ed;color:#ff7a1a;}.set-sub-group-notify-card{width:100%;border:1px solid #e5e7eb;border-radius:14px;background:#fff;display:flex;align-items:center;gap:.85rem;padding:.95rem 1rem;text-align:left;}.set-sub-group-notify-copy{display:flex;flex-direction:column;gap:.15rem;}.set-sub-group-notify-title{color:var(--bs-primary);font-size:.84rem;font-weight:800;}.set-sub-group-notify-description{color:#94a3b8;font-size:.74rem;font-weight:600;}.set-sub-group-toggle{width:2.5rem;height:1.5rem;padding:.15rem;border-radius:999px;background:#e5e7eb;display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0;}.set-sub-group-toggle.is-on{justify-content:flex-end;background:rgba(255,122,26,.22);}.set-sub-group-toggle-knob{width:1.2rem;height:1.2rem;border-radius:999px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.18);}.set-sub-group-toggle.is-on .set-sub-group-toggle-knob{background:#ff7a1a;}.set-sub-group-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem;}.set-sub-group-primary,.set-sub-group-secondary{min-height:42px;border-radius:12px;padding:0 1.15rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.84rem;font-weight:800;}.set-sub-group-primary{border:1px solid #ff7a1a;background:#ff7a1a;color:#fff;box-shadow:0 10px 24px rgba(255,122,26,.2);}.set-sub-group-secondary{border:1px solid #e5e7eb;background:#fff;color:#94a3b8;}.set-sub-group-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.8rem 0 .5rem;}.set-sub-group-success-icon{width:4.5rem;height:4.5rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fdba74;background:#fff7ed;color:#ff7a1a;font-size:1.65rem;}.set-sub-group-success-title{margin:1.4rem 0 .45rem;color:var(--bs-secondary);font-size:1.35rem;font-weight:800;}.set-sub-group-success-subtitle{margin:0;color:var(--bs-secondary);font-size:.88rem;font-weight:700;display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;}.set-sub-group-success-subtitle .is-accent{color:#ff7a1a;}.set-sub-group-success-students{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1.6rem;}.set-sub-group-success-student{display:inline-flex;align-items:center;gap:.5rem;min-height:2.1rem;padding:.24rem .72rem;border-radius:12px;border:1px solid #fdba74;background:#fff7ed;color:#ff7a1a;font-size:.76rem;font-weight:700;}.set-sub-group-success-more{display:inline-flex;align-items:center;color:#94a3b8;font-size:.76rem;font-weight:700;}.set-sub-group-success-button{min-width:120px;margin-top:1.4rem;}.manage-awards-modal{padding:1.5rem;}.manage-awards-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem;}.manage-awards-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.manage-awards-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:#fdf2f8;color:#ec4899;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.manage-awards-icon-primary{width:46px;height:46px;border-radius:14px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}.manage-awards-title{margin:0 0 .15rem;font-size:1rem;font-weight:800;}.manage-awards-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.manage-awards-close{width:2.1rem;height:2.1rem;border:0;border-radius:999px;background:#f8fafc;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;}.manage-awards-body{display:flex;flex-direction:column;gap:1rem;}.manage-awards-info{display:flex;align-items:flex-start;gap:.85rem;padding:.95rem 1rem;border:1px solid #f9a8d4;border-radius:14px;background:#fff8fb;}.manage-awards-info-icon{width:1.85rem;height:1.85rem;border-radius:10px;border:1px solid #f9a8d4;color:#ec4899;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.72rem;}.manage-awards-info-copy h3{margin:0 0 .45rem;color:#ec4899;font-size:.92rem;font-weight:800;}.manage-awards-info-copy p{margin:0;color:#7c8aa5;font-size:.8rem;font-weight:600;line-height:1.7;}.manage-awards-info-copy strong{color:var(--bs-secondary);}.manage-awards-info-copy .is-add{color:#ec4899;}.manage-awards-info-copy .is-remove{color:#ef4444;}.manage-awards-section{display:flex;flex-direction:column;gap:.65rem;}.manage-awards-section-label{color:#94a3b8;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.manage-awards-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.45rem;border-radius:14px;background:#f5f7fb;}.manage-awards-mode-option{min-height:2.7rem;border:0;border-radius:10px;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.86rem;font-weight:800;}.manage-awards-mode-option.is-selected.is-add{background:#ec4899;color:#fff;box-shadow:0 12px 24px rgba(236,72,153,.18);}.manage-awards-mode-option.is-selected.is-remove{background:#ea2525;color:#fff;box-shadow:0 12px 24px rgba(234,37,37,.18);}.manage-awards-picker-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;}.manage-awards-picker-title{display:inline-flex;align-items:center;gap:.35rem;color:#94a3b8;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.manage-awards-picker-count{color:#ec4899;}.manage-awards-picker-meta{display:inline-flex;align-items:center;gap:.75rem;color:#94a3b8;font-size:.72rem;font-weight:600;}.manage-awards-clear{border:0;background:transparent;color:#ef4444;font-size:.72rem;font-weight:700;padding:0;}.manage-awards-track-list{border:1px solid #f5c6dd;border-radius:16px;overflow:hidden;background:#fff;}.manage-awards-track-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:.9rem;align-items:center;padding:.8rem 1rem;}.manage-awards-track-row+.manage-awards-track-row{border-top:1px solid #f1f5f9;}.manage-awards-track-row.is-selected.is-add{background:#fff5fa;}.manage-awards-track-row.is-selected.is-remove{background:#fff5f5;}.manage-awards-track-name{display:inline-flex;align-items:center;gap:.7rem;min-width:0;color:#334155;font-size:.84rem;font-weight:800;}.manage-awards-track-icon{width:1.45rem;height:1.45rem;border-radius:999px;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;flex-shrink:0;}.manage-awards-track-icon.is-selected.is-add{background:#ec4899;color:#fff;}.manage-awards-track-icon.is-selected.is-remove{background:#ef4444;color:#fff;}.manage-awards-track-options{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}.manage-awards-track-chip{min-height:1.95rem;border:1px solid #dfe6f1;border-radius:9px;background:#fff;color:#475569;display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .75rem;font-size:.76rem;font-weight:700;}.manage-awards-track-chip.is-selected.is-add{border-color:#f472b6;background:#fff;color:#ec4899;}.manage-awards-track-chip.is-selected.is-remove{border-color:#f87171;background:#fff;color:#ef4444;}.manage-awards-table{border:1px solid #e5eaf3;border-radius:16px;overflow:hidden;background:#fff;}.manage-awards-table-head,.manage-awards-table-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1.35fr);gap:.85rem;align-items:center;}.manage-awards-table-head{padding:.8rem 1rem;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}.manage-awards-table-row{padding:.95rem 1rem;border-top:1px solid #eef2f7;}.manage-awards-member{display:flex;align-items:center;gap:.75rem;min-width:0;}.manage-awards-avatar{width:2rem;height:2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;flex-shrink:0;}.manage-awards-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.manage-awards-avatar.is-female{background:#fce7f3;color:#db2777;}.manage-awards-member-name{min-width:0;color:#334155;font-size:.84rem;font-weight:700;}.manage-awards-cell{display:inline-flex;align-items:center;min-width:0;}.manage-awards-cell.is-after{gap:.55rem;}.manage-awards-arrow{color:#ec4899;font-size:1rem;flex-shrink:0;}.manage-awards-badge-list{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;}.manage-awards-badge{min-height:1.7rem;padding:.14rem .5rem;border-radius:8px;border:1px solid #e5e7eb;background:#f8fafc;color:#64748b;display:inline-flex;align-items:center;gap:.24rem;font-size:.7rem;font-weight:700;}.manage-awards-badge.is-add{border-color:#f9a8d4;background:#fff1f8;color:#ec4899;}.manage-awards-badge.is-remove-empty{border-color:#fca5a5;background:#fef2f2;color:#ef4444;}.manage-awards-empty{color:#94a3b8;font-size:.78rem;font-weight:700;}.manage-awards-notify-card{width:100%;border:1px solid #e5e7eb;border-radius:14px;background:#fff;display:flex;align-items:center;gap:.9rem;padding:.95rem 1rem;}.manage-awards-notify-switch{margin:0;flex-shrink:0;}.manage-awards-notify-toggle{width:2.75rem!important;height:1.5rem;margin:0;cursor:pointer;}.manage-awards-notify-copy{display:flex;flex-direction:column;gap:.15rem;}.manage-awards-notify-title{color:var(--bs-primary);font-size:.84rem;font-weight:800;}.manage-awards-notify-description{color:#94a3b8;font-size:.76rem;font-weight:600;}.manage-awards-footer{display:flex;align-items:center;justify-content:space-between;gap:.85rem;margin-top:1rem;}.manage-awards-success{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.5rem 1rem 1rem;}.manage-awards-success-icon{width:6.2rem;height:6.2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:2.1rem;margin-bottom:1.5rem;background:#fff;border:2px solid transparent;}.manage-awards-success-icon.is-add{border-color:#f9a8d4;color:#ec4899;}.manage-awards-success-icon.is-remove{border-color:#fca5a5;color:#dc2626;}.manage-awards-success-title{margin:0;color:var(--bs-secondary);font-size:1.15rem;font-weight:800;}.manage-awards-success-subtitle{margin:.8rem 0 0;color:#94a3b8;font-size:.82rem;font-weight:600;}.manage-awards-success-subtitle strong{color:var(--bs-secondary);}.manage-awards-success-subtitle .is-add{color:#ec4899;font-weight:800;}.manage-awards-success-subtitle .is-remove{color:#ef4444;font-weight:800;}.manage-awards-success-awards{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:1.5rem;}.manage-awards-success-badge{min-height:2.2rem;padding:.24rem .8rem;border-radius:10px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:800;}.manage-awards-success-badge.is-add{border-color:#f9a8d4;background:#fff8fb;color:#ec4899;}.manage-awards-success-badge.is-remove{border-color:#fca5a5;background:#fff8f8;color:#ef4444;}.manage-awards-success-button{min-width:138px;margin:1.6rem auto 0!important;}.manage-awards-primary,.manage-awards-secondary{min-height:3rem;border-radius:12px;padding:0 1rem;display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:800;}.manage-awards-secondary{min-width:92px;border:1px solid #e5e7eb;background:#fff;color:#94a3b8;}.manage-awards-primary{min-width:156px;border:1px solid transparent;color:#fff;margin-left:auto;}.manage-awards-primary.is-add{background:#ec4899;border-color:#ec4899;}.manage-awards-primary.is-remove{background:#ea2525;border-color:#ea2525;}.manage-awards-primary:disabled{opacity:.45;cursor:not-allowed;}.subscription-management-modal{--subscription-stage-accent:var(--bs-primary);--subscription-stage-complete:#10b981;padding:1.5rem;display:flex;flex-direction:column;max-height:calc(100vh - 3rem);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;}.subscription-management-modal::-webkit-scrollbar{width:0;height:0;}.subscription-management-modal.is-remove-stage{--subscription-stage-accent:#dc2626;}.subscription-management-modal.is-add-stage{--subscription-stage-accent:#10b981;}.subscription-management-modal.is-apply-stage{--subscription-stage-accent:var(--bs-primary);}.subscription-management-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:0;padding-bottom:1rem;border-bottom:1px solid #edf2f7;}.subscription-management-header-copy{display:flex;align-items:flex-start;gap:.85rem;}.subscription-management-icon{width:2.25rem;height:2.25rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.subscription-management-title{margin:0 0 .15rem;font-size:1.15rem;font-weight:800;}.subscription-management-subtitle{margin:0;color:#94a3b8;font-size:.78rem;font-weight:600;}.subscription-management-header-actions{display:flex;align-items:center;gap:.85rem;}.subscription-management-stage-header{padding:1rem 0 1.15rem;border-bottom:1px solid #edf2f7;margin-bottom:1rem;}.subscription-management-steps{display:flex;align-items:center;gap:.5rem;width:100%;margin-bottom:10px;}.subscription-management-step{width:1.55rem;height:1.55rem;border-radius:999px;background:#eef2f7;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;}.subscription-management-step.is-active,.subscription-management-step.is-complete{background:var(--subscription-stage-accent);color:#fff;}.subscription-management-step.is-complete{border:1px solid var(--subscription-stage-complete);background:#fff;color:var(--subscription-stage-complete);}.subscription-management-step-label{color:#94a3b8;font-size:.78rem;font-weight:700;}.subscription-management-step-label.is-active{color:var(--subscription-stage-accent);}.subscription-management-step-label.is-complete{color:var(--subscription-stage-complete);}.subscription-management-step-line{flex:1 1 auto;height:1px;background:#dbe2ea;}.subscription-management-modal.is-add-stage .subscription-management-step-line:first-of-type,.subscription-management-modal.is-apply-stage .subscription-management-step-line:first-of-type{background:#10b981;}.subscription-management-modal.is-apply-stage .subscription-management-step-line:last-of-type{background:var(--bs-primary);}.subscription-management-close{width:2.1rem;height:2.1rem;border:0;border-radius:10px;background:#f3f4f6;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;padding:0;}.subscription-management-grid,.subscription-management-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;flex:1 1 auto;min-height:0;}.subscription-management-column,.subscription-management-preview-column{display:flex;flex-direction:column;min-height:0;}.subscription-management-column-title{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.8rem;color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.subscription-management-column-dot{width:.42rem;height:.42rem;border-radius:999px;background:#d1d5db;}.subscription-management-column-title.is-remove .subscription-management-column-dot{background:#fb7185;}.subscription-management-column-title.is-add .subscription-management-column-dot{background:#22c55e;}.subscription-management-list,.subscription-management-preview-list{display:grid;gap:.8rem;flex:1 1 auto;min-height:0;overflow:auto;padding-right:.2rem;}.subscription-management-card,.subscription-management-preview-card{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:1rem;}.subscription-management-card.is-selected.is-remove{border-color:#fda4af;background:#fff1f2;}.subscription-management-card.is-selected.is-add{border-color:#86efac;background:#ecfdf5;}.subscription-management-card-head,.subscription-management-preview-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.9rem;}.subscription-management-card-title,.subscription-management-preview-title{margin:0;color:var(--bs-secondary);font-size:.92rem;font-weight:800;}.subscription-management-card-price{display:inline-flex;align-items:center;min-height:1.55rem;padding:0 .55rem;border-radius:999px;background:#f5f7fb;color:#94a3b8;font-size:.7rem;font-weight:800;white-space:nowrap;}.subscription-management-label{display:block;margin-bottom:.2rem;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.subscription-management-help{margin:0 0 .65rem;color:#c0c8d8;font-size:.72rem;font-weight:600;}.subscription-management-input{width:100%;min-height:42px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.82rem;padding:.7rem .9rem;box-shadow:none;}.subscription-management-input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.subscription-management-card-button,.subscription-management-primary,.subscription-management-secondary,.subscription-management-secondary-action{min-height:42px;border-radius:12px;font-size:.82rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:0 1rem;}.subscription-management-card-button{width:100%;margin-top:.75rem;border:1px solid #e5e7eb;background:#f8fafc;color:#c0c8d8;}.subscription-management-card-button.is-selected{font-weight:900;}.subscription-management-card.is-selected.is-remove .subscription-management-card-button.is-selected{border-color:#fda4af;background:#ffe4e6;color:#e11d48;}.subscription-management-card.is-selected.is-add .subscription-management-card-button.is-selected{border-color:#6ee7b7;background:#d1fae5;color:#059669;}.subscription-management-card.is-selected.is-remove .subscription-management-input{border-color:#fecdd3;background:#fff;}.subscription-management-card.is-selected.is-add .subscription-management-input{border-color:#a7f3d0;background:#fff;}.subscription-management-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;}.subscription-management-primary:disabled,.subscription-management-card-button:disabled{opacity:.45;cursor:not-allowed;}.subscription-management-secondary,.subscription-management-secondary-action{border:1px solid #e5e7eb;background:#fff;color:#4b5870;}.subscription-management-preview{flex:1 1 auto;min-height:0;margin-bottom:1rem;}.subscription-management-preview-intro{margin:0 0 1rem;color:#94a3b8;font-size:.8rem;font-weight:600;line-height:1.6;}.subscription-management-preview-intro .is-add{color:#16a34a;font-weight:800;}.subscription-management-preview-intro .is-remove{color:#dc2626;font-weight:800;}.subscription-management-preview-students{display:grid;gap:.9rem;max-height:520px;overflow:auto;padding-right:.2rem;}.subscription-management-preview-student-card{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:.95rem 1rem;}.subscription-management-preview-student-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem;}.subscription-management-preview-avatar{width:2rem;height:2rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;flex-shrink:0;}.subscription-management-preview-student-name{color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.subscription-management-preview-chip-list{display:flex;flex-wrap:wrap;gap:.55rem;}.subscription-management-preview-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:0 .7rem;border-radius:10px;border:1px solid #e5e7eb;background:#fff;font-size:.76rem;font-weight:700;}.subscription-management-preview-chip.is-add{border-color:#86efac;background:#ecfdf5;color:#16a34a;}.subscription-management-preview-chip.is-remove{border-color:#fda4af;background:#fff1f2;color:#dc2626;}.subscription-management-preview-summary{color:#94a3b8;font-size:.78rem;font-weight:700;white-space:nowrap;}.subscription-management-apply-state{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.25rem 1rem 1rem;text-align:center;}.subscription-management-apply-shell{display:flex;flex-direction:column;gap:1.15rem;}.subscription-management-apply-progress-card,.subscription-management-apply-rows-card,.subscription-management-apply-success-card{border:1px solid #e6ebf3;border-radius:18px;background:#fff;box-shadow:0 18px 36px rgba(15,23,42,.05),0 3px 10px rgba(15,23,42,.04);}.subscription-management-apply-progress-card{padding:1rem 1.05rem .95rem;}.subscription-management-apply-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.7rem;}.subscription-management-apply-progress-copy{display:flex;align-items:flex-start;gap:.75rem;}.subscription-management-apply-progress-spinner{width:1.15rem;height:1.15rem;border-radius:999px;border:2px solid rgba(var(--bs-primary-rgb),.16);border-top-color:var(--bs-primary);animation:subscription-management-ring-spin .9s linear infinite;flex-shrink:0;margin-top:.1rem;}.subscription-management-apply-progress-title{color:var(--bs-secondary);font-size:.92rem;font-weight:800;}.subscription-management-apply-progress-meta{color:#94a3b8;font-size:.76rem;font-weight:600;}.subscription-management-apply-progress-percent{color:var(--bs-primary);font-size:1.8rem;font-weight:900;line-height:1;}.subscription-management-apply-progress-bar{height:.55rem;border-radius:999px;background:#edf2f7;overflow:hidden;}.subscription-management-apply-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--bs-primary);}.subscription-management-apply-rows-card{overflow:hidden;padding:0;}.subscription-management-apply-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-top:1px solid #edf2f7;}.subscription-management-apply-row:first-child{border-top:0;}.subscription-management-apply-row.is-processing{background:rgba(var(--bs-primary-rgb),.08);}.subscription-management-apply-row-main{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1 1 auto;}.subscription-management-apply-row-state{width:1.2rem;height:1.2rem;border-radius:999px;border:1px solid #dbe2ea;color:#c0c8d8;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.subscription-management-apply-row.is-complete .subscription-management-apply-row-state{border-color:#10b981;background:#10b981;color:#fff;}.subscription-management-apply-row-spinner{width:.85rem;height:.85rem;border-radius:999px;border:2px solid rgba(var(--bs-primary-rgb),.16);border-top-color:var(--bs-primary);animation:subscription-management-ring-spin .9s linear infinite;}.subscription-management-apply-row-student{color:var(--bs-secondary);font-size:.84rem;font-weight:800;white-space:nowrap;}.subscription-management-apply-row-action{display:inline-flex;align-items:center;min-height:1.55rem;padding:0 .55rem;border-radius:8px;background:#f8fafc;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.subscription-management-apply-row-action.is-remove{background:#fff1f2;color:#dc2626;}.subscription-management-apply-row-action.is-add{background:#ecfdf5;color:#059669;}.subscription-management-apply-row-status{color:#c0c8d8;font-size:.78rem;font-weight:800;white-space:nowrap;}.subscription-management-apply-row-status.is-processing{color:var(--bs-primary);}.subscription-management-apply-row-status.is-done{color:#047857;}.subscription-management-stage-title-success{color:#047857;}.subscription-management-apply-success-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:154px;padding:1.8rem 1rem;}.subscription-management-apply-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.3rem;}.subscription-management-apply-footer-copy{color:#94a3b8;font-size:.82rem;font-weight:600;}.subscription-management-apply-progress{margin-bottom:1rem;}.subscription-management-apply-ring,.subscription-management-apply-success-icon{width:5.25rem;height:5.25rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;}.subscription-management-apply-ring{position:relative;border:4px solid #d1fae5;color:#10b981;font-size:1.1rem;font-weight:900;}.subscription-management-apply-ring-spinner{position:absolute;inset:-4px;border-radius:999px;border:4px solid transparent;border-top-color:#10b981;border-left-color:#10b981;animation:subscription-management-ring-spin .9s linear infinite;}.subscription-management-apply-ring-count{position:relative;z-index:1;}.subscription-management-apply-success-icon{background:#d1fae5;color:#059669;font-size:2rem;margin-bottom:1rem;}.subscription-management-apply-title{margin:0 0 .5rem;color:var(--bs-secondary);font-size:1.1rem;font-weight:800;}.subscription-management-apply-subtitle{margin:0 0 1.5rem;color:#94a3b8;font-size:.82rem;font-weight:600;}.subscription-management-apply-students{width:min(100%,420px);display:grid;gap:.55rem;}.subscription-management-apply-student{min-height:42px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;color:#6b7280;padding:.75rem .95rem;display:flex;align-items:center;gap:.65rem;font-size:.82rem;font-weight:700;text-align:left;}.subscription-management-apply-student.is-complete{border-color:#86efac;background:#dff7ef;color:#047857;}.subscription-management-apply-student-icon{width:1.25rem;height:1.25rem;border-radius:999px;background:#eef2f7;color:#9ca3af;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;flex-shrink:0;}.subscription-management-apply-student.is-complete .subscription-management-apply-student-icon{background:#10b981;color:#fff;}@keyframes subscription-management-ring-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}.members-audit-summary-pill.is-missing{background:#1f2b58;border-color:#1f2b58;color:#fff;}.subscription-management-preview-card.is-remove{border-color:rgba(244,63,94,.2);}.subscription-management-preview-card.is-add{border-color:rgba(34,197,94,.2);}.subscription-management-preview-meta,.subscription-management-empty{color:#94a3b8;font-size:.8rem;font-weight:600;}.subscription-management-empty{border:1px dashed #dbe2ea;border-radius:16px;background:#fff;padding:1rem;}.subscription-management-success{margin-top:1rem;margin-bottom:1rem;border:1px solid #a7f3d0;border-radius:18px;background:#ecfdf5;color:#047857;padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}.subscription-management-success-copy{display:inline-flex;align-items:center;gap:.6rem;font-size:.84rem;font-weight:700;}.subscription-management-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #edf2f7;background:#fff;flex-shrink:0;}.subscription-management-footer-meta{display:inline-flex;align-items:center;gap:.9rem;}.subscription-management-footer-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto;}.subscription-management-footer-actions .subscription-management-preview-summary{margin-right:.25rem;}.subscription-management-loading{margin-left:auto;}.subscription-management-stage-title{margin:0 0 .35rem;color:#059669;font-size:1.15rem;font-weight:800;}.subscription-management-stage-subtitle{margin:0;color:#94a3b8;font-size:.8rem;font-weight:600;}.subscription-management-remove-stage{display:flex;flex-direction:column;gap:1.15rem;}.subscription-management-remove-panel,.subscription-management-students-card{border:1px solid #fbc8d0;border-radius:18px;background:#fff;box-shadow:0 18px 36px rgba(15,23,42,.05),0 3px 10px rgba(15,23,42,.04);}.subscription-management-add-panel{border:1px solid #b7f1dc;border-radius:18px;background:#fff;padding:.9rem;box-shadow:0 18px 36px rgba(15,23,42,.05),0 3px 10px rgba(15,23,42,.04);}.subscription-management-review-stage{display:flex;flex-direction:column;gap:1.15rem;}.subscription-management-remove-panel{padding:.9rem;}.subscription-management-remove-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem;}.subscription-management-add-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem;}.subscription-management-remove-panel-copy{display:flex;align-items:flex-start;gap:.7rem;}.subscription-management-add-panel-copy{display:flex;align-items:flex-start;gap:.7rem;}.subscription-management-remove-panel-icon{width:1.3rem;height:1.3rem;border-radius:999px;border:1px solid #fda4af;background:#fff1f2;color:#ef4444;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;}.subscription-management-add-panel-icon{width:1.3rem;height:1.3rem;border-radius:999px;border:1px solid #86efac;background:#ecfdf5;color:#10b981;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;}.subscription-management-remove-panel-title{margin:0 0 .15rem;color:var(--bs-secondary);font-size:.92rem;font-weight:800;}.subscription-management-add-panel-title{margin:0 0 .15rem;color:var(--bs-secondary);font-size:.92rem;font-weight:800;}.subscription-management-remove-panel-subtitle{margin:0;color:#94a3b8;font-size:.73rem;font-weight:600;}.subscription-management-add-panel-subtitle{margin:0;color:#94a3b8;font-size:.73rem;font-weight:600;}.subscription-management-remove-summary-chip{display:inline-flex;align-items:center;min-height:1.9rem;padding:.2rem .7rem;border-radius:999px;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;white-space:nowrap;}.subscription-management-add-summary-chip{display:inline-flex;align-items:center;min-height:1.9rem;padding:.2rem .7rem;border-radius:999px;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;white-space:nowrap;}.subscription-management-remove-summary-chip.is-active{background:#fff1f2;color:#ef4444;}.subscription-management-add-summary-chip.is-active{background:#ecfdf5;color:#10b981;}.subscription-management-remove-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.9rem;}.subscription-management-add-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.9rem;}.subscription-management-remove-selection-chip,.subscription-management-remove-toggle{min-height:2rem;border-radius:12px;display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:700;}.subscription-management-add-selection-chip,.subscription-management-add-toggle{min-height:2rem;border-radius:12px;display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:700;}.subscription-management-remove-selection-chip{border:1px solid #fda4af;background:#fff1f2;color:#dc2626;padding:.3rem .55rem .3rem .65rem;}.subscription-management-remove-selection-chip i{width:1rem;height:1rem;border-radius:999px;background:#ef4444;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;}.subscription-management-add-selection-chip{border:1px solid #86efac;background:#ecfdf5;color:#059669;padding:.3rem .55rem .3rem .65rem;}.subscription-management-add-selection-chip i{width:1rem;height:1rem;border-radius:999px;background:#10b981;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.62rem;}.subscription-management-remove-toggle{border:1px dashed #fda4af;background:#fff;color:#ef4444;padding:0 .7rem;}.subscription-management-add-toggle{border:1px dashed #86efac;background:#fff;color:#10b981;padding:0 .7rem;}.subscription-management-remove-toggle i:last-child{font-size:.66rem;}.subscription-management-add-toggle i:last-child{font-size:.66rem;}.subscription-management-catalogue{border:1px solid #fca5a5;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fffafa 100%);padding:.75rem;}.subscription-management-add-catalogue{border:1px solid #bbf7d0;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#f7fffb 100%);padding:.75rem;}.subscription-management-catalogue-head{margin-bottom:.55rem;}.subscription-management-catalogue-title{display:inline-flex;align-items:center;gap:.45rem;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}.subscription-management-catalogue-list{display:grid;gap:.55rem;}.subscription-management-catalogue-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;border-radius:14px;padding:.55rem .6rem;}.subscription-management-catalogue-row.is-selected{background:#fff1f2;}.subscription-management-catalogue-row.is-selected.is-add{background:#ecfdf5;}.subscription-management-catalogue-main{display:flex;align-items:center;gap:.65rem;min-width:0;}.subscription-management-catalogue-checkbox{margin-top:0;flex-shrink:0;accent-color:var(--subscription-stage-accent);}.subscription-management-plan-pill{display:inline-flex;align-items:center;gap:.35rem;min-height:1.8rem;padding:.18rem .65rem;border-radius:10px;background:#f5f7fb;color:#334155;font-size:.78rem;font-weight:800;}.subscription-management-plan-pill span{color:#94a3b8;font-weight:700;}.subscription-management-plan-pill.is-selected{background:#ffe4e6;color:#dc2626;}.subscription-management-plan-pill.is-selected span{color:#ef4444;}.subscription-management-plan-pill.is-selected.is-add{background:#d1fae5;color:#047857;}.subscription-management-plan-pill.is-selected.is-add span{color:#10b981;}.subscription-management-catalogue-side{display:flex;align-items:center;gap:.8rem;}.subscription-management-catalogue-count{color:#94a3b8;font-size:.74rem;font-weight:700;white-space:nowrap;}.subscription-management-catalogue-date-wrap{display:inline-flex;align-items:center;gap:.45rem;}.subscription-management-catalogue-date-label{color:#ef4444;font-size:.73rem;font-weight:800;margin:0;}.subscription-management-catalogue-date-label.is-add{color:#10b981;}.subscription-management-catalogue-date{min-width:116px;min-height:2rem;border:1px solid #fca5a5;border-radius:10px;background:#fff;color:#dc2626;padding:.3rem .6rem;font-size:.76rem;font-weight:700;}.subscription-management-catalogue-date.is-add{border-color:#86efac;color:#047857;}.subscription-management-catalogue-footer{display:flex;justify-content:flex-end;margin-top:.7rem;}.subscription-management-catalogue-done{min-width:88px;}.subscription-management-students-card{border-color:#e6ebf3;overflow:hidden;padding:0;}.subscription-management-students-card.is-add-stage{border-color:#d8efe4;}.subscription-management-review-card{border:1px solid #e6ebf3;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 18px 36px rgba(15,23,42,.05),0 3px 10px rgba(15,23,42,.04);}.subscription-management-review-head,.subscription-management-review-row{display:grid;grid-template-columns:170px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:1rem;}.subscription-management-review-head{padding:.75rem .95rem;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}.subscription-management-review-head .is-remove{color:#dc2626;}.subscription-management-review-head .is-add{color:#059669;}.subscription-management-review-list{display:grid;}.subscription-management-review-row{align-items:flex-start;padding:.9rem .95rem;border-top:1px solid #edf2f7;}.subscription-management-review-student{display:flex;align-items:center;gap:.7rem;min-width:0;}.subscription-management-review-column{display:flex;flex-wrap:wrap;gap:.45rem;align-content:flex-start;min-height:2rem;}.subscription-management-confirm-card{display:flex;align-items:flex-start;gap:.9rem;border:1px solid #e6ebf3;border-radius:16px;background:#fff;padding:.95rem 1rem;cursor:pointer;box-shadow:0 18px 36px rgba(15,23,42,.05),0 3px 10px rgba(15,23,42,.04);}.subscription-management-confirm-card .form-check-input{margin-top:.15rem;width:1.1rem;height:1.1rem;flex-shrink:0;}.subscription-management-confirm-copy{display:flex;flex-direction:column;gap:.18rem;}.subscription-management-confirm-title{color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.subscription-management-confirm-subtitle{color:#94a3b8;font-size:.75rem;font-weight:600;}.subscription-management-primary-apply{border-color:#10b981;background:#10b981;}.subscription-management-students-head,.subscription-management-student-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:1rem;}.subscription-management-students-head{padding:.75rem .95rem;background:#f8fafc;color:#94a3b8;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}.subscription-management-students-list{display:grid;}.subscription-management-student-row{align-items:stretch;padding:.85rem .95rem;border-top:1px solid #edf2f7;}.subscription-management-student-row.is-affected{background:#fff5f5;}.subscription-management-student-row.is-add-affected{background:#edfdf6;}.subscription-management-student-col{display:flex;align-items:center;gap:.7rem;min-width:0;}.subscription-management-student-avatar{width:2rem;height:2rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;flex-shrink:0;}.subscription-management-student-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.subscription-management-student-avatar.is-female{background:#fce7f3;color:#db2777;}.subscription-management-student-copy{min-width:0;}.subscription-management-student-name{color:var(--bs-secondary);font-size:.88rem;font-weight:800;line-height:1.2;}.subscription-management-student-meta{margin-top:.18rem;color:#94a3b8;font-size:.72rem;font-weight:700;}.subscription-management-student-meta.is-remove{color:#ef4444;}.subscription-management-student-meta.is-add{color:#10b981;}.subscription-management-student-subscriptions{display:flex;flex-wrap:wrap;gap:.45rem;align-content:center;}.subscription-management-audit-pair{display:inline-flex;align-items:center;flex-wrap:wrap;border-radius:10px;overflow:hidden;font-size:.74rem;font-weight:800;}.subscription-management-audit-part{min-height:1.8rem;display:inline-flex;align-items:center;gap:.4rem;padding:0 .68rem;border:1px solid transparent;}.subscription-management-audit-pair.is-due .subscription-management-audit-part{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1;}.subscription-management-audit-pair.is-paid .subscription-management-audit-part{background:#e8faf2;border-color:#86efac;color:#15803d;}.subscription-management-audit-pair.is-overdue .subscription-management-audit-part{background:#fff1f2;border-color:#fda4af;color:#dc2626;}.subscription-management-audit-pair .subscription-management-audit-part+.subscription-management-audit-part{border-left-width:0;}.subscription-management-student-chip{display:inline-flex;align-items:center;gap:.42rem;min-height:1.8rem;padding:.18rem .55rem;border-radius:10px;border:1px solid #e5e7eb;background:#f8fafc;color:#334155;font-size:.75rem;font-weight:700;}.subscription-management-student-chip.is-remove{border-color:#fda4af;background:#fff1f2;color:#dc2626;}.subscription-management-student-chip.is-remove>span:first-child{text-decoration:line-through;text-decoration-thickness:1px;}.subscription-management-student-chip.is-add{border-color:#86efac;background:#ecfdf5;color:#047857;}.subscription-management-student-chip-date{display:inline-flex;align-items:center;min-height:1.2rem;padding:0 .35rem;border-radius:7px;background:#fff;color:#dc2626;font-size:.68rem;font-weight:800;}.subscription-management-student-chip-date.is-add{color:#047857;}.subscription-management-student-empty{color:#94a3b8;font-size:.82rem;font-weight:700;}.credit-adjustment-modal{padding:1.35rem 1.45rem 1.25rem;color:#233253;}.a2b-hidden{display:none!important;}.a2b-modal-card{display:flex;flex-direction:column;gap:1.4rem;}.a2b-modal-header{display:flex;align-items:flex-start;gap:1rem;}.a2b-modal-icon{width:52px;height:52px;border-radius:16px;background:rgba(var(--bs-primary-rgb),.09);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;flex-shrink:0;}.a2b-modal-title{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.03em;}.a2b-modal-subtitle{margin:0;color:#94a3c1;font-size:.98rem;line-height:1.55;}.a2b-step-dots{display:inline-flex;align-items:center;gap:.5rem;margin-left:auto;}.a2b-dot{width:11px;height:11px;border-radius:999px;border:2px solid #d6deeb;background:#fff;}.a2b-dot--active,.a2b-dot--done{border-color:var(--bs-primary);background:var(--bs-primary);box-shadow:0 0 0 4px rgba(var(--bs-primary-rgb),.12);}.a2b-dot--pending{background:#f8fafc;}.a2b-close-btn{width:44px;height:44px;border:0;border-radius:14px;background:#f5f7fb;color:#6b7a99;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .2s ease,color .2s ease,transform .2s ease;}.a2b-close-btn:hover{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);transform:translateY(-1px);}.a2b-modal-body{display:flex;flex-direction:column;gap:1rem;}.a2b-form-section{display:flex;flex-direction:column;gap:.72rem;}.a2b-label{color:#8a98b6;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.a2b-required-star{color:#ef4444;}.a2b-member-chips{display:flex;flex-wrap:wrap;gap:.7rem;}.a2b-member-chip{display:inline-flex;align-items:center;gap:.7rem;padding:.45rem .75rem .45rem .48rem;border:1px solid #dce4f1;border-radius:999px;background:#fbfdff;box-shadow:0 10px 24px -22px rgba(15,23,42,.45);}.a2b-avatar{border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.a2b-avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.a2b-avatar.is-female{background:#fce7f3;color:#db2777;}.a2b-avatar--sm{width:34px;height:34px;font-size:.86rem;}.a2b-avatar--md{width:44px;height:44px;font-size:.96rem;}.a2b-chip-name,.a2b-member-card__name{color:#223154;font-size:.98rem;font-weight:700;}.a2b-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;}.a2b-type-card{border:1px solid #dde5f1;border-radius:20px;background:#fff;padding:1rem 1.05rem;text-align:left;display:flex;flex-direction:column;gap:.55rem;box-shadow:0 14px 34px -30px rgba(15,23,42,.55);transition:border-color .2s ease,background-color .2s ease,transform .2s ease,box-shadow .2s ease;}.a2b-type-card:hover{transform:translateY(-1px);border-color:rgba(var(--bs-primary-rgb),.38);}.a2b-type-card__icon-row{display:flex;align-items:center;gap:.7rem;}.a2b-type-card__icon,.a2b-type-card__check{color:#b4bfd3;font-size:1rem;}.a2b-type-card__label{color:#223154;font-size:1rem;font-weight:700;}.a2b-type-card__desc{color:#8fa0bd;font-size:.9rem;line-height:1.45;}.a2b-type-card.credit--active{border-color:#86efac;background:#f0fdf4;}.a2b-type-card.credit--active .a2b-type-card__icon,.a2b-type-card.credit--active .a2b-type-card__check,.a2b-type-card.credit--active .a2b-type-card__label{color:#15803d;}.a2b-type-card.debit--active{border-color:#fda4af;background:#fff1f2;}.a2b-type-card.debit--active .a2b-type-card__icon,.a2b-type-card.debit--active .a2b-type-card__check,.a2b-type-card.debit--active .a2b-type-card__label{color:#be123c;}.a2b-amount-group{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid #dce4f1;border-radius:18px;background:#fff;box-shadow:0 12px 28px -24px rgba(15,23,42,.45);}.a2b-amount-group__addon,.a2b-amount-group__input,.a2b-select,.a2b-textarea{color:#223154;font-size:1rem;}.a2b-amount-group__addon{padding:.95rem 1rem;background:#f8fafc;color:#7d8aa7;font-weight:700;}.a2b-amount-group__input,.a2b-select,.a2b-textarea{width:100%;border:1px solid #dce4f1;border-radius:18px;background:#fff;padding:.95rem 1rem;outline:0;box-shadow:0 12px 28px -24px rgba(15,23,42,.45);transition:border-color .2s ease,box-shadow .2s ease;}.a2b-amount-group__input{border:0;border-radius:0;box-shadow:none;background:transparent;min-width:0;}.a2b-amount-group:focus-within,.a2b-select-wrapper:focus-within .a2b-select,.a2b-textarea:focus{border-color:rgba(var(--bs-primary-rgb),.36);box-shadow:0 0 0 4px rgba(var(--bs-primary-rgb),.12);}.a2b-select-wrapper{position:relative;}.a2b-select{appearance:none;padding-right:3rem;}.a2b-select-chevron{position:absolute;right:1.05rem;top:50%;transform:translateY(-50%);color:#97a3bc;pointer-events:none;}.a2b-note-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.a2b-char-counter{color:#9aa8c3;font-size:.82rem;font-weight:700;}.a2b-char-counter--warn{color:#d97706;}.a2b-textarea{min-height:112px;resize:vertical;}.a2b-note-hint{display:flex;align-items:flex-start;gap:.6rem;padding:.95rem 1rem;border-radius:16px;background:#f8fafc;color:#6f7f9d;font-size:.9rem;line-height:1.55;}.a2b-note-hint strong{color:#223154;}.a2b-note-hint-icon{color:var(--bs-primary);margin-top:.1rem;}.a2b-modal-footer{display:flex;align-items:center;gap:.8rem;padding-top:.2rem;}.a2b-modal-footer--end{justify-content:flex-end;}.a2b-modal-footer--split{justify-content:space-between;}.a2b-btn-cancel,.a2b-btn-primary{border-radius:16px;padding:.95rem 1.35rem;font-size:.98rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease;}.a2b-btn-cancel{border:1px solid #dbe3ef;background:#fff;color:#5f6f8f;}.a2b-btn-cancel:hover:not(:disabled){transform:translateY(-1px);border-color:rgba(var(--bs-primary-rgb),.3);color:var(--bs-primary);}.a2b-btn-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;box-shadow:0 18px 36px -24px rgba(var(--bs-primary-rgb),.7);}.a2b-btn-primary:hover:not(:disabled){transform:translateY(-1px);}.a2b-btn-primary:disabled,.a2b-btn-cancel:disabled{opacity:.62;cursor:not-allowed;transform:none;box-shadow:none;}.a2b-btn-primary.applied{border-color:#10b981;background:#10b981;}.a2b-inline-spinner{width:13px;height:13px;border-width:2px;}.a2b-summary-strip{display:flex;align-items:center;gap:1rem;padding:1.05rem 1.15rem;border:1px solid #dce4f1;border-radius:22px;}.a2b-summary-strip.credit--strip{border-color:#a7f3d0;background:#ecfdf5;}.a2b-summary-strip.debit--strip{border-color:#fecdd3;background:#fff1f2;}.a2b-summary-icon-wrap{width:48px;height:48px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}.credit--strip .a2b-summary-icon-wrap,.credit--arrow-circle,.credit--badge{background:#dcfce7;color:#15803d;}.debit--strip .a2b-summary-icon-wrap,.debit--arrow-circle,.debit--badge{background:#ffe4e6;color:#be123c;}.a2b-summary-title{color:#223154;font-size:1.02rem;font-weight:700;}.a2b-summary-reason{margin-top:.2rem;color:#7b8ba8;font-size:.9rem;}.a2b-type-badge{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .8rem;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.a2b-section-divider{color:#8b99b6;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.a2b-member-card{border:1px solid #dce4f1;border-radius:22px;background:#fff;padding:1rem 1.1rem;box-shadow:0 18px 42px -36px rgba(15,23,42,.6);}.a2b-member-card+.a2b-member-card{margin-top:.1rem;}.a2b-member-card__header{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;}.a2b-balance-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:1rem;align-items:center;}.a2b-balance-cell{padding:.95rem 1rem;border-radius:18px;background:#f8fafc;}.a2b-balance-cell__label{color:#8d9ab7;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.a2b-balance-cell__value{margin-top:.35rem;font-size:1.08rem;font-weight:800;letter-spacing:-.02em;}.text-credit{color:#15803d;}.text-debit{color:#be123c;}.a2b-balance-arrow{display:flex;flex-direction:column;align-items:center;gap:.55rem;}.a2b-balance-arrow__circle{width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;}.a2b-balance-arrow__amount{font-size:.92rem;font-weight:800;}.a2b-status-pill{display:inline-flex;align-items:center;justify-content:center;margin-top:.55rem;padding:.34rem .7rem;border-radius:999px;font-size:.74rem;font-weight:700;}.credit-status{background:#dcfce7;color:#166534;}.debit-status{background:#ffe4e6;color:#be123c;}.a2b-total-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px dashed #d8e1ef;border-radius:18px;background:#fbfcfe;}.a2b-total-row__label{color:#6e7d9b;font-size:.92rem;font-weight:600;}.a2b-total-row__value{font-size:1.02rem;font-weight:800;}.a2b-note-preview{display:flex;align-items:flex-start;gap:.8rem;padding:1rem 1.05rem;border:1px solid rgba(var(--bs-primary-rgb),.18);border-radius:18px;background:rgba(var(--bs-primary-rgb),.06);}.a2b-note-preview__icon{color:var(--bs-primary);margin-top:.1rem;}.a2b-note-preview__label{color:#6b7a99;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.a2b-note-preview__text{margin-top:.2rem;color:#223154;font-size:.94rem;line-height:1.55;}.a2b-error-alert{display:flex;align-items:center;gap:.5rem;padding:.9rem 1rem;border:1px solid #fecaca;border-radius:16px;background:#fff1f2;color:#b91c1c;font-size:.84rem;font-weight:600;}.class-invite-modal{padding:1rem 1.15rem 1.1rem;color:#233253;}.class-invite-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.1rem;}.class-invite-header-icon{width:52px;height:52px;border-radius:16px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;}.class-invite-title{margin:0;font-size:1.95rem;font-weight:700;letter-spacing:-.03em;}.class-invite-subtitle{margin:.3rem 0 0;color:#94a3c1;font-size:.96rem;line-height:1.55;}.class-invite-section{margin-bottom:1.15rem;}.class-invite-label{display:inline-block;margin-bottom:.6rem;color:#8a98b6;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.class-invite-input,.class-invite-select,.class-invite-textarea{width:100%;border:1px solid #dce4f1;border-radius:18px;background:#fff;color:#223154;font-size:.98rem;padding:.52rem 1rem;outline:0;box-shadow:0 12px 28px -24px rgba(15,23,42,.45);transition:border-color .2s ease,box-shadow .2s ease;}.class-invite-input:focus,.class-invite-select:focus,.class-invite-textarea:focus{border-color:rgba(var(--bs-primary-rgb),.36);box-shadow:0 0 0 4px rgba(var(--bs-primary-rgb),.12);}.class-invite-students{display:flex;flex-wrap:wrap;gap:.7rem;}.class-invite-student-chip{display:inline-flex;align-items:center;gap:.65rem;padding:.44rem .72rem .44rem .48rem;border:1px solid #dce4f1;border-radius:999px;background:#fbfdff;}.class-invite-student-avatar{width:34px;height:34px;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.84rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;}.class-invite-student-name{color:var(--bs-secondary);font-size:.95rem;font-weight:700;}.class-invite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.15rem;}.class-invite-panel{border:1px solid #dce4f1;border-radius:22px;background:#fff;padding:1rem;box-shadow:0 18px 40px -34px rgba(15,23,42,.5);}.class-invite-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.9rem;}.class-invite-panel-title{margin:0;color:#223154;font-size:1.05rem;font-weight:700;}.class-invite-count-pill{display:inline-flex;align-items:center;justify-content:center;padding:.34rem .7rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:.76rem;font-weight:700;}.class-invite-accordion{--bs-accordion-border-color:transparent;--bs-accordion-btn-bg:#f8fafc;--bs-accordion-btn-focus-box-shadow:none;--bs-accordion-active-bg:#f8fafc;--bs-accordion-active-color:#223154;}.class-invite-accordion .accordion-item{border:1px solid #e3eaf4;border-radius:18px!important;overflow:hidden;background:#fff;}.class-invite-accordion .accordion-item+.accordion-item{margin-top:.8rem;}.class-invite-accordion .accordion-button{padding:.95rem 1rem;font-size:1rem;font-weight:700;color:#223154;box-shadow:none;}.class-invite-accordion .accordion-button:not(.collapsed){background:#f8fafc;}.class-invite-accordion .accordion-body{padding:.85rem;}.class-invite-group-list{gap:.7rem;}.class-invite-group-list .list-group-item{border:1px solid #e3eaf4;border-radius:16px!important;margin-bottom:.7rem;overflow:hidden;}.class-invite-group-item{padding:0;background:#fff;}.class-invite-group-item--selected{border-color:rgba(var(--bs-success-rgb),.35)!important;background:#f8fffb;}.class-invite-group-item--selected.is-join{border-color:rgba(var(--bs-primary-rgb),.24)!important;background:rgba(var(--bs-primary-rgb),.03);}.class-invite-group-toggle{width:100%;border:0;background:transparent;padding:.85rem .95rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;}.class-invite-group-name{color:#223154;font-size:.95rem;font-weight:700;}.class-invite-group-badge,.class-invite-meta-chip{display:inline-flex;align-items:center;justify-content:center;padding:.32rem .62rem;border-radius:999px;font-size:.72rem;font-weight:700;}.class-invite-group-badge{background:#f3f6fb;color:#7f8cab;}.class-invite-group-badge.is-leave{background:#dcfce7;color:#166534;}.class-invite-group-badge.is-join{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.class-invite-group-body{padding:0 .95rem .95rem;}.class-invite-field{margin-bottom:.85rem;}.class-invite-mini-label{display:inline-block;margin-bottom:.45rem;color:#8a98b6;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}.class-invite-meta-row{display:flex;flex-wrap:wrap;gap:.45rem;padding:0 .95rem .8rem;}.class-invite-meta-chip{background:#f3f6fb;color:#6d7d9c;}.class-invite-meta-chip.is-danger{background:#fff1f2;color:#dc2626;}.class-invite-meta-chip.is-neutral{background:#f8fafc;color:#64748b;}.class-invite-subscriptions{display:flex;flex-direction:column;gap:.65rem;}.class-invite-textarea{min-height:118px;resize:vertical;}.class-invite-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.4rem;}.class-invite-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;}.class-invite-btn{border-radius:16px;padding:.92rem 1.3rem;font-size:.96rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease;}.class-invite-btn-secondary{border:1px solid #dbe3ef;background:#fff;color:#607090;}.class-invite-btn-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;box-shadow:0 18px 36px -24px rgba(var(--bs-primary-rgb),.68);}.class-invite-btn:hover{transform:translateY(-1px);}.class-invite-tooltip{font-size:1.2rem;color:var(--bs-primary);}@media(max-width:767.98px){.credit-adjustment-modal{padding:1rem .95rem .95rem;}.a2b-modal-header,.a2b-balance-row,.a2b-modal-footer,.a2b-note-head{flex-direction:column;align-items:stretch;}.a2b-step-dots{margin-left:0;}.a2b-modal-title{font-size:1.55rem;}.a2b-type-grid,.a2b-balance-row{grid-template-columns:minmax(0,1fr);}.a2b-balance-arrow{flex-direction:row;justify-content:center;}.a2b-modal-footer--split,.a2b-modal-footer--end{justify-content:stretch;}.a2b-btn-cancel,.a2b-btn-primary{width:100%;}.class-invite-modal{padding:.9rem;}.class-invite-header,.class-invite-panel-head,.class-invite-footer{flex-direction:column;align-items:stretch;}.class-invite-title{font-size:1.55rem;}.class-invite-grid{grid-template-columns:minmax(0,1fr);}.class-invite-footer-actions{width:100%;flex-direction:column-reverse;}.class-invite-btn{width:100%;}.set-tags-modal{padding:1rem;}.set-affiliation-modal{padding:1rem;}.set-affiliation-header{margin-bottom:1rem;}.set-affiliation-info{padding:.85rem;}.set-affiliation-info-copy h3{font-size:.95rem;}.set-affiliation-info-copy p{font-size:.82rem;line-height:1.65;}.set-affiliation-status-toggle{grid-template-columns:minmax(0,1fr);}.set-affiliation-table-head{display:none;}.set-affiliation-table-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:1rem .85rem;align-items:start;}.set-affiliation-table-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;min-width:0;}.set-affiliation-table-row>div:nth-child(1){grid-column:1/-1;}.set-affiliation-table-row>div::before{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-affiliation-table-row>div:nth-child(1)::before{content:"Member";color:#94a3b8;}.set-affiliation-table-row>div:nth-child(2)::before{content:"Current";color:#94a3b8;}.set-affiliation-table-row>div:nth-child(3)::before{content:"After Save";color:#14b8a6;}.set-affiliation-status-cell.is-after{align-items:flex-start;}.set-affiliation-status-arrow{display:none;}.set-affiliation-notify-card{align-items:flex-start;}.set-affiliation-footer{flex-direction:column-reverse;align-items:stretch;}.set-affiliation-primary,.set-affiliation-secondary{width:100%;}.set-affiliation-success{padding-top:1.25rem;}.set-affiliation-success-icon{width:4.5rem;height:4.5rem;font-size:1.7rem;}.set-affiliation-success-students{gap:.55rem;}.set-sub-group-modal{padding:1rem;}.set-sub-group-info{padding:.85rem;}.set-sub-group-mode-toggle{grid-template-columns:minmax(0,1fr);}.set-sub-group-existing-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.set-sub-group-table-head{display:none;}.set-sub-group-table-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:1rem .85rem;align-items:start;}.set-sub-group-table-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;min-width:0;}.set-sub-group-table-row>div:nth-child(1){grid-column:1/-1;}.set-sub-group-table-row>div::before{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-sub-group-table-row>div:nth-child(1)::before{content:"Member";color:#94a3b8;}.set-sub-group-table-row>div:nth-child(2)::before{content:"Current";color:#94a3b8;}.set-sub-group-table-row>div:nth-child(3)::before{content:"After Save";color:#ff7a1a;}.set-sub-group-status-cell.is-after{align-items:flex-start;}.set-sub-group-status-arrow{display:none;}.set-sub-group-notify-card{align-items:flex-start;}.set-sub-group-footer{flex-direction:column-reverse;align-items:stretch;}.set-sub-group-primary,.set-sub-group-secondary{width:100%;}.set-tags-add-row{grid-template-columns:minmax(0,1fr);}.set-tags-modal-footer{flex-direction:column-reverse;align-items:stretch;}.set-tags-preview-row{grid-template-columns:repeat(2,minmax(0,1fr));}.set-tags-preview-head{display:none;}.set-tags-preview-row{gap:.85rem;padding:1rem .1rem;border-top:1px solid #eaf0f7;align-items:start;}.set-tags-preview-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;min-width:0;}.set-tags-preview-row>div:nth-child(1){grid-column:1/-1;}.set-tags-preview-row>div:nth-child(2),.set-tags-preview-row>div:nth-child(3){width:100%;}.set-tags-preview-row>div::before{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.set-tags-preview-row>div:nth-child(1)::before{content:"Member";color:#94a3b8;}.set-tags-preview-row>div:nth-child(2)::before{content:"Current";color:#94a3b8;}.set-tags-preview-row>div:nth-child(3)::before{color:#16a34a;content:"Adding";}.set-tags-preview.is-danger .set-tags-preview-row>div:nth-child(3)::before{content:"Removing";color:#ef4444;}.set-tags-preview.is-danger .set-tags-preview-row>div:nth-child(3) .set-tags-preview-tag{color:#ef4444;}.set-tags-preview-member{gap:.7rem;}.set-tags-preview-avatar{width:2rem;height:2rem;font-size:.72rem;}.set-tags-preview-name{font-size:.92rem;line-height:1.2;}.set-tags-preview-tags{gap:.45rem;}.set-tags-preview-tag{min-height:1.85rem;padding:.2rem .58rem;font-size:.78rem;}.set-tags-preview-footer{flex-direction:column;align-items:stretch;}.set-tags-primary,.set-tags-secondary,.set-tags-add-button,.set-tags-preview-apply{width:100%;}.manage-awards-modal{padding:1rem;}.manage-awards-info{padding:.85rem;}.manage-awards-info-copy h3{font-size:.95rem;}.manage-awards-info-copy p{font-size:.82rem;line-height:1.65;}.manage-awards-mode-toggle{grid-template-columns:minmax(0,1fr);}.manage-awards-picker-head{flex-direction:column;align-items:flex-start;}.manage-awards-picker-meta{width:100%;justify-content:space-between;}.manage-awards-track-row{grid-template-columns:minmax(0,1fr);gap:.75rem;}.manage-awards-table-head{display:none;}.manage-awards-table-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:1rem .85rem;align-items:start;}.manage-awards-table-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;min-width:0;}.manage-awards-table-row>div:nth-child(1){grid-column:1/-1;}.manage-awards-table-row>div::before{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.manage-awards-table-row>div:nth-child(1)::before{content:"Member";color:#94a3b8;}.manage-awards-table-row>div:nth-child(2)::before{content:"Current Awards";color:#94a3b8;}.manage-awards-table-row>div:nth-child(3)::before{content:"After Save";color:#ec4899;}.manage-awards-cell.is-after{align-items:flex-start;}.manage-awards-arrow{display:none;}.manage-awards-notify-card{align-items:flex-start;}.manage-awards-footer{flex-direction:column-reverse;align-items:stretch;}.manage-awards-primary,.manage-awards-secondary{width:100%;}.manage-awards-success{min-height:360px;padding-top:1.25rem;}.manage-awards-success-icon{width:4.75rem;height:4.75rem;font-size:1.7rem;margin-bottom:1.1rem;}.manage-awards-success-awards{margin-top:1.1rem;}.subscription-management-modal{padding:1rem;height:auto;max-height:calc(100vh - 1.5rem);overflow-y:auto;}.subscription-management-header{flex-direction:row;align-items:stretch;}.subscription-management-header-actions{justify-content:space-between;}.subscription-management-grid,.subscription-management-preview-grid{grid-template-columns:minmax(0,1fr);gap:.75rem;flex:0 0 auto;min-height:auto;}.subscription-management-column,.subscription-management-preview-column{min-height:auto;}.subscription-management-list,.subscription-management-preview-list,.subscription-management-preview-students{overflow:visible;max-height:none;padding-right:0;}.subscription-management-card,.subscription-management-preview-card{padding:.85rem;border-radius:14px;}.subscription-management-stage-title{font-size:1rem;}.subscription-management-stage-subtitle,.subscription-management-remove-panel-subtitle,.subscription-management-student-meta,.subscription-management-catalogue-count{font-size:.7rem;}.subscription-management-remove-panel,.subscription-management-add-panel,.subscription-management-students-card,.subscription-management-review-card,.subscription-management-catalogue{border-radius:14px;}.subscription-management-remove-panel-head,.subscription-management-add-panel-head,.subscription-management-catalogue-row,.subscription-management-student-row,.subscription-management-students-head,.subscription-management-review-row,.subscription-management-review-head{grid-template-columns:minmax(0,1fr);}.subscription-management-remove-panel-head,.subscription-management-add-panel-head,.subscription-management-catalogue-side{align-items:flex-start;}.subscription-management-remove-summary-chip{white-space:normal;}.subscription-management-add-summary-chip{white-space:normal;}.subscription-management-catalogue-side{width:100%;flex-wrap:wrap;gap:.55rem;}.subscription-management-catalogue-date-wrap{width:100%;justify-content:space-between;}.subscription-management-catalogue-date{min-width:0;width:100%;}.subscription-management-students-head{display:none;}.subscription-management-review-head{display:none;}.subscription-management-student-row{gap:.65rem;}.subscription-management-student-subscriptions{padding-left:2.7rem;}.subscription-management-review-row{gap:.65rem;}.subscription-management-review-column{padding-left:2.7rem;}.subscription-management-confirm-card{align-items:flex-start;}.subscription-management-card-head,.subscription-management-preview-head{margin-bottom:.7rem;}.subscription-management-card-title,.subscription-management-preview-title{font-size:.86rem;}.subscription-management-card-price,.subscription-management-preview-meta{font-size:.68rem;}.subscription-management-label,.subscription-management-help{font-size:.68rem;}.subscription-management-apply-state{padding:1.5rem 0 .5rem;}.subscription-management-apply-shell{gap:.75rem;}.subscription-management-apply-progress-card,.subscription-management-apply-rows-card,.subscription-management-apply-success-card{border-radius:16px;}.subscription-management-apply-progress-card{padding:.85rem .85rem .8rem;}.subscription-management-apply-progress-head{gap:.6rem;margin-bottom:.55rem;}.subscription-management-apply-progress-copy{gap:.55rem;min-width:0;flex:1 1 auto;}.subscription-management-apply-progress-title{font-size:.84rem;}.subscription-management-apply-progress-meta{font-size:.68rem;}.subscription-management-apply-progress-percent{font-size:1.15rem;flex-shrink:0;}.subscription-management-apply-row{align-items:flex-start;gap:.45rem;padding:.7rem .8rem;}.subscription-management-apply-row-main{width:100%;flex-wrap:wrap;gap:.45rem .55rem;align-items:center;}.subscription-management-apply-row-state{width:1rem;height:1rem;margin-top:.08rem;}.subscription-management-apply-row-spinner{width:.72rem;height:.72rem;}.subscription-management-apply-row .subscription-management-student-avatar{width:2rem;height:2rem;font-size:.72rem;}.subscription-management-apply-row-student{flex:1 1 calc(100% - 3.2rem);min-width:0;white-space:normal;font-size:.78rem;line-height:1.2;}.subscription-management-apply-row-action{min-height:1.35rem;padding:0 .45rem;font-size:.64rem;}.subscription-management-apply-row .subscription-management-student-chip{min-width:0;max-width:100%;padding:.26rem .45rem;font-size:.66rem;line-height:1.15;}.subscription-management-apply-row .subscription-management-student-chip>span:first-child{white-space:normal;overflow-wrap:anywhere;}.subscription-management-apply-row-status{width:100%;text-align:right;font-size:.72rem;line-height:1.15;}.subscription-management-apply-success-card{min-height:0;padding:1.35rem .9rem;}.subscription-management-apply-success-icon{width:4.15rem;height:4.15rem;font-size:1.6rem;margin-bottom:.8rem;}.subscription-management-apply-title{font-size:.95rem;}.subscription-management-apply-subtitle{margin-bottom:0;font-size:.72rem;line-height:1.35;}.subscription-management-apply-footer{flex-direction:column;align-items:stretch;gap:.65rem;}.subscription-management-apply-footer-copy{font-size:.72rem;text-align:left;}.subscription-management-preview-summary{white-space:normal;width:100%;text-align:center;}.subscription-management-success,.subscription-management-footer{flex-direction:column;align-items:stretch;}.subscription-management-footer-actions{margin-left:0;width:100%;flex-direction:column-reverse;}.subscription-management-primary,.subscription-management-secondary,.subscription-management-secondary-action{width:100%;}}.sending-overlay{position:fixed;inset:0;background:rgba(255,255,255,.7);z-index:2000;display:flex;align-items:center;justify-content:center;}.sending-dialog{background:#fff;padding:1.5rem 2rem;border-radius:.75rem;text-align:center;min-width:220px;}.register-table{border-collapse:separate;border-spacing:0;}.register-table .register-photo-col{width:4.5rem;min-width:4.5rem;}.register-table .register-photo-thumb{width:2.9rem;height:2.9rem;border-radius:999px;object-fit:cover;display:inline-block;border:1px solid #e5e7eb;background:#f8fafc;}.register-table>thead>tr>th:first-child,.register-table>tbody>tr:not(.register-merged-section-label)>td:first-child,.register-table .register-sticky-col{position:-webkit-sticky;position:sticky!important;left:0!important;z-index:10;background:#fff;background-clip:padding-box;}.register-table>tbody>tr.register-merged-section-label>td.register-merged-section-label__sticky{position:-webkit-sticky;position:sticky!important;left:0!important;z-index:11;box-shadow:10px 0 14px -14px rgba(15,23,42,.35);background-color:var(--bs-table-bg,#f8f9fa)!important;background-clip:padding-box;border-top:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color);color:var(--bs-body-color,#212529);font-size:.875rem;font-weight:700;padding:.55rem .75rem;vertical-align:middle;white-space:normal;word-break:break-word;overflow-wrap:anywhere;}.register-table>tbody>tr.register-merged-section-label>td.register-merged-section-label__rest{position:static!important;left:auto!important;z-index:auto;box-shadow:none!important;background-color:var(--bs-table-bg,#f8f9fa)!important;background-clip:padding-box;border-top:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color);padding:.55rem .75rem;vertical-align:middle;}.register-table>tbody.register-merged-body:first-of-type>tr.register-merged-section-label>td.register-merged-section-label__sticky,.register-table>tbody.register-merged-body:first-of-type>tr.register-merged-section-label>td.register-merged-section-label__rest{border-top:0;}.register-table>thead>tr>th:first-child,.register-table thead .register-sticky-col{z-index:15;background:var(--bs-table-bg,#f8f9fa);}.register-table thead th{position:sticky;top:0;z-index:12;background:var(--bs-table-bg,#f8f9fa);background-clip:padding-box;}.register-table>thead>tr>th:first-child,.register-table>tbody>tr:not(.register-merged-section-label)>td:first-child,.register-table .register-name-col{min-width:9.5rem;width:9.5rem;}.register-table-scroll{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;}.table-responsive .register-table .register-sticky-col{box-shadow:10px 0 14px -14px rgba(15,23,42,.35);}.register-mobile-details-toggle{display:none;}@media(max-width:767.98px){.register-table-scroll{max-height:calc(100dvh - 17.5rem);overflow-y:auto;}.register-table:not(.register-table--mobile-details-expanded) th.register-col-detail,.register-table:not(.register-table--mobile-details-expanded) td.register-col-detail{display:none;}.register-name-col--with-mobile-toggle{padding-right:.35rem;}.register-name-header-inner{display:flex;align-items:center;gap:.35rem;min-width:0;}.register-name-header-inner>button:first-child{min-width:0;flex:1 1 auto;}.register-mobile-details-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.85rem;height:1.85rem;margin:0;padding:0;border:1px solid #d9e0ec;border-radius:.45rem;background:#fff;color:#56657e;box-shadow:0 1px 2px rgba(15,23,42,.08);cursor:pointer;}.register-mobile-details-toggle:hover{color:var(--bs-primary);border-color:rgba(var(--bs-primary-rgb),.35);}.register-mobile-details-toggle .fa-solid{font-size:.72rem;}.daily-register-merged__table{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;max-height:none;max-width:100%;}.daily-register-merged .register-table>tbody>tr.register-merged-section-label>td.register-merged-section-label__sticky{position:-webkit-sticky!important;position:sticky!important;left:0!important;z-index:11;}.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) col.register-col-detail{width:0!important;min-width:0!important;}.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) th.register-col-detail,.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) td.register-col-detail{width:0!important;min-width:0!important;max-width:0!important;padding:0!important;border-width:0!important;overflow:hidden;}.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) th.register-date-col,.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) td.register-date-col{position:-webkit-sticky;position:sticky;left:10.5rem;z-index:10;background:#fff;box-shadow:-8px 0 10px -10px rgba(15,23,42,.18);}.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded) thead th.register-date-col{z-index:12;background:var(--bs-table-bg,#f8f9fa);}}.register-guest-panel{position:relative;z-index:1020;}.register-guest-search{position:relative;}.register-guest-results{position:absolute;top:calc(100% + .5rem);left:0;right:0;z-index:25;max-height:16rem;overflow-y:auto;background:#fff;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:0 12px 32px rgba(15,23,42,.16);}.register-guest-panel--modal{position:relative;z-index:1;}.register-guest-modal__dialog .modal-content,.register-guest-modal__dialog .modal-body,.register-guest-modal__dialog .modal-dialog{overflow:visible;}.register-guest-modal__dialog .modal-body{position:relative;z-index:2;}.register-guest-modal__dialog .modal-footer{position:relative;z-index:1;}.register-guest-panel--modal .register-guest-search{position:relative;z-index:3;}.register-guest-panel--modal .register-guest-results{z-index:30;}.register-actions__merge-btn{min-width:5.5rem;}.register-actions__dropdown{min-width:10rem;}.register-actions__trigger{min-width:9rem;gap:.65rem;}.register-actions__trigger::after{margin-left:.5rem;}.register-actions__menu{min-width:14rem;}.daily-register-selector__menu{display:flex;flex-direction:column;max-height:min(36rem,100dvh - 8rem);overflow:hidden;min-height:0;}.daily-register-selector__menu .class-session-selector__search-wrap,.daily-register-selector__menu .class-session-selector__bulk,.daily-register-selector__menu .daily-register-selector__time-wrap{flex-shrink:0;}.daily-register-selector__menu .daily-register-selector__footer{flex:0 0 auto;flex-shrink:0;margin-top:auto;}.daily-register-selector__menu .class-session-selector__list{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch;}.daily-register-selector__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem 1rem;}.daily-register-selector__toolbar-primary{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1 1 auto;}.daily-register-selector__view-segment{display:inline-flex;align-items:stretch;flex-shrink:0;padding:.2rem;border:1px solid #d9e0ec;border-radius:999px;background:#f3f6fb;}.daily-register-selector__view-btn{appearance:none;-webkit-appearance:none;min-height:2rem;margin:0;padding:.35rem .9rem;border:0;border-radius:999px;background:transparent;color:#56657e;font-family:inherit;font-size:.8rem;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease;}.daily-register-selector__view-btn:hover{color:var(--bs-primary);}.daily-register-selector__view-btn.is-active{background:#fff;color:var(--bs-primary);box-shadow:0 1px 3px rgba(15,23,42,.1);}.daily-register-selector__toolbar-actions{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.85rem;margin-left:auto;}.daily-register-selector__text-btn{appearance:none;-webkit-appearance:none;margin:0;padding:0;border:0;background:transparent;color:var(--bs-primary);font-family:inherit;font-size:.82rem;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;text-decoration:none;}.daily-register-selector__text-btn:hover{color:rgba(var(--bs-primary-rgb),.82);text-decoration:underline;}.daily-register-selector__time-wrap{padding:.75rem 1rem;border-bottom:1px solid #e9eef5;}.daily-register-selector__location-dropdown{position:relative;flex-shrink:0;}.daily-register-selector__location-trigger{width:auto;max-width:7.5rem;min-width:4.75rem;min-height:2rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.35rem;padding:.35rem .55rem;border:1px solid #d8e0ec;border-radius:999px;background:#fff;color:#56657e;font-size:.75rem;font-weight:600;text-align:left;cursor:pointer;}.daily-register-selector__location-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto;}.daily-register-selector__location-trigger.is-open,.daily-register-selector__location-trigger:hover{border-color:rgba(var(--bs-primary-rgb),.35);}.daily-register-selector__location-trigger.has-filter{color:var(--bs-primary);}.daily-register-selector__location-menu{position:absolute;top:calc(100% + .35rem);left:0;right:auto;min-width:10rem;width:max-content;max-width:min(14rem,100vw - 2rem);z-index:3;max-height:12rem;overflow-y:auto;border:1px solid #dde4ef;border-radius:.85rem;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.12);}.daily-register-selector__location-menu .class-session-selector__check-row{display:flex;width:100%;}.daily-register-selector__location-clear{display:block;width:100%;margin:0;padding:.7rem 1rem;border:0;border-top:1px solid #eef2f7;background:#fbfcfe;color:var(--bs-primary);font-size:.82rem;font-weight:600;text-align:left;cursor:pointer;}.daily-register-selector__time-label{margin-bottom:.55rem;color:#71839d;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}.daily-register-selector__time-chips{display:flex;flex-wrap:wrap;gap:.5rem;}.daily-register-selector__time-chip{appearance:none;-webkit-appearance:none;min-height:2rem;margin:0;padding:.35rem .85rem;border:1px solid #d9e0ec;border-radius:999px;background:#fff;color:#56657e;font-family:inherit;font-size:.82rem;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;}.daily-register-selector__time-chip:hover{border-color:rgba(var(--bs-primary-rgb),.35);color:var(--bs-primary);}.daily-register-selector__time-chip.is-active{border-color:var(--bs-primary);background:var(--bs-primary);color:var(--bs-primary-foreground);font-weight:700;}.daily-register-selector__menu .class-session-selector__group-label{position:sticky;top:0;z-index:2;background:#fff;}.daily-register-selector__menu .class-session-selector__check-row.is-selected{background:rgba(var(--bs-primary-rgb),.1);}.daily-register-selector__menu .class-session-selector__check-row{display:flex;align-items:center;gap:.65rem;}.daily-register-selector__row-labels{display:flex;align-items:center;gap:0;min-width:0;flex:1 1 auto;}.daily-register-selector__label-separator{color:#94a3b8;font-weight:400;flex-shrink:0;}.daily-register-selector__menu .class-session-selector__check-row{width:100%;}.daily-register-selector__times{display:inline-flex;align-items:center;gap:.65rem;margin-left:auto;flex-shrink:0;}.daily-register-selector__class-name{min-width:0;color:#212529;font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.daily-register-selector__group-name{min-width:0;color:#495057;font-size:.92rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.daily-register-selector__start-time,.daily-register-selector__end-time{color:#71839d;font-size:.9rem;font-weight:400;white-space:nowrap;}.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__class-name,.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__group-name,.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__start-time,.daily-register-selector__menu .class-session-selector__check-row.is-selected .daily-register-selector__end-time{color:var(--bs-primary);}.daily-register-selector__footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;border-top:1px solid #e9eef5;}.daily-register-selector__footer-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#71839d;font-size:.82rem;font-weight:500;line-height:1.35;}.daily-register-selector__footer-actions{display:flex;flex-shrink:0;justify-content:flex-end;gap:.5rem;}.daily-register-date-nav__btn{text-decoration:none;}.daily-register-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;}.daily-register-toolbar__views{flex:1 1 auto;}.daily-register-toolbar .register-actions{flex:0 0 auto;margin-bottom:0;}.daily-register-toolbar .register-actions>.d-flex{justify-content:flex-end;}.daily-register-toolbar .register-actions__trigger{min-height:2.125rem;min-width:7.5rem;padding:.3rem .85rem;border-radius:var(--bs-border-radius);border-width:1px;box-shadow:none;}.daily-register-toolbar .register-actions__merge-btn{min-height:2.125rem;padding-top:.3rem;padding-bottom:.3rem;}@media(max-width:767.98px){.daily-register-toolbar{align-items:stretch;}.daily-register-toolbar__views{width:100%;}.daily-register-toolbar .register-actions>.d-flex{justify-content:flex-end;}}.register-table-toolbar__quick{margin-bottom:.75rem;}.register-table-toolbar__date-card .card-body{padding:.75rem 1rem;}.register-table-toolbar__date-toggle-label{font-size:.95rem;}.register-table-toolbar__date-summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}@media(max-width:575.98px){.register-table-toolbar__date-summary{display:none;}}.daily-register-section{display:flex;flex-direction:column;gap:.75rem;}.daily-register-section__header{width:100%;display:flex;align-items:center;gap:.75rem;min-height:2.2rem;padding:.35rem 1.1rem .35rem .95rem;text-align:left;}.daily-register-section__header:hover{border-color:rgba(var(--bs-primary-rgb),.25);background:rgba(var(--bs-primary-rgb),.08);}.daily-register-section__title{flex:1;min-width:0;font-size:.82rem;font-weight:600;}.daily-register-section__chevron{color:var(--bs-primary);flex-shrink:0;font-size:.75rem;margin-left:.65rem;}.daily-register-section__body{padding:0 .15rem;}.daily-register-section__state{min-height:4rem;}.daily-register-merged{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);padding:1rem;background:var(--bs-body-bg);}.daily-register-merged__table{overflow-x:auto;overflow-y:visible;max-width:100%;}.daily-register-merged .register-table--merged-layout{table-layout:fixed;width:100%;min-width:calc(38rem + var(--register-merged-date-cols,10)*4.25rem);margin-bottom:0;}@media(max-width:767.98px){.daily-register-merged .register-table--merged-layout:not(.register-table--mobile-details-expanded){min-width:calc(10.5rem + var(--register-merged-date-cols,1)*4.25rem);}}.daily-register-merged .register-table--merged-layout .register-name-col{white-space:normal!important;word-break:break-word;overflow-wrap:anywhere;}.daily-register-merged col.register-col-name{width:10.5rem;}.daily-register-merged col.register-col-walk{width:4.75rem;}.daily-register-merged col.register-col-att{width:4rem;}.daily-register-merged col.register-col-group{width:5.5rem;}.daily-register-merged col.register-col-dob{width:6.25rem;}.daily-register-merged col.register-col-age{width:3.25rem;}.daily-register-merged col.register-col-photo{width:3.75rem;}.daily-register-merged col.register-col-photo-image{width:4.5rem;}.daily-register-merged col.register-col-date{width:4.25rem;}.daily-register-merged .register-table--merged-layout th.register-date-col,.daily-register-merged .register-table--merged-layout td.register-date-col{min-width:4.25rem;width:4.25rem;}.daily-register-merged .register-table--merged-layout .register-col-group{white-space:normal;word-break:break-word;overflow-wrap:anywhere;}.daily-register-merged .register-merged-section-label__sticky{min-width:10.5rem;width:10.5rem;max-width:10.5rem;}.daily-register-merged .register-merged-section-loading td{padding-top:.5rem;padding-bottom:.75rem;background:rgba(var(--bs-primary-rgb),.03);}@media(max-width:767.98px){.daily-register-selector.is-open{z-index:1050;}.daily-register-selector.is-open .class-session-selector__backdrop{z-index:1050;background:rgba(15,23,42,.45);cursor:pointer;}.daily-register-selector.is-open .daily-register-selector__menu{position:fixed;top:max(.75rem,env(safe-area-inset-top));bottom:max(.75rem,env(safe-area-inset-bottom));left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));height:auto;max-height:none;display:flex;flex-direction:column;overflow:hidden;min-height:0;z-index:1051;}.daily-register-selector.is-open .daily-register-selector__menu .class-session-selector__list{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch;}.daily-register-selector.is-open .daily-register-selector__menu .daily-register-selector__footer{flex:0 0 auto;}.daily-register-selector__time-chips{max-height:7rem;overflow-y:auto;-webkit-overflow-scrolling:touch;}.daily-register-selector__toolbar{flex-direction:column;align-items:stretch;}.daily-register-selector__toolbar-primary{width:100%;}.daily-register-selector__view-segment{flex:1 1 0;min-width:0;width:auto;justify-content:stretch;}.daily-register-selector__location-dropdown{flex:0 0 5.5rem;max-width:5.5rem;}.daily-register-selector__location-trigger{max-width:100%;min-width:0;padding:.35rem .45rem;}.daily-register-selector__view-btn{flex:1 1 0;text-align:center;}.daily-register-selector__toolbar-actions{margin-left:0;justify-content:flex-end;}.daily-register-selector__footer{flex-direction:column;align-items:stretch;padding-bottom:max(.85rem,.35rem + env(safe-area-inset-bottom,0));}.daily-register-selector__footer-summary{white-space:normal;}.daily-register-selector__footer-actions{flex-direction:column;gap:.5rem;}.daily-register-selector__footer-actions .class-session-selector__footer-btn{width:100%;}.daily-register-selector__menu .class-session-selector__check-time,.daily-register-selector__times{margin-left:auto;width:auto;text-align:right;}.daily-register-selector__class-name{font-size:.88rem;}.daily-register-selector__group-name{font-size:.85rem;}.daily-register-selector__start-time,.daily-register-selector__end-time{font-size:.8rem;}.daily-register-section__title{font-size:.92rem;}html.daily-register-selector-open,body.daily-register-selector-open{overscroll-behavior:none;}main.authorized-layout__main.daily-register-selector-scroll-lock{overflow:hidden!important;overscroll-behavior:none;touch-action:none;}}@media(max-width:991.98px){.members-action-grid{grid-template-columns:1fr;}.members-card-tools{width:100%;justify-content:space-between;}.members-filter-actions{flex-direction:column-reverse;}.members-filter-reset,.members-filter-submit,.members-action-clear{width:100%;}.members-audit-view .members-audit-selection-bar,.members-audit-view .members-audit-summary-bar,.subscription-audit .members-audit-selection-bar,.subscription-audit .members-audit-summary-bar{flex-direction:column;align-items:stretch;}.members-audit-view .members-audit-summary-right,.subscription-audit .members-audit-summary-right{margin-left:0;justify-content:flex-start;text-align:left;}}@media(max-width:767.98px){.members-card,.members-audit-view,.subscription-audit,.members-modal-content,.send-email-modal,.set-tags-modal,.manage-awards-modal,.set-affiliation-modal,.set-sub-group-modal,.subscription-management-modal,.bulk-charge-modal,.export-members-modal,.credit-adjustment-modal,.class-invite-modal{font-size:.92rem;}.members-card-header,.members-card-footer,.members-audit-view,.subscription-audit,.send-email-modal,.set-tags-modal,.manage-awards-modal,.set-affiliation-modal,.set-sub-group-modal,.subscription-management-modal,.bulk-charge-modal,.export-members-modal,.credit-adjustment-modal,.class-invite-modal{padding-left:1rem;padding-right:1rem;}.members-card-columns,.members-action-apply,.members-action-clear,.members-filter-reset,.members-filter-submit,.members-audit-selection-button,.send-email-recipient-action,.set-tags-add-button,.set-tags-primary,.set-tags-secondary,.set-tags-preview-apply,.manage-awards-primary,.manage-awards-secondary,.set-affiliation-primary,.set-affiliation-secondary,.set-sub-group-primary,.set-sub-group-secondary,.subscription-management-primary,.subscription-management-secondary,.subscription-management-secondary-action,.export-members-primary,.export-members-secondary,.a2b-btn-primary,.a2b-btn-cancel,.class-invite-btn{min-height:42px;border-radius:12px;font-size:.78rem;padding-left:.9rem;padding-right:.9rem;}.members-filter-input,.members-filter-search-input,.members-action-select,.send-email-input,.set-tags-input,.class-invite-input,.class-invite-select,.class-invite-textarea,.a2b-input,.a2b-select,.a2b-textarea{min-height:42px;border-radius:12px;font-size:.8rem;padding:.72rem .85rem;}.members-filter-search-icon{left:.85rem;font-size:.88rem;}.members-filter-search-input{padding-left:2.4rem;}.members-card-header{flex-wrap:wrap;align-items:stretch;gap:.65rem;}.view-switcher{width:100%;max-width:none;gap:.15rem;padding:.22rem;}.members-card-tools{width:100%;min-width:0;justify-content:flex-end;flex-wrap:nowrap;gap:.45rem;}.members-card-sort-note{display:none;}.members-per-page{min-height:36px;padding:0 .45rem;gap:.25rem;flex-shrink:1;min-width:0;}.members-per-page__label{display:none;}.members-per-page__select{font-size:.74rem;padding:0 .85rem 0 0;min-width:2rem;}.members-columns-wrap{position:relative;flex-shrink:0;}.members-card-columns{min-height:36px;padding:0 .65rem;gap:.35rem;}.members-card-columns-count{min-width:1.25rem;height:1.25rem;padding:0 .3rem;font-size:.66rem;}.members-columns-panel{top:calc(100% + .45rem);right:0;left:auto;width:min(260px,100vw - 2rem);max-width:calc(100vw - 2rem);max-height:min(65vh,24rem);overflow-y:auto;}.view-btn{flex:1 1 0;min-width:0;min-height:38px;padding:0 .8rem;font-size:.76rem;}.members-filter-layout-row,.members-filter-date-row,.members-filter-compact-row{--bs-gutter-x:.6rem;margin-left:0;margin-right:0;}.members-filter-layout-row>[class*=col-],.members-filter-date-row>[class*=col-],.members-filter-compact-row>[class*=col-]{min-width:0;padding-left:.3rem;padding-right:.3rem;}.members-filter-layout-row>[class*=col-]:first-child,.members-filter-date-row>[class*=col-]:first-child,.members-filter-compact-row>[class*=col-]:first-child{padding-left:0;}.members-filter-layout-row>[class*=col-]:last-child,.members-filter-date-row>[class*=col-]:last-child,.members-filter-compact-row>[class*=col-]:last-child{padding-right:0;}.members-filter-input[type=datetime-local]{min-width:0;max-width:100%;padding-left:.72rem;padding-right:.72rem;font-size:.76rem;}.members-filter-date-row .members-filter-input[type=datetime-local],.members-filter-compact-row .members-filter-input[type=datetime-local]{padding-left:.62rem;padding-right:.62rem;font-size:.74rem;}.members-filter-date-row .col-6,.members-filter-compact-row .col-6{flex:0 0 calc(50% - .3rem);max-width:calc(50% - .3rem);}.members-table-pill,.members-table-sex,.badge-tag,.members-audit-summary-pill,.members-audit-subscription-chip,.members-audit-subscription-part,.send-email-chip,.set-tags-chip,.set-tags-preview-tag,.set-tags-success-tag,.manage-awards-badge,.manage-awards-success-badge,.set-affiliation-badge,.set-affiliation-success-student,.set-sub-group-badge,.set-sub-group-success-student{font-size:.74rem;}.members-audit-view .members-audit-summary-label,.members-audit-view .members-audit-meta-line,.subscription-audit .members-audit-summary-label,.subscription-audit .members-audit-meta-line,.members-card-range,.members-card-sort-note,.send-email-modal-subtitle,.set-tags-modal-subtitle,.set-tags-preview-subtitle,.manage-awards-subtitle,.set-affiliation-subtitle,.set-sub-group-subtitle,.subscription-management-subtitle,.subscription-management-preview-summary,.export-members-modal-subtitle,.class-invite-subtitle{font-size:.76rem;}.send-email-modal-title,.bulk-charge-modal-title,.set-tags-modal-title,.manage-awards-title,.set-affiliation-title,.set-sub-group-title,.subscription-management-title,.export-members-modal-title,.class-invite-title{font-size:1rem;}.manage-awards-success-title,.set-tags-preview-title,.set-tags-success-title,.set-affiliation-success-title,.set-sub-group-success-title{font-size:1.15rem;}.members-table-bool,.members-audit-status{width:30px;height:30px;font-size:.8rem;}.members-table-check-toggle,.members-table-row-check,.members-audit-checkbox{width:16px;height:16px;}.send-email-modal{padding:1rem;}.send-email-modal-header{align-items:flex-start;gap:.75rem;}.send-email-modal-header-copy{min-width:0;}.send-email-modal-title{font-size:1.05rem;}.send-email-recipient-panel{padding:.8rem;}.send-email-recipient-toolbar{flex-direction:column;align-items:stretch;gap:.7rem;}.send-email-recipient-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;width:100%;}.send-email-recipient-search{grid-column:1/-1;}.send-email-recipient-action{justify-content:center;width:100%;padding:0 .8rem;font-size:.76rem;}.send-email-chip{width:100%;justify-content:flex-start;}.send-email-chip-label{max-width:none;min-width:0;flex:1;}.send-email-form-grid{grid-template-columns:minmax(0,1fr);gap:.85rem;}.send-email-input{min-height:46px;font-size:.8rem;padding:.75rem .9rem;}.send-email-upload-wrap .input-group{grid-template-columns:minmax(0,1fr);}.send-email-editor-shell .d-flex.align-items-center.gap-2{flex-direction:column-reverse;align-items:stretch!important;}.send-email-editor-shell .btn.btn-sm.btn-primary{width:100%;}.members-page-shell{padding-left:.4rem;padding-right:.4rem;}.members-search-modal__content{max-height:100dvh;border-radius:0;}.members-search-modal__header{padding:1rem 1rem .85rem;}.members-search-modal__body{padding:.9rem 1rem;}.members-search-modal__footer{padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom));}.members-search-modal__footer .members-filter-reset,.members-search-modal__footer .members-filter-submit{min-height:44px;}.filter-panel,.action-bar,.members-card{border-radius:18px;}.members-table th,.members-table td{padding:.78rem .55rem;font-size:.84rem;}.members-table{border-collapse:separate;border-spacing:0;}.members-table .members-table-check{width:44px;min-width:44px;max-width:44px;position:sticky;left:0;z-index:4;background:inherit;background-clip:padding-box;overflow:hidden;}.members-table .members-sticky-name-col{position:sticky;left:44px;z-index:3;background:inherit;background-clip:padding-box;width:148px;min-width:148px;max-width:148px;border-right:1px solid #eef2f7;box-shadow:8px 0 12px -12px rgba(15,23,42,.24);overflow:hidden;}.members-table thead .members-table-check{z-index:6;background:#fff;}.members-table thead .members-sticky-name-col{z-index:5;background:#fff;}.members-table tbody tr:nth-child(odd) .members-table-check,.members-table tbody tr:nth-child(odd) .members-sticky-name-col{background:#fcfdff;}.members-table tbody tr:nth-child(even) .members-table-check,.members-table tbody tr:nth-child(even) .members-sticky-name-col{background:#f7f9fc;}.members-table tbody tr.is-selected .members-table-check,.members-table tbody tr.is-selected .members-sticky-name-col{background:#f3edff;}.members-table .members-table-name-link{gap:.55rem;width:100%;min-width:0;}.members-table .members-table-avatar{width:2rem;height:2rem;font-size:.68rem;}.members-table .members-table-name-wrap{min-width:0;}.members-table .members-table-name{font-size:.82rem;line-height:1.15;}.members-table .members-table-pill{min-height:1.65rem;padding:0 .5rem;font-size:.68rem;}.members-table .members-col-class,.members-table .members-col-group,.members-table .members-col-subgroup,.members-table .members-col-award{width:112px;min-width:112px;}.members-table .members-col-tags{width:78px;min-width:78px;}.members-table .members-col-dob{width:84px;min-width:84px;}.members-table .members-col-age{width:44px;min-width:44px;}.members-table .members-col-sex{width:68px;min-width:68px;}.members-table .members-col-photo,.members-table .members-col-insurance{width:54px;min-width:54px;}.members-audit-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}.members-audit-table{border-collapse:separate;border-spacing:0;}.members-audit-table th{padding:.72rem .28rem;font-size:.59rem;}.members-audit-table td{padding:.78rem .35rem;}.members-audit-table .members-audit-sticky-name-col{position:sticky;background:inherit;background-clip:padding-box;overflow:hidden;}.members-audit-table .members-audit-sticky-status-col{position:sticky;left:0;z-index:4;background:inherit;background-clip:padding-box;overflow:hidden;width:64px;min-width:64px;max-width:64px;text-align:center;}.members-audit-table .members-audit-sticky-name-col{left:64px;z-index:3;width:98px;min-width:98px;max-width:98px;border-right:1px solid #eef2f7;box-shadow:6px 0 10px -10px rgba(15,23,42,.18);}.members-audit-table thead .members-audit-sticky-status-col,.members-audit-table thead .members-audit-sticky-name-col{background:#fff;}.members-audit-table thead .members-audit-sticky-status-col{z-index:6;}.members-audit-table thead .members-audit-sticky-name-col{z-index:5;}.members-audit-table tbody tr:nth-child(odd) .members-audit-sticky-status-col,.members-audit-table tbody tr:nth-child(odd) .members-audit-sticky-name-col{background:#fcfdff;}.members-audit-table tbody tr:nth-child(even) .members-audit-sticky-status-col,.members-audit-table tbody tr:nth-child(even) .members-audit-sticky-name-col{background:#f7f9fc;}.members-audit-table tbody tr.is-selected .members-audit-sticky-status-col,.members-audit-table tbody tr.is-selected .members-audit-sticky-name-col{background:#effcf8;}.members-audit-table .members-audit-col-check{width:28px;min-width:28px;max-width:28px;}.members-audit-table .members-audit-name-cell{gap:.32rem;min-width:0;}.members-audit-table .members-audit-avatar{width:1.55rem;height:1.55rem;font-size:.56rem;}.members-audit-table .members-audit-name-copy{min-width:0;font-size:.72rem;line-height:1.08;word-break:break-word;}.members-audit-table .members-audit-status{width:28px;height:28px;font-size:.72rem;}.members-audit-table .members-audit-col-subscriptions{min-width:210px;}.members-audit-table .members-audit-col-total{width:70px;min-width:70px;max-width:70px;}.members-audit-table .members-audit-total-chip{min-width:1.55rem;min-height:1.55rem;padding:0 .35rem;font-size:.68rem;}.members-card-sort-note{display:none;}}.class-invite-flow__title{font-size:1.55rem;}.class-invite-flow__subtitle{font-size:.84rem;}.class-invite-flow__step-dot{width:32px;height:32px;font-size:1rem;}.class-invite-flow__step-label{font-size:.88rem;}.class-invite-flow__stage-title{font-size:1.25rem;}.class-invite-flow__stage-subtitle{font-size:.88rem;}.class-invite-flow__card-title,.class-invite-flow__cancel-title{font-size:1rem;}.class-invite-flow__card-subtitle,.class-invite-flow__cancel-source,.class-invite-flow__join-subtitle,.class-invite-flow__review-copy span{font-size:.82rem;}.class-invite-flow__student-count,.class-invite-flow__capacity-pill,.class-invite-flow__invite-option-date,.class-invite-flow__preview-class-date{font-size:.76rem;}.class-invite-flow__pill,.class-invite-flow__preview-sub,.class-invite-flow__review-chip,.class-invite-flow__invite-chip{padding:.36rem .68rem;font-size:.82rem;}.class-invite-flow__date-label,.class-invite-flow__row-date-label,.class-invite-flow__invite-week-title,.class-invite-flow__catalogue-title,.class-invite-flow__catalogue-group-title{font-size:.82rem;}.class-invite-flow__date-select,.class-invite-flow__row-date-select,.class-invite-flow__search-input,.class-invite-flow__invite-date-select{min-height:36px;padding:.32rem .65rem;font-size:.82rem;}.class-invite-flow__cancel-count,.class-invite-flow__add-more-subtitle,.class-invite-flow__invite-week-copy,.class-invite-flow__catalogue-group-count,.class-invite-flow__preview-meta{font-size:.76rem;}.class-invite-flow__add-more-title,.class-invite-flow__catalogue-group-name,.class-invite-flow__invite-option-name,.class-invite-flow__preview-name,.class-invite-flow__join-title,.class-invite-flow__review-title{font-size:.9rem;}.class-invite-flow__library-cancel,.class-invite-flow__secondary-btn,.class-invite-flow__primary-btn{min-height:40px;padding:.62rem .95rem;font-size:.86rem;}.class-invite-flow__library-add,.class-invite-flow__invite-option-group,.class-invite-flow__preview-class-name{font-size:.8rem;}.class-invite-flow__preview-head{font-size:.72rem;}.class-invite-flow__info-banner,.class-invite-flow__subscription-group-subtitle{font-size:.78rem;}.class-invite-flow__subscription-group-title{font-size:.9rem;}.class-invite-flow__subscription-group-count,.class-invite-flow__invite-start-label{font-size:.74rem;}.class-invite-flow{min-height:70vh;}.class-invite-flow__header{padding:.85rem 0 .8rem;gap:.75rem;}.class-invite-flow__header-copy,.class-invite-flow__card-copy,.class-invite-flow__subscription-group-copy{gap:.65rem;}.class-invite-flow__header-icon,.class-invite-flow__card-icon{width:42px;height:42px;border-radius:12px;font-size:1rem;}.class-invite-flow__subscription-group-icon{width:32px;height:32px;border-radius:10px;font-size:.88rem;}.class-invite-flow__close{width:38px;height:38px;font-size:1.15rem;}.class-invite-flow__title{font-size:1.32rem;}.class-invite-flow__subtitle{font-size:.76rem;}.class-invite-flow__stage-bar{padding:.9rem 0 .8rem;}.class-invite-flow__steps{gap:.65rem;margin-bottom:.8rem;}.class-invite-flow__step{gap:.45rem;}.class-invite-flow__step-dot{width:28px;height:28px;font-size:.88rem;border-width:1.5px;}.class-invite-flow__step-label{font-size:.8rem;}.class-invite-flow__stage-title{font-size:1.08rem;}.class-invite-flow__stage-subtitle{font-size:.8rem;}.class-invite-flow__body{padding:.95rem 0;gap:.75rem;}.class-invite-flow__card,.class-invite-flow__preview,.class-invite-flow__subscription-group-card,.class-invite-flow__catalogue,.class-invite-flow__invite-week-card{border-radius:16px;}.class-invite-flow__card.is-leave-card,.class-invite-flow__catalogue,.class-invite-flow__library,.class-invite-flow__subscription-group-head{padding:.8rem;}.class-invite-flow__card-head,.class-invite-flow__leave-summary,.class-invite-flow__cancel-head,.class-invite-flow__invite-week-head,.class-invite-flow__catalogue-head,.class-invite-flow__catalogue-group-head,.class-invite-flow__subscription-group-head,.class-invite-flow__footer{gap:.75rem;}.class-invite-flow__card-title,.class-invite-flow__cancel-title,.class-invite-flow__subscription-group-title{font-size:.92rem;}.class-invite-flow__card-subtitle,.class-invite-flow__cancel-source,.class-invite-flow__join-subtitle,.class-invite-flow__review-copy span,.class-invite-flow__subscription-group-subtitle,.class-invite-flow__info-banner{font-size:.74rem;}.class-invite-flow__student-count,.class-invite-flow__capacity-pill,.class-invite-flow__invite-option-date,.class-invite-flow__preview-class-date,.class-invite-flow__subscription-group-count{padding:.28rem .55rem;font-size:.7rem;}.class-invite-flow__pill,.class-invite-flow__preview-sub,.class-invite-flow__review-chip,.class-invite-flow__invite-chip{padding:.28rem .52rem;border-radius:10px;font-size:.76rem;}.class-invite-flow__custom-badge{padding:.22rem .42rem;font-size:.66rem;}.class-invite-flow__date-box,.class-invite-flow__row-date-box,.class-invite-flow__invite-date-box.is-subscription-start,.class-invite-flow__invite-date-box{gap:.4rem;border-radius:12px;padding:.26rem .38rem .26rem .58rem;}.class-invite-flow__date-label,.class-invite-flow__row-date-label,.class-invite-flow__invite-week-title,.class-invite-flow__catalogue-title,.class-invite-flow__catalogue-group-title,.class-invite-flow__invite-start-label{font-size:.74rem;}.class-invite-flow__date-select,.class-invite-flow__row-date-select,.class-invite-flow__search-input,.class-invite-flow__invite-date-select{min-height:32px;padding:.24rem .5rem;font-size:.76rem;border-radius:8px;}.class-invite-flow__cancel-row,.class-invite-flow__subscription-row,.class-invite-flow__library-row{padding:.65rem .8rem;gap:.7rem;}.class-invite-flow__cancel-checkbox,.class-invite-flow__catalogue-checkbox,.class-invite-flow__subscription-checkbox{width:16px;height:16px;}.class-invite-flow__cancel-count,.class-invite-flow__add-more-subtitle,.class-invite-flow__invite-week-copy,.class-invite-flow__catalogue-group-count,.class-invite-flow__preview-meta{font-size:.7rem;}.class-invite-flow__add-more{gap:.65rem;padding:.8rem;}.class-invite-flow__add-more-icon{width:24px;height:24px;border-radius:8px;font-size:.74rem;}.class-invite-flow__add-more-title,.class-invite-flow__catalogue-group-name,.class-invite-flow__invite-option-name,.class-invite-flow__preview-name,.class-invite-flow__join-title,.class-invite-flow__review-title{font-size:.82rem;}.class-invite-flow__library-search{padding:.65rem 0 .45rem;gap:.55rem;}.class-invite-flow__library-list{max-height:160px;border-radius:12px;}.class-invite-flow__library-cancel,.class-invite-flow__secondary-btn,.class-invite-flow__primary-btn{min-height:36px;padding:.5rem .8rem;border-radius:12px;font-size:.8rem;}.class-invite-flow__library-add,.class-invite-flow__invite-option-group,.class-invite-flow__preview-class-name{font-size:.74rem;}.class-invite-flow__preview-head{padding:.7rem .8rem;font-size:.66rem;}.class-invite-flow__preview-row{padding:.75rem .8rem;gap:.75rem;}.class-invite-flow__catalogue-row-side{justify-content:flex-end;flex-wrap:wrap;}.class-invite-flow__preview-avatar,.class-invite-flow__invite-option-index{width:30px;height:30px;font-size:.72rem;}.class-invite-flow__preview-meta{margin-top:.12rem;}.class-invite-flow__preview-class-name{padding:.5rem .58rem;}.class-invite-flow__preview-class-card{padding:.5rem .58rem;}.class-invite-flow__invite-chip-row,.class-invite-flow__preview-subs,.class-invite-flow__review-chips,.class-invite-flow__join-list{gap:.45rem;}.class-invite-flow__invite-week-card{padding:.75rem;}.class-invite-flow__invite-week-nav{gap:.45rem;margin-top:.55rem;}.class-invite-flow__invite-week-list{gap:.5rem;}.class-invite-flow__invite-week{min-width:118px;border-radius:12px;padding:.56rem .68rem;}.class-invite-flow__invite-week-arrow{width:34px;height:34px;border-radius:10px;}.class-invite-flow__invite-week-label{font-size:.62rem;}.class-invite-flow__invite-week-range{font-size:.76rem;}.class-invite-flow__catalogue-groups,.class-invite-flow__subscriptions-stage{gap:.75rem;}.class-invite-flow__catalogue-group-head{padding:.65rem .8rem;}.class-invite-flow__catalogue-group-list{gap:.5rem;padding:.65rem;}.class-invite-flow__catalogue-row,.class-invite-flow__invite-option{border-radius:12px;padding:.62rem .7rem;}.class-invite-flow__invite-date-select{min-width:92px;}.class-invite-flow__form-grid{gap:.8rem;}.class-invite-flow__info-banner{padding:.65rem .8rem;}.class-invite-flow__footer{padding:.85rem 1rem 1rem;}.class-invite-flow__step.is-complete{color:#10b981;}.class-invite-flow__step.is-complete .class-invite-flow__step-dot{border-color:#10b981;background:#fff;color:#10b981;}.class-invite-flow__step.is-active.is-invite,.class-invite-flow__step.is-active.is-subscriptions{color:#10b981;}.class-invite-flow__step.is-active.is-invite .class-invite-flow__step-dot,.class-invite-flow__step.is-active.is-subscriptions .class-invite-flow__step-dot{border-color:#10b981;background:#10b981;color:#fff;}.class-invite-flow__step.is-active.is-apply{color:var(--bs-primary);}.class-invite-flow__step.is-active.is-apply .class-invite-flow__step-dot{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.class-invite-flow__step-line.is-complete{background:#10b981;}.class-invite-flow__field-hint{margin-top:.3rem;color:#97a4c3;font-size:.7rem;}.class-invite-flow__apply-form-card{padding:1rem;border-color:#e3eaf4;border-radius:18px;}.class-invite-flow__card.is-apply-form-card{border-color:#e3eaf4;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.04);}.class-invite-flow__apply-preview{border:1px solid #e3eaf4;border-radius:18px;background:#fff;overflow:hidden;}.class-invite-flow__apply-preview-head,.class-invite-flow__apply-preview-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.45fr);gap:.7rem;align-items:start;}.class-invite-flow__apply-preview-head{padding:.7rem .8rem;border-bottom:1px solid #edf1f7;color:#94a3b8;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.class-invite-flow__apply-preview-head span:nth-child(2){color:#dc3c3c;}.class-invite-flow__apply-preview-head span:nth-child(3){color:#0f9f73;}.class-invite-flow__apply-preview-row{padding:.95rem .9rem;border-bottom:1px solid #edf1f7;}.class-invite-flow__apply-preview-row:last-child{border-bottom:0;}.class-invite-flow__apply-student,.class-invite-flow__apply-option{display:flex;align-items:flex-start;gap:.6rem;flex-direction:row;}.class-invite-flow__apply-inviting{display:flex;flex-direction:column;gap:.45rem;}.class-invite-flow__apply-leaving{display:flex;flex-direction:column;gap:.45rem;}.class-invite-flow__apply-inviting-label{color:#13795b;font-size:.68rem;font-weight:800;text-transform:uppercase;}.class-invite-flow__apply-option{align-items:stretch;}.class-invite-flow__apply-option-card{flex:1;border:1px solid rgba(16,185,129,.28);border-radius:12px;background:#f4fffa;padding:.5rem .58rem;display:flex;flex-direction:column;align-items:stretch;gap:.42rem;}.class-invite-flow__apply-option-main{display:flex;flex-direction:column;gap:.14rem;}.class-invite-flow__apply-option-top{display:flex;align-items:center;justify-content:space-between;gap:.55rem;}.class-invite-flow__apply-option-subs{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.1rem;padding-top:.35rem;border-top:1px solid rgba(16,185,129,.16);}.class-invite-flow__apply-option-subs.is-leaving-subs{margin-left:0;margin-top:0;padding-top:0;border-top:0;}.class-invite-flow__apply-option-subs .class-invite-flow__review-chip.is-add{font-size:.7rem;}.class-invite-flow__apply-option-subs .class-invite-flow__review-chip.is-remove{font-size:.7rem;}.class-invite-flow__apply-added-sub{display:inline-flex;align-items:center;gap:.38rem;border:1px solid rgba(16,185,129,.32);background:#ecfdf5;border-radius:10px;padding:.22rem .34rem .22rem .52rem;color:#0f766e;font-size:.76rem;font-weight:700;line-height:1.2;}.class-invite-flow__apply-added-sub-name{display:inline-flex;align-items:center;gap:.28rem;color:#0f766e;}.class-invite-flow__apply-added-sub-name span{color:#42998c;font-weight:600;}.class-invite-flow__apply-added-sub-date{display:inline-flex;align-items:center;border-radius:8px;border:1px solid rgba(16,185,129,.3);background:#fff;padding:.18rem .42rem;color:#0f766e;font-size:.72rem;font-weight:700;}.class-invite-flow__email-card{display:flex;align-items:center;gap:.75rem;border:1px solid #e3eaf4;border-radius:18px;background:#fff;padding:.9rem 1rem;}.class-invite-flow__email-card .form-check-input{margin:0;width:16px;height:16px;accent-color:#6366f1;}.class-invite-flow__email-copy{display:flex;flex-direction:column;gap:.1rem;}.class-invite-flow__apply-state{display:flex;flex-direction:column;gap:.85rem;}.class-invite-flow__apply-shell{display:flex;flex-direction:column;gap:.8rem;}.class-invite-flow__apply-progress-card,.class-invite-flow__apply-rows-card,.class-invite-flow__success-help-card{border:1px solid rgba(var(--bs-primary-rgb),.24);border-radius:16px;background:rgba(var(--bs-primary-rgb),.08);}.class-invite-flow__apply-success-card{border:rgba(255,255,255,.24);border-radius:16px;background:rgba(158,147,149,.08);}.class-invite-flow__apply-progress-card{padding:.8rem .9rem .75rem;}.class-invite-flow__apply-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.55rem;}.class-invite-flow__apply-progress-copy{display:flex;align-items:center;gap:.65rem;min-width:0;}.class-invite-flow__apply-progress-spinner,.class-invite-flow__apply-row-spinner{display:inline-flex;width:.85rem;height:.85rem;border:2px solid #d8def5;border-top-color:var(--bs-primary);border-radius:999px;animation:class-invite-spin .8s linear infinite;}.class-invite-flow__apply-progress-title{color:var(--bs-secondary);font-size:.84rem;font-weight:800;}.class-invite-flow__apply-progress-meta,.class-invite-flow__footer-copy{color:#94a3b8;font-size:.72rem;font-weight:700;}.class-invite-flow__apply-progress-percent{color:var(--bs-primary);font-size:1.1rem;font-weight:800;}.class-invite-flow__apply-progress-bar{width:100%;height:8px;border-radius:999px;background:#eef2ff;overflow:hidden;}.class-invite-flow__apply-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--bs-primary);}.class-invite-flow__apply-rows-card{overflow:hidden;}.class-invite-flow__apply-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.78rem .9rem;border-top:1px solid #edf1f7;background:#fff;}.class-invite-flow__apply-row:first-child{border-top:0;}.class-invite-flow__apply-row.is-processing{background:#f5f3ff;}.class-invite-flow__apply-row.is-error{background:#fff5f5;}.class-invite-flow__apply-row-main{display:flex;align-items:center;gap:.55rem;min-width:0;flex:1 1 auto;}.class-invite-flow__apply-row-state{width:.95rem;height:.95rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#10b981;}.class-invite-flow__apply-row-avatar{flex-shrink:0;}.class-invite-flow__apply-row-student{color:var(--bs-secondary);font-size:.8rem;font-weight:800;min-width:0;white-space:nowrap;}.class-invite-flow__apply-row-action{display:inline-flex;align-items:center;min-height:1.35rem;padding:0 .42rem;border-radius:7px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.62rem;font-weight:800;letter-spacing:.04em;}.class-invite-flow__apply-row-status{color:#94a3b8;font-size:.72rem;font-weight:700;white-space:nowrap;flex-shrink:0;}.class-invite-flow__apply-row-status.is-done{color:#0f766e;}.class-invite-flow__apply-row-status.is-processing{color:var(--bs-primary);}.class-invite-flow__apply-row-status.is-error{color:#dc2626;}.class-invite-flow__apply-success-card{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.4rem 1rem;}.class-invite-flow__apply-success-icon{width:4.4rem;height:4.4rem;border-radius:999px;background:#ecfdf5;color:#10b981;display:inline-flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:.85rem;}.class-invite-flow__apply-title{margin:0;color:var(--bs-secondary);font-size:.98rem;font-weight:800;}.class-invite-flow__apply-subtitle{margin:.45rem 0 0;color:#94a3b8;font-size:.76rem;font-weight:700;}.class-invite-flow__success-help-card{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.95rem;background:rgba(var(--bs-primary-rgb),.08);border:1px solid rgba(var(--bs-primary-rgb),.24);}.class-invite-flow__success-help-copy{display:flex;align-items:flex-start;gap:.75rem;}.class-invite-flow__success-help-icon{width:2rem;height:2rem;border-radius:10px;background:#fff;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.class-invite-flow__success-help-title{color:var(--bs-secondary);font-size:.82rem;font-weight:800;}.class-invite-flow__success-help-subtitle{margin-top:.16rem;color:#94a3b8;font-size:.72rem;font-weight:600;line-height:1.35;}.class-invite-flow__success-link{display:inline-flex;align-items:center;gap:.45rem;min-height:2rem;padding:.35rem .7rem;border:1px solid rgba(var(--bs-primary-rgb),.28);border-radius:10px;background:#fff;color:var(--bs-primary);font-size:.74rem;font-weight:700;text-decoration:none;white-space:nowrap;}.class-invite-flow__footer.is-apply-state{align-items:center;}.class-invite-flow__primary-btn.is-success{background:var(--bs-primary);border-color:var(--bs-primary);box-shadow:0 10px 24px rgba(var(--bs-primary-rgb),.18);}@keyframes class-invite-spin{to{transform:rotate(360deg);}}.class-invite-flow__email-title{color:var(--bs-secondary);font-size:.82rem;font-weight:800;}.class-invite-flow__email-subtitle{color:#97a4c3;font-size:.7rem;}.class-invite-flow__primary-btn.is-apply{background:var(--bs-primary);}.member-transfer-modal{display:flex;flex-direction:column;min-height:78vh;background:#fff;}.member-transfer-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.5rem 1rem;border-bottom:1px solid #edf1f7;}.member-transfer-modal__header-copy{display:flex;align-items:flex-start;gap:.9rem;}.member-transfer-modal__header-icon{width:50px;height:50px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:1.15rem;}.member-transfer-modal__title{margin:0;font-size:1.4rem;font-weight:800;letter-spacing:-.03em;}.member-transfer-modal__subtitle{margin:.2rem 0 0;color:#93a2c2;font-size:.82rem;font-weight:700;}.member-transfer-modal__close{width:46px;height:46px;border:0;border-radius:50%;background:#f7f9fd;color:#9aa6c1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.member-transfer-modal__body{flex:1;overflow-y:auto;padding:1.35rem 1.5rem;background:#fff;display:flex;flex-direction:column;gap:1rem;}.member-transfer-modal__section{display:flex;flex-direction:column;gap:.55rem;}.member-transfer-modal__section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.member-transfer-modal__section-label{color:#94a3b8;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}.member-transfer-modal__clear-btn{border:0;background:transparent;color:var(--bs-primary);font-size:.8rem;font-weight:800;padding:0;}.member-transfer-modal__info-card,.member-transfer-modal__summary-card,.member-transfer-modal__email-card{border:1px solid rgba(var(--bs-primary-rgb),.24);border-radius:18px;background:rgba(var(--bs-primary-rgb),.08);}.member-transfer-modal__info-card{display:flex;align-items:flex-start;gap:.95rem;padding:1rem 1.1rem;}.member-transfer-modal__info-icon{width:42px;height:42px;border-radius:14px;border:1px solid rgba(var(--bs-primary-rgb),.24);background:rgba(var(--bs-primary-rgb),.06);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.member-transfer-modal__info-copy h3{margin:0;color:var(--bs-primary);font-size:.92rem;font-weight:800;}.member-transfer-modal__info-copy p{margin:.35rem 0 0;color:#93a2c2;font-size:.82rem;font-weight:700;line-height:1.55;}.member-transfer-modal__select-shell{display:flex;flex-direction:column;gap:.6rem;}.member-transfer-modal__select-btn{width:100%;border:1px solid #e2e8f3;border-radius:16px;background:#fff;color:#31405f;min-height:46px;padding:.7rem .9rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.9rem;font-weight:800;}.member-transfer-modal__select-btn.is-static{position:relative;cursor:default;}.member-transfer-modal__select-copy{display:inline-flex;align-items:center;gap:.75rem;color:#64748b;}.member-transfer-modal__select-copy i{color:var(--bs-primary);}.member-transfer-modal__date-select{position:absolute;inset:0;opacity:0;cursor:pointer;}.member-transfer-modal__hint{color:#94a3b8;font-size:.76rem;font-weight:700;}.member-transfer-modal__hint strong,.member-transfer-modal__summary-copy strong,.member-transfer-modal__success-copy strong{color:var(--bs-secondary);font-weight:800;}.member-transfer-modal__summary-copy span,.member-transfer-modal__success-copy span{color:var(--bs-primary);font-weight:800;}.member-transfer-modal__date-panel,.member-transfer-modal__destination-list{border:1px solid #e2e8f3;border-radius:18px;background:#fff;overflow:hidden;}.member-transfer-modal__date-panel{max-height:360px;overflow-y:auto;padding:.7rem 0;}.member-transfer-modal__date-option{width:100%;border:0;background:#fff;padding:.75rem .9rem;display:flex;align-items:center;gap:.8rem;color:#31405f;font-size:.9rem;font-weight:800;text-align:left;}.member-transfer-modal__date-option.is-selected{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.member-transfer-modal__date-subheading{padding:.7rem 1rem .45rem;color:#94a3b8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}.member-transfer-modal__radio{width:18px;height:18px;border-radius:50%;border:1.5px solid #d5dfec;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.member-transfer-modal__radio.is-selected,.member-transfer-modal__date-option.is-selected .member-transfer-modal__radio,.member-transfer-modal__destination-option.is-selected .member-transfer-modal__radio{border-color:var(--bs-primary);}.member-transfer-modal__radio.is-selected::after,.member-transfer-modal__date-option.is-selected .member-transfer-modal__radio::after,.member-transfer-modal__destination-option.is-selected .member-transfer-modal__radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--bs-primary);}.member-transfer-modal__destination-card{border-top:1px solid #edf1f7;}.member-transfer-modal__destination-card:first-child{border-top:0;}.member-transfer-modal__destination-head{width:100%;border:0;background:rgba(var(--bs-primary-rgb),.06);padding:.8rem .9rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;color:#31405f;font-size:.9rem;font-weight:800;text-align:left;}.member-transfer-modal__destination-title{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.55rem;}.member-transfer-modal__destination-count{min-width:1.6rem;height:1.6rem;border-radius:999px;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;}.member-transfer-modal__destination-selected{border-radius:999px;background:var(--bs-primary);color:#fff;padding:.26rem .6rem;font-size:.68rem;font-weight:800;}.member-transfer-modal__destination-options{max-height:320px;overflow-y:auto;}.member-transfer-modal__destination-option{width:100%;border:0;border-top:1px solid #edf1f7;background:#fff;padding:.75rem .9rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem 1rem;text-align:left;}.member-transfer-modal__destination-option.is-selected{background:rgba(var(--bs-primary-rgb),.04);}.member-transfer-modal__destination-option-main{display:inline-flex;align-items:center;gap:.8rem;min-width:0;}.member-transfer-modal__destination-name{color:#31405f;font-size:.88rem;font-weight:800;overflow-wrap:anywhere;}.member-transfer-modal__destination-occupancy{font-size:.78rem;font-weight:800;white-space:nowrap;}.member-transfer-modal__destination-session-group{border-top:1px solid #edf1f7;}.member-transfer-modal__destination-session-head{width:100%;border:0;background:#fff;padding:.75rem .9rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;color:#31405f;font-size:.88rem;font-weight:800;text-align:left;}.member-transfer-modal__destination-session-group.is-selected .member-transfer-modal__destination-session-head{background:rgba(var(--bs-primary-rgb),.04);}.member-transfer-modal__destination-session-list{border-top:1px solid #edf1f7;}.member-transfer-modal__destination-occupancy.is-open{color:var(--bs-success);}.member-transfer-modal__destination-occupancy.is-near-full{color:var(--bs-warning);}.member-transfer-modal__destination-occupancy.is-full{color:var(--bs-danger);}.member-transfer-modal__destination-track{grid-column:1/-1;height:5px;border-radius:999px;background:#edf1f7;overflow:hidden;}.member-transfer-modal__destination-bar{display:block;height:100%;border-radius:inherit;}.member-transfer-modal__destination-bar.is-open{background:var(--bs-success);}.member-transfer-modal__destination-bar.is-near-full{background:var(--bs-warning);}.member-transfer-modal__destination-bar.is-full{background:var(--bs-danger);}.member-transfer-modal__summary-card,.member-transfer-modal__email-card{display:flex;align-items:flex-start;gap:.9rem;padding:.95rem 1rem;}.member-transfer-modal__summary-icon{width:38px;height:38px;border-radius:12px;background:#fff;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.member-transfer-modal__summary-copy,.member-transfer-modal__email-copy{display:flex;flex-direction:column;gap:.18rem;}.member-transfer-modal__summary-copy{color:#94a3b8;font-size:.8rem;font-weight:700;line-height:1.55;}.member-transfer-modal__email-card{align-items:center;}.member-transfer-modal__email-toggle{position:relative;display:inline-flex;flex-shrink:0;}.member-transfer-modal__email-toggle input{position:absolute;inset:0;opacity:0;cursor:pointer;}.member-transfer-modal__email-toggle-ui{width:44px;height:26px;border-radius:999px;background:#e2e8f3;position:relative;transition:background-color .2s ease;}.member-transfer-modal__email-toggle-ui::after{content:"";width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .2s ease;box-shadow:0 2px 6px rgba(15,23,42,.12);}.member-transfer-modal__email-toggle input:checked+.member-transfer-modal__email-toggle-ui{background:var(--bs-primary);}.member-transfer-modal__email-toggle input:checked+.member-transfer-modal__email-toggle-ui::after{transform:translateX(18px);}.member-transfer-modal__email-title{color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.member-transfer-modal__email-subtitle{color:#94a3b8;font-size:.76rem;font-weight:700;}.member-transfer-modal__error{border-radius:14px;background:rgba(var(--bs-danger-rgb),.08);color:var(--bs-danger);padding:.85rem 1rem;font-size:.8rem;font-weight:700;}.member-transfer-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem 1.3rem;border-top:1px solid #edf1f7;background:#fff;}.member-transfer-modal__secondary-btn,.member-transfer-modal__primary-btn{min-height:42px;border-radius:14px;padding:.65rem 1rem;font-size:.88rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;}.member-transfer-modal__secondary-btn{border:1px solid #e2e8f3;background:#fff;color:#94a3b8;}.member-transfer-modal__primary-btn{min-width:210px;border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;box-shadow:0 12px 24px rgba(var(--bs-primary-rgb),.2);}.member-transfer-modal__primary-btn:disabled{border-color:#eef2f7;background:#f8fafc;color:#c1cbe0;box-shadow:none;}.member-transfer-modal__btn-spinner{display:inline-flex;width:.95rem;height:.95rem;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:999px;animation:class-invite-spin .8s linear infinite;}.member-transfer-modal__success-shell{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 1.5rem 2.4rem;text-align:center;}.member-transfer-modal__success-icon{width:96px;height:96px;border-radius:50%;border:2px solid rgba(var(--bs-primary-rgb),.32);background:rgba(var(--bs-primary-rgb),.06);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:2.2rem;}.member-transfer-modal__success-title{margin:0;color:var(--bs-secondary);font-size:1.45rem;font-weight:800;letter-spacing:-.03em;}.member-transfer-modal__success-copy{display:flex;flex-direction:column;gap:.25rem;color:#94a3b8;font-size:.84rem;font-weight:700;}.member-transfer-modal__success-students{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.7rem;}.member-transfer-modal__success-student{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(var(--bs-primary-rgb),.22);border-radius:12px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);padding:.38rem .7rem;font-size:.8rem;font-weight:800;}.member-transfer-modal__student-avatar{width:28px;height:28px;border-radius:50%;background:rgba(var(--bs-primary-rgb),.18);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;flex-shrink:0;}.member-transfer-modal__student-avatar.is-male{background:#eef7ff;color:#0ea5e9;}.member-transfer-modal__student-avatar.is-female{background:#fff1f7;color:#d63384;}.remove-from-class-modal{max-height:min(88vh,860px);display:flex;flex-direction:column;background:#fff;border-radius:24px;overflow:hidden;color:#1e293b;}.remove-from-class-modal__header,.remove-from-class-modal__footer{padding:1rem 1.5rem;flex-shrink:0;}.remove-from-class-modal__header{border-bottom:1px solid #eef2f7;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.remove-from-class-modal__header-copy{display:flex;align-items:flex-start;gap:.85rem;}.remove-from-class-modal__header-icon{width:42px;height:42px;border-radius:13px;background:rgba(239,68,68,.1);color:#ef4444;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;}.remove-from-class-modal__title{margin:0;font-size:1.05rem;font-weight:800;}.remove-from-class-modal__subtitle{margin:.18rem 0 0;color:#94a3b8;font-size:.82rem;font-weight:700;}.remove-from-class-modal__close{width:42px;height:42px;border:0;border-radius:50%;background:#f8fafc;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:background-color .16s ease,color .16s ease;}.remove-from-class-modal__close:hover,.remove-from-class-modal__close:focus-visible{background:#fee2e2;color:#ef4444;}.remove-from-class-modal__body{flex:1;overflow-y:auto;padding:1.2rem 1.5rem 1.35rem;display:flex;flex-direction:column;gap:1.1rem;scrollbar-width:none;-ms-overflow-style:none;}.remove-from-class-modal__body::-webkit-scrollbar{width:0;height:0;}.remove-from-class-modal__section{display:flex;flex-direction:column;gap:.6rem;}.remove-from-class-modal__section-label{color:#94a3b8;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.remove-from-class-modal__section-label span{text-transform:none;letter-spacing:0;}.remove-from-class-modal__info-card,.remove-from-class-modal__email-card.is-on{border:1px solid rgba(239,68,68,.28);background:rgba(239,68,68,.06);}.remove-from-class-modal__info-card{border-radius:18px;padding:1rem 1.05rem;display:flex;align-items:flex-start;gap:.9rem;}.remove-from-class-modal__info-icon{width:34px;height:34px;border-radius:11px;border:1px solid rgba(239,68,68,.28);color:#ef4444;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.92rem;}.remove-from-class-modal__info-copy h3{margin:0 0 .35rem;color:#dc2626;font-size:.98rem;font-weight:800;}.remove-from-class-modal__info-copy p{margin:0;color:#94a3b8;font-size:.84rem;line-height:1.6;}.remove-from-class-modal__info-copy strong{color:var(--bs-secondary);font-weight:800;}.remove-from-class-modal__pill-list{display:flex;flex-wrap:wrap;gap:.6rem;}.remove-from-class-modal__class-pill{min-height:2.4rem;border-radius:14px;border:1px solid rgba(239,68,68,.3);background:rgba(239,68,68,.05);color:#ef4444;display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .75rem;font-size:.82rem;font-weight:800;}.remove-from-class-modal__class-pill-icon{font-size:.78rem;}.remove-from-class-modal__class-pill-name{color:#334155;}.remove-from-class-modal__class-pill-price{color:#94a3b8;}.remove-from-class-modal__class-pill-count,.remove-from-class-modal__option-count{min-width:24px;height:24px;padding:0 .45rem;border-radius:999px;background:#f8fafc;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;}.remove-from-class-modal__empty-card{border:1px dashed #e2e8f0;background:#f8fafc;border-radius:16px;color:#94a3b8;padding:.95rem 1rem;font-size:.86rem;font-weight:700;line-height:1.6;}.remove-from-class-modal__select-shell{display:flex;flex-direction:column;gap:.45rem;}.remove-from-class-modal__select-btn{width:100%;min-height:3.1rem;border:1px solid #e2e8f0;border-radius:16px;background:#fff;color:#64748b;display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.78rem .95rem;font-size:.9rem;font-weight:800;transition:border-color .16s ease,box-shadow .16s ease;}.remove-from-class-modal__select-btn.is-open{border-color:rgba(239,68,68,.75);box-shadow:0 0 0 3px rgba(239,68,68,.08);}.remove-from-class-modal__select-copy,.remove-from-class-modal__select-actions{display:inline-flex;align-items:center;gap:.7rem;}.remove-from-class-modal__select-copy i,.remove-from-class-modal__select-actions i{color:#ef4444;}.remove-from-class-modal__clear-link{border:0;background:transparent;color:#ef4444;font-size:.8rem;font-weight:800;}.remove-from-class-modal__option-panel,.remove-from-class-modal__date-panel{border:1px solid #eef2f7;border-radius:18px;background:#fff;box-shadow:0 14px 28px rgba(15,23,42,.08);overflow-y:auto;}.remove-from-class-modal__option-panel{max-height:13.5rem;}.remove-from-class-modal__date-panel{max-height:18rem;padding:.3rem 0;}.remove-from-class-modal__subscription-option,.remove-from-class-modal__date-option{width:100%;border:0;background:#fff;display:flex;align-items:center;gap:.75rem;padding:.95rem 1rem;text-align:left;}.remove-from-class-modal__subscription-option+.remove-from-class-modal__subscription-option,.remove-from-class-modal__date-option+.remove-from-class-modal__date-option{border-top:1px solid #f1f5f9;}.remove-from-class-modal__subscription-option.is-selected{background:rgba(239,68,68,.08);}.remove-from-class-modal__option-check{width:18px;height:18px;border-radius:6px;border:1.5px solid #cbd5e1;background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.68rem;}.remove-from-class-modal__option-check.is-selected{border-color:#ef4444;background:#ef4444;}.remove-from-class-modal__option-name,.remove-from-class-modal__date-text{color:#334155;font-size:.92rem;font-weight:800;}.remove-from-class-modal__option-price{margin-left:auto;color:#94a3b8;font-size:.84rem;font-weight:800;}.remove-from-class-modal__date-subheading{padding:.8rem 1rem .3rem;color:#94a3b8;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}.remove-from-class-modal__date-empty{padding:1rem;color:#94a3b8;font-size:.84rem;font-weight:700;}.remove-from-class-modal__date-option{position:relative;}.remove-from-class-modal__radio{width:18px;height:18px;border-radius:50%;border:1.5px solid #e2e8f0;background:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.remove-from-class-modal__radio.is-selected{border-color:#ef4444;}.remove-from-class-modal__radio.is-selected::after{content:"";width:8px;height:8px;border-radius:50%;background:#ef4444;}.remove-from-class-modal__today-pill{margin-left:auto;padding:.2rem .42rem;border-radius:8px;border:1px solid rgba(239,68,68,.25);background:rgba(239,68,68,.06);color:#ef4444;font-size:.68rem;font-weight:800;text-transform:uppercase;}.remove-from-class-modal__hint{color:#94a3b8;font-size:.8rem;line-height:1.55;}.remove-from-class-modal__hint strong{color:var(--bs-secondary);}.remove-from-class-modal__preview-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;}.remove-from-class-modal__preview-count{color:#94a3b8;font-size:.8rem;font-weight:800;}.remove-from-class-modal__preview-card,.remove-from-class-modal__success-card{border:1px solid #eef2f7;border-radius:18px;background:#fff;overflow:hidden;}.remove-from-class-modal__preview-table-head{padding:.8rem 1rem;background:#f8fafc;color:#94a3b8;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(0,2fr);gap:1rem;}.remove-from-class-modal__preview-row,.remove-from-class-modal__success-row{padding:.95rem 1rem;display:grid;gap:1rem;align-items:start;}.remove-from-class-modal__preview-row{grid-template-columns:minmax(180px,1.1fr) minmax(0,2fr);}.remove-from-class-modal__success-row{grid-template-columns:1fr;}.remove-from-class-modal__preview-row+.remove-from-class-modal__preview-row,.remove-from-class-modal__success-row+.remove-from-class-modal__success-row{border-top:1px solid #f1f5f9;}.remove-from-class-modal__student-main{display:flex;align-items:center;gap:.75rem;min-width:0;}.remove-from-class-modal__avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;flex-shrink:0;}.remove-from-class-modal__avatar.is-male{background:#eef7ff;color:#0ea5e9;}.remove-from-class-modal__avatar.is-female{background:#fff1f7;color:#d63384;}.remove-from-class-modal__student-copy{min-width:0;display:grid;gap:.15rem;}.remove-from-class-modal__student-copy strong,.remove-from-class-modal__student-name-line strong{color:var(--bs-secondary);font-size:.9rem;font-weight:800;}.remove-from-class-modal__student-copy span,.remove-from-class-modal__student-name-line span{color:#ef4444;font-size:.78rem;font-weight:800;}.remove-from-class-modal__student-name-line{display:flex;flex-wrap:wrap;gap:.35rem;}.remove-from-class-modal__student-name-line span{color:#64748b;}.remove-from-class-modal__subscription-chips{display:flex;flex-wrap:wrap;gap:.55rem;min-width:0;align-content:flex-start;}.remove-from-class-modal__subscription-chip{min-height:2rem;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#64748b;display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .65rem;font-size:.78rem;font-weight:800;}.remove-from-class-modal__subscription-chip.is-ending{border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.05);color:#ef4444;}.remove-from-class-modal__subscription-chip.is-ending span{text-decoration:line-through;}.remove-from-class-modal__email-card{width:100%;border:1px solid #e5e7eb;border-radius:16px;background:#fff;display:flex;align-items:center;gap:.9rem;padding:.9rem 1rem;}.remove-from-class-modal__email-toggle-ui{width:42px;height:24px;border-radius:999px;background:#e2e8f0;padding:2px;display:inline-flex;align-items:center;transition:background-color .16s ease;}.remove-from-class-modal__email-toggle-ui.is-on{background:#ef4444;}.remove-from-class-modal__email-toggle-knob{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.18);transition:transform .16s ease;}.remove-from-class-modal__email-toggle-ui.is-on .remove-from-class-modal__email-toggle-knob{transform:translateX(18px);}.remove-from-class-modal__email-copy{display:grid;gap:.15rem;text-align:left;}.remove-from-class-modal__email-title{color:var(--bs-secondary);font-size:.96rem;font-weight:800;}.remove-from-class-modal__email-description{color:#94a3b8;font-size:.8rem;line-height:1.45;}.remove-from-class-modal__cancellation-card{border:1px solid rgba(239,68,68,.18);border-radius:16px;background:#fff;display:grid;gap:.85rem;padding:.95rem 1rem;}.remove-from-class-modal__cancellation-field{display:grid;gap:.45rem;}.remove-from-class-modal__cancellation-label{color:var(--bs-secondary);font-size:.82rem;font-weight:800;}.remove-from-class-modal__rating-row{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;}.remove-from-class-modal__rating-star{width:32px;height:32px;border:0;border-radius:10px;background:rgba(239,68,68,.06);color:#ef4444;display:inline-flex;align-items:center;justify-content:center;font-size:.92rem;}.remove-from-class-modal__rating-label{color:#94a3b8;font-size:.78rem;font-weight:700;margin-left:.2rem;}.remove-from-class-modal__cancellation-select,.remove-from-class-modal__cancellation-textarea{width:100%;border:1px solid #e2e8f0;border-radius:14px;background:#fff;color:#334155;font-size:.84rem;font-weight:700;padding:.75rem .9rem;outline:0;}.remove-from-class-modal__cancellation-select:focus,.remove-from-class-modal__cancellation-textarea:focus{border-color:rgba(239,68,68,.75);box-shadow:0 0 0 3px rgba(239,68,68,.08);}.remove-from-class-modal__cancellation-textarea{resize:vertical;min-height:88px;line-height:1.5;}.remove-from-class-modal__error{color:#dc2626;font-size:.82rem;font-weight:700;}.remove-from-class-modal__footer{border-top:1px solid #eef2f7;display:flex;align-items:center;justify-content:space-between;gap:.85rem;}.remove-from-class-modal__secondary-btn,.remove-from-class-modal__primary-btn{min-height:2.8rem;border-radius:14px;padding:.7rem 1rem;font-size:.92rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;transition:background-color .16s ease,border-color .16s ease,color .16s ease;}.remove-from-class-modal__secondary-btn{min-width:76px;border:1px solid #e2e8f0;background:#fff;color:#94a3b8;}.remove-from-class-modal__primary-btn{min-width:178px;border:1px solid #ef4444;background:#ef4444;color:#fff;}.remove-from-class-modal__secondary-btn:hover,.remove-from-class-modal__secondary-btn:focus-visible{border-color:#cbd5e1;color:#64748b;}.remove-from-class-modal__primary-btn:hover,.remove-from-class-modal__primary-btn:focus-visible{background:#dc2626;border-color:#dc2626;}.remove-from-class-modal__primary-btn:disabled,.remove-from-class-modal__secondary-btn:disabled{opacity:.45;cursor:not-allowed;}.remove-from-class-modal__success-shell{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.75rem;padding:1.35rem 1.5rem 2rem;text-align:center;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none;}.remove-from-class-modal__success-shell::-webkit-scrollbar{width:0;height:0;}.remove-from-class-modal__success-icon{width:76px;height:76px;border-radius:50%;border:2px solid rgba(239,68,68,.28);color:#ef4444;display:inline-flex;align-items:center;justify-content:center;background:#fff;font-size:1.85rem;line-height:1;flex-shrink:0;}.remove-from-class-modal__success-icon i{line-height:1;}.remove-from-class-modal__success-title{margin:0;color:var(--bs-secondary);font-size:1.85rem;font-weight:900;}.remove-from-class-modal__success-copy{display:grid;gap:.28rem;color:#94a3b8;font-size:.96rem;line-height:1.5;}.remove-from-class-modal__success-copy strong,.remove-from-class-modal__success-copy span{color:var(--bs-secondary);font-weight:800;}.remove-from-class-modal__success-card{width:min(100%,700px);text-align:left;padding:0;display:flex;flex-direction:column;min-height:0;}.remove-from-class-modal__success-card-head{padding:.85rem 1rem;background:#f8fafc;border-bottom:1px solid #eef2f7;display:flex;align-items:center;justify-content:space-between;gap:.8rem;}.remove-from-class-modal__success-card-body{height:21rem;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;}.remove-from-class-modal__success-card-body::-webkit-scrollbar{width:0;height:0;}.remove-from-class-modal__success-list{display:grid;}.remove-from-class-modal__success-row{padding-top:.8rem;padding-bottom:.8rem;}.remove-from-class-modal__success-student-copy{min-width:0;display:grid;gap:.45rem;}.remove-from-class-modal__success-student-line{display:flex;flex-wrap:wrap;gap:.35rem;align-items:baseline;}.remove-from-class-modal__success-student-line strong{color:var(--bs-secondary);font-size:.9rem;font-weight:800;}.remove-from-class-modal__success-student-line span{color:#64748b;font-size:.78rem;font-weight:800;}.remove-from-class-modal__success-empty{color:#94a3b8;font-size:.78rem;font-weight:700;font-style:italic;white-space:normal;}@media(max-width:991.98px){.remove-from-class-modal{width:100%;max-height:90vh;border-radius:20px;}.remove-from-class-modal__header,.remove-from-class-modal__footer{padding-inline:1rem;}.remove-from-class-modal__body{padding-inline:1rem;}.remove-from-class-modal__preview-table-head,.remove-from-class-modal__preview-row,.remove-from-class-modal__success-row{grid-template-columns:1fr;}.remove-from-class-modal__preview-row{gap:.8rem;}}@media(max-width:767.98px){.remove-from-class-modal__preview-table-head{display:none;}.remove-from-class-modal__preview-card{overflow:visible;}.remove-from-class-modal__success-shell{gap:.6rem;padding:.85rem .85rem 1rem;}.remove-from-class-modal__success-icon{width:52px;height:52px;font-size:1.25rem;}.remove-from-class-modal__footer{flex-direction:column-reverse;align-items:stretch;}.remove-from-class-modal__primary-btn,.remove-from-class-modal__secondary-btn{width:100%;}.remove-from-class-modal__email-card,.remove-from-class-modal__info-card{align-items:flex-start;}.remove-from-class-modal__cancellation-card{padding:.85rem .9rem;}.remove-from-class-modal__rating-star{width:30px;height:30px;font-size:.88rem;}.remove-from-class-modal__rating-label,.remove-from-class-modal__cancellation-label,.remove-from-class-modal__cancellation-select,.remove-from-class-modal__cancellation-textarea{font-size:.78rem;}.remove-from-class-modal__success-title{font-size:.95rem;line-height:1.3;}.remove-from-class-modal__success-copy{font-size:.76rem;line-height:1.45;}.remove-from-class-modal__success-card{width:100%;}.remove-from-class-modal__success-card-head{padding:.65rem .75rem;}.remove-from-class-modal__success-card-body{height:16rem;}.remove-from-class-modal__success-row{padding:.65rem .75rem;}.remove-from-class-modal__student-main{align-items:flex-start;gap:.6rem;min-width:0;}.remove-from-class-modal__preview-row{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;}.remove-from-class-modal__avatar{width:28px;height:28px;font-size:.72rem;}.remove-from-class-modal__student-copy{min-width:0;}.remove-from-class-modal__student-copy strong,.remove-from-class-modal__student-copy span{display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}.remove-from-class-modal__success-student-copy{width:100%;gap:.3rem;min-width:0;}.remove-from-class-modal__success-student-line{display:grid;gap:.15rem;min-width:0;width:100%;}.remove-from-class-modal__success-student-line strong{font-size:.84rem;line-height:1.3;white-space:normal;overflow-wrap:anywhere;}.remove-from-class-modal__success-student-line span{font-size:.76rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}.remove-from-class-modal__subscription-chips{gap:.4rem;width:100%;align-items:flex-start;justify-content:flex-start;}.remove-from-class-modal__subscription-chip{min-height:1.8rem;padding:.24rem .55rem;font-size:.72rem;line-height:1.25;white-space:normal;max-width:100%;overflow-wrap:anywhere;word-break:break-word;}.remove-from-class-modal__success-empty{font-size:.74rem;line-height:1.45;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}}@media(max-width:991.98px){.member-transfer-modal__body,.member-transfer-modal__footer,.member-transfer-modal__header{padding-left:1rem;padding-right:1rem;}.member-transfer-modal__destination-option{grid-template-columns:1fr;}.member-transfer-modal__destination-occupancy{justify-self:start;}.member-transfer-modal__footer{flex-direction:column-reverse;align-items:stretch;}.member-transfer-modal__primary-btn,.member-transfer-modal__secondary-btn{width:100%;}}@media(max-width:575.98px){.member-transfer-modal{min-height:auto;}.member-transfer-modal__header-copy,.member-transfer-modal__info-card,.member-transfer-modal__summary-card,.member-transfer-modal__email-card{align-items:flex-start;}.member-transfer-modal__header-icon{width:42px;height:42px;border-radius:13px;}.member-transfer-modal__title{font-size:1.2rem;}.member-transfer-modal__date-option,.member-transfer-modal__destination-head,.member-transfer-modal__destination-option{padding-left:.85rem;padding-right:.85rem;}.member-transfer-modal__success-shell{padding:1.6rem 1rem 2rem;}.member-transfer-modal__success-title{font-size:1.6rem;}.member-transfer-modal__success-copy{font-size:.92rem;}}@media(max-width:991.98px){.class-invite-flow__apply-preview-head{display:none;}.class-invite-flow__apply-preview-row{grid-template-columns:1fr;gap:.7rem;}.class-invite-flow__email-card,.class-invite-flow__apply-option-card{flex-direction:column;align-items:stretch;}.class-invite-flow__apply-option-subs{margin-left:0;}.class-invite-flow__apply-form-card{padding:.85rem;}.class-invite-flow__apply-progress-head,.class-invite-flow__success-help-card,.class-invite-flow__apply-row,.class-invite-flow__footer.is-apply-state{flex-direction:column;align-items:flex-start;}.class-invite-flow__apply-row-main{width:100%;flex-wrap:wrap;}.class-invite-flow__apply-row-status,.class-invite-flow__success-link{width:100%;}.class-invite-flow__apply-row-student{white-space:normal;}.class-invite-flow__success-help-copy{width:100%;}}@media(max-width:575.98px){.class-invite-flow__stage-bar{overflow-x:hidden;}.class-invite-flow__steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:0;margin-bottom:.9rem;}.class-invite-flow__steps::before{content:"";position:absolute;top:14px;left:16.5%;right:16.5%;height:2px;background:#e7ecf5;z-index:0;}.class-invite-flow__step{position:relative;z-index:1;display:flex;justify-content:center;gap:0;min-width:0;}.class-invite-flow__step-line{display:none;}.class-invite-flow__step-dot{width:28px;height:28px;font-size:.9rem;background:#fff;}.class-invite-flow__step-label{display:none;}.class-invite-flow__step-dot{width:30px;height:30px;font-size:.95rem;}.class-invite-flow__library-search{flex-direction:column;align-items:stretch;}.class-invite-flow__library-cancel{width:100%;}.class-invite-flow__library-row{flex-direction:column;align-items:stretch;gap:.55rem;}.class-invite-flow__library-row .class-invite-flow__pill{max-width:100%;width:fit-content;}.class-invite-flow__library-add{width:100%;justify-content:center;text-align:center;white-space:normal;line-height:1.25;padding:.2rem 0;}.class-invite-flow__preview-head.is-invite-preview{display:none;}.class-invite-flow__preview-row.is-invite-preview{grid-template-columns:1fr;gap:.8rem;padding:.9rem;}.class-invite-flow__preview-student,.class-invite-flow__preview-class,.class-invite-flow__invite-options,.class-invite-flow__apply-student,.class-invite-flow__apply-leaving,.class-invite-flow__apply-inviting{min-width:0;}.class-invite-flow__preview-class-card,.class-invite-flow__apply-option-card{width:100%;}.class-invite-flow__preview-class-name,.class-invite-flow__preview-name,.class-invite-flow__invite-option-name,.class-invite-flow__invite-option-group{overflow-wrap:anywhere;word-break:break-word;}.class-invite-flow__move-class-trigger{align-items:flex-start;flex-wrap:wrap;}.class-invite-flow__move-class-copy{flex:1 1 calc(100% - 2.4rem);min-width:0;}.class-invite-flow__move-class-copy strong,.class-invite-flow__move-class-copy span,.class-invite-flow__move-class-selected span{white-space:normal;overflow-wrap:anywhere;word-break:break-word;}.class-invite-flow__move-class-selected{order:3;margin-left:2.4rem;max-width:calc(100% - 2.4rem);white-space:normal;}.class-invite-flow__move-class-chevron{margin-left:auto;align-self:center;}.class-invite-flow__move-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;}.class-invite-flow__move-month{width:71.9px;padding:.38rem .45rem;min-height:2rem;text-align:center;}.class-invite-flow__sub-review-student-top{flex-direction:column;align-items:stretch;gap:.45rem;}.class-invite-flow__sub-review-student-main,.class-invite-flow__sub-review-copy{width:100%;}.class-invite-flow__sub-review-copy strong,.class-invite-flow__sub-review-copy span{white-space:normal;overflow-wrap:anywhere;word-break:break-word;}.class-invite-flow__sub-review-status{align-self:flex-start;white-space:normal;}.class-invite-flow__apply-preview-row{gap:.85rem;padding:.9rem;}.class-invite-flow__apply-option{flex-direction:column;align-items:stretch;gap:.45rem;}.class-invite-flow__invite-option-index{align-self:flex-start;}.class-invite-flow__apply-option-top{flex-direction:column;align-items:stretch;gap:.45rem;}.class-invite-flow__invite-option-date,.class-invite-flow__apply-added-sub-date{align-self:flex-start;}.class-invite-flow__apply-option-subs{margin-top:.3rem;}.class-invite-flow__footer.is-leave-step,.class-invite-flow__footer.is-invite-step,.class-invite-flow__footer.is-review-step{flex-direction:row;align-items:center;justify-content:space-between;}.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-left,.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right,.class-invite-flow__footer.is-invite-step .class-invite-flow__footer-left,.class-invite-flow__footer.is-invite-step .class-invite-flow__footer-right,.class-invite-flow__footer.is-review-step .class-invite-flow__footer-left,.class-invite-flow__footer.is-review-step .class-invite-flow__footer-right{width:auto;min-width:0;}.class-invite-flow__footer.is-leave-step .class-invite-flow__footer-right,.class-invite-flow__footer.is-invite-step .class-invite-flow__footer-right,.class-invite-flow__footer.is-review-step .class-invite-flow__footer-right{flex:1 1 auto;justify-content:flex-end;}.class-invite-flow__footer.is-leave-step .class-invite-flow__primary-btn,.class-invite-flow__footer.is-leave-step .class-invite-flow__secondary-btn,.class-invite-flow__footer.is-invite-step .class-invite-flow__primary-btn,.class-invite-flow__footer.is-invite-step .class-invite-flow__secondary-btn,.class-invite-flow__footer.is-review-step .class-invite-flow__primary-btn,.class-invite-flow__footer.is-review-step .class-invite-flow__secondary-btn{width:auto;}.class-invite-flow__footer.is-leave-step .class-invite-flow__primary-btn,.class-invite-flow__footer.is-invite-step .class-invite-flow__primary-btn,.class-invite-flow__footer.is-review-step .class-invite-flow__primary-btn{max-width:min(100%,17rem);}.class-invite-flow__footer.is-review-step .class-invite-flow__footer-left,.class-invite-flow__footer.is-review-step .class-invite-flow__footer-right{flex:1 1 0;}.class-invite-flow__footer.is-review-step .class-invite-flow__primary-btn,.class-invite-flow__footer.is-review-step .class-invite-flow__secondary-btn{width:100%;max-width:none;}}.cancellation-admin{background:#f4f6fb;min-height:100vh;display:flex;flex-direction:column;padding-bottom:0;}.cancellation-admin__header-wrap{padding-top:4px;padding-bottom:4px;}.cancellation-admin__header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}.cancellation-admin__count-pills{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}.cancellation-admin__mobile-summary,.cancellation-admin__mobile-actions,.cancellation-admin__mobile-sheet-backdrop,.cancellation-admin__mobile-sheet-head,.cancellation-admin__mobile-list{display:none;}.cancellation-admin__desktop-table{display:block;}.cancellation-admin__count-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;font-size:.8rem;font-weight:700;border:1px solid #e5e7eb;background:#fff;color:#475569;}.cancellation-admin__count-pill.is-pending{background:#fffbeb;border-color:#fde68a;color:#b45309;}.cancellation-admin__count-pill.is-accepted{background:#f0fdf4;border-color:#bbf7d0;color:#15803d;}.cancellation-admin__count-pill.is-rejected{background:#fef2f2;border-color:#fecaca;color:#dc2626;}.cancellation-admin__count-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0;}.cancellation-admin__body{flex:1 0 auto;padding-top:24px;padding-bottom:24px;}.cancellation-admin__loading{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:32px;min-height:360px;display:flex;align-items:center;justify-content:center;}.cancellation-admin__loading-state{max-width:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;}.cancellation-admin__loading-state h5{margin:0;font-size:1.1rem;font-weight:800;color:#0f172a;}.cancellation-admin__loading-state p{margin:0;color:#64748b;line-height:1.65;}.cancellation-admin__insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px;}.cancellation-admin__insight-card{background:#fff;border:1px solid rgba(var(--bs-primary-rgb),.28);border-radius:18px;padding:14px;box-shadow:0 1px 3px rgba(15,23,42,.05);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;}.cancellation-admin__insight-card:hover,.cancellation-admin__insight-card:focus-visible{border-color:rgba(var(--bs-primary-rgb),.44);box-shadow:0 10px 28px rgba(15,23,42,.08);transform:translateY(-1px);outline:0;}.cancellation-admin__insight-head,.cancellation-admin__insight-title-wrap,.cancellation-admin__toolbar,.cancellation-admin__toolbar-main,.cancellation-admin__table-controls,.cancellation-admin__table-meta,.cancellation-admin__student-cell,.cancellation-admin__row-actions,.cancellation-admin__accept-head,.cancellation-admin__accept-actions,.cancellation-admin__panel-actions{display:flex;align-items:center;gap:12px;}.cancellation-admin__insight-head,.cancellation-admin__toolbar,.cancellation-admin__table-controls,.cancellation-admin__accept-head,.cancellation-admin__panel-actions{justify-content:space-between;}.cancellation-admin__insight-icon{width:34px;height:34px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:.92rem;flex-shrink:0;}.cancellation-admin__insight-icon.is-reason{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.cancellation-admin__insight-icon.is-rating{background:#fff7d6;color:#d97706;}.cancellation-admin__insight-title{margin:0;font-size:1.05rem;font-weight:800;color:#1e2a4a;}.cancellation-admin__scope-pill{border:1px solid rgba(var(--bs-primary-rgb),.75);background:rgba(var(--bs-primary-rgb),.06);color:var(--bs-primary);border-radius:999px;padding:5px 12px;font-size:.68rem;font-weight:800;letter-spacing:.04em;}.cancellation-admin__reasons{display:grid;gap:12px;margin-top:14px;}.cancellation-admin__reason-row{display:grid;gap:6px;}.cancellation-admin__reason-meta{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;}.cancellation-admin__reason-rank{font-size:.92rem;font-weight:800;color:#94a3b8;}.cancellation-admin__reason-name{font-size:.82rem;font-weight:700;color:#1e2a4a;}.cancellation-admin__reason-count{font-size:.86rem;font-weight:800;color:#334155;}.cancellation-admin__reason-bar{height:6px;border-radius:999px;background:#eef2ff;overflow:hidden;}.cancellation-admin__reason-bar span{display:block;height:100%;border-radius:inherit;}.cancellation-admin__reason-bar.is-first span{background:#7c3aed;}.cancellation-admin__reason-bar.is-second span{background:#0f766e;}.cancellation-admin__reason-bar.is-third span{background:#b45309;}.cancellation-admin__rating-summary{display:flex;align-items:flex-start;gap:14px;margin-top:12px;}.cancellation-admin__rating-score{font-size:2rem;font-weight:900;line-height:1;color:#1e2a4a;}.cancellation-admin__rating-copy{display:grid;gap:8px;}.cancellation-admin__stars,.cancellation-admin__rating-stars{display:inline-flex;align-items:center;gap:4px;}.cancellation-admin__stars i,.cancellation-admin__rating-stars i{color:#f59e0b;}.cancellation-admin__stars i:not(.is-filled){color:#d7dde8;}.cancellation-admin__rating-meta{display:grid;gap:2px;font-size:.75rem;font-weight:800;letter-spacing:.04em;color:#94a3b8;}.cancellation-admin__rating-meta span{color:#64748b;font-size:.8rem;font-weight:700;letter-spacing:0;}.cancellation-admin__insight-foot,.cancellation-admin__insight-empty{margin-top:16px;font-size:.82rem;color:#94a3b8;}.cancellation-admin__reject-success{margin-bottom:16px;padding:16px 18px;border:1px solid #fcb7b7;border-radius:18px;background:#fff4f4;display:flex;align-items:flex-start;gap:14px;}.cancellation-admin__reject-success-icon{width:38px;height:38px;border-radius:999px;background:#ffe4e6;color:#ef4444;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.cancellation-admin__reject-success-main{min-width:0;flex:1 1 auto;}.cancellation-admin__reject-success-title{color:#dc2626;font-size:.82rem;font-weight:800;margin-bottom:8px;}.cancellation-admin__reject-success-meta{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;}.cancellation-admin__reject-success-item{display:grid;gap:3px;}.cancellation-admin__reject-success-item span{color:#ef4444;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}.cancellation-admin__reject-success-item strong{color:#b91c1c;font-size:.82rem;font-weight:800;}.cancellation-admin__reject-success-item.is-subscriptions{min-width:min(100%,420px);}.cancellation-admin__reject-success-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}.cancellation-admin__reject-success-chip{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;border:1px solid #fda4af;background:#fff1f2;color:#ef4444;font-size:.76rem;font-weight:700;}.cancellation-admin__reject-success-chip.is-empty{border-color:#fecdd3;color:#fb7185;}.cancellation-admin__reject-success-close{border:0;background:transparent;color:#ef4444;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;}.cancellation-admin__toolbar{margin-bottom:18px;gap:14px;flex-wrap:wrap;}.cancellation-admin__toolbar-main{flex:1 1 760px;gap:12px;flex-wrap:wrap;}.cancellation-admin__toolbar-actions{position:relative;display:flex;align-items:center;gap:10px;}.cancellation-admin__toolbar-dropdown{position:relative;}.cancellation-admin__search-wrap{position:relative;flex:1 1 340px;}.cancellation-admin__search-wrap i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:.82rem;}.cancellation-admin__search-input,.cancellation-admin__date-select{width:100%;border:1px solid #dfe5ef;background:#fff;border-radius:12px;color:#1e293b;font-size:.82rem;min-height:40px;}.cancellation-admin__search-input{padding:9px 12px 9px 34px;}.cancellation-admin__search-input:focus,.cancellation-admin__date-select:focus,.cancellation-admin__per-page select:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.65);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12);}.cancellation-admin__status-tabs{display:flex;align-items:stretch;border:1px solid #dfe5ef;border-radius:12px;overflow:hidden;background:#fff;}.cancellation-admin__status-tab{border:0;border-right:1px solid #e5e7eb;background:transparent;padding:10px 16px;font-size:.82rem;font-weight:700;color:#64748b;white-space:nowrap;}.cancellation-admin__status-tab:last-child{border-right:0;}.cancellation-admin__status-tab.is-active{background:var(--bs-primary);color:#fff;}.cancellation-admin__toolbar-btn,.cancellation-admin__primary-btn,.cancellation-admin__secondary-btn,.cancellation-admin__subscription-row{transition:.18s ease;}.cancellation-admin__toolbar-btn{border:1px solid rgba(var(--bs-primary-rgb),.55);background:#fff;color:var(--bs-primary);border-radius:12px;min-height:40px;padding:8px 13px;display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700;}.cancellation-admin__toolbar-btn.is-active{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.cancellation-admin__toolbar-btn strong{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.72rem;}.cancellation-admin__toolbar-btn.is-active strong{background:rgba(255,255,255,.24);color:#fff;}.cancellation-admin__panel{position:absolute;top:calc(100% + 10px);right:0;width:280px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:14px;box-shadow:0 16px 40px rgba(15,23,42,.12);z-index:6;}.cancellation-admin__panel-check{display:flex;align-items:center;gap:10px;font-size:.86rem;color:#334155;font-weight:600;padding:7px 0;}.cancellation-admin__panel-check input{width:16px;height:16px;}.cancellation-admin__panel-link{border:0;background:transparent;padding:0;color:var(--bs-primary);font-size:.82rem;font-weight:700;}.cancellation-admin__panel-link:disabled{color:#cbd5e1;}.cancellation-admin__table-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 6px 20px rgba(15,23,42,.04);overflow:visible;}.cancellation-admin__filters-card{margin-bottom:14px;background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:16px;box-shadow:0 6px 20px rgba(15,23,42,.04);}.cancellation-admin__filters-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.95fr);gap:18px 24px;}.cancellation-admin__filters-col{display:grid;gap:18px;}.cancellation-admin__filter-group{display:grid;gap:10px;}.cancellation-admin__filter-title{color:#64748b;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__filter-chips{display:flex;flex-wrap:wrap;gap:10px;}.cancellation-admin__filter-chip{border:1px solid #dfe5ef;background:#fff;color:#64748b;border-radius:12px;min-height:34px;padding:7px 12px;display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;}.cancellation-admin__filter-chip.is-active{border-color:rgba(var(--bs-primary-rgb),.6);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.cancellation-admin__filter-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.32;}.cancellation-admin__filter-chip.is-active .cancellation-admin__filter-dot{opacity:1;}.cancellation-admin__filters-foot{margin-top:18px;display:flex;justify-content:flex-end;gap:12px;}.cancellation-admin__filters-apply{display:none;border:0;border-radius:12px;min-height:36px;padding:8px 16px;background:var(--bs-primary);color:#fff;font-size:.8rem;font-weight:700;}.cancellation-admin__day-label-short{display:none;}.cancellation-admin__filter-layout-row{margin-top:2px;}.cancellation-admin__filter-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}.cancellation-admin__filter-head .filter-label{margin-bottom:0;}.cancellation-admin__filter-clear{border:0;background:transparent;padding:0;color:var(--bs-primary);font-size:.78rem;font-weight:700;}.cancellation-admin__filter-accordion{max-height:320px;overflow-y:auto;}.cancellation-admin__filters-reset{border:1px solid #dfe5ef;background:#fff;color:#64748b;border-radius:12px;min-height:36px;padding:8px 14px;font-size:.8rem;font-weight:700;}.cancellation-admin__filters-reset:disabled{opacity:.5;}.cancellation-admin__table-controls{padding:12px 16px;border-bottom:1px solid #eef2f7;flex-wrap:wrap;justify-content:flex-end;}.cancellation-admin__table-meta{gap:12px;flex-wrap:wrap;justify-content:flex-end;}.cancellation-admin__per-page{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;color:#94a3b8;font-weight:700;}.cancellation-admin__per-page select{min-width:62px;min-height:34px;border:1px solid #dfe5ef;border-radius:10px;padding:0 10px;background:#fff;color:#1e293b;font-weight:700;font-size:.8rem;}.cancellation-admin__request-count{font-size:.8rem;color:#94a3b8;font-weight:700;}.cancellation-admin__columns-wrap{position:relative;}.cancellation-admin__columns-wrap .members-card-columns{min-height:42px;padding:0 1rem;font-size:.82rem;}.cancellation-admin__columns-wrap .members-card-columns-count{font-size:.72rem;}.cancellation-admin__columns-panel{right:0;left:auto;width:320px;max-height:none;overflow:visible;z-index:1100;padding:1rem!important;}.cancellation-admin__columns-panel .members-columns-toggle{gap:.9rem;min-height:52px;}.cancellation-admin__columns-panel .members-columns-toggle span:last-child{color:#1e2a4a;font-size:.84rem;font-weight:700;}.cancellation-admin__table-scroll{overflow-x:auto;overflow-y:visible;border-radius:0 0 20px 20px;}.cancellation-admin__table{width:max-content;border-collapse:separate;border-spacing:0;}.cancellation-admin__table thead th{position:sticky;top:0;z-index:2;background:#fff;text-align:left;padding:12px 14px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b;border-bottom:1px solid #eef2f7;white-space:nowrap;}.cancellation-admin__table thead th.is-sticky{left:0;z-index:4;width:360px;min-width:360px;max-width:360px;}.cancellation-admin__head-sticky{display:flex;align-items:center;gap:10px;}.cancellation-admin__section-row td{position:relative;z-index:5;padding:12px 16px;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__section-label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;position:sticky;left:12px;z-index:6;}.cancellation-admin__section-row.is-pending td{background:#fffbeb;color:#b45309;}.cancellation-admin__section-row.is-accepted td{background:#ecfdf5;color:#15803d;}.cancellation-admin__section-row.is-rejected td{background:#fef2f2;color:#dc2626;}.cancellation-admin__table-row td{padding:12px 14px;font-size:.84rem;color:#1e293b;border-bottom:1px solid #eef2f7;vertical-align:middle;background:#fff;}.cancellation-admin__table-row.is-alt td{background:#fbfcfe;}.cancellation-admin__table-row td.is-sticky{position:sticky;left:0;z-index:1;width:360px;min-width:360px;max-width:360px;box-shadow:10px 0 18px rgba(15,23,42,.05);}.cancellation-admin__table-row.is-alt td.is-sticky{background:#fbfcfe;}.cancellation-admin__table-row.is-expanded td{background:#f8fffe;}.cancellation-admin__table-row.is-expanded td.is-sticky{background:#f8fffe;}.cancellation-admin__table-row.is-selected td{background:#eef8f8;}.cancellation-admin__table-row.is-selected td.is-sticky{background:#eef8f8;}.cancellation-admin__table-footer{border-top:1px solid #eef2f7;}.cancellation-admin__student-cell{display:flex;align-items:center;gap:10px;}.cancellation-admin__head-sticky .members-table-check-toggle,.cancellation-admin__student-cell .members-table-row-check{flex-shrink:0;}.cancellation-admin__head-sticky .members-table-check-toggle i,.cancellation-admin__student-cell .members-table-row-check i{font-size:.65rem;}.cancellation-admin__avatar{width:34px;height:34px;border-radius:50%;color:#fff;font-size:.8rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0;}.cancellation-admin__avatar.is-male{background:#e0f2fe;color:#0ea5e9;}.cancellation-admin__avatar.is-female{background:#fce7f3;color:#ec4899;}.cancellation-admin__student-copy{min-width:0;flex:1 1 auto;}.cancellation-admin__student-name{display:block;color:#1e2a4a;font-size:.84rem;font-weight:800;text-decoration:none;line-height:1.25;}.cancellation-admin__student-parent{color:#64748b;font-size:.76rem;font-weight:600;}.cancellation-admin__row-actions{gap:6px;flex-shrink:0;}.cancellation-admin__action-btn{width:30px;height:30px;border-radius:9px;border:1px solid #e5e7eb;display:inline-flex;align-items:center;justify-content:center;background:#fff;font-size:.8rem;}.cancellation-admin__action-btn.is-accept{border-color:#bbf7d0;background:#f0fdf4;color:#16a34a;}.cancellation-admin__action-btn.is-reject{border-color:#fecaca;background:#fef2f2;color:#dc2626;}.cancellation-admin__class-name{color:#1e2a4a;font-size:.82rem;font-weight:800;line-height:1.35;}.cancellation-admin__sub-pill,.cancellation-admin__reason-pill,.cancellation-admin__subscription-pill,.cancellation-admin__status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;border:1px solid transparent;}.cancellation-admin__sub-pill{margin-top:6px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.cancellation-admin__sub-pill.is-subgroup{margin-top:0;background:#f8fafc;border-color:#e2e8f0;color:#475569;}.cancellation-admin__reason-pill.is-primary{background:rgba(var(--bs-primary-rgb),.1);border-color:rgba(var(--bs-primary-rgb),.2);color:var(--bs-primary);}.cancellation-admin__reason-pill.is-blue{background:#eff6ff;border-color:#bfdbfe;color:#2563eb;}.cancellation-admin__reason-pill.is-purple{background:#f5f3ff;border-color:#ddd6fe;color:#7c3aed;}.cancellation-admin__reason-pill.is-green{background:#f0fdf4;border-color:#bbf7d0;color:#16a34a;}.cancellation-admin__reason-pill.is-amber{background:#fffbeb;border-color:#fde68a;color:#b45309;}.cancellation-admin__reason-pill.is-rose{background:#fff1f2;border-color:#fecdd3;color:#e11d48;}.cancellation-admin__reason-pill.is-pink{background:#fdf2f8;border-color:#fbcfe8;color:#db2777;}.cancellation-admin__subscription-pill.is-active{background:#fff7ed;border-color:#fed7aa;color:#ea580c;}.cancellation-admin__subscription-pill.is-empty{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8;}.cancellation-admin__status-pill{gap:6px;}.cancellation-admin__status-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}.cancellation-admin__status-pill.is-pending{background:#fffbeb;border-color:#fde68a;color:#b45309;}.cancellation-admin__status-pill.is-accepted{background:#f0fdf4;border-color:#bbf7d0;color:#15803d;}.cancellation-admin__status-pill.is-rejected{background:#fef2f2;border-color:#fecaca;color:#dc2626;}.cancellation-admin__date-cell{white-space:nowrap;color:#334155;font-size:.8rem;}.cancellation-admin__comments-cell{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#64748b;font-style:italic;font-size:.8rem;}.cancellation-admin__cell-dash{color:#94a3b8;font-weight:700;}.cancellation-admin__expand-row td{padding:0;background:#f8fffe;border-bottom:1px solid #d9f2ef;}.cancellation-admin__reject-row td{padding:0;background:#fff;border-top:0;border-bottom:1px solid #fecaca;}.cancellation-admin__reject-banner{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#fff5f5;border-top:1px solid #fecaca;}.cancellation-admin__reject-copy{display:flex;align-items:center;gap:10px;color:#b91c1c;font-size:.82rem;font-weight:600;line-height:1.45;}.cancellation-admin__reject-copy i{color:#ef4444;font-size:.95rem;flex-shrink:0;}.cancellation-admin__reject-copy strong{color:#7f1d1d;font-weight:800;}.cancellation-admin__reject-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;}.cancellation-admin__reject-cancel,.cancellation-admin__reject-confirm{border-radius:12px;min-height:38px;padding:8px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.8rem;font-weight:800;}.cancellation-admin__reject-cancel{border:1px solid #fbcaca;background:#fff;color:#b45353;}.cancellation-admin__reject-confirm{border:1px solid #ef4444;background:#ef4444;color:#fff;}.cancellation-admin__reject-confirm:disabled{opacity:.72;}.cancellation-admin__accept-panel{padding:14px;border-top:1px solid rgba(var(--bs-primary-rgb),.15);}.cancellation-admin__accept-head{align-items:flex-start;margin-bottom:14px;}.cancellation-admin__accept-title{color:var(--bs-primary);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__accept-subtitle{margin-top:4px;color:#64748b;font-size:.8rem;font-weight:600;}.cancellation-admin__warning,.cancellation-admin__subscription-empty{border-radius:12px;padding:10px 12px;font-size:.78rem;font-weight:600;}.cancellation-admin__warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e;margin-bottom:14px;}.cancellation-admin__accept-grid{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr);gap:14px;}.cancellation-admin__accept-grid.is-multi-event{grid-template-columns:1fr;}.cancellation-admin__field-label{margin-bottom:8px;color:#64748b;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__choice-list,.cancellation-admin__subscription-list{display:grid;gap:10px;}.student-subscription-list__selector{position:relative;margin-bottom:1rem;}.student-subscription-list__selector-trigger{width:100%;min-height:52px;padding:.9rem 1rem;border:1px solid #d7deef;border-radius:14px;background:#fff;color:#1f2a44;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:600;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;}.student-subscription-list__selector-trigger:hover:not(:disabled){border-color:#9bb4ff;box-shadow:0 10px 24px rgba(31,42,68,.08);}.student-subscription-list__selector-trigger:disabled{opacity:.7;cursor:not-allowed;}.student-subscription-list__selector-menu{max-height:320px;margin-top:.75rem;border:1px solid #d7deef;border-radius:16px;background:#fff;overflow-y:auto;box-shadow:0 16px 36px rgba(31,42,68,.12);}.student-subscription-list__selector-option{width:100%;padding:.9rem 1rem;border:0;border-bottom:1px solid #edf1f7;background:#fff;color:#1f2a44;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;cursor:pointer;transition:background-color .2s ease,color .2s ease;}.student-subscription-list__selector-option:last-child{border-bottom:0;}.student-subscription-list__selector-option:hover:not(:disabled),.student-subscription-list__selector-option.is-selected{background:rgba(var(--bs-primary-rgb),.08);}.student-subscription-list__selector-copy{min-width:0;display:flex;flex-direction:column;gap:.15rem;}.student-subscription-list__selector-copy strong{color:#1f2a44;font-size:.95rem;font-weight:700;}.student-subscription-list__selector-copy small{color:#6f7f9c;font-size:.8rem;text-transform:capitalize;}.student-subscription-list__selector-meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0;}.student-subscription-list__selector-price{color:#1f2a44;font-weight:700;white-space:nowrap;}.student-subscription-list__selector-check{color:var(--bs-primary);font-size:1rem;line-height:1;}.student-subscription-list__selected-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;}.student-subscription-list__selected-item{padding:.9rem 1rem 1rem;border:1px solid #dfe6f5;border-radius:16px;background:#fff;}.student-subscription-list__selected-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.student-subscription-list__selected-title{color:#1f2a44;font-size:.95rem;font-weight:700;}.student-subscription-list__selected-subtitle{color:#6f7f9c;font-size:.8rem;text-transform:capitalize;}.student-subscription-list__selected-price{color:#1f2a44;font-weight:700;white-space:nowrap;}.student-subscription-list__edit-panel{margin-top:.85rem;padding:.95rem 1rem 1rem;border:1px solid #dfe6f5;border-radius:16px;background:#f8fbff;cursor:default;}.student-subscription-list__edit-title{color:#1f2a44;font-size:.92rem;font-weight:700;margin-bottom:.75rem;}.student-subscription-list__edit-empty{color:#6f7f9c;font-size:.86rem;}.student-subscription-list__edit-options{display:flex;flex-direction:column;gap:.6rem;}.student-subscription-list__edit-option{width:100%;padding:.8rem .95rem;border:1px solid #d7deef;border-radius:12px;background:#fff;color:#1f2a44;display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease;}.student-subscription-list__edit-option:hover:not(:disabled),.student-subscription-list__edit-option.is-selected{border-color:rgba(var(--bs-primary-rgb),.35);background:rgba(var(--bs-primary-rgb),.08);}.student-subscription-list__edit-option:disabled{opacity:.7;cursor:not-allowed;}.student-subscription-list__edit-option i{color:var(--bs-primary);font-size:1rem;line-height:1;}.student-subscription-list__edit-option-copy{min-width:0;display:flex;flex-direction:column;gap:.15rem;}.student-subscription-list__edit-option-copy strong{color:#1f2a44;font-size:.92rem;font-weight:700;}.student-subscription-list__edit-option-copy small{color:#6f7f9c;font-size:.8rem;}.student-subscription-list__edit-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.9rem;}@media(max-width:575.98px){.student-subscription-list__selector-trigger,.student-subscription-list__selector-option,.student-subscription-list__selected-head{gap:.75rem;}.student-subscription-list__selector-option,.student-subscription-list__selected-head{align-items:flex-start;}.student-subscription-list__edit-option{align-items:flex-start;}.student-subscription-list__edit-actions{justify-content:stretch;flex-direction:column;}}.cancellation-admin__choice-row{display:flex;align-items:center;gap:10px;border:1px solid #e5e7eb;border-radius:12px;padding:9px 11px;background:#fff;color:#334155;font-size:.82rem;font-weight:600;}.cancellation-admin__subscription-row{width:100%;justify-content:space-between;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:#334155;padding:9px 11px;font-size:.8rem;font-weight:700;}.cancellation-admin__subscription-row.is-selected{border-color:#bbf7d0;background:#f0fdf4;color:#166534;}.cancellation-admin__subscription-empty{display:inline-flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid #e2e8f0;color:#64748b;}.cancellation-admin__accept-actions{margin-top:14px;justify-content:flex-start;gap:8px;flex-wrap:wrap;}.cancellation-admin__modal-backdrop{position:fixed;inset:0;z-index:1080;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.36);}.cancellation-admin__action-modal-dialog{max-height:calc(100vh - 1rem);margin-top:.5rem;margin-bottom:.5rem;}.cancellation-admin__action-modal-content{max-height:calc(100vh - 2rem);overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:contain;}.cancellation-admin__action-modal-content>.send-email-modal,.cancellation-admin__action-modal-content>.bulk-charge-modal,.cancellation-admin__action-modal-content>.credit-adjustment-modal,.cancellation-admin__action-modal-content>.class-invite-modal,.cancellation-admin__action-modal-content>.set-tags-modal,.cancellation-admin__action-modal-content>.set-affiliation-modal,.cancellation-admin__action-modal-content>.set-sub-group-modal,.cancellation-admin__action-modal-content>.manage-awards-modal,.cancellation-admin__action-modal-content>.subscription-management-modal{flex:1 1 auto;min-height:0;max-height:calc(100vh - 2rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;}.cancellation-admin__action-modal-content>.send-email-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.bulk-charge-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.credit-adjustment-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.class-invite-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.set-tags-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.set-affiliation-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.set-sub-group-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.manage-awards-modal::-webkit-scrollbar,.cancellation-admin__action-modal-content>.subscription-management-modal::-webkit-scrollbar{width:0;height:0;}.cancellation-admin__modal{width:min(100%,760px);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 28px 80px rgba(15,23,42,.22);}.cancellation-admin__modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 16px;border-bottom:1px solid #eef2f7;}.cancellation-admin__modal-kicker{color:var(--bs-primary);font-size:.88rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__modal-student{margin-top:4px;color:#1e2a4a;font-size:1.15rem;font-weight:800;}.cancellation-admin__modal-class{margin-top:2px;color:#64748b;font-size:.9rem;font-weight:600;}.cancellation-admin__modal-close{width:36px;height:36px;border:0;border-radius:12px;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.cancellation-admin__modal-body{padding:18px 22px 22px;}.cancellation-admin__modal-section+.cancellation-admin__modal-section{margin-top:18px;}.cancellation-admin__modal-warning{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;padding:14px 16px;border-radius:14px;border:1px solid #fde68a;background:#fffbeb;color:#b45309;font-size:.92rem;font-weight:600;}.cancellation-admin__modal-label{display:block;margin-bottom:8px;color:#64748b;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__modal-label span{color:#ef4444;}.cancellation-admin__modal-help{margin-top:8px;color:#94a3b8;font-size:.84rem;font-weight:500;}.cancellation-admin__date-picker{position:relative;}.cancellation-admin__date-trigger{width:100%;min-height:44px;border:1px solid #dfe5ef;border-radius:14px;background:#fff;color:#1e2a4a;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.95rem;font-weight:700;}.cancellation-admin__date-menu{margin-top:8px;border:1px solid #dfe5ef;border-radius:16px;background:#fff;max-height:290px;overflow-y:auto;}.cancellation-admin__date-option{width:100%;border:0;border-bottom:1px solid #eef2f7;background:#fff;padding:12px 14px;display:flex;align-items:center;gap:12px;color:#64748b;font-size:.92rem;font-weight:600;text-align:left;}.cancellation-admin__date-option:last-child{border-bottom:0;}.cancellation-admin__date-option.is-selected{background:#f0fdff;color:#1e2a4a;}.cancellation-admin__date-option-radio{width:16px;height:16px;border-radius:50%;border:1.5px solid #d5dbe7;flex-shrink:0;}.cancellation-admin__date-option.is-selected .cancellation-admin__date-option-radio{border-color:var(--bs-primary);box-shadow:inset 0 0 0 4px var(--bs-primary);}.cancellation-admin__date-badge{margin-left:auto;min-height:22px;padding:2px 8px;border-radius:999px;background:#f8fafc;color:#94a3b8;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.cancellation-admin__date-badge.is-today{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.cancellation-admin__modal-subscriptions{display:grid;gap:10px;}.cancellation-admin__modal-subscription-toggle{width:100%;margin-bottom:10px;padding:10px 14px;border:1px solid #dfe5ef;border-radius:14px;background:#fff;display:flex;align-items:center;gap:12px;text-align:left;}.cancellation-admin__modal-subscription-toggle.is-selected{border-color:#fecaca;background:#fff5f5;}.cancellation-admin__modal-subscription-toggle-check{width:20px;height:20px;border-radius:7px;border:1px solid #dfe5ef;display:inline-flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0;}.cancellation-admin__modal-subscription-toggle.is-selected .cancellation-admin__modal-subscription-toggle-check{background:#ef4444;border-color:#ef4444;color:#fff;}.cancellation-admin__modal-subscription-toggle-copy{min-width:0;display:grid;gap:2px;}.cancellation-admin__modal-subscription-toggle-copy strong{color:var(--bs-secondary);font-size:.9rem;font-weight:800;}.cancellation-admin__modal-subscription-toggle-copy small{color:#64748b;font-size:.76rem;font-weight:600;}.cancellation-admin__modal-subscription{width:100%;border:1px solid #fecaca;border-radius:16px;background:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px;text-align:left;}.cancellation-admin__modal-subscription.is-selected{background:#fff5f5;}.cancellation-admin__modal-subscription-check{width:20px;height:20px;border-radius:7px;border:1px solid #fecaca;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.cancellation-admin__modal-subscription.is-selected .cancellation-admin__modal-subscription-check{background:#ef4444;border-color:#ef4444;color:#fff;}.cancellation-admin__modal-subscription-copy{min-width:0;display:grid;gap:2px;}.cancellation-admin__modal-subscription-copy strong{color:var(--bs-secondary);font-size:.96rem;font-weight:800;}.cancellation-admin__modal-subscription-copy small{color:#dc2626;font-size:.85rem;font-weight:600;}.cancellation-admin__modal-subscription-state{margin-left:auto;color:#ef4444;font-size:.84rem;font-weight:700;white-space:nowrap;}.cancellation-admin__modal-empty{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:16px;border:1px solid #bbf7d0;background:#f0fdf4;color:#16a34a;font-size:.95rem;font-weight:700;}.cancellation-admin__modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:0 22px 22px;}.cancellation-admin__modal-primary,.cancellation-admin__modal-secondary{min-height:42px;border-radius:14px;padding:10px 18px;font-size:.96rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:10px;}.cancellation-admin__modal-primary{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;}.cancellation-admin__modal-primary:disabled{border-color:#d8dee8;background:#e5e7eb;color:#94a3b8;}.cancellation-admin__modal-primary.is-success{min-width:120px;}.cancellation-admin__modal-secondary{border:1px solid #dfe5ef;background:#fff;color:#64748b;}.cancellation-admin__apply-progress-card{border:1px solid #d8eff1;border-radius:18px;background:#f8fffe;padding:16px;}.cancellation-admin__apply-progress-head{display:flex;align-items:center;justify-content:space-between;gap:14px;}.cancellation-admin__apply-progress-copy{display:flex;align-items:center;gap:12px;}.cancellation-admin__apply-progress-spinner,.cancellation-admin__apply-row-spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(var(--bs-primary-rgb),.2);border-top-color:var(--bs-primary);animation:cancellation-admin-spin .8s linear infinite;}.cancellation-admin__apply-progress-title{color:var(--bs-secondary);font-size:.96rem;font-weight:800;}.cancellation-admin__apply-progress-meta{color:#64748b;font-size:.84rem;font-weight:600;}.cancellation-admin__apply-progress-percent{color:var(--bs-primary);font-size:1rem;font-weight:800;}.cancellation-admin__apply-progress-bar{margin-top:12px;height:8px;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);overflow:hidden;}.cancellation-admin__apply-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--bs-primary);}.cancellation-admin__apply-list{display:grid;gap:12px;margin-top:16px;}.cancellation-admin__apply-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-radius:16px;border:1px solid #e5e7eb;background:#fff;}.cancellation-admin__apply-row.is-complete{border-color:#bbf7d0;background:#f0fdf4;}.cancellation-admin__apply-row.is-processing{border-color:#bae6fd;background:#f8fdff;}.cancellation-admin__apply-row.is-error{border-color:#fecaca;background:#fef2f2;}.cancellation-admin__apply-row-main{display:flex;align-items:center;gap:12px;min-width:0;}.cancellation-admin__apply-row-icon{width:28px;height:28px;border-radius:50%;border:1px solid #dfe5ef;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.82rem;font-weight:800;}.cancellation-admin__apply-row.is-complete .cancellation-admin__apply-row-icon{border-color:#16a34a;background:#16a34a;color:#fff;}.cancellation-admin__apply-row.is-processing .cancellation-admin__apply-row-icon{border-color:#67e8f9;color:var(--bs-primary);}.cancellation-admin__apply-row-copy{min-width:0;}.cancellation-admin__apply-row-title{color:#1e2a4a;font-size:.96rem;font-weight:800;}.cancellation-admin__apply-row-meta{margin-top:2px;color:#64748b;font-size:.84rem;font-weight:600;}.cancellation-admin__apply-row-status{color:#94a3b8;font-size:.84rem;font-weight:700;white-space:nowrap;}.cancellation-admin__apply-row-status.is-done{color:#16a34a;}.cancellation-admin__apply-row-status.is-processing{color:var(--bs-primary);}.cancellation-admin__apply-row-status.is-error{color:#dc2626;}.cancellation-admin__modal-body--success{text-align:center;}.cancellation-admin__success-icon{width:74px;height:74px;margin:8px auto 18px;border-radius:50%;border:2px solid #bbf7d0;color:#16a34a;display:inline-flex;align-items:center;justify-content:center;font-size:2rem;}.cancellation-admin__success-title{color:#1e2a4a;font-size:1.8rem;font-weight:800;}.cancellation-admin__success-copy{max-width:520px;margin:10px auto 18px;color:#64748b;font-size:1rem;font-weight:500;line-height:1.6;}.cancellation-admin__success-card{max-width:560px;margin:0 auto;border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc;padding:16px 18px;text-align:left;}.cancellation-admin__success-card-title{margin-bottom:10px;color:#94a3b8;font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cancellation-admin__success-row{display:flex;align-items:center;gap:10px;color:#1e2a4a;font-size:.95rem;font-weight:700;}.cancellation-admin__success-row+.cancellation-admin__success-row{margin-top:8px;}.cancellation-admin__success-row i{color:#16a34a;}@keyframes cancellation-admin-spin{to{transform:rotate(360deg);}}.cancellation-admin__primary-btn,.cancellation-admin__secondary-btn{border-radius:12px;min-height:38px;padding:8px 14px;font-size:.8rem;font-weight:800;}.cancellation-admin__primary-btn{border:1px solid var(--bs-primary);background:var(--bs-primary);color:#fff;}.cancellation-admin__primary-btn:disabled{opacity:.45;}.cancellation-admin__secondary-btn{border:1px solid #dfe5ef;background:#fff;color:#475569;}.cancellation-admin__empty-state{padding:22px 16px;color:#64748b;font-size:.84rem;text-align:center;}@media(max-width:991.98px){.cancellation-admin__insights{grid-template-columns:1fr;}.cancellation-admin__accept-grid{grid-template-columns:1fr;}.cancellation-admin__filters-grid{grid-template-columns:1fr;}}@media(max-width:767.98px){.cancellation-admin__mobile-actions{display:flex;align-items:center;gap:10px;margin-left:auto;}.cancellation-admin__mobile-icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid #dbe3f1;background:#fff;color:#1e2a4a;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(15,23,42,.08);}.cancellation-admin__mobile-icon-btn.is-active{border-color:rgba(var(--bs-primary-rgb),.28);background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.cancellation-admin__mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:1090;border:0;background:rgba(15,23,42,.36);}.cancellation-admin__mobile-sheet-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;touch-action:none;user-select:none;}.cancellation-admin__mobile-sheet-title{color:#1e2a4a;font-size:1rem;font-weight:800;}.cancellation-admin__mobile-sheet-close{width:36px;height:36px;border:0;border-radius:12px;background:#f8fafc;color:#64748b;display:inline-flex;align-items:center;justify-content:center;}.cancellation-admin__mobile-sheet-handle{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:44px;height:5px;border-radius:999px;background:#dbe3f1;}.cancellation-admin__header-row,.cancellation-admin__toolbar,.cancellation-admin__toolbar-main,.cancellation-admin__table-controls,.cancellation-admin__table-meta,.cancellation-admin__reject-success,.cancellation-admin__reject-success-meta,.cancellation-admin__accept-head,.cancellation-admin__accept-actions,.cancellation-admin__reject-banner{align-items:stretch;flex-direction:column;}.cancellation-admin__search-wrap{position:relative;flex:0 0 auto;width:100%;min-height:0;}.cancellation-admin__toolbar-main{gap:10px;flex-wrap:nowrap;}.cancellation-admin__status-tabs{width:100%;overflow:hidden;}.cancellation-admin__status-tab{min-width:0;padding-inline:10px;}.cancellation-admin__toolbar-actions,.cancellation-admin__toolbar-dropdown,.cancellation-admin__toolbar-btn{width:100%;}.cancellation-admin__toolbar-actions{display:none;}.cancellation-admin__panel{left:0;right:0;width:auto;}.cancellation-admin__filters-foot{justify-content:stretch;}.cancellation-admin__filters-reset{width:100%;}.cancellation-admin__reject-actions,.cancellation-admin__reject-cancel,.cancellation-admin__reject-confirm{width:100%;}.cancellation-admin__table-row td.is-sticky{min-width:240px;}.cancellation-admin__insights{display:none;}.cancellation-admin__insights.is-mobile-open{position:fixed;left:0;right:0;bottom:0;z-index:1100;display:grid;gap:8px;margin:0;padding:12px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-radius:26px 26px 0 0;box-shadow:0 -20px 60px rgba(15,23,42,.18);max-height:min(72vh,600px);overflow:hidden;will-change:transform;}.cancellation-admin__filters-card{position:fixed;left:0;right:0;bottom:0;z-index:1100;margin:0;border-radius:26px 26px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));max-height:min(82vh,760px);overflow-y:auto;will-change:transform;}.cancellation-admin__mobile-list{display:grid;gap:14px;}.cancellation-admin__desktop-table,.cancellation-admin__columns-wrap{display:none;}.cancellation-admin__table-footer{padding-top:8px;}.cancellation-admin__mobile-card{border:1px solid #e6edf8;border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.06);padding:16px;}.cancellation-admin__mobile-card-top,.cancellation-admin__mobile-meta-row,.cancellation-admin__mobile-actions-row,.cancellation-admin__mobile-foot-row,.cancellation-admin__mobile-reject-confirm-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;}.cancellation-admin__mobile-card-top{align-items:flex-start;}.cancellation-admin__mobile-student-name{color:#1e2a4a;font-size:1.1rem;font-weight:800;text-decoration:none;}.cancellation-admin__mobile-class-line{margin-top:4px;color:#64748b;font-size:.92rem;font-weight:600;}.cancellation-admin__mobile-pill-row{margin-top:12px;}.cancellation-admin__mobile-meta-row{margin-top:14px;padding-top:14px;border-top:1px solid #eef2f7;flex-wrap:wrap;}.cancellation-admin__mobile-parent{display:inline-flex;align-items:center;gap:8px;color:#64748b;font-size:.9rem;font-weight:600;}.cancellation-admin__mobile-actions-row{margin-top:14px;}.cancellation-admin__mobile-accept,.cancellation-admin__mobile-reject{flex:1 1 0;min-height:46px;border-radius:14px;font-size:.95rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;}.cancellation-admin__mobile-accept{border:1px solid rgba(var(--bs-primary-rgb),.18);background:var(--bs-primary);color:#fff;}.cancellation-admin__mobile-reject{border:1px solid #fecaca;background:#fff;color:#dc2626;}.cancellation-admin__mobile-foot-row{margin-top:14px;padding-top:12px;border-top:1px solid #eef2f7;flex-wrap:wrap;}.cancellation-admin__mobile-date{color:#64748b;font-size:.82rem;font-weight:600;}.cancellation-admin__mobile-reject-confirm{margin-top:12px;border:1px solid #fecaca;border-radius:16px;background:#fef2f2;padding:12px;}.cancellation-admin__mobile-reject-copy{color:#991b1b;font-size:.84rem;font-weight:700;line-height:1.45;}.cancellation-admin__mobile-reject-confirm-actions{margin-top:12px;}}@media(max-width:575.98px){.cancellation-admin{padding-bottom:16px;}.cancellation-admin__body{flex:0 0 auto;padding-top:10px;}.cancellation-admin__header-wrap{padding-top:0;padding-bottom:0;}.cancellation-admin__header-row{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:nowrap;}.cancellation-admin__header-row>div:first-child{min-width:0;flex:1 1 auto;}.cancellation-admin__header-row h4{margin-bottom:2px;font-size:1rem;line-height:1.15;}.cancellation-admin__header-row p{display:none;}.cancellation-admin__mobile-summary{display:block;margin-top:0;color:#64748b;font-size:.72rem;font-weight:600;line-height:1.2;}.cancellation-admin__count-pills,.cancellation-admin__insights:not(.is-mobile-open){display:none;}.cancellation-admin__count-pill{padding:7px 12px;font-size:.75rem;}.cancellation-admin__insight-card,.cancellation-admin__table-card{border-radius:18px;}.cancellation-admin__insight-card{padding:10px;}.cancellation-admin__insight-title{font-size:.84rem;}.cancellation-admin__rating-score{font-size:1.35rem;}.cancellation-admin__search-input,.cancellation-admin__toolbar-btn{min-height:36px;}.cancellation-admin__search-wrap{display:block;flex:0 0 auto;width:100%;min-height:auto;margin:0;}.cancellation-admin__toolbar-main,.cancellation-admin__status-tabs,.cancellation-admin__table-card,.cancellation-admin__table-controls,.cancellation-admin__table-meta{flex:0 0 auto;}.cancellation-admin__toolbar{margin-bottom:10px;gap:8px;}.cancellation-admin__toolbar-main{gap:8px;align-content:flex-start;}.cancellation-admin__search-wrap i{left:10px;top:50%;font-size:.72rem;}.cancellation-admin__search-input{padding-left:32px;padding-right:12px;font-size:.76rem;}.cancellation-admin__status-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;border-radius:10px;background:#fff;overflow:hidden;}.cancellation-admin__status-tab{min-width:0;border-radius:0;border-right:1px solid #e5e7eb;padding:8px 4px;font-size:.7rem;background:transparent;}.cancellation-admin__status-tab.is-active{background:var(--bs-primary);color:#fff;box-shadow:none;}.cancellation-admin__mobile-card .members-table-row-check{width:18px;height:18px;border-radius:7px;border:1.5px solid #cbd5e1;background:#fff;color:transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.cancellation-admin__mobile-card .members-table-row-check i{font-size:.65rem;}.cancellation-admin__mobile-card .members-table-row-check.is-checked{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.cancellation-admin__mobile-actions{display:inline-flex;flex-direction:row;gap:6px;flex:0 0 auto;margin-left:0;align-self:flex-start;}.cancellation-admin__mobile-icon-btn{width:34px;height:34px;border-radius:11px;box-shadow:none;}.cancellation-admin__filters-card{padding:14px 12px calc(14px + env(safe-area-inset-bottom));}.cancellation-admin__mobile-sheet-head{gap:8px;margin-bottom:10px;}.cancellation-admin__mobile-sheet-title{font-size:.9rem;}.cancellation-admin__mobile-sheet-close{width:32px;height:32px;border-radius:10px;}.members-filter-section{margin-bottom:.9rem;}.members-filter-chip-list{gap:.45rem;}.members-filter-chip-list .filter-chip{min-height:34px;padding:7px 12px;font-size:.76rem;border-radius:12px;}.members-filter-chip-list-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;flex-wrap:nowrap;}.members-filter-chip-list-days .filter-chip.chip-day{min-width:0;width:100%;padding-left:0;padding-right:0;justify-content:center;}.members-filter-accordion{border-radius:14px;}.members-filter-accordion-header{padding:10px 12px;}.members-filter-accordion-content{padding:6px 0;}.members-filter-accordion-item{padding:8px 12px 8px 42px;}.members-filter-class-name{font-size:.84rem;}.members-filter-class-count,.members-filter-accordion-summary{font-size:.72rem;}.cancellation-admin__table-row td,.cancellation-admin__table thead th{padding:12px;}.cancellation-admin__student-name{font-size:.92rem;}.cancellation-admin__student-parent,.cancellation-admin__comments-cell,.cancellation-admin__sub-pill,.cancellation-admin__reason-pill,.cancellation-admin__subscription-pill,.cancellation-admin__status-pill{font-size:.74rem;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__mobile-sheet-head{margin-bottom:6px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__mobile-sheet-title{font-size:.86rem;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__mobile-sheet-close{width:30px;height:30px;border-radius:9px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-head{gap:8px;margin-bottom:6px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-icon{width:34px;height:34px;border-radius:12px;font-size:.9rem;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__scope-pill{min-height:30px;padding:4px 10px;font-size:.66rem;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-row+.cancellation-admin__reason-row{margin-top:4px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-rank,.cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-name,.cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-count,.cancellation-admin__insights.is-mobile-open .cancellation-admin__rating-meta,.cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-foot{font-size:.66rem;line-height:1.2;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-bar{margin-top:4px;height:5px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__stars i{font-size:.8rem;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__rating-copy{gap:2px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__reason-meta{gap:6px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__rating-summary{gap:8px;}.cancellation-admin__insights.is-mobile-open .cancellation-admin__insight-foot{margin-top:6px;}.cancellation-admin__mobile-list{gap:10px;}.cancellation-admin__table-card{margin-top:0;border-radius:18px;}.cancellation-admin__table-controls{padding:10px 12px;gap:8px;}.cancellation-admin__table-meta{padding:0 12px 10px;gap:6px;}.cancellation-admin__table-footer{padding-top:0;}.cancellation-admin__mobile-card{border-radius:18px;padding:12px;}.cancellation-admin__mobile-student-name{font-size:.88rem;}.cancellation-admin__mobile-class-line{margin-top:2px;font-size:.76rem;}.cancellation-admin__mobile-pill-row{margin-top:10px;}.cancellation-admin__mobile-meta-row{margin-top:10px;padding-top:10px;}.cancellation-admin__mobile-parent{gap:6px;font-size:.74rem;}.cancellation-admin__mobile-actions-row{margin-top:10px;}.cancellation-admin__mobile-accept,.cancellation-admin__mobile-reject{min-height:38px;border-radius:12px;font-size:.8rem;gap:6px;}.cancellation-admin__mobile-foot-row{margin-top:10px;padding-top:10px;}.cancellation-admin__mobile-date{font-size:.72rem;}.cancellation-admin__mobile-reject-confirm{margin-top:10px;border-color:#fca5a5;border-radius:14px;background:#fff5f5;padding:12px;}.cancellation-admin__mobile-reject-copy{color:#b91c1c;font-size:.78rem;line-height:1.5;}.cancellation-admin__mobile-reject-confirm-actions{margin-top:10px;gap:10px;}.cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-cancel,.cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-confirm{min-height:36px;border-radius:12px;padding:7px 10px;font-size:.76rem;}.cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-confirm{background:#fb7185;border-color:#fb7185;}.cancellation-admin__mobile-reject-confirm .cancellation-admin__reject-confirm:disabled{opacity:1;background:#fb7185;border-color:#fb7185;color:#fff;}.cancellation-admin__reject-success{margin-bottom:10px;padding:12px;border-radius:14px;background:#fff4f4;border-color:#fcb7b7;position:relative;padding-right:40px;}.cancellation-admin__reject-success-icon{width:30px;height:30px;background:#ffe4e6;color:#ef4444;}.cancellation-admin__reject-success-title{margin-bottom:4px;color:#dc2626;font-size:.82rem;}.cancellation-admin__reject-success-main{gap:0;}.cancellation-admin__reject-success-meta{gap:4px;}.cancellation-admin__reject-success-item span{display:none;}.cancellation-admin__reject-success-item strong{color:#b91c1c;font-size:.76rem;font-weight:600;}.cancellation-admin__reject-success-item.is-subscriptions strong{color:#ef4444;}.cancellation-admin__reject-success-chips{gap:6px;}.cancellation-admin__reject-success-chip{min-height:24px;padding:4px 8px;font-size:.68rem;}.cancellation-admin__reject-success-close{width:24px;height:24px;color:#ef4444;position:absolute;top:10px;right:10px;}.cancellation-admin__modal-backdrop{align-items:flex-end;justify-content:stretch;padding:0;background:rgba(15,23,42,.36);}.cancellation-admin__modal{width:100%;max-width:none;max-height:min(88vh,760px);border-radius:22px 22px 0 0;margin:0;box-shadow:0 -18px 48px rgba(15,23,42,.18);}.cancellation-admin__modal-head{gap:10px;padding:14px 14px 12px;}.cancellation-admin__modal-kicker{font-size:.72rem;}.cancellation-admin__modal-student{margin-top:2px;font-size:.92rem;}.cancellation-admin__modal-class{font-size:.74rem;}.cancellation-admin__modal-close{width:32px;height:32px;border-radius:10px;}.cancellation-admin__modal-body{padding:12px 14px 14px;}.cancellation-admin__modal-section+.cancellation-admin__modal-section{margin-top:12px;}.cancellation-admin__modal-warning{gap:8px;margin-bottom:12px;padding:10px 12px;border-radius:12px;font-size:.76rem;}.cancellation-admin__modal-label{margin-bottom:6px;font-size:.7rem;}.cancellation-admin__modal-help{margin-top:6px;font-size:.72rem;}.cancellation-admin__date-trigger{min-height:34px;border-radius:12px;padding:7px 10px;font-size:.76rem;}.cancellation-admin__date-menu{margin-top:6px;border-radius:12px;max-height:230px;}.cancellation-admin__date-option{padding:10px 12px;gap:10px;font-size:.78rem;}.cancellation-admin__date-badge{min-height:18px;padding:2px 6px;font-size:.58rem;}.cancellation-admin__modal-subscriptions{gap:8px;}.cancellation-admin__modal-subscription-toggle{margin-bottom:8px;padding:9px 12px;gap:10px;border-radius:12px;}.cancellation-admin__modal-subscription-toggle-copy strong{font-size:.82rem;}.cancellation-admin__modal-subscription-toggle-copy small{font-size:.72rem;}.cancellation-admin__modal-subscription{border-radius:12px;padding:10px 12px;gap:10px;}.cancellation-admin__modal-subscription-copy strong{font-size:.82rem;}.cancellation-admin__modal-subscription-copy small,.cancellation-admin__modal-subscription-state{font-size:.72rem;}.cancellation-admin__modal-empty{gap:8px;padding:9px 10px;border-radius:12px;font-size:.74rem;}.cancellation-admin__modal-actions{gap:8px;padding:0 12px 12px;}.cancellation-admin__modal-primary,.cancellation-admin__modal-secondary{flex:1 1 0;min-height:34px;border-radius:10px;padding:7px 10px;font-size:.72rem;gap:5px;}.cancellation-admin__apply-progress-card{border-radius:14px;padding:12px;}.cancellation-admin__apply-progress-head{gap:10px;}.cancellation-admin__apply-progress-copy{gap:10px;}.cancellation-admin__apply-progress-title{font-size:.82rem;}.cancellation-admin__apply-progress-meta,.cancellation-admin__apply-progress-percent{font-size:.72rem;}.cancellation-admin__apply-progress-bar{margin-top:10px;height:6px;}.cancellation-admin__apply-list{gap:8px;margin-top:12px;}.cancellation-admin__apply-row{gap:10px;padding:12px;border-radius:12px;}.cancellation-admin__apply-row-main{gap:10px;}.cancellation-admin__apply-row-icon{width:24px;height:24px;font-size:.72rem;}.cancellation-admin__apply-row-title{font-size:.8rem;}.cancellation-admin__apply-row-meta,.cancellation-admin__apply-row-status{font-size:.7rem;}.cancellation-admin__modal-body--success{padding-top:2px;}.cancellation-admin__success-icon{width:58px;height:58px;margin:4px auto 12px;font-size:1.5rem;}.cancellation-admin__success-title{font-size:1.1rem;}.cancellation-admin__success-copy{margin:8px auto 14px;font-size:.78rem;line-height:1.45;}.cancellation-admin__success-card{border-radius:12px;padding:12px;}.cancellation-admin__success-card-title{font-size:.7rem;}.cancellation-admin__success-row{gap:8px;font-size:.8rem;}.cancellation-admin__filters-foot{justify-content:stretch;gap:10px;}.cancellation-admin__filters-reset,.cancellation-admin__filters-apply{width:100%;min-height:40px;font-size:.8rem;}.cancellation-admin__filters-apply{display:inline-flex;align-items:center;justify-content:center;}.cancellation-admin__day-label-full{display:none;}.cancellation-admin__day-label-short{display:inline;}}.waiting-list-admin{background:linear-gradient(180deg,#f6f7fb 0%,#eef2f7 100%);min-height:100%;}.waiting-list-admin__shell{max-width:1280px;padding-top:1.5rem;padding-bottom:1.5rem;}.waiting-list-admin__topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.35rem;}.waiting-list-admin__topbar>div:first-child>.text-muted.small.mb-0{display:none;}.waiting-list-admin__title{margin:0 0 .35rem;font-size:2rem;font-weight:800;color:var(--bs-secondary);}.waiting-list-admin__subtitle{margin:0;color:#8390ab;font-size:.9rem;}.waiting-list-admin__header-actions,.waiting-list-admin__table-tools,.waiting-list-admin__row-actions{display:flex;align-items:center;gap:.75rem;}.waiting-list-admin__primary-btn,.waiting-list-admin__secondary-btn,.waiting-list-admin__columns-btn{min-height:42px;border-radius:14px;padding:0 1rem;display:inline-flex;align-items:center;gap:.55rem;font-size:.9rem;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}.waiting-list-admin__primary-btn{border:1px solid transparent;background:var(--bs-primary);color:#fff;}.waiting-list-admin__secondary-btn,.waiting-list-admin__columns-btn{border:1.5px solid rgba(var(--bs-primary-rgb),.65);background:#fff;color:var(--bs-primary);}.waiting-list-admin__secondary-btn.is-active{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.waiting-list-admin__columns-btn.is-active,.waiting-list-admin__columns-btn.is-open{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.waiting-list-admin__primary-btn:hover,.waiting-list-admin__secondary-btn:hover,.waiting-list-admin__columns-btn:hover{transform:translateY(-1px);}.waiting-list-admin__button-count{min-width:20px;height:20px;padding:0 .35rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;}.waiting-list-admin__secondary-btn.is-active .waiting-list-admin__button-count{background:rgba(255,255,255,.22);color:#fff;}.waiting-list-admin__columns-btn.is-active .waiting-list-admin__button-count,.waiting-list-admin__columns-btn.is-open .waiting-list-admin__button-count{background:rgba(255,255,255,.22);color:#fff;}.waiting-list-admin__stats{margin-bottom:1rem;}.waiting-list-admin__stat-card{height:100%;border-radius:20px;border:1px solid #edf1f7;box-shadow:0 14px 30px rgba(15,23,42,.05);}.waiting-list-admin__stat-card .card-body{display:flex;align-items:center;gap:1rem;padding:1rem 1.15rem;}.waiting-list-admin__stat-card .text-muted.small.text-uppercase{margin-bottom:.2rem;color:#8a97b6!important;font-weight:800;letter-spacing:.06em;}.waiting-list-admin__stat-card .h4{margin-bottom:.1rem!important;font-weight:800;color:var(--bs-secondary);}.waiting-list-admin__stat-value-row{display:flex;align-items:baseline;gap:.45rem;flex-wrap:nowrap;}.waiting-list-admin__stat-value-row .text-muted.small{margin:0;white-space:nowrap;}.waiting-list-admin__stat-icon{width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;border:1px solid transparent;}.waiting-list-admin__stat-icon.is-total{background:rgba(var(--bs-primary-rgb),.1);border-color:rgba(var(--bs-primary-rgb),.22);color:var(--bs-primary);}.waiting-list-admin__stat-icon.is-pending{background:#fff7ed;border-color:#fdba74;color:#f59e0b;}.waiting-list-admin__stat-icon.is-full{background:#fef2f2;border-color:#fca5a5;color:#ef4444;}.waiting-list-admin__stat-icon.is-space{background:#ecfdf5;border-color:#86efac;color:#22c55e;}.waiting-list-admin__table-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1.2rem;background:#fff;border:1px solid #e8edf5;border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 10px 24px rgba(15,23,42,.04);margin-top:1rem;}.waiting-list-admin__view-switcher{background:#eef2f7;padding:.28rem;border-radius:14px;}.waiting-list-admin__view-switcher .view-btn{border-radius:11px;min-height:38px;padding:0 1rem;}.waiting-list-admin__view-switcher .view-btn.active,.waiting-list-admin__view-switcher .view-btn.is-active{background:#fff;color:var(--bs-secondary);}.waiting-list-admin__view-switcher .view-btn.inactive{color:#8390ab;}.waiting-list-admin__table-card{position:relative;border:1px solid #e8edf5;border-top:0;border-radius:0 0 22px 22px;box-shadow:0 18px 36px rgba(15,23,42,.05);overflow:visible;}.waiting-list-admin__columns-panel{top:1rem;right:1rem;}.trials-admin__group-picker{display:grid;gap:.75rem;}.trials-admin__group-picker-label{color:#8fa0bb;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.trials-admin__group-picker-select{min-height:46px;border-radius:14px;border-color:#dbe3ef;}.trials-admin__group-picker-back{display:flex;justify-content:flex-end;margin-bottom:1rem;}.modal-dialog.trials-add-trial-modal{max-width:950px;width:min(950px,100vw - 1.5rem);max-height:min(100vh - 4.5rem,920px);margin:1rem auto;}.modal-dialog.trials-add-trial-modal .modal-content{background:#eef2f7;border:1px solid #dfe7f2;border-radius:18px;overflow:hidden;box-shadow:0 18px 48px rgba(15,23,42,.12);max-height:inherit;display:flex;flex-direction:column;}.modal-dialog.trials-add-trial-modal .modal-body{background:transparent;flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;}.modal-dialog.trials-add-trial-modal .trials-add-flow{padding:1rem 1.1rem 1.2rem;gap:.85rem;}.modal-dialog.trials-add-trial-modal .trials-add-flow__modal-head{padding:0 0 .35rem;}.modal-dialog.trials-add-trial-modal .trials-add-flow__section-label{padding-left:.1rem;}.modal-dialog.trials-add-trial-modal .trials-add-flow__footer{padding:.85rem 0 0;margin-top:.15rem;border-top:1px solid #dfe7f2;}.modal-dialog.trials-add-trial-modal .waiting-list-picker-modal__body.is-success{padding-left:0;padding-right:0;}.modal-dialog.trials-add-trial-modal .waiting-list-picker-modal__footer{padding-left:1.1rem;padding-right:1.1rem;padding-bottom:.15rem;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell{background:#eef2f7;border:1px solid #dfe7f2;border-radius:18px;padding:1rem 1.1rem 1.2rem;gap:.85rem;box-shadow:0 1px 0 rgba(255,255,255,.75) inset;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .trials-add-flow__modal-head{padding:0 0 .35rem;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .trials-add-flow__section-label{padding-left:.1rem;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .trials-add-flow__footer{padding:.85rem 0 0;margin-top:.15rem;border-top:1px solid #dfe7f2;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .waiting-list-picker-modal__body.is-success{padding-left:0;padding-right:0;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .waiting-list-picker-modal__footer{padding-left:1.1rem;padding-right:1.1rem;padding-bottom:.15rem;}.trials-add-flow{display:flex;flex-direction:column;gap:.8rem;min-height:0;min-width:0;flex:1 1 auto;}.trials-add-flow__body-scroll{flex:1 1 auto;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:.8rem;padding-right:.15rem;}.trials-add-flow>.waiting-list-picker-modal__footer{flex-shrink:0;}.trials-add-flow__student-pill-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.2rem;max-width:100%;}.trials-add-flow__student-pill-wrap .waiting-list-picker-modal__selection-warning{max-width:14rem;line-height:1.25;}.members-modal-body:has(>.trials-add-flow){display:flex;flex-direction:column;max-height:min(100vh - 5rem,920px);overflow:hidden;}.members-modal-body:has(>.trials-add-flow)>.trials-add-flow{flex:1 1 auto;min-height:0;}.trials-add-flow__modal-head{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;padding:1rem 1rem 0;}.trials-add-flow__modal-head-main{display:flex;align-items:flex-start;gap:.8rem;min-width:0;}.trials-add-flow__section-label{color:#8fa0bb;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding-left:1rem;}.trials-add-flow__student-pill:disabled,.trials-add-flow__selected-pill:disabled{opacity:.55;cursor:not-allowed;}.trials-add-flow__panel{border:1px solid #e2e8f0;border-radius:16px;background:#fff;padding:.85rem .9rem;display:grid;gap:.65rem;min-width:0;max-width:100%;box-sizing:border-box;box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(15,23,42,.04);}.trials-add-flow__search{display:flex;align-items:center;gap:.6rem;min-height:42px;padding:0 .75rem;border:1px solid #e2e8f0;border-radius:14px;background:#fff;color:#94a3b8;}.trials-add-flow__search input{flex:1 1 auto;border:0;outline:0;background:transparent;color:#22345c;font-size:.88rem;}.trials-add-flow__count{color:#8fa0bb;font-size:.82rem;font-weight:800;}.trials-add-flow__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.trials-add-flow__selected-count{color:rgba(var(--bs-primary-rgb),.9);font-size:.82rem;font-weight:800;}.trials-add-flow__table-head,.trials-add-flow__student-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.75fr) minmax(0,1.5fr) minmax(0,1.15fr);gap:.9rem;align-items:center;}.trials-add-flow__table-head{color:#8fa0bb;font-size:.78rem;font-weight:800;text-transform:uppercase;padding:0 .75rem;}.trials-add-flow__student-list{display:grid;gap:.5rem;max-height:260px;overflow-y:auto;}.trials-add-flow__student-row{width:100%;padding:.62rem .75rem;border:1px solid #e8edf5;border-radius:14px;background:#fff;color:#64748b;text-align:left;}.trials-add-flow__student-col--stack{flex-wrap:wrap;gap:.45rem;}.trials-add-flow__student-row.is-selected{border:2px solid var(--bs-primary);background:rgba(var(--bs-primary-rgb),.14);box-shadow:0 0 0 1px rgba(var(--bs-primary-rgb),.06),0 6px 18px rgba(var(--bs-primary-rgb),.12);color:#334155;}.trials-add-flow__student-row.is-selected .trials-add-flow__student-name{color:var(--bs-secondary);}.trials-add-flow__student-row.is-selected .trials-add-flow__student-pill{background:#fff;border-color:rgba(var(--bs-primary-rgb),.35);}.trials-add-flow__selected-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:1.8rem;padding:0 .75rem;border-radius:999px;background:var(--bs-primary);color:#fff;font-size:.8rem;font-weight:800;}.trials-add-flow__student-pill{min-height:1.8rem;padding:0 .6rem;border-radius:999px;border:1px solid #dbe3ef;background:#fff;color:#22345c;display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;}.trials-add-flow__student-pill .members-table-avatar,.trials-add-flow__student-pill .members-table-avatar.is-female,.trials-add-flow__student-pill .members-table-avatar.is-male{width:20px;height:20px;min-width:20px;min-height:20px;font-size:.62rem;}.trials-add-flow__student-col{display:flex;align-items:center;gap:.55rem;min-width:0;font-size:.84rem;font-weight:700;}.trials-add-flow__student-col--email{overflow-wrap:anywhere;word-break:break-word;font-weight:600;line-height:1.35;}.trials-add-flow__student-picker-desktop{display:flex;flex-direction:column;gap:.45rem;}.trials-add-flow__mobile-student-head{display:flex;align-items:center;justify-content:space-between;padding:0 .15rem .45rem;color:#8fa0bb;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}.trials-add-flow__student-picker-mobile{min-width:0;max-width:100%;}.trials-add-flow__mobile-student-list{display:flex;flex-direction:column;gap:.65rem;max-height:min(52vh,380px);min-width:0;max-width:100%;overflow-x:hidden;overflow-y:auto;padding-right:.2rem;scrollbar-width:thin;}.trials-add-flow__mobile-student-card{box-sizing:border-box;width:100%;max-width:100%;min-width:0;border:2px solid #e8edf5;border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.05);padding:.75rem .55rem .75rem .75rem;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.45rem;text-align:left;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;}.trials-add-flow__mobile-student-card:hover:not(:disabled){border-color:rgba(var(--bs-primary-rgb),.35);}.trials-add-flow__mobile-student-card.is-selected{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.1);box-shadow:0 0 0 1px rgba(var(--bs-primary-rgb),.08),0 10px 22px rgba(var(--bs-primary-rgb),.12);}.trials-add-flow__mobile-student-card:disabled{opacity:.72;cursor:not-allowed;background:#f8fafc;}.trials-add-flow__mobile-student-card-main{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.65rem;min-width:0;flex:1 1 auto;}.trials-add-flow__mobile-student-avatar.members-table-avatar,.trials-add-flow__mobile-student-avatar.members-table-avatar.is-male,.trials-add-flow__mobile-student-avatar.members-table-avatar.is-female{width:40px;height:40px;min-width:40px;min-height:40px;flex-shrink:0;font-size:.78rem;}.trials-add-flow__mobile-student-card-copy{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.12rem;}.trials-add-flow__mobile-student-title-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:.35rem;min-width:0;width:100%;}.trials-add-flow__mobile-student-name{color:var(--bs-secondary);font-size:.88rem;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.trials-add-flow__mobile-student-age{color:#94a3b8;font-size:.76rem;font-weight:700;flex-shrink:0;white-space:nowrap;}.trials-add-flow__mobile-student-parent{color:#64748b;font-size:.78rem;font-weight:700;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.trials-add-flow__mobile-student-contact{color:#94a3b8;font-size:.72rem;font-weight:600;line-height:1.25;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.trials-add-flow__mobile-student-warning{margin-top:.15rem;white-space:normal;overflow-wrap:anywhere;}.trials-add-flow__mobile-student-card-action{flex:0 0 auto;min-width:0;max-width:5.5rem;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.2rem;align-self:center;}.trials-add-flow__mobile-tap-hint{color:#94a3b8;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.2;text-align:right;white-space:normal;max-width:5.5rem;}.trials-add-flow__mobile-student-check{width:32px;height:32px;border-radius:999px;background:var(--bs-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;}.trials-add-flow__mobile-student-action-muted{color:#cbd5e1;font-size:1rem;font-weight:700;}.trials-add-flow__student-name{color:#22345c;font-size:.9rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.trials-add-flow__empty{min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid #eef2f7;border-radius:12px;color:#94a3b8;font-size:.86rem;font-weight:700;text-align:center;padding:0 1rem;}.trials-add-flow__selected-summary{color:#64748b;font-size:.88rem;font-weight:700;}.trials-add-flow__schedule-head,.trials-add-flow__schedule-row{display:grid;grid-template-columns:1fr 1.1fr .95fr;gap:.8rem;align-items:center;}.trials-add-flow__schedule-head{color:#8fa0bb;font-size:.78rem;font-weight:800;text-transform:uppercase;padding:0 .45rem;}.trials-add-flow__schedule-field{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:.35rem;}.trials-add-flow__schedule-mobile-label{color:#8fa0bb;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1.2;}@media(min-width:768px){.trials-add-flow__schedule-field{display:contents;}}.trials-add-flow__schedule-list{display:grid;gap:.55rem;}.trials-add-flow__schedule-row{padding:.65rem .35rem 0 .35rem;border-top:1px solid #eef2f7;}.trials-add-flow__schedule-student{display:flex;align-items:center;gap:.7rem;min-width:0;}.trials-add-flow__schedule-student-name{color:var(--bs-secondary);font-size:.86rem;font-weight:800;}.trials-add-flow__schedule-student-meta{color:#8fa0bb;font-size:.76rem;font-weight:700;}.trials-add-flow__menu-wrap{position:relative;}.trials-add-flow__picker{width:100%;min-height:40px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:#64748b;font-size:.84rem;font-weight:700;display:flex;align-items:center;gap:.55rem;justify-content:space-between;text-align:left;}.trials-add-flow__picker:disabled{background:#f8fafc;color:#a3b0c6;}.trials-add-flow__picker.is-selected{border-color:rgba(var(--bs-primary-rgb),.45);}.trials-add-flow__picker-copy{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.trials-add-flow__picker-time{color:#94a3b8;font-size:.8rem;font-weight:800;flex-shrink:0;}.trials-add-flow__capacity-pill{flex-shrink:0;min-height:22px;padding:0 .45rem;border-radius:999px;border:1px solid #a7f3d0;background:#ecfdf5;color:#0f766e;font-size:.74rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}.trials-add-flow__menu{position:absolute;top:calc(100% + .4rem);left:0;right:0;z-index:25;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 18px 32px rgba(15,23,42,.14);max-height:260px;overflow-y:auto;}.trials-add-flow__menu--dates{max-height:230px;}.trials-add-flow__menu-wrap.is-open{z-index:1200;}.trials-add-flow__menu-wrap.is-open>.trials-add-flow__menu{z-index:1210;}.trials-add-flow__menu-group+.trials-add-flow__menu-group{border-top:1px solid #eef2f7;}.trials-add-flow__menu-heading{width:100%;border:0;background:#fff;color:rgba(var(--bs-primary-rgb),.95);font-size:.82rem;font-weight:800;padding:.75rem .85rem .4rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;}.trials-add-flow__menu-heading-chevron{flex-shrink:0;font-size:.72rem;opacity:.85;transition:transform .2s ease;}.trials-add-flow__menu-group.is-expanded .trials-add-flow__menu-heading-chevron{transform:rotate(180deg);}.trials-add-flow__menu-group:not(.is-expanded) .trials-add-flow__menu-options{display:none;}.trials-add-flow__menu-options{display:grid;}.trials-add-flow__menu-option{width:100%;border:0;background:#fff;padding:.62rem .85rem;display:flex;align-items:center;gap:.55rem;text-align:left;}.trials-add-flow__menu-option.is-active{background:rgba(var(--bs-primary-rgb),.05);}.trials-add-flow__menu-radio{width:14px;height:14px;border-radius:999px;border:1.5px solid #d5dfed;flex-shrink:0;}.trials-add-flow__menu-option.is-active .trials-add-flow__menu-radio{border-color:var(--bs-primary);box-shadow:inset 0 0 0 3px #fff;background:var(--bs-primary);}.trials-add-flow__menu-option-main{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:.6rem;}.trials-add-flow__menu-option-title{color:#22345c;font-size:.84rem;font-weight:700;}.trials-add-flow__menu-option-sub{color:#8fa0bb;font-size:.78rem;font-weight:700;margin-left:auto;}.trials-add-flow__date-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem;}.trials-add-flow__date-card{display:grid;gap:.15rem;min-height:66px;padding:.75rem .85rem;border:1px solid #e2e8f0;border-radius:14px;background:#fff;color:#64748b;text-align:left;}.trials-add-flow__date-card span{font-size:.84rem;font-weight:700;}.trials-add-flow__date-card strong{color:#22345c;font-size:.96rem;font-weight:800;}.trials-add-flow__date-card.is-active{border-color:rgba(var(--bs-primary-rgb),.38);background:rgba(var(--bs-primary-rgb),.06);}.trials-add-flow__error{color:#dc2626;font-size:.86rem;font-weight:700;}.trials-add-flow__footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:.9rem;padding:0 1rem 1rem;}.trials-add-flow__footer-note{color:#94a3b8;font-size:.88rem;font-weight:700;}.trials-add-flow__footer-actions{display:flex;align-items:center;gap:.65rem;}.trials-add-flow__btn{min-height:2.45rem;padding:0 .9rem;border-radius:10px;font-size:.86rem;font-weight:800;}.trials-add-flow__btn.is-light{border:1px solid #e2e8f0;background:#fff;color:#22345c;}.trials-add-flow__btn.is-secondary{border:1px solid #e2e8f0;background:#fff;color:#94a3b8;}.trials-add-flow__btn.is-primary{border:0;background:var(--bs-primary);color:#fff;}.trials-add-flow__btn.is-primary-outline{border:2px solid var(--bs-primary);background:#fff;color:var(--bs-primary);gap:.5rem;}.trials-add-flow__btn.is-primary-outline:hover:not(:disabled){background:rgba(var(--bs-primary-rgb),.1);}.trials-add-flow__btn.is-primary-outline:disabled{opacity:.52;border-color:#dbe3ef;color:#94a3b8;cursor:not-allowed;background:#f8fafc;}.trials-add-flow__btn-spinner{margin-right:.35rem;}.trials-add-flow__btn:disabled{opacity:.55;cursor:not-allowed;}.trials-add-flow__success-banner-note{color:#7c8ba7;font-weight:700;}.trials-add-flow__success-parent-copy{min-width:0;display:grid;gap:.06rem;}.trials-add-flow__success-parent-phone,.trials-add-flow__success-parent-email{color:#94a3b8;font-size:.8rem;font-weight:700;line-height:1.3;}.trials-add-flow__success-email-chip{margin-left:auto;min-height:28px;padding:0 .35rem;border-radius:999px;border:1px solid #a7f3d0;background:#ecfdf5;color:#166534;display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:800;}.trials-add-flow__success-student-row{padding:.9rem .95rem;border-top:1px solid #eef2f7;display:grid;grid-template-columns:1fr 1fr .9fr;gap:.8rem;align-items:center;}.trials-add-flow__success-student{display:flex;align-items:center;gap:.75rem;min-width:0;}.trials-add-flow__success-slot{display:grid;gap:.14rem;}.trials-add-flow__success-slot strong{color:#22345c;font-size:.92rem;font-weight:800;}.trials-add-flow__success-slot span{color:#94a3b8;font-size:.78rem;font-weight:700;}.trials-add-flow__success-label{color:#8fa0bb!important;font-size:.74rem!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.04em;}.trials-admin__location-pill,.trials-admin__gender-chip,.trials-admin__status-pill,.trials-admin__notes-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:34px;padding:0 .85rem;border-radius:999px;font-size:.8rem;font-weight:700;}.trials-admin__location-pill{background:rgba(var(--bs-primary-rgb),.08);border:1px solid rgba(var(--bs-primary-rgb),.22);color:var(--bs-primary);}.trials-admin__gender-chip{width:34px;justify-content:center;padding:0;border:1px solid #dbe3ef;background:#fff;}.trials-admin__gender-chip.is-female{color:#f97373;border-color:rgba(249,115,115,.35);background:rgba(254,226,226,.45);}.trials-admin__gender-chip.is-male{color:#38bdf8;border-color:rgba(56,189,248,.35);background:rgba(224,242,254,.6);}.trials-admin__status-cell{position:relative;display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;}.trials-admin__status-display{display:inline-flex;align-items:center;justify-content:center;min-width:1.45rem;min-height:1.45rem;font-size:1.12rem;line-height:1;}.trials-admin__status-pill{border:1px solid transparent;}.trials-admin__status-pill.is-upcoming{background:#eef2ff;border-color:#c7d2fe;color:#4f46e5;}.trials-admin__status-pill.is-attended{background:#ecfdf5;border-color:#a7f3d0;color:#16a34a;}.trials-admin__status-pill.is-holiday{background:#fff7ed;border-color:#fdba74;color:#d97706;}.trials-admin__status-pill.is-sick{background:#fdf2f8;border-color:#f9a8d4;color:#db2777;}.trials-admin__status-pill.is-injured{background:#fff7ed;border-color:#fdba74;color:#f97316;}.trials-admin__status-pill.is-noshow{background:#fef2f2;border-color:#fecaca;color:#ef4444;}.trials-admin__status-actions{display:inline-flex;align-items:center;gap:.45rem;}.trials-admin__status-action{width:1.45rem;height:1.45rem;border-radius:999px;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;font-size:1.12rem;padding:0;transition:all .18s ease;}.trials-admin__status-letter{font-size:.9rem;font-weight:800;line-height:1;}.trials-admin__status-action.is-attend{color:#16a34a;}.trials-admin__status-action.is-absence{color:#ef4444;}.trials-admin__status-action.is-active{box-shadow:0 0 0 3px rgba(239,68,68,.12);border-radius:999px;}.trials-admin__absence-panel{position:absolute;top:calc(100% + .65rem);left:0;z-index:30;width:232px;border:1px solid #e8edf5;border-radius:18px;background:#fff;box-shadow:0 18px 36px rgba(15,23,42,.14);padding:1rem;}.trials-admin__absence-panel-title{color:#94a3b8;font-size:.82rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;}.trials-admin__absence-panel-list{margin-top:.7rem;display:flex;flex-direction:column;}.trials-admin__absence-option{width:100%;border:0;border-radius:14px;background:#fff;display:flex;align-items:flex-start;gap:.7rem;padding:.72rem .7rem;text-align:left;}.trials-admin__absence-option.is-selected{background:#fff7ed;}.trials-admin__absence-option-icon{width:1.8rem;height:1.8rem;border-radius:999px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;flex-shrink:0;}.trials-admin__absence-option-icon.is-noshow{background:#fef2f2;border-color:#fecaca;color:#ef4444;}.trials-admin__absence-option-icon.is-sick{background:#fdf2f8;border-color:#f9a8d4;color:#db2777;}.trials-admin__absence-option-icon.is-injured{background:#fff7ed;border-color:#fdba74;color:#f97316;}.trials-admin__absence-option-icon.is-holiday{background:#fff7ed;border-color:#fdba74;color:#d97706;}.trials-admin__absence-option-copy{min-width:0;display:flex;flex-direction:column;gap:.12rem;}.trials-admin__absence-option-title{color:var(--bs-secondary);font-size:.98rem;font-weight:800;line-height:1.2;}.trials-admin__absence-option-subtitle{color:#94a3b8;font-size:.82rem;font-weight:600;line-height:1.35;}.trials-admin__absence-option-check{margin-left:auto;color:#f97316;font-size:.86rem;padding-top:.18rem;}.trials-admin__absence-panel-footnote{margin-top:.7rem;color:#94a3b8;font-size:.78rem;font-weight:600;line-height:1.5;display:flex;align-items:flex-start;gap:.4rem;}.trials-admin__inline-icon{border:0;background:transparent;color:#97a3bb;padding:0;line-height:1;}.trials-admin__pay-today{display:inline-flex;flex-direction:column;line-height:1.05;}.trials-admin__pay-today span{color:#94a3b8;font-size:.68rem;font-weight:900;letter-spacing:.06em;}.trials-admin__pay-today strong{color:var(--bs-secondary);font-size:.98rem;font-weight:800;}.trials-admin__notes-btn{border:1px solid #dbe3ef;background:#fff;color:#64748b;position:relative;}.trials-admin__notes-btn span{color:#94a3b8;}.trials-admin__notes-btn.is-outline{border:2px solid rgba(var(--bs-primary-rgb),.5);background:#fff;color:var(--bs-primary);}.trials-admin__notes-btn.is-outline span{color:rgba(var(--bs-primary-rgb),.88);}.trials-admin__notes-btn.is-outline .fa-note-sticky{color:rgba(var(--bs-primary-rgb),.9);}.trials-admin__notes-btn.is-alert{border-color:#fca5a5;background:#fff5f5;color:#ef4444;}.trials-admin__notes-btn.is-alert span{color:#ef4444;}.trials-admin__notes-btn.is-alert .fa-note-sticky{color:#ef4444;}.trials-admin__notes-alert{width:1.15rem;height:1.15rem;border-radius:999px;background:#ef4444;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.58rem;font-weight:900;flex-shrink:0;line-height:1;}.trials-admin__notes-alert i{line-height:1;}.trials-notes-inline{border:1px solid #eef2f7;border-radius:16px;background:#fff;padding:.95rem 1rem;}.trials-notes-inline__empty{color:#b1bdd4;font-size:.94rem;font-style:italic;margin-bottom:.7rem;}.trials-notes-inline__item{border:1px solid #eef2f7;border-radius:12px;background:#fff;padding:.8rem .9rem;margin-bottom:.7rem;}.trials-notes-inline__item.is-important{border-color:#fca5a5;background:#fff5f5;}.trials-notes-inline__meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}.trials-notes-inline__author{color:var(--bs-secondary);font-size:.9rem;font-weight:800;}.trials-notes-inline__date{color:#b1bdd4;font-size:.82rem;font-weight:700;}.trials-notes-inline__flag{display:inline-flex;align-items:center;gap:.35rem;min-height:1.55rem;padding:0 .6rem;border-radius:999px;font-size:.74rem;font-weight:800;}.trials-notes-inline__flag.is-important{background:#ef4444;color:#fff;}.trials-notes-inline__flag.is-parent{background:#e0f2fe;color:#0284c7;}.trials-notes-inline__body{margin-top:.45rem;color:var(--bs-secondary);font-size:.95rem;line-height:1.5;}.trials-notes-inline__composer{display:grid;gap:.7rem;}.trials-notes-inline__textarea{width:100%;min-height:2.8rem;padding:.8rem .95rem;border:1px solid #e5edf6;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.94rem;line-height:1.45;resize:vertical;outline:0;transition:min-height .15s ease,border-color .15s ease,box-shadow .15s ease;}.trials-notes-inline__textarea::placeholder{color:#b1bdd4;}.trials-notes-inline__textarea.is-open,.trials-notes-inline__textarea:focus{min-height:6.7rem;border:2px solid #f59e0b;box-shadow:none;}.trials-notes-inline__checks{display:flex;flex-direction:column;gap:.55rem;}.trials-notes-inline__check{display:inline-flex;align-items:center;gap:.6rem;color:var(--bs-secondary);font-size:.95rem;font-weight:700;}.trials-notes-inline__check input{width:1rem;height:1rem;accent-color:#f59e0b;}.trials-notes-inline__actions{display:flex;align-items:center;gap:.6rem;}.trials-notes-inline__save,.trials-notes-inline__cancel{min-height:2.4rem;padding:0 1rem;border-radius:10px;font-size:.92rem;font-weight:800;}.trials-notes-inline__save{border:0;background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.trials-notes-inline__save:disabled{background:#f3f4f6;color:#94a3b8;}.trials-notes-inline__cancel{border:0;background:var(--bs-secondary);border-color:var(--bs-secondary);color:#fff;}.trials-admin__mobile-last-offer{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem .65rem;margin-top:.65rem;}.trials-admin__mobile-last-offer-label{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b;}.trials-admin__mobile-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.8rem;}.trials-remove-modal{display:grid;gap:1rem;padding:1rem 1.1rem 1.15rem;}.trials-remove-modal__header,.trials-remove-modal__title-wrap,.trials-remove-modal__student-main,.trials-remove-modal__student-line,.trials-remove-modal__footer,.trials-remove-modal__footer-actions{display:flex;align-items:center;}.trials-remove-modal__header,.trials-remove-modal__footer{justify-content:space-between;gap:1rem;}.trials-remove-modal__header{padding-bottom:.95rem;border-bottom:1px solid #eef2f7;}.trials-remove-modal__title-wrap,.trials-remove-modal__student-main,.trials-remove-modal__footer-actions{gap:.85rem;}.trials-remove-modal__title-icon{width:2.55rem;height:2.55rem;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#fff1f2;color:#ef4444;flex-shrink:0;}.trials-remove-modal__header h4{margin:0;color:#22345c;font-size:1.1rem;font-weight:800;}.trials-remove-modal__header p{margin:.15rem 0 0;color:#94a3b8;font-size:.82rem;font-weight:700;}.trials-remove-modal__close{width:2.55rem;height:2.55rem;border-radius:14px;border:1px solid #e5edf6;background:#fff;color:#94a3b8;}.trials-remove-modal__warning{display:flex;align-items:flex-start;gap:.7rem;padding:1rem 1.05rem;border:1px solid #fecaca;border-radius:16px;background:#fff5f5;color:#475569;font-size:.9rem;font-weight:700;line-height:1.5;}.trials-remove-modal__warning i{color:#ef4444;margin-top:.12rem;}.trials-remove-modal__info h5,.trials-remove-modal__section-label{margin:0 0 .55rem;color:#22345c;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.trials-remove-modal__info{padding:0 .1rem;}.trials-remove-modal__info ul{margin:0;padding-left:1.1rem;color:#64748b;font-size:.86rem;line-height:1.55;}.trials-remove-modal__list{display:grid;gap:.7rem;padding:.8rem;border:1px solid #eef2f7;border-radius:16px;background:#fbfdff;}.trials-remove-modal__list.is-scrollable{max-height:clamp(10rem,100vh - 34rem,19rem);overflow-y:auto;}.trials-remove-modal__student{display:flex;align-items:center;justify-content:space-between;gap:.9rem;padding:.8rem .9rem;border:1px solid #e8eef7;border-radius:14px;background:#fff;}.trials-remove-modal__student.is-success{border-color:#c8f1df;background:#ecfdf5;}.trials-remove-modal__student-copy{min-width:0;}.trials-remove-modal__student-line{gap:.35rem;flex-wrap:wrap;}.trials-remove-modal__student-line strong{color:#22345c;font-size:.9rem;font-weight:800;}.trials-remove-modal__student-line span,.trials-remove-modal__student-meta{color:#8a97b6;font-size:.82rem;font-weight:700;}.trials-remove-modal__student-meta{margin-top:.1rem;}.trials-remove-modal__status{color:#10b981;font-size:.8rem;font-weight:900;text-transform:uppercase;}.trials-remove-modal__success{text-align:center;display:grid;justify-items:center;gap:.7rem;padding-top:.5rem;}.trials-remove-modal__success-icon{width:5.5rem;height:5.5rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#10b981;color:#fff;font-size:2rem;box-shadow:0 18px 40px rgba(16,185,129,.22);}.trials-remove-modal__success h5{margin:0;color:#22345c;font-size:1.35rem;font-weight:900;}.trials-remove-modal__success p{max-width:34rem;margin:0;color:#94a3b8;font-size:.9rem;font-weight:700;line-height:1.55;}.trials-remove-modal__footer-copy{color:#94a3b8;font-size:.84rem;font-weight:700;}.trials-remove-modal__footer-copy strong{color:#10b981;}.trials-remove-modal__footer{padding-top:1rem;border-top:1px solid #eef2f7;}.trials-remove-modal__cancel,.trials-remove-modal__remove,.trials-remove-modal__done{min-height:2.8rem;padding:0 1.15rem;border-radius:12px;font-size:.95rem;font-weight:800;}.trials-remove-modal__cancel{border:1px solid #e2e8f0;background:#fff;color:#22345c;}.trials-remove-modal__remove{border:0;background:#ef4444;color:#fff;}.trials-remove-modal__done{border:0;background:#10b981;color:#fff;}@media(max-width:767.98px){.trials-add-flow__toolbar{flex-direction:column;align-items:stretch;}.trials-add-flow__footer{flex-direction:column;align-items:stretch;gap:.65rem;}.trials-add-flow__footer-actions{flex-direction:row;flex-wrap:nowrap;width:100%;justify-content:stretch;gap:.35rem;}.trials-add-flow__footer-actions .trials-add-flow__btn{min-width:0;min-height:2.35rem;white-space:nowrap;}.trials-add-flow__footer-actions .trials-add-flow__btn .trials-add-flow__btn-spinner{margin-right:.2rem;}.trials-add-flow__table-head,.trials-add-flow__student-row,.trials-add-flow__schedule-row{grid-template-columns:1fr;}.trials-add-flow .waiting-list-picker-modal__body.is-success.trials-add-flow__body-scroll{overflow-x:hidden;min-width:0;max-width:100%;}.trials-add-flow .waiting-list-picker-modal__body.is-success{gap:.5rem;}.trials-add-flow .waiting-list-picker-modal__success-list{max-height:none;overflow:visible;gap:.55rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box;}.trials-add-flow .waiting-list-picker-modal__success-family{overflow-x:visible;overflow-y:visible;max-height:none;box-shadow:0 12px 28px rgba(15,23,42,.08);width:100%;max-width:100%;min-width:0;box-sizing:border-box;}.trials-add-flow .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;width:100%;max-width:100%;min-width:0;box-sizing:border-box;gap:.45rem;padding:.55rem .65rem;}.trials-add-flow .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.06rem;min-width:0;flex:1 1 auto;overflow:hidden;}.trials-add-flow .waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.trials-add-flow .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-phone,.trials-add-flow .waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-email{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.trials-add-flow .trials-add-flow__success-email-chip{flex-shrink:0;margin-left:auto;}.trials-add-flow .trials-add-flow__success-student-row{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;padding:.55rem .65rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box;}.trials-add-flow .trials-add-flow__success-student-row>.trials-add-flow__success-student{flex:0 0 auto;width:100%;min-width:0;}.trials-add-flow .trials-add-flow__success-student-row>.trials-add-flow__success-slot{flex:1 1 auto;width:100%;min-width:0;max-width:100%;text-align:left;}.trials-add-flow .trials-add-flow__success-slot strong,.trials-add-flow .trials-add-flow__success-slot span:not(.trials-add-flow__success-label){display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.trials-add-flow .trials-add-flow__success-label{white-space:normal;}.trials-add-flow .trials-add-flow__success-student{align-items:center;gap:.55rem;min-width:0;}.trials-add-flow .trials-add-flow__schedule-student-name,.trials-add-flow .trials-add-flow__schedule-student-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}.trials-add-flow__student-list{max-height:320px;}.trials-add-flow__modal-head,.trials-add-flow__footer{padding-left:.85rem;padding-right:.85rem;}.modal-dialog.trials-add-trial-modal .waiting-list-picker-modal__body.is-success{padding-left:.85rem;padding-right:.85rem;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .trials-add-flow__modal-head{padding-left:.85rem;padding-right:.85rem;}.members-modal-body:has(>.trials-add-flow--match-trials-shell)>.trials-add-flow--match-trials-shell .waiting-list-picker-modal__body.is-success{padding-left:.85rem;padding-right:.85rem;}.trials-remove-modal{gap:.8rem;padding:.8rem .8rem .95rem;}.trials-remove-modal__list.is-scrollable{min-height:12rem;max-height:clamp(12rem,100vh - 31rem,15.5rem);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#94a3b8 #eef2f7;}.trials-remove-modal__list.is-scrollable::-webkit-scrollbar{width:8px;}.trials-remove-modal__list.is-scrollable::-webkit-scrollbar-track{background:#eef2f7;border-radius:999px;}.trials-remove-modal__list.is-scrollable::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:999px;}.trials-remove-modal__header h4{font-size:.98rem;}.trials-remove-modal__header p{font-size:.74rem;}.trials-remove-modal__title-icon,.trials-remove-modal__close{width:2.2rem;height:2.2rem;border-radius:12px;}.trials-remove-modal__warning{padding:.8rem .9rem;border-radius:14px;font-size:.78rem;}.trials-remove-modal__info h5,.trials-remove-modal__section-label{font-size:.74rem;margin-bottom:.45rem;}.trials-remove-modal__info ul{font-size:.78rem;line-height:1.45;}.trials-remove-modal__student{gap:.7rem;padding:.68rem .72rem;border-radius:12px;}.trials-remove-modal__student-line strong{font-size:.8rem;}.trials-remove-modal__student-line span,.trials-remove-modal__student-meta{font-size:.72rem;}.trials-remove-modal__footer-copy{font-size:.76rem;}.trials-remove-modal__footer,.trials-remove-modal__footer-actions{flex-direction:column;align-items:stretch;}.trials-remove-modal__cancel,.trials-remove-modal__remove,.trials-remove-modal__done{min-height:2.5rem;padding:0 1rem;font-size:.82rem;border-radius:11px;}}.waiting-list-admin__tool-label,.waiting-list-admin__tool-count{color:#8a97b6;font-size:.85rem;}.waiting-list-admin__per-page-select{width:84px;border-radius:12px;border-color:#d9e1ee;font-weight:700;}.waiting-list-admin__filters-card,.waiting-list-admin__selection-card{border-radius:20px;border:1px solid #e8edf5;box-shadow:0 10px 24px rgba(15,23,42,.04);}.waiting-list-admin__filters-card .btn.btn-primary{background:var(--bs-primary);border-color:var(--bs-primary);}.waiting-list-admin__filters-card .btn.btn-outline-primary{color:var(--bs-primary);border-color:rgba(var(--bs-primary-rgb),.4);}.waiting-list-admin__filters-grid{display:grid;gap:1.25rem;}.waiting-list-admin__search-wrap{position:relative;}.waiting-list-admin__filters-top{display:flex;justify-content:flex-end;}.waiting-list-admin__search-wrap i{position:absolute;top:50%;left:1rem;transform:translateY(-50%);color:#97a3bb;}.waiting-list-admin__search-input{min-height:44px;border-radius:14px;padding-left:2.25rem;border-color:#dbe3ef;}.waiting-list-admin__filter-block{display:grid;gap:.75rem;width:min(100%,720px);}.waiting-list-admin__filter-heading{color:#8fa0bb;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.waiting-list-admin__filter-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.waiting-list-admin__filter-clear{border:0;background:transparent;padding:0;color:var(--bs-primary);font-size:.82rem;font-weight:700;line-height:1;}.waiting-list-admin__filter-pills{display:flex;flex-wrap:wrap;gap:.65rem;}.waiting-list-admin__filter-pill{min-height:34px;padding:0 .9rem;border-radius:12px;border:1.5px solid #dbe3ef;background:#fff;color:#8390ab;font-size:.82rem;font-weight:700;}.waiting-list-admin__filter-block .waiting-list-admin__filter-pills .waiting-list-admin__filter-pill{justify-content:center;}.waiting-list-admin__filter-pills--days .waiting-list-admin__filter-pill{min-width:64px;padding:0 .8rem;}.waiting-list-admin__filter-pill.is-active{border-color:rgba(var(--bs-primary-rgb),.75);color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.06);}.waiting-list-admin__filter-pill.is-disabled{opacity:.55;cursor:not-allowed;}.waiting-list-admin__filter-accordion{max-height:400px;overflow-y:auto;}.waiting-list-admin__filters-actions{display:flex;justify-content:flex-end;margin-top:.25rem;}.waiting-list-admin__filters-reset{border:1px solid #dbe3ef;border-radius:12px;min-height:40px;padding:0 1rem;background:#fff;color:#8390ab;font-size:.82rem;font-weight:700;transition:border-color .2s ease,color .2s ease,background-color .2s ease;}.waiting-list-admin__filters-reset:hover:not(:disabled){border-color:rgba(var(--bs-primary-rgb),.5);color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.04);}.waiting-list-admin__filters-reset:disabled{opacity:.55;cursor:not-allowed;}.waiting-list-admin__table-scroll{overflow-x:auto;border-radius:0 0 22px 22px;}.waiting-list-admin__group-header{padding:1rem 1.25rem .25rem;background:#fff;}.waiting-list-admin__group-header h3{margin:0;font-size:.95rem;font-weight:800;color:var(--bs-primary);}.waiting-list-admin__group-header .members-group-count{color:var(--bs-primary);}.waiting-list-admin__table th{color:#8fa0bb;}.waiting-list-admin__table td{padding-top:1rem;padding-bottom:1rem;}.waiting-list-admin__message-row td{padding:.7rem 1.1rem;background:#fff;}.waiting-list-admin__inline-message{min-height:62px;border:1px solid #e8edf5;border-radius:16px;padding:.8rem .95rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;}.waiting-list-admin__inline-message.is-warning{border-color:#fdba74;background:#fff7ed;}.waiting-list-admin__inline-message.is-success{border-color:#86efac;background:#ecfdf5;}.waiting-list-admin__inline-message-main,.waiting-list-admin__inline-message-actions{display:flex;align-items:center;gap:.8rem;}.waiting-list-admin__inline-message-main{min-width:0;}.waiting-list-admin__inline-message-copy{display:grid;gap:.55rem;}.waiting-list-admin__inline-message-icon{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.95rem;}.waiting-list-admin__inline-message-icon.is-warning{background:#f59e0b;color:#fff;}.waiting-list-admin__inline-message-icon.is-success{background:#10b981;color:#fff;}.waiting-list-admin__inline-message-text{color:var(--bs-secondary);font-size:.92rem;font-weight:800;}.waiting-list-admin__delete-email-card{border:1px solid #fbd38d;border-radius:14px;background:rgba(255,255,255,.82);display:flex;align-items:center;gap:.8rem;padding:.7rem .85rem;text-align:left;}.waiting-list-admin__delete-email-card.is-on{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.06);}.waiting-list-admin__delete-email-copy{display:grid;gap:.1rem;}.waiting-list-admin__delete-email-title{font-size:.8rem;font-weight:800;color:#7c2d12;}.waiting-list-admin__delete-email-description{font-size:.72rem;line-height:1.45;color:#9a3412;}.waiting-list-admin__inline-btn{min-height:40px;border:1px solid #e8edf5;border-radius:12px;padding:0 1rem;background:#fff;color:#8390ab;font-size:.88rem;font-weight:800;}.waiting-list-admin__inline-btn.is-danger{border-color:#ef4444;background:#ef4444;color:#fff;}.waiting-list-admin__inline-badge{min-height:34px;padding:0 .85rem;border-radius:999px;display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:800;text-transform:uppercase;}.waiting-list-admin__inline-badge.is-success{background:#10b981;color:#fff;}.waiting-list-admin__child-cell{display:flex;align-items:center;gap:.85rem;}.waiting-list-admin__avatar{width:2.35rem;height:2.35rem;border-radius:999px;background:#e9efff;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;flex-shrink:0;}.waiting-list-admin__child-copy,.waiting-list-admin__date-stack{display:flex;flex-direction:column;gap:.18rem;}.waiting-list-admin__child-name,.waiting-list-admin__class-name,.waiting-list-admin__date-stack strong{color:var(--bs-secondary);font-weight:800;}.waiting-list-admin__parent-row{display:inline-flex;align-items:center;gap:.45rem;color:#8a97b6;font-size:.84rem;}.waiting-list-admin__phone-btn{width:1.6rem;height:1.6rem;border-radius:999px;border:1px solid #d8def0;color:var(--bs-primary);background:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}.waiting-list-admin__phone-wrap{position:relative;display:inline-flex;}.waiting-list-admin__phone-panel{position:absolute;top:calc(100% + .55rem);left:50%;transform:translateX(-50%);z-index:20;min-width:198px;border:1px solid #e8edf5;border-radius:14px;background:#fff;box-shadow:0 14px 28px rgba(15,23,42,.12);padding:.8rem;}.waiting-list-admin__phone-panel::before{content:"";position:absolute;top:-6px;left:50%;width:12px;height:12px;background:#fff;border-top:1px solid #e8edf5;border-left:1px solid #e8edf5;transform:translateX(-50%) rotate(45deg);}.waiting-list-admin__phone-panel-name{color:#9aa8c0;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.waiting-list-admin__phone-panel-number{margin-top:.15rem;color:var(--bs-secondary);font-size:1rem;font-weight:900;line-height:1.2;}.waiting-list-admin__phone-panel-actions{margin-top:.7rem;display:flex;gap:.55rem;}.waiting-list-admin__phone-action{flex:1 1 0;min-height:38px;border:1px solid #e8edf5;border-radius:10px;background:#fff;color:var(--bs-secondary);display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.86rem;font-weight:800;text-decoration:none;}.waiting-list-admin__phone-action.is-call{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;}.student-admin-profile-card{position:relative;z-index:1;overflow:visible;}.student-admin-profile-card .card-body{overflow:visible;}.student-admin-profile-card .rz-tabview-panels{overflow:visible!important;}.student-admin-profile-card:has(.student-admin-parent-phone .waiting-list-admin__phone-panel){z-index:100;}.student-admin-parent-phone{position:relative;z-index:1100;}.student-admin-parent-phone .waiting-list-admin__phone-panel{z-index:1101;}.student-admin-split-card{border:1px solid #e6edf5;box-shadow:0 10px 30px rgba(15,23,42,.05);}.student-admin-split-card__header{background:#fff;border-bottom:1px solid #eef2f7;}.student-admin-split-card__eyebrow{color:var(--bs-primary);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.student-admin-split-card__identity{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem;}.student-admin-split-card__copy{min-width:0;}.student-admin-split-card__title{display:block;color:var(--bs-secondary);font-size:1.15rem;font-weight:800;line-height:1.2;}.student-admin-split-card__meta{margin-top:.3rem;color:#6b7a96;font-size:.9rem;line-height:1.45;}.student-admin-split-card__actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;}.student-admin-split-card__actions>.btn,.student-admin-split-card__actions>.student-admin-parent-phone{margin:0!important;}.student-admin-split-card__actions>.student-admin-parent-phone{display:inline-block;}.student-admin-split-card__identity.is-child{padding-bottom:1rem;margin-bottom:1.25rem;border-bottom:1px solid #eef2f7;}@media(max-width:767.98px){.student-admin-split-card__identity{flex-direction:column;align-items:flex-start;}.student-admin-split-card__actions{flex-direction:column;align-items:stretch;}.student-admin-split-card__actions>.btn,.student-admin-split-card__actions>.student-admin-parent-phone{width:100%;}.student-admin-split-card__actions>.student-admin-parent-phone>.btn{width:100%;}}.waiting-list-admin__class-meta,.waiting-list-admin__date-stack span{color:#8a97b6;font-size:.84rem;}.waiting-list-admin__position-pill,.waiting-list-admin__age-pill{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:30px;padding:0 .7rem;border-radius:999px;background:#fff7ed;border:1px solid #fdba74;color:#c2410c;font-size:.8rem;font-weight:800;}.waiting-list-admin__age-pill{background:#f8fafc;border-color:#e2e8f0;color:var(--bs-secondary);}.waiting-list-admin__gender-chip{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;font-size:.9rem;}.waiting-list-admin__gender-chip.is-female{background:#fff1f2;border-color:#fda4af;color:#e11d48;}.waiting-list-admin__gender-chip.is-male{background:#ecfeff;border-color:#7dd3fc;color:#0284c7;}.waiting-list-admin__status-chip,.waiting-list-admin__offer-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:2rem;padding:0 .85rem;border-radius:999px;font-size:.82rem;font-weight:700;border:1px solid transparent;}.waiting-list-admin__status-chip.is-pending{background:#fff7ed;border-color:#fdba74;color:#c2410c;}.waiting-list-admin__status-chip.is-idle{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8;}.waiting-list-admin__offer-pill{background:#e0f2fe;border-color:#7dd3fc;color:#0369a1;}.waiting-list-admin__offer-pill strong{font-weight:800;}.waiting-list-admin__icon-btn{width:2rem;height:2rem;border-radius:10px;background:#fff;display:inline-flex;align-items:center;justify-content:center;}.waiting-list-admin__icon-btn.is-primary{border:1.5px solid rgba(var(--bs-primary-rgb),.35);color:var(--bs-primary);}.waiting-list-admin__icon-btn.is-danger{border:1.5px solid #fda4af;color:#ef4444;}.waiting-list-admin__table-footer{border-top:1px solid #eef2f7;}.waiting-list-admin__mobile-list{display:none;}.waiting-list-picker-modal{display:flex;flex-direction:column;color:#223154;}.waiting-list-picker-modal__header,.waiting-list-picker-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;}.waiting-list-picker-modal__header{padding-bottom:1rem;border-bottom:1px solid #eef2f7;}.waiting-list-picker-modal__header-main{display:flex;align-items:flex-start;gap:.9rem;}.waiting-list-picker-modal__header-icon{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:.95rem;flex-shrink:0;}.waiting-list-picker-modal__header-icon.is-success{background:#ecfdf5;color:#16a34a;}.waiting-list-picker-modal__title{margin:0;font-size:1.2rem;font-weight:800;color:#223154;}.waiting-list-picker-modal__subtitle{margin:.2rem 0 0;color:#94a3b8;font-size:.82rem;font-weight:600;}.waiting-list-picker-modal__close{width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:background .18s ease,color .18s ease;}.waiting-list-picker-modal__close:hover:not(:disabled){background:#f8fafc;color:#475569;}.waiting-list-picker-modal__body{padding:1.2rem 0;display:grid;gap:1rem;}.waiting-list-picker-modal__body.is-success{overflow-y:auto;padding-right:.35rem;}.waiting-list-picker-modal__section{display:grid;gap:.65rem;}.waiting-list-picker-modal__section-title,.waiting-list-picker-modal__selection-label{color:#8fa0bb;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.waiting-list-picker-modal__panel,.waiting-list-picker-modal__placeholder,.waiting-list-picker-modal__selection-card,.waiting-list-picker-modal__success-family{border:1px solid #e8edf5;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.04);}.waiting-list-picker-modal__panel{padding:.95rem;display:grid;gap:.75rem;}.waiting-list-picker-modal__search{position:relative;}.waiting-list-picker-modal__search i{position:absolute;top:50%;left:.95rem;transform:translateY(-50%);color:#97a3bb;}.waiting-list-picker-modal__search-input{min-height:42px;border-radius:14px;padding-left:2.5rem;border-color:#dbe3ef;font-weight:600;color:#223154;font-size:.92rem;}.waiting-list-picker-modal__panel-count{color:#8fa0bb;font-size:.8rem;font-weight:700;}.waiting-list-picker-modal__students,.waiting-list-picker-modal__success-list{max-height:320px;overflow-y:auto;display:grid;gap:.55rem;padding-right:.25rem;}.waiting-list-picker-modal__success-list{max-height:none;overflow:visible;gap:.85rem;padding-right:0;padding-bottom:.5rem;}.waiting-list-picker-modal__student-card{width:100%;border:1px solid #e8edf5;border-radius:16px;background:#fff;padding:.85rem .95rem;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;}.waiting-list-picker-modal__student-card.is-selected{border-color:rgba(var(--bs-primary-rgb),.55);background:rgba(var(--bs-primary-rgb),.08);box-shadow:0 0 0 1px rgba(var(--bs-primary-rgb),.14);}.waiting-list-picker-modal__student-main,.waiting-list-picker-modal__selection-student,.waiting-list-picker-modal__success-parent,.waiting-list-picker-modal__success-student-head{display:flex;align-items:center;gap:.85rem;}.waiting-list-picker-modal__avatar{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.84rem;font-weight:800;position:relative;flex-shrink:0;}.waiting-list-picker-modal__avatar.is-female{background:#fff1f7;color:#d63384;}.waiting-list-picker-modal__avatar.is-male{background:#eef7ff;color:#0ea5e9;}.waiting-list-picker-modal__avatar.is-parent{background:#ecfdf5;color:#15803d;}.waiting-list-picker-modal__selected-dot{position:absolute;right:-1px;bottom:-1px;width:16px;height:16px;border-radius:999px;background:var(--bs-primary);color:#fff;border:2px solid #fff;display:inline-flex;align-items:center;justify-content:center;font-size:.55rem;}.waiting-list-picker-modal__student-copy{min-width:0;display:grid;gap:.2rem;}.waiting-list-picker-modal__student-line,.waiting-list-picker-modal__student-subline,.waiting-list-picker-modal__selection-name,.waiting-list-picker-modal__success-student-name{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}.waiting-list-picker-modal__student-line strong,.waiting-list-picker-modal__selection-name,.waiting-list-picker-modal__success-parent-name{font-size:.92rem;font-weight:800;color:#223154;}.waiting-list-picker-modal__student-line span,.waiting-list-picker-modal__student-subline,.waiting-list-picker-modal__selection-name span,.waiting-list-picker-modal__success-parent-copy,.waiting-list-picker-modal__success-student-name span{color:#94a3b8;font-size:.8rem;font-weight:700;}.waiting-list-picker-modal__success-student-name{font-size:.9rem;font-weight:800;}.waiting-list-picker-modal__parent-badge{min-width:22px;height:22px;padding:0 .35rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;}.waiting-list-picker-modal__parent-badge.is-female{background:#f5f3ff;color:#8b5cf6;}.waiting-list-picker-modal__parent-badge.is-male{background:#ecfeff;color:#0f766e;}.waiting-list-picker-modal__empty,.waiting-list-picker-modal__placeholder{min-height:110px;display:flex;align-items:center;justify-content:center;text-align:center;color:#9aa8c0;font-size:.88rem;font-weight:600;}.waiting-list-picker-modal__student-selection-list{display:grid;gap:.9rem;}.waiting-list-picker-modal__selection-card{padding:.95rem;display:grid;gap:.7rem;}.waiting-list-picker-modal__selection-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;}.waiting-list-picker-modal__selection-badge{min-width:72px;min-height:28px;padding:0 .75rem;border-radius:999px;background:#ecfdf5;border:1px solid #a7f3d0;color:#15803d;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;}.waiting-list-picker-modal__selection-toggle{width:100%;min-height:40px;border-radius:14px;border:1.5px solid #dbe3ef;background:#fff;color:#64748b;padding:.6rem .9rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.88rem;font-weight:700;}.waiting-list-picker-modal__selection-toggle.is-open{border-color:rgba(var(--bs-primary-rgb),.55);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.waiting-list-picker-modal__selection-toggle i{transition:transform .18s ease;}.waiting-list-picker-modal__selection-toggle.is-open i{transform:rotate(180deg);}.waiting-list-picker-modal__group-picker{border:1px solid #e8edf5;border-radius:16px;padding:.25rem;display:grid;gap:.35rem;}.waiting-list-picker-modal__class-header{gap:.75rem;}.waiting-list-picker-modal__class-trigger{flex:1 1 auto;border:0;background:transparent;text-align:left;color:#223154;font-weight:800;padding:0;}.waiting-list-picker-modal__group-option{width:100%;border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:.65rem;}.waiting-list-picker-modal__group-option.is-selected .members-filter-accordion-check-box{border-color:var(--bs-primary);background:var(--bs-primary);}.waiting-list-picker-modal__group-option.is-selected .members-filter-accordion-check-box::after{content:"";font-family:"Font Awesome 6 Free";font-weight:900;color:#fff;font-size:.56rem;position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;}.waiting-list-picker-modal__group-option:disabled,.waiting-list-picker-modal__session-row:disabled{opacity:1;}.waiting-list-picker-modal__session-group{border:1px solid #eef2f7;border-radius:14px;overflow:hidden;}.waiting-list-picker-modal__session-group.is-selected{border-color:rgba(var(--bs-primary-rgb),.28);}.waiting-list-picker-modal__session-group-head{width:100%;min-height:38px;border:0;background:#fff;padding:.62rem .85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.84rem;font-weight:800;color:#334155;text-align:left;}.waiting-list-picker-modal__session-group.is-selected .waiting-list-picker-modal__session-group-head{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.waiting-list-picker-modal__session-group-actions{display:inline-flex;align-items:center;gap:.5rem;}.waiting-list-picker-modal__session-list{border-top:1px solid #eef2f7;display:grid;}.waiting-list-picker-modal__session-row{width:100%;min-height:36px;border:0;border-top:1px solid #f1f5f9;background:#fff;padding:.58rem .85rem;display:flex;align-items:center;gap:.7rem;text-align:left;color:#64748b;font-size:.82rem;font-weight:700;}.waiting-list-picker-modal__session-row:first-child{border-top:0;}.waiting-list-picker-modal__session-row.is-selected{background:#eefaff;color:#0f766e;}.waiting-list-picker-modal__session-radio{width:14px;height:14px;border-radius:999px;border:1.5px solid #d6deeb;background:#fff;flex-shrink:0;position:relative;}.waiting-list-picker-modal__session-row.is-selected .waiting-list-picker-modal__session-radio{border-color:var(--bs-primary);}.waiting-list-picker-modal__session-row.is-selected .waiting-list-picker-modal__session-radio::after{content:"";position:absolute;inset:2px;border-radius:999px;background:var(--bs-primary);}.waiting-list-picker-modal__muted-badge{margin-left:auto;min-height:24px;padding:0 .6rem;border-radius:999px;background:#f8fafc;color:#c0cad8;font-size:.66rem;font-weight:800;display:inline-flex;align-items:center;}.waiting-list-picker-modal__chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:.35rem .15rem .05rem;}.waiting-list-picker-modal__fixed-target{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.1rem;}.waiting-list-picker-modal__chip{min-height:30px;border:1px solid rgba(var(--bs-primary-rgb),.24);border-radius:999px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);padding:0 .75rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.72rem;font-weight:800;max-width:100%;flex:0 1 auto;}.waiting-list-picker-modal__chip.is-fixed-target{cursor:default;pointer-events:none;min-height:32px;padding:.35rem .8rem;}.waiting-list-picker-modal__chip.is-success{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);min-height:32px;padding:.35rem .75rem;white-space:normal;line-height:1.2;}.waiting-list-picker-modal__chip-count{min-width:28px;height:22px;padding:0 .45rem;border-radius:999px;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:900;}.waiting-list-picker-modal__selection-warning,.waiting-list-picker-modal__footer-error{color:#b7791f;font-size:.76rem;font-weight:700;}.waiting-list-picker-modal__success-banner{min-height:58px;border:1px solid #a7f3d0;border-radius:16px;background:#ecfdf5;color:#166534;padding:.9rem 1rem;display:flex;align-items:center;gap:.8rem;font-size:.86rem;font-weight:800;}.waiting-list-picker-modal__success-check{width:24px;height:24px;border-radius:999px;background:#22c55e;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;}.waiting-list-picker-modal__success-family{overflow-y:auto;overflow-x:hidden;}.waiting-list-picker-modal__success-parent{padding:.8rem .95rem;background:#f8fafc;}.waiting-list-picker-modal__success-student{padding:.9rem .95rem 1rem;border-top:1px solid #eef2f7;display:grid;gap:.75rem;align-items:start;}.waiting-list-picker-modal__success-chips{display:flex;flex-wrap:wrap;gap:.55rem;align-items:flex-start;padding-left:3.2rem;padding-right:.35rem;padding-bottom:.75rem;margin-top:.05rem;}.waiting-list-picker-modal__footer{padding-top:1rem;border-top:1px solid #eef2f7;}.waiting-list-picker-modal__footer-note{color:#9aa8c0;font-size:.82rem;font-weight:700;}.waiting-list-picker-modal__footer-actions{display:flex;align-items:center;gap:.7rem;}.waiting-list-picker-modal__action-btn{min-height:40px;border-radius:14px;padding:0 1rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.88rem;font-weight:800;}.waiting-list-picker-modal__action-btn.is-secondary{border:1px solid #dbe3ef;background:#fff;color:#223154;}.waiting-list-picker-modal__action-btn.is-primary{border:1px solid transparent;background:var(--bs-primary);color:#fff;}.waiting-list-picker-modal__action-btn.is-success{border:1px solid transparent;background:#22c55e;color:#fff;}.waiting-list-picker-modal__action-btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed;}.send-offer-modal{display:flex;flex-direction:column;color:#223154;}.send-offer-modal__header,.send-offer-modal__footer,.send-offer-modal__section-head,.send-offer-modal__progress-head,.send-offer-modal__progress-meta,.send-offer-modal__recipient-card,.send-offer-modal__recipient-main,.send-offer-modal__footer-actions,.send-offer-modal__journey,.send-offer-modal__journey-node,.send-offer-modal__journey-line,.send-offer-modal__info-row{display:flex;align-items:center;}.send-offer-modal__header,.send-offer-modal__footer,.send-offer-modal__section-head,.send-offer-modal__progress-head,.send-offer-modal__progress-meta,.send-offer-modal__recipient-card{justify-content:space-between;}.send-offer-modal{width:100%;max-height:min(92vh,860px);margin:0 auto;display:flex;flex-direction:column;overflow:hidden;}.send-offer-modal__header{position:sticky;top:0;z-index:3;background:#fff;padding-bottom:.8rem;border-bottom:1px solid #eef2f7;gap:.85rem;flex-shrink:0;}.send-offer-modal__header-main{display:flex;align-items:flex-start;gap:.75rem;}.send-offer-modal__icon{width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);font-size:.94rem;flex-shrink:0;}.send-offer-modal__icon.is-success{background:#ecfdf5;color:#10b981;}.send-offer-modal__title{margin:0;font-size:1.05rem;font-weight:800;color:#223154;}.send-offer-modal__subtitle{margin-top:.18rem;color:#94a3b8;font-size:.76rem;font-weight:700;}.send-offer-modal__close{width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;}.send-offer-modal__hero{margin:0 -1.5rem;padding:.9rem 1.5rem;background:linear-gradient(180deg,#f3fffb 0%,#fff 100%);border-bottom:1px solid #eef2f7;flex-shrink:0;}.send-offer-modal__hero.is-progress,.send-offer-modal__hero.is-success{display:grid;gap:.8rem;}.send-offer-modal__journey{gap:1rem;}.send-offer-modal__journey-node{flex-direction:column;gap:.45rem;min-width:88px;position:relative;}.send-offer-modal__journey-node span{color:#94a3b8;font-size:.72rem;font-weight:800;text-transform:uppercase;}.send-offer-modal__journey-card{width:56px;height:56px;border-radius:16px;background:#fff;border:1px solid #eef2f7;display:inline-flex;align-items:center;justify-content:center;color:var(--bs-primary);font-size:1.25rem;box-shadow:0 10px 24px rgba(99,102,241,.08);position:relative;}.send-offer-modal__journey-line{flex:1 1 auto;justify-content:center;position:relative;min-height:56px;overflow:hidden;}.send-offer-modal__journey-line::before{content:"";width:100%;border-top:2px dashed #cfe0ef;animation:send-offer-line-fade 3.2s ease-in-out infinite;}.send-offer-modal__journey-mail{position:absolute;width:34px;height:30px;border-radius:10px;background:#fff;border:1px solid #a7f3d0;color:#34d399;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;top:50%;left:0;transform:translate(0,-50%);box-shadow:0 10px 22px rgba(16,185,129,.18);animation:send-offer-mail-travel 3.2s cubic-bezier(.4,0,.2,1) infinite;}.send-offer-modal__journey-sent-badge{position:absolute;top:-1rem;left:-.1rem;min-height:28px;padding:0 .7rem;border-radius:999px;background:#10b981;color:#fff!important;display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:900;text-transform:uppercase;animation:send-offer-badge-fade 3.2s ease-in-out infinite;z-index:2;}.send-offer-modal__journey-node.is-phone{align-items:flex-end;}.send-offer-modal__journey-phone{width:60px;height:90px;border-radius:16px;background:#fff;border:3px solid #1f2937;position:relative;overflow:hidden;}.send-offer-modal__journey-phone-notch{position:absolute;top:6px;left:50%;transform:translateX(-50%);width:24px;height:4px;border-radius:999px;background:#111827;}.send-offer-modal__journey-phone-card{border-radius:12px;border:1px solid #d1fae5;background:#f0fdf4;padding:.4rem;display:grid;gap:.3rem;opacity:0;transform:translateY(10px) scale(.94);animation:send-offer-phone-fill 3.2s cubic-bezier(.4,0,.2,1) infinite;}.send-offer-modal__journey-phone-title{font-size:.44rem;font-weight:800;color:#334155;line-height:1.25;}.send-offer-modal__journey-phone-badge{min-height:18px;border-radius:999px;background:#10b981;color:#fff;padding:0 .45rem;display:inline-flex;align-items:center;justify-content:center;font-size:.44rem;font-weight:900;width:fit-content;}@keyframes send-offer-badge-fade{0%,24%{opacity:1;transform:translateY(0);}32%,100%{opacity:0;transform:translateY(-6px);}}@keyframes send-offer-mail-travel{0%{opacity:0;left:2%;transform:translate(0,-50%) scale(.94);}8%,22%{opacity:1;left:2%;transform:translate(0,-50%) scale(1);}58%{opacity:1;left:calc(100% - 38px);transform:translate(0,-50%) scale(1);}66%,100%{opacity:0;left:calc(100% - 22px);transform:translate(0,-50%) scale(.92);}}@keyframes send-offer-line-fade{0%,58%{opacity:1;}66%,100%{opacity:0;}}@keyframes send-offer-phone-fill{0%,56%{opacity:0;transform:translateY(10px) scale(.94);}68%,92%{opacity:1;transform:translateY(0) scale(1);}100%{opacity:0;transform:translateY(6px) scale(.96);}}.send-offer-modal__section{padding:.85rem 0 0;display:grid;gap:.6rem;}.send-offer-modal__section.is-recipients{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;}.send-offer-modal__section-title{color:#223154;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}.send-offer-modal__section-count{color:#8fa0bb;font-size:.74rem;font-weight:800;}.send-offer-modal__info-list,.send-offer-modal__recipient-list{display:grid;gap:.55rem;}.send-offer-modal__recipient-list{flex:1 1 auto;min-height:0;overflow-y:auto;max-height:min(36vh,320px);padding-right:.35rem;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:contain;}.send-offer-modal__recipient-list::-webkit-scrollbar{width:0;height:0;}.send-offer-modal__recipient-list.is-success{max-height:min(46vh,400px);}.send-offer-modal__info-row{align-items:flex-start;gap:.65rem;color:#52627d;font-size:.82rem;font-weight:600;line-height:1.45;}.send-offer-modal__info-row strong{color:#223154;}.send-offer-modal__info-icon{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;flex-shrink:0;margin-top:.05rem;}.send-offer-modal__info-icon.is-primary{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);}.send-offer-modal__info-icon.is-success{background:#ecfdf5;color:#10b981;}.send-offer-modal__info-icon.is-info{background:#eff6ff;color:#0ea5e9;}.send-offer-modal__info-row .is-success-text{color:#10b981;}.send-offer-modal__info-row .is-primary-text{color:var(--bs-primary);}.send-offer-modal__recipient-card{border:1px solid #e8edf5;border-radius:14px;background:#fff;padding:.72rem .85rem;gap:.65rem;}.send-offer-modal__recipient-list.is-success .send-offer-modal__recipient-card{background:#f7fffb;border-color:#d1fae5;}.send-offer-modal__recipient-main{gap:.65rem;min-width:0;}.send-offer-modal__avatar{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;flex-shrink:0;}.send-offer-modal__avatar.is-female{background:#fff1f7;color:#d63384;}.send-offer-modal__avatar.is-male{background:#eef7ff;color:#0ea5e9;}.send-offer-modal__recipient-copy{min-width:0;display:grid;gap:.14rem;}.send-offer-modal__recipient-name{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;color:#223154;font-size:.86rem;font-weight:800;}.send-offer-modal__recipient-name span,.send-offer-modal__recipient-meta{color:#8fa0bb;font-size:.74rem;font-weight:700;}.send-offer-modal__status{min-height:26px;padding:0 .62rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-size:.7rem;font-weight:900;white-space:nowrap;}.send-offer-modal__status.is-trial{background:#ecfdf5;border:1px solid #a7f3d0;color:#10b981;}.send-offer-modal__status.is-offer{background:rgba(var(--bs-primary-rgb),.1);border:1px solid rgba(var(--bs-primary-rgb),.18);color:var(--bs-primary);}.send-offer-modal__status.is-sending{background:rgba(var(--bs-primary-rgb),.1);border:1px solid rgba(var(--bs-primary-rgb),.18);color:var(--bs-primary);}.send-offer-modal__status.is-sent{background:#ecfdf5;border:1px solid #a7f3d0;color:#10b981;}.send-offer-modal__status.is-failed{background:#fef2f2;border:1px solid #fecaca;color:#ef4444;}.send-offer-modal__progress-copy{display:grid;gap:.18rem;}.send-offer-modal__progress-title{color:#10b981;font-size:1rem;font-weight:800;display:inline-flex;align-items:center;gap:.55rem;}.send-offer-modal__progress-subtitle{color:#8fa0bb;font-size:.82rem;font-weight:700;}.send-offer-modal__progress-pill{min-width:64px;min-height:32px;border-radius:999px;background:#ecfdf5;color:#10b981;display:inline-flex;align-items:center;justify-content:center;font-size:.88rem;font-weight:900;}.send-offer-modal__progress-bar{width:100%;height:10px;border-radius:999px;background:#d1fae5;overflow:hidden;}.send-offer-modal__progress-bar span{height:100%;display:block;border-radius:inherit;background:repeating-linear-gradient(135deg,#10b981 0,#10b981 10px,#34d399 10px,#34d399 20px);}.send-offer-modal__progress-meta{color:#64748b;font-size:.8rem;font-weight:800;}.send-offer-modal__success-icon{width:72px;height:72px;border-radius:999px;background:#10b981;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:1.7rem;margin:0 auto;}.send-offer-modal__success-title{text-align:center;color:#223154;font-size:1.35rem;font-weight:800;}.send-offer-modal__success-copy{text-align:center;color:#8fa0bb;font-size:.9rem;font-weight:700;line-height:1.55;max-width:420px;margin:0 auto;}.send-offer-modal__footer{position:sticky;bottom:0;z-index:3;background:#fff;margin:auto -1.5rem 0;padding:.9rem 1.5rem 0;border-top:1px solid #eef2f7;flex-shrink:0;box-shadow:0 -10px 24px rgba(15,23,42,.04);}.send-offer-modal__footer-actions{gap:.7rem;}.send-offer-modal__btn{min-height:38px;border-radius:12px;padding:0 .9rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.84rem;font-weight:800;}.send-offer-modal__btn.is-secondary{border:1px solid #dbe3ef;background:#fff;color:#223154;}.send-offer-modal__btn.is-primary{border:1px solid transparent;background:var(--bs-primary);color:#fff;}.send-offer-modal__btn.is-success{border:1px solid transparent;background:#10b981;color:#fff;}.send-offer-modal__btn:disabled{opacity:.55;box-shadow:none;cursor:not-allowed;}.send-offer-modal__spinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(var(--bs-primary-rgb),.22);border-top-color:#10b981;animation:send-offer-spin .8s linear infinite;}.send-offer-modal__progress-title .send-offer-modal__spinner{width:18px;height:18px;border-width:2px;flex-shrink:0;}.send-offer-modal__spinner.is-light{border-color:rgba(255,255,255,.28);border-top-color:#fff;}@keyframes send-offer-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}@media(max-width:767.98px){.send-offer-modal{max-width:min(100%,420px);max-height:calc(100vh - 1.5rem);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;}.send-offer-modal::-webkit-scrollbar{width:0;height:0;}.send-offer-modal__header,.send-offer-modal__footer{position:static;}.send-offer-modal__progress-head,.send-offer-modal__progress-meta,.send-offer-modal__footer-actions{flex-wrap:wrap;}.send-offer-modal__progress-head{align-items:flex-start;gap:.6rem;}.send-offer-modal__progress-copy{min-width:0;flex:1 1 0;}.send-offer-modal__progress-title{font-size:.84rem;line-height:1.25;gap:.45rem;flex-wrap:nowrap;}.send-offer-modal__progress-subtitle{font-size:.72rem;line-height:1.35;}.send-offer-modal__progress-pill{min-width:54px;min-height:26px;font-size:.76rem;align-self:flex-start;}.send-offer-modal__progress-meta{font-size:.76rem;}.send-offer-modal__progress-title .send-offer-modal__spinner{width:16px;height:16px;}.send-offer-modal__section.is-recipients{flex:0 0 auto;min-height:auto;overflow:visible;}.send-offer-modal__recipient-list,.send-offer-modal__recipient-list.is-success{flex:0 0 auto;min-height:auto;max-height:none;overflow:visible;padding-right:0;}.send-offer-modal__recipient-card{padding:.68rem .78rem;border-radius:13px;}.send-offer-modal__recipient-main{gap:.55rem;}.send-offer-modal__avatar{width:30px;height:30px;font-size:.74rem;}.send-offer-modal__recipient-name{font-size:.82rem;}.send-offer-modal__recipient-name span,.send-offer-modal__recipient-meta{font-size:.71rem;}.send-offer-modal__status{min-height:24px;padding:0 .55rem;font-size:.68rem;gap:.28rem;}.send-offer-modal__footer{margin:0 -1.2rem 0;}.send-offer-modal__btn{min-height:34px;font-size:.76rem;padding:0 .75rem;}.waiting-list-picker-modal__footer,.waiting-list-picker-modal__selection-head{flex-direction:column;align-items:stretch;}.waiting-list-picker-modal__header{align-items:stretch;}.waiting-list-picker-modal__footer-actions{width:100%;}.waiting-list-picker-modal__action-btn{flex:1 1 0;}.waiting-list-picker-modal__students{max-height:280px;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-list{max-height:none;overflow:visible;gap:.55rem;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-family{overflow:visible;max-height:none;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-student{padding:1rem .9rem 1.05rem;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent{flex-wrap:nowrap;align-items:center;gap:.5rem;padding:.65rem .75rem;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-parent>div:not(.trials-add-flow__success-email-chip){min-width:0;flex:1 1 auto;}.waiting-list-picker-modal__body.is-success .trials-add-flow__success-email-chip{margin-left:auto;flex-shrink:0;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-check{flex-shrink:0;}.waiting-list-picker-modal__body.is-success .trials-add-flow__success-parent-copy{min-width:0;flex:1 1 auto;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-banner{flex-wrap:nowrap;align-items:center;min-height:50px;padding:.55rem .65rem;gap:.5rem;width:100%;max-width:100%;box-sizing:border-box;}.waiting-list-picker-modal__body.is-success .waiting-list-picker-modal__success-banner>span:not(.waiting-list-picker-modal__success-check){min-width:0;flex:1 1 auto;line-height:1.25;font-size:.72rem;word-break:break-word;overflow-wrap:anywhere;}}@media(max-width:991.98px){.waiting-list-admin__topbar,.waiting-list-admin__table-top,.waiting-list-admin__header-actions{flex-direction:column;align-items:stretch;}.waiting-list-admin__header-actions,.waiting-list-admin__table-tools{flex-wrap:wrap;}}@media(max-width:767.98px){.waiting-list-admin__shell{padding-top:.95rem;padding-bottom:1rem;padding-left:.85rem;padding-right:.85rem;}.waiting-list-admin__topbar{display:grid;gap:.85rem;margin-bottom:1rem;}.waiting-list-admin__title{font-size:1.02rem;line-height:1.2;margin-bottom:.2rem;}.waiting-list-admin__subtitle{font-size:.75rem;line-height:1.35;}.waiting-list-admin__header-actions{flex-direction:row;align-items:stretch;gap:.65rem;flex-wrap:nowrap;}.waiting-list-admin__primary-btn,.waiting-list-admin__secondary-btn{flex:1 1 0;min-width:0;min-height:38px;justify-content:center;padding:0 .65rem;border-radius:12px;font-size:.74rem;gap:.45rem;white-space:nowrap;}.members-filter-toggle.d-md-none{width:38px;min-width:38px;height:38px;border-radius:12px;font-size:.86rem;justify-content:center;}.waiting-list-admin__stats{--bs-gutter-x:.75rem;--bs-gutter-y:.75rem;margin-bottom:1.05rem;}.waiting-list-admin__filters-card,.waiting-list-admin__selection-card{border-radius:16px;}.waiting-list-admin__filters-card .card-body,.waiting-list-admin__selection-card .card-body{padding:.9rem;}.waiting-list-admin__filters-grid{gap:.95rem;}.waiting-list-admin__filter-block{gap:.55rem;width:100%;}.waiting-list-admin__filter-heading{font-size:.72rem;letter-spacing:.05em;}.waiting-list-admin__filter-head{gap:.5rem;}.waiting-list-admin__search-wrap i{left:.85rem;font-size:.95rem;}.waiting-list-admin__search-input{min-height:40px;border-radius:12px;padding-left:2rem;font-size:.82rem;}.waiting-list-admin__filter-pills{gap:.5rem;}.waiting-list-admin__filter-pill{min-height:30px;padding:0 .75rem;border-radius:11px;font-size:.76rem;}.waiting-list-admin__filter-pills--days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;}.waiting-list-admin__filter-pills--days .waiting-list-admin__filter-pill{min-width:0;width:100%;padding:0 .35rem;}.waiting-list-admin__filters-actions{margin-top:.1rem;}.waiting-list-admin__filters-reset{min-height:36px;padding:0 .85rem;font-size:.76rem;border-radius:10px;}.waiting-list-admin__table-top{flex-direction:row;padding:.8rem .95rem;border-radius:20px 20px 0 0;gap:.8rem;align-items:center;}.waiting-list-admin__view-switcher .view-btn{min-height:34px;padding:0 .8rem;font-size:.72rem;}.waiting-list-admin__table-tools{flex-direction:row;margin-left:auto;}.waiting-list-admin__tool-label,.waiting-list-admin__per-page-select,.waiting-list-admin__columns-btn{display:none!important;}.waiting-list-admin__tool-count{font-size:.65rem;font-weight:700;white-space:nowrap;}.waiting-list-admin__table-card{border-radius:0 0 20px 20px;overflow:hidden;}.waiting-list-admin__mobile-list{display:grid;gap:0;background:#fff;}.waiting-list-admin__desktop-table{display:none;}.waiting-list-admin__mobile-select-all{display:flex;align-items:center;gap:.75rem;padding:.95rem 1rem;background:#fff;border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7;color:var(--bs-secondary);font-size:.8rem;font-weight:800;}.waiting-list-admin__mobile-select-all.is-active{background:rgba(99,102,241,.08);color:#1e2f5f;}.trials-admin__mobile-tools{display:grid;}.trials-admin__mobile-tools-row{display:flex;align-items:center;gap:.65rem;padding:.95rem 1rem;border-bottom:1px solid #eef2f7;background:#fff;}.trials-admin__mobile-tools-row .waiting-list-admin__tool-label{display:inline-flex!important;font-size:.8rem;font-weight:700;}.trials-admin__mobile-per-page{display:block!important;width:84px;border-radius:12px;border-color:#dbe3ef;font-weight:700;font-size:.8rem;}.trials-admin__mobile-tools-row .waiting-list-admin__tool-count{font-size:.8rem;font-weight:700;color:#90a0c3;white-space:nowrap;}.trials-admin__mobile-clear-link{color:var(--bs-primary);font-size:.78rem;font-weight:700;}.waiting-list-admin__mobile-group-label{padding:.85rem 1rem 0 1rem;color:#8fa0bb;font-size:.76rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;}.waiting-list-admin__mobile-group-label span{color:var(--bs-primary);}.trials-admin__mobile-footer{align-items:flex-start;flex-direction:row;}.trials-admin__mobile-age{color:#8fa0bb;font-size:.74rem;font-weight:700;}.trials-admin__notes-btn,.trials-admin__location-pill,.trials-admin__status-pill{font-size:.74rem;}.trials-admin__absence-panel{width:216px;padding:.9rem;}.waiting-list-admin__mobile-message{padding:.9rem 1rem 0;}.waiting-list-admin__mobile-card{padding:.85rem;border-bottom:1px solid #eef2f7;background:#fff;}.waiting-list-admin__mobile-card.is-selected{background:#fbfaff;}.waiting-list-admin__mobile-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.55rem;}.trials-admin__mobile-delete-top{width:36px;height:36px;border-radius:12px;flex-shrink:0;}.trials-admin__mobile-delete-confirm{padding-top:.5rem;}.trials-admin__mobile-delete-confirm .trials-delete-banner{gap:.8rem;padding:.9rem;border-radius:14px;}.trials-admin__mobile-delete-confirm .trials-delete-banner-icon{width:28px;height:28px;font-size:.8rem;}.trials-admin__mobile-delete-confirm .trials-delete-banner-msg{min-width:0;font-size:.82rem;font-weight:700;line-height:1.45;}.trials-admin__mobile-delete-actions{display:flex;align-items:center;gap:.7rem;width:100%;}.trials-admin__mobile-delete-confirm .trials-btn-del-yes,.trials-admin__mobile-delete-confirm .trials-btn-del-no{min-width:64px;padding:.58rem 1.15rem;border-radius:12px;font-size:.8rem;}.trials-admin__mobile-chip-row{margin-top:.7rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}.trials-admin__mobile-chip{min-height:34px;padding:0 .75rem;border-radius:12px;display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:800;line-height:1;}.trials-admin__mobile-chip.is-class{color:var(--bs-secondary);background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.26);}.trials-admin__mobile-chip.is-group{color:#334155;background:#f8fafc;border:1px solid #e5edf6;}.trials-admin__mobile-chip.is-location{color:var(--bs-secondary);background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.22);}.waiting-list-admin__mobile-status-row{margin-top:.7rem;display:flex;align-items:center;justify-content:space-between;gap:.55rem;flex-wrap:wrap;}.waiting-list-admin__mobile-dates{color:#8fa0bb;font-size:.72rem;font-weight:700;}.waiting-list-admin__mobile-actions-row{margin-top:.7rem;display:flex;align-items:center;gap:.5rem;}.waiting-list-admin__mobile-offer-btn{flex:1 1 auto;min-height:2.2rem;border:1px solid transparent;border-radius:.8rem;background:var(--bs-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:0 .8rem;font-size:.76rem;font-weight:800;line-height:1;}.waiting-list-admin__mobile-offer-btn:disabled{opacity:.55;cursor:not-allowed;}.waiting-list-admin__mobile-delete-btn{width:2.2rem;height:2.2rem;border-radius:.8rem;flex:0 0 auto;}.trials-admin__mobile-status-wrap{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}.trials-admin__mobile-divider{margin-top:.75rem;border-top:1px dashed #e2e8f0;}.trials-admin__mobile-call{min-height:34px;padding:0 .8rem;border-radius:12px;font-size:.76rem;font-weight:800;}.trials-admin__mobile-footer{margin-top:.75rem;align-items:center;gap:.55rem;}.trials-admin__mobile-footer .text-muted,.trials-admin__pay-today{margin-left:auto;}.trials-admin__notes-btn{min-height:34px;padding:0 .75rem;}.trials-admin__absence-panel--mobile{position:static;width:100%;margin-top:.65rem;box-shadow:none;}.waiting-list-admin__stat-card{border-radius:18px;box-shadow:0 10px 24px rgba(15,23,42,.05);}.waiting-list-admin__stat-card .card-body{padding:.9rem .9rem .85rem;}.waiting-list-admin__stat-card .card-body>.d-flex.align-items-center{display:grid!important;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.75rem;}.waiting-list-admin__stat-icon{width:38px;height:38px;border-radius:12px;font-size:.78rem;}.waiting-list-admin__stat-card .flex-grow-1.ms-3{margin-left:0!important;min-width:0;}.waiting-list-admin__stat-card .text-muted.small.text-uppercase{margin-bottom:.15rem;font-size:.66rem;line-height:1.15;letter-spacing:.08em;white-space:normal;word-break:normal;overflow-wrap:normal;writing-mode:horizontal-tb;}.waiting-list-admin__stat-value-row{display:grid;gap:.1rem;}.waiting-list-admin__stat-card .h4{font-size:1.35rem;line-height:1;}.waiting-list-admin__stat-value-row .text-muted.small{white-space:normal;font-size:.68rem;line-height:1.25;}.waiting-list-admin__avatar{width:1.95rem;height:1.95rem;font-size:.68rem;}.waiting-list-admin__parent-row{gap:.35rem;font-size:.72rem;}.waiting-list-admin__phone-btn{width:1.4rem;height:1.4rem;font-size:.68rem;}.waiting-list-admin__position-pill,.waiting-list-admin__age-pill{min-width:34px;min-height:24px;padding:0 .5rem;font-size:.68rem;}.waiting-list-admin__gender-chip{width:28px;height:28px;font-size:.72rem;}.waiting-list-admin__status-chip,.waiting-list-admin__offer-pill{min-height:1.7rem;padding:0 .65rem;font-size:.68rem;gap:.3rem;}.waiting-list-admin__icon-btn{width:1.7rem;height:1.7rem;border-radius:8px;font-size:.72rem;}.waiting-list-admin__inline-message{min-height:0;padding:.65rem .75rem;border-radius:14px;gap:.65rem;align-items:flex-start;}.waiting-list-admin__inline-message-main,.waiting-list-admin__inline-message-actions{gap:.55rem;}.waiting-list-admin__inline-message-text{font-size:.76rem;line-height:1.35;}.waiting-list-admin__inline-message-icon{width:30px;height:30px;font-size:.82rem;}.waiting-list-admin__inline-btn{min-height:34px;padding:0 .8rem;font-size:.76rem;border-radius:10px;}.waiting-list-admin__mobile-message{padding:.75rem .85rem 0;}}.trials-page{background:#f4f6fb;min-height:100vh;}.trials-page-shell{max-width:1100px;margin:0 auto;padding:1.5rem 0 1rem;}.trials-page-header{background:#fff;border-bottom:1px solid #e5e7eb;}.trials-page-header-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:20px 24px 18px;max-width:1100px;}.trials-page-title{font-size:1.15rem;font-weight:800;color:var(--bs-secondary);margin:0;letter-spacing:-.3px;}.trials-page-subtitle{font-size:.85rem;color:#6b7a99;margin:4px 0 0;}.trials-brand-panel{background:#fff;border-bottom:1px solid #e5e7eb;padding:14px 24px;}.trials-brand-swatch{flex:1 1 130px;min-width:110px;border:1.5px solid #e5e7eb;border-radius:12px;padding:10px 12px;background:#fafafa;}.trials-brand-swatch-label{font-size:.72rem;color:#8a96b0;font-weight:600;margin-bottom:8px;}.trials-brand-swatch-bar{height:28px;border-radius:6px;border:1px solid rgba(0,0,0,.08);}.trials-stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem;}.trials-admin .members-page-title,.trials-admin .members-table-sort.is-active,.trials-admin .members-table-sort.is-active .members-table-sort-icon{color:var(--bs-secondary);}.trials-stat-card{background:#fff;border:1px solid #e8edf5;border-radius:22px;padding:1.2rem 1.2rem 1rem;min-height:218px;display:flex;flex-direction:column;gap:.95rem;box-shadow:0 10px 24px rgba(15,23,42,.04);}.trials-stat-card.is-clickable{cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;}.trials-stat-card.is-clickable:hover{border-color:rgba(var(--bs-primary-rgb),.35);box-shadow:0 14px 28px rgba(15,23,42,.07);transform:translateY(-1px);}.trials-stat-card.is-clickable:focus-visible{outline:0;border-color:rgba(var(--bs-primary-rgb),.55);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12);}.trials-stat-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;}.trials-stat-card-title{display:inline-flex;align-items:center;gap:.75rem;color:var(--bs-secondary);font-size:.86rem;font-weight:800;line-height:1.25;}.trials-stat-card-icon{width:28px;height:28px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;flex-shrink:0;}.trials-stat-card-icon.is-primary{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);}.trials-stat-card-icon.is-success{background:#ecfdf5;color:#16a34a;}.trials-stat-card-icon.is-purple{background:rgba(139,92,246,.12);color:#8b5cf6;}.trials-scope-pill{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 .95rem;border-radius:999px;border:1.5px solid rgba(var(--bs-primary-rgb),.55);background:#fff;color:var(--bs-primary);font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;}.trials-stat-rank-list{display:grid;gap:.75rem;}.trials-stat-rank-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:.5rem;align-items:center;}.trials-stat-rank-num{color:#8fa0bb;font-size:.75rem;font-weight:800;}.trials-stat-rank-name{color:var(--bs-secondary);font-size:.8rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.trials-stat-rank-count{color:var(--bs-secondary);font-size:.8rem;font-weight:800;}.trials-stat-rank-bar{grid-column:2/-1;height:6px;border-radius:999px;background:#edf1f7;overflow:hidden;}.trials-stat-rank-fill{display:block;height:100%;border-radius:999px;}.trials-stat-rank-fill.is-primary{background:var(--bs-primary);}.trials-stat-rank-fill.is-secondary{background:#8b5cf6;}.trials-stat-rank-fill.is-accent{background:#f97316;}.trials-stat-big{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start;}.trials-stat-pct-wrap{display:grid;gap:.1rem;}.trials-stat-pct{color:var(--bs-secondary);font-size:2.2rem;font-weight:900;line-height:.95;letter-spacing:-.05em;}.trials-stat-pct-label{color:#8a97b6;font-size:.8rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;}.trials-stat-bar-wrap{display:grid;gap:.45rem;padding-top:.35rem;}.trials-stat-bar{width:100%;height:8px;border-radius:999px;background:#edf1f7;overflow:hidden;}.trials-stat-bar-fill{display:block;height:100%;border-radius:999px;}.trials-stat-bar-fill.is-success{background:#16a34a;}.trials-stat-bar-fill.is-purple{background:#8b5cf6;}.trials-stat-caption{color:#8a97b6;font-size:.82rem;font-weight:700;}.trials-stat-caption strong{color:#233458;}.trials-stat-footnote{margin-top:auto;color:#8a97b6;font-size:.8rem;font-weight:600;}.trials-btn-new-trial{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;border:0;background:var(--bs-primary);color:var(--m-on-primary,#fff);font-weight:800;font-size:.82rem;cursor:pointer;font-family:inherit;}.trials-btn-show-filters{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;border:1.5px solid var(--bs-primary);background:var(--bs-white);color:var(--bs-primary);font-weight:800;font-size:.82rem;cursor:pointer;font-family:inherit;}.trials-btn-stats-toggle{width:38px;height:38px;border-radius:10px;border:1.5px solid var(--bs-primary);background:var(--bs-white);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}@keyframes trialStatsFadeIn{from{opacity:0;}to{opacity:1;}}@keyframes trialStatsSlideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}.trials-stats-backdrop{position:fixed;inset:0;z-index:1080;background:rgba(15,23,42,.45);animation:trialStatsFadeIn .15s ease-out;}.trials-stats-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1090;background:#fff;border-top-left-radius:18px;border-top-right-radius:18px;padding:10px 14px 18px;max-height:85vh;overflow-y:auto;animation:trialStatsSlideUp .22s ease-out;box-shadow:0 -10px 40px rgba(15,23,42,.2);}.trials-stats-sheet-handle{width:36px;height:4px;background:#e5e7eb;border-radius:2px;margin:0 auto 12px;}.trials-stats-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}.trials-stats-sheet-title{font-size:.9rem;font-weight:800;color:var(--bs-secondary);}.trials-stats-sheet-close{background:none;border:0;color:#94a3b8;cursor:pointer;padding:4px;line-height:0;}.trials-stats-sheet-grid{display:grid;grid-template-columns:1fr;gap:.8rem;}@media(max-width:991.98px){.trials-stats-row{grid-template-columns:1fr;}}@media(max-width:767.98px){.trials-stats-row{display:none;}.trials-btn-stats-toggle.d-md-none{display:inline-flex;}.trials-stat-card{min-height:0;border-radius:16px;padding:.95rem;gap:.8rem;}.trials-stat-card-title{font-size:.8rem;gap:.6rem;}.trials-stat-card-icon{width:24px;height:24px;border-radius:8px;font-size:.72rem;}.trials-scope-pill{min-height:28px;padding:0 .75rem;font-size:.63rem;}.trials-stat-rank-row{grid-template-columns:15px minmax(0,1fr) auto;gap:.4rem;}.trials-stat-rank-num,.trials-stat-rank-name,.trials-stat-rank-count,.trials-stat-caption,.trials-stat-footnote{font-size:.68rem;}.trials-stat-big{gap:.75rem;}.trials-stat-pct{font-size:1.9rem;}.trials-stat-pct-label{font-size:.64rem;}}@media(min-width:768px){.trials-btn-stats-toggle{display:none;}}.trials-toolbar{background:#fff;border-bottom:1px solid #e5e7eb;padding:10px 24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}.trials-toolbar-search-wrap{position:relative;flex:1 1 200px;min-width:160px;}.trials-toolbar-search{width:100%;padding:8px 12px 8px 34px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.84rem;font-family:inherit;color:var(--bs-secondary);background:#fff;outline:0;}.trials-toolbar-search:focus{border-color:rgba(var(--bs-primary-rgb),.6);}.trials-toolbar-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af;}.trials-toolbar-btn{padding:7px 14px;border:1.5px solid #e5e7eb;border-radius:9px;background:#fff;color:#6b7a99;font-weight:700;font-size:.78rem;cursor:pointer;font-family:inherit;white-space:nowrap;}.trials-toolbar-btn.active{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.trials-column-header{display:flex;gap:14px;padding:0 18px 6px;color:#9ca3af;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;}.trials-col-del{width:28px;flex-shrink:0;}.trials-col-av{width:42px;flex-shrink:0;}.trials-col-person{flex:1 1 140px;}.trials-col-class{flex:1 1 150px;}.trials-col-date{flex:0 0 130px;}.trials-col-status{flex:0 0 80px;}.trials-col-bal{flex:0 0 52px;text-align:right;}.trials-col-act{flex:0 0 auto;min-width:148px;}.trials-trial-card{background:#fff;border-radius:16px;border:1.5px solid #f0f1f5;overflow:hidden;margin-bottom:10px;transition:box-shadow .15s,border-color .15s;}.trials-trial-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);}.trials-trial-card-accent{height:3px;background:transparent;}.trials-card--edit{border-color:rgba(var(--bs-primary-rgb),.4);box-shadow:0 4px 20px rgba(0,0,0,.09);}.trials-card--edit .trials-trial-card-accent{background:var(--bs-primary);}.trials-card--notes{border-color:#e5e7eb;box-shadow:0 4px 20px rgba(0,0,0,.09);}.trials-card--notes .trials-trial-card-accent{background:#6366f1;}.trials-card--delete{border-color:var(--bs-danger-border-subtle);}.trials-card--delete .trials-trial-card-accent{background:#ef4444;}.trials-trial-card-body{padding:14px 18px;display:flex;align-items:flex-start;gap:14px;}.trials-btn-del-x{flex-shrink:0;margin-top:12px;width:28px;height:28px;border-radius:7px;border:1.5px solid var(--bs-danger-border-subtle);background:var(--bs-danger-bg-subtle);display:flex;align-items:center;justify-content:center;cursor:pointer;}.trials-trial-avatar{flex-shrink:0;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.82rem;margin-top:2px;}.trials-child-name{font-weight:800;color:var(--bs-secondary);font-size:.92rem;}.trials-child-meta{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap;}.trials-meta-item{display:flex;align-items:center;gap:3px;font-size:.73rem;color:#6b7a99;}.trials-meta-icon{color:#9ca3af;}.trials-meta-age{font-size:.7rem;color:#9ca3af;font-weight:600;}.trials-class-name{font-weight:700;color:var(--bs-secondary);font-size:.82rem;margin-bottom:5px;}.trials-group-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:.65rem;font-weight:700;}.trials-date-row{display:flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;color:var(--bs-secondary);margin-bottom:4px;}.trials-time-row{display:flex;align-items:center;gap:5px;font-size:.73rem;font-weight:600;color:#6b7a99;}.trials-sbadge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;font-size:.65rem;font-weight:700;}.trials-sbadge--att{background:var(--bs-success-bg-subtle);color:var(--bs-success);border:1px solid var(--bs-success-border-subtle);}.trials-sbadge--hol{background:var(--bs-warning-bg-subtle);color:var(--bs-warning);border:1px solid var(--bs-warning-border-subtle);}.trials-sbadge--none{background:#f3f4f6;color:#9ca3af;border:1px solid #e5e7eb;}.trials-bal-amt{font-weight:800;font-size:.88rem;}.trials-bal-zero{color:#9ca3af;}.trials-bal-pos{color:var(--bs-success);}.trials-bal-lbl{font-size:.63rem;color:#9ca3af;font-weight:600;}.trials-btn-view{padding:7px 14px;border:0;border-radius:9px;background:var(--bs-secondary);color:var(--m-on-secondary,#fff);font-weight:700;font-size:.76rem;cursor:pointer;font-family:inherit;}.trials-btn-icon{width:32px;height:32px;border:1.5px solid #e5e7eb;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7a99;position:relative;}.trials-btn-icon--edit{border-color:rgba(var(--bs-primary-rgb),.5);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.trials-btn-icon--notes{border-color:#c7d2fe;background:#eef2ff;color:#6366f1;}.trials-notes-badge{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:#6366f1;color:#fff;font-size:.55rem;font-weight:800;display:flex;align-items:center;justify-content:center;}.trials-delete-banner{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:12px 16px;border-radius:10px;background:var(--bs-warning-bg-subtle);border:1px solid var(--bs-warning-border-subtle);}.trials-delete-banner-icon{width:34px;height:34px;border-radius:50%;background:var(--bs-warning);color:var(--bs-white);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.trials-delete-banner-msg{flex:1;min-width:180px;font-size:.9rem;font-weight:700;color:var(--bs-emphasis-color);}.trials-delete-banner-copy{flex:1;min-width:220px;display:grid;gap:10px;}.trials-delete-email-card{border:1px solid rgba(245,158,11,.35);border-radius:14px;background:rgba(255,255,255,.82);display:flex;align-items:center;gap:.8rem;padding:.75rem .85rem;text-align:left;}.trials-delete-email-card.is-on{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.06);}.trials-delete-email-copy{display:grid;gap:.08rem;}.trials-delete-email-title{font-size:.8rem;font-weight:800;color:#7c2d12;}.trials-delete-email-description{font-size:.72rem;line-height:1.45;color:#9a3412;}.trials-btn-del-yes{padding:8px 22px;border-radius:8px;border:0;cursor:pointer;background:var(--bs-success);color:var(--bs-white);font-size:.85rem;font-weight:700;font-family:inherit;}.trials-btn-del-no{padding:8px 22px;border-radius:8px;border:0;cursor:pointer;background:var(--bs-danger);color:var(--bs-white);font-size:.85rem;font-weight:700;font-family:inherit;}.trials-delete-banner-row{padding:12px 18px;}.trials-edit-panel{border-top:1.5px solid rgba(var(--bs-primary-rgb),.2);background:color-mix(in srgb,var(--bs-primary) 3%,#fff);padding:18px 20px;}.trials-panel-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--bs-primary);margin-bottom:14px;}.trials-field-label{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7a99;margin-bottom:6px;}.trials-panel-select-wrap{position:relative;}.trials-panel-select{width:100%;max-width:260px;padding:10px 36px 10px 12px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.85rem;font-family:inherit;color:var(--bs-secondary);background:#fff;outline:0;appearance:none;cursor:pointer;}.trials-panel-select:focus{border-color:var(--bs-primary);}.trials-panel-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#9ca3af;}.trials-btn-panel-cancel{padding:10px 16px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;color:#6b7a99;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;}.trials-btn-panel-save{padding:10px 20px;border:0;border-radius:10px;background:var(--bs-primary);color:var(--m-on-primary,#fff);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px;}.trials-btn-panel-save:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;}.trials-notes-panel{border-top:1px solid var(--bs-primary-border-subtle);background:var(--bs-primary-bg-subtle);padding:18px 20px;}.trials-notes-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#6366f1;margin-bottom:14px;}.trials-note-item{background:#fff;border:1.5px solid var(--bs-primary-border-subtle);border-radius:10px;padding:10px 14px;display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;}.trials-note-text{flex:1;font-size:.82rem;color:#374151;line-height:1.6;}.trials-note-del{border:0;background:none;cursor:pointer;color:#9ca3af;padding:2px;}.trials-note-textarea{width:100%;min-height:38px;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:9px;font-size:.82rem;font-family:inherit;outline:0;color:var(--bs-emphasis-color);resize:none;background:var(--bs-white);transition:min-height .15s,border-color .15s;}.trials-note-textarea:focus,.trials-note-textarea--open{min-height:110px;border:2px solid var(--bs-warning);background:var(--bs-warning-bg-subtle);}.trials-note-checks{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;}.trials-note-check{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--bs-emphasis-color);cursor:pointer;user-select:none;}.trials-note-check input{accent-color:var(--bs-warning);width:15px;height:15px;cursor:pointer;}.trials-note-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;}.trials-btn-note-save{padding:8px 18px;border:0;border-radius:8px;background:var(--bs-warning);color:var(--bs-white);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.trials-btn-note-cancel{padding:8px 18px;border:0;border-radius:8px;background:var(--bs-secondary);color:var(--m-on-secondary,#fff);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;}.trials-reschedule-hint{font-size:.73rem;color:var(--bs-secondary-color);font-weight:600;margin:-4px 0 10px;}.trials-attended-wrap{position:relative;}.trials-attended-sel{padding:5px 28px 5px 10px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.75rem;font-family:inherit;font-weight:700;color:#374151;background:#fff;outline:0;appearance:none;cursor:pointer;}.trials-attended-chev{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none;color:#9ca3af;font-size:.65rem;}.trials-empty-state{display:flex;flex-direction:column;align-items:center;padding:48px 16px;gap:10px;}.trials-empty-icon{width:52px;height:52px;border-radius:50%;background:#f9fafb;display:flex;align-items:center;justify-content:center;}@media(max-width:640px){.trials-column-header{display:none;}.trials-trial-card-body{flex-wrap:wrap;gap:10px;padding:14px;}}.outstanding-invoices-page{padding:1.25rem 0 2rem;}.outstanding-invoices-page__shell{display:flex;flex-direction:column;gap:.85rem;}.outstanding-invoices-page__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.outstanding-invoices-page__title{margin:0;color:var(--bs-secondary);font-size:1.45rem;font-weight:800;letter-spacing:-.02em;}.outstanding-invoices-page__subtitle{margin-top:.2rem;color:#7b8aa5;font-size:.84rem;font-weight:600;}.outstanding-invoices-page__actions{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;}.outstanding-invoices-page__button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:42px;padding:0 1rem;border:1.5px solid #dfe7f1;border-radius:12px;background:#fff;color:#65748b;font-size:.84rem;font-weight:700;box-shadow:0 8px 24px rgba(15,23,42,.05);transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,background-color .18s ease;}.outstanding-invoices-page__button:hover,.outstanding-invoices-page__button:focus,.outstanding-invoices-page__button.is-active{border-color:rgba(var(--bs-primary-rgb),.4);color:var(--bs-primary);box-shadow:0 12px 24px rgba(var(--bs-primary-rgb),.12);}.outstanding-invoices-page__button.is-primary{border-color:rgba(var(--bs-primary-rgb),.55);background:#fff;color:var(--bs-primary);}.outstanding-invoices-page__button.is-primary.is-active{border-color:var(--bs-primary);background:var(--bs-primary);color:#fff;box-shadow:0 12px 24px rgba(var(--bs-primary-rgb),.2);}.outstanding-invoices-page__button:disabled{opacity:.65;cursor:not-allowed;}.outstanding-invoices-page__button-count{min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}.outstanding-invoices-page__button.is-primary.is-active .outstanding-invoices-page__button-count{background:rgba(255,255,255,.2);color:#fff;}.outstanding-invoices-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;}.outstanding-invoices-page__stat-card{display:flex;align-items:center;gap:.85rem;min-height:96px;padding:1rem 1.1rem;border:1px solid #e8edf5;border-radius:18px;background:#fff;box-shadow:0 2px 14px rgba(15,23,42,.05);}.outstanding-invoices-page__stat-icon{width:2.6rem;height:2.6rem;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;}.outstanding-invoices-page__stat-icon.is-primary{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.outstanding-invoices-page__stat-icon.is-secondary{background:rgba(var(--bs-primary-rgb),.08);color:#78cddb;}.outstanding-invoices-page__stat-icon.is-danger{background:rgba(239,68,68,.12);color:#ef4444;}.outstanding-invoices-page__stat-icon.is-neutral{background:#f1f5f9;color:var(--bs-secondary);}.outstanding-invoices-page__stat-label{color:#6b7b95;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem;}.outstanding-invoices-page__stat-value{color:var(--bs-secondary);font-size:1.15rem;font-weight:800;line-height:1;}.outstanding-invoices-page__stat-note{margin-top:.2rem;color:#7b8aa5;font-size:.8rem;font-weight:600;}.outstanding-invoices-page__toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;}.outstanding-invoices-page__search{position:relative;}.outstanding-invoices-page__search i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#8f9db2;font-size:1rem;}.outstanding-invoices-page__search input{width:100%;min-height:46px;padding:.75rem .95rem .75rem 2.55rem;border:1px solid #e5ebf3;border-radius:14px;background:#fff;color:var(--bs-secondary);font-size:.88rem;font-weight:600;box-shadow:0 2px 12px rgba(15,23,42,.04);}.outstanding-invoices-page__search input::placeholder{color:#9aa8bb;}.outstanding-invoices-page__search input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.12);}.outstanding-invoices-page__status-tabs{display:inline-flex;align-items:center;border:1px solid #e5ebf3;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 2px 12px rgba(15,23,42,.04);}.outstanding-invoices-page__status-tab{min-height:46px;padding:0 1rem;border:0;border-right:1px solid #edf2f7;background:transparent;color:#6c7b91;font-size:.85rem;font-weight:700;transition:background-color .18s ease,color .18s ease;}.outstanding-invoices-page__status-tab:last-child{border-right:0;}.outstanding-invoices-page__status-tab.is-active{background:var(--bs-primary);color:#fff;}.outstanding-invoices-page__selection-card{margin-bottom:0;}.outstanding-invoices-page__action-grid{grid-template-columns:250px minmax(0,1fr);}.outstanding-invoices-page__action-selected{justify-content:center;}.outstanding-invoices-page__action-divider{opacity:.45;}.outstanding-invoices-page__action-footer{justify-content:space-between;}.outstanding-invoices-page__results-card,.outstanding-invoices-page__table-card,.outstanding-invoices-page__loading-card{border:1px solid #e6edf5;border-radius:22px;background:#fff;box-shadow:0 2px 14px rgba(15,23,42,.05);}.outstanding-invoices-page__results-card{padding:.95rem 1.1rem;}.outstanding-invoices-page__results-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;}.outstanding-invoices-page__results-title{display:inline-flex;align-items:center;gap:.6rem;color:var(--bs-secondary);font-size:.88rem;font-weight:800;}.outstanding-invoices-page__results-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}.outstanding-invoices-page__results-pill{padding:.4rem .7rem;border-radius:999px;font-size:.72rem;font-weight:700;}.outstanding-invoices-page__results-pill.is-success{background:rgba(34,197,94,.12);color:#16a34a;}.outstanding-invoices-page__results-pill.is-failed{background:rgba(239,68,68,.12);color:#ef4444;}.outstanding-invoices-page__results-list{display:flex;flex-direction:column;gap:.5rem;}.outstanding-invoices-page__results-item{border-radius:12px;padding:.65rem .8rem;font-size:.8rem;font-weight:600;}.outstanding-invoices-page__results-item.is-success{background:rgba(34,197,94,.08);color:#166534;}.outstanding-invoices-page__results-item.is-failed{background:rgba(239,68,68,.08);color:#991b1b;}.outstanding-invoices-page__table-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem .85rem;}.outstanding-invoices-page__table-title{display:inline-flex;align-items:center;gap:.7rem;color:var(--bs-secondary);font-size:1rem;font-weight:800;}.outstanding-invoices-page__table-icon{width:1.85rem;height:1.85rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);font-size:.8rem;}.outstanding-invoices-page__table-subtitle{margin-top:.15rem;color:#8090a8;font-size:.8rem;font-weight:600;}.outstanding-invoices-page__per-page{display:flex;align-items:center;gap:.75rem;}.outstanding-invoices-page__per-page label{margin:0;color:#6c7b91;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;}.outstanding-invoices-page__per-page .form-select,.outstanding-invoices-page__per-page .daterangepicker select.monthselect,.daterangepicker .outstanding-invoices-page__per-page select.monthselect,.outstanding-invoices-page__per-page .daterangepicker select.yearselect,.daterangepicker .outstanding-invoices-page__per-page select.yearselect{min-width:78px;min-height:40px;border:1px solid #e2e8f0;border-radius:12px;background-color:#fff;color:var(--bs-secondary);font-weight:700;box-shadow:none;}.outstanding-invoices-page__mobile-table-tools,.outstanding-invoices-page__mobile-list{display:none;}.outstanding-invoices-page__mobile-table-tools{padding:0 1rem .9rem;gap:.75rem;align-items:center;}.outstanding-invoices-page__mobile-table-tool{display:flex;align-items:center;gap:.55rem;}.outstanding-invoices-page__mobile-table-tool label{margin:0;color:#6c7b91;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;}.outstanding-invoices-page__mobile-table-tool .form-select,.outstanding-invoices-page__mobile-table-tool .daterangepicker select.monthselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool select.monthselect,.outstanding-invoices-page__mobile-table-tool .daterangepicker select.yearselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool select.yearselect{min-height:38px;border:1px solid #e2e8f0;border-radius:12px;background-color:#fff;color:var(--bs-secondary);font-size:.8rem;font-weight:700;box-shadow:none;}.outstanding-invoices-page__mobile-table-tool.is-sort{flex:1 1 auto;}.outstanding-invoices-page__mobile-sort-select{width:100%;min-height:38px;padding:.55rem 2rem .55rem .75rem;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:var(--bs-secondary);font-size:.8rem;font-weight:700;box-shadow:none;}.outstanding-invoices-page__mobile-sort-select::after{margin-left:.55rem;}.outstanding-invoices-page__mobile-sort-menu{border:1px solid #e8edf5;border-radius:14px;padding:.4rem 0;box-shadow:0 12px 24px rgba(15,23,42,.08);overflow:hidden;}.outstanding-invoices-page__mobile-sort-item{padding:.75rem .95rem;color:var(--bs-secondary);font-size:.82rem;font-weight:700;}.outstanding-invoices-page__mobile-sort-item.is-active{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.outstanding-invoices-page__mobile-select-row{display:flex;align-items:center;gap:.65rem;padding:.85rem 1rem;border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7;background:#fbfcfe;color:#6d7c92;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.outstanding-invoices-page__mobile-card{padding:.95rem 1rem;border-bottom:1px solid #edf2f7;background:#fff;}.outstanding-invoices-page__mobile-card.is-selected{background:rgba(var(--bs-primary-rgb),.08);}.outstanding-invoices-page__mobile-card.is-success{background:rgba(34,197,94,.08);}.outstanding-invoices-page__mobile-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:flex-start;}.outstanding-invoices-page__mobile-card-main{min-width:0;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-cell{min-width:0;align-items:flex-start;}.outstanding-invoices-page__mobile-card-side{text-align:right;}.outstanding-invoices-page__mobile-card-due{margin-top:.2rem;color:#ef4444;font-size:.84rem;font-weight:700;}.outstanding-invoices-page__mobile-card-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-top:.7rem;padding-left:2.35rem;}.outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__muted-cell{font-size:.76rem;}.outstanding-invoices-page__mobile-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.8rem;padding-left:2.35rem;}.outstanding-invoices-page__mobile-card-status{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;}.outstanding-invoices-page__mobile-card-created{color:#7b8aa5;font-size:.78rem;font-weight:600;}.outstanding-invoices-page__table{margin:0;}.outstanding-invoices-page__table thead th{padding:.8rem .85rem;border-bottom:1px solid #ecf1f6;background:#fbfcfe;vertical-align:middle;}.outstanding-invoices-page__table tbody td{padding:.8rem .85rem;border-bottom:1px solid #edf2f7;vertical-align:middle;}.outstanding-invoices-page__table tbody tr{transition:background-color .18s ease;}.outstanding-invoices-page__table tbody tr.is-selected{background:rgba(var(--bs-primary-rgb),.08);}.outstanding-invoices-page__table tbody tr.is-success{background:rgba(34,197,94,.08);}.outstanding-invoices-page__sort-btn{display:inline-flex;align-items:center;gap:.45rem;padding:0;border:0;background:transparent;color:#6d7c92;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.outstanding-invoices-page__sort-btn i{color:#c1cbd9;}.outstanding-invoices-page__sort-btn.is-active,.outstanding-invoices-page__sort-btn:hover{color:var(--bs-secondary);}.outstanding-invoices-page__sort-btn.is-active i,.outstanding-invoices-page__sort-btn:hover i{color:var(--bs-primary);}.outstanding-invoices-page__person-cell{display:flex;align-items:center;gap:.7rem;min-width:190px;}.outstanding-invoices-page__person-name{color:var(--bs-secondary);font-size:.92rem;font-weight:700;line-height:1.2;}.outstanding-invoices-page__person-sub{margin-top:.15rem;color:#7a8ba4;font-size:.78rem;font-weight:600;}.outstanding-invoices-page__tag{display:inline-flex;align-items:center;justify-content:center;min-height:1.75rem;padding:.25rem .7rem;border:1px solid rgba(var(--bs-primary-rgb),.24);border-radius:10px;background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);font-size:.76rem;font-weight:700;white-space:nowrap;}.outstanding-invoices-page__tag.is-group{background:rgba(129,140,248,.08);border-color:rgba(129,140,248,.28);color:#6366f1;}.outstanding-invoices-page__muted-cell{display:inline-flex;align-items:center;gap:.45rem;color:#66768f;font-size:.8rem;font-weight:600;white-space:nowrap;}.outstanding-invoices-page__muted-cell i{color:#98a6b9;font-size:.78rem;}.outstanding-invoices-page__status{display:inline-flex;align-items:center;gap:.4rem;min-height:1.8rem;padding:.25rem .75rem;border-radius:999px;font-size:.76rem;font-weight:700;border:1px solid transparent;}.outstanding-invoices-page__status-dot{width:.45rem;height:.45rem;border-radius:999px;background:currentColor;}.outstanding-invoices-page__status.is-overdue{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.24);color:#ef4444;}.outstanding-invoices-page__status.is-open{background:rgba(var(--bs-primary-rgb),.1);border-color:rgba(var(--bs-primary-rgb),.24);color:var(--bs-primary);}.outstanding-invoices-page__status.is-draft{background:rgba(148,163,184,.14);border-color:rgba(148,163,184,.25);color:#64748b;}.outstanding-invoices-page__due-main,.outstanding-invoices-page__amount{color:var(--bs-secondary);font-size:.9rem;font-weight:700;}.outstanding-invoices-page__due-sub{margin-top:.15rem;font-size:.76rem;font-weight:700;}.outstanding-invoices-page__due-sub.is-overdue{color:#ef4444;}.outstanding-invoices-page__due-sub.is-open{color:#7b8aa5;}.outstanding-invoices-page__attempt-pill{min-width:2.5rem;min-height:1.7rem;padding:0 .6rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-size:.74rem;font-weight:700;}.outstanding-invoices-page__attempt-pill.is-warning{background:rgba(245,158,11,.14);color:#d97706;}.outstanding-invoices-page__attempt-pill.is-danger{background:rgba(239,68,68,.14);color:#ef4444;}.outstanding-invoices-page__attempt-empty{color:#b7c1cf;font-size:.85rem;font-weight:700;}.outstanding-invoices-page__table-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem 1rem;color:#7b8aa5;font-size:.8rem;font-weight:600;}.outstanding-invoices-page__pagination{display:flex;align-items:center;gap:.75rem;}.outstanding-invoices-page__page-btn{min-width:70px;min-height:38px;padding:0 1rem;border:1px solid #e3e8f2;border-radius:10px;background:#fff;color:var(--bs-secondary);font-size:.82rem;font-weight:700;}.outstanding-invoices-page__page-btn:disabled{opacity:.45;}.outstanding-invoices-page__page-info{color:var(--bs-secondary);font-size:.82rem;font-weight:700;}.outstanding-invoices-page__footnote{text-align:center;color:#8c9ab0;font-size:.76rem;font-weight:600;padding:.35rem 0 .15rem;}.outstanding-invoices-page__empty-state,.outstanding-invoices-page__loading-card{padding:1.4rem;}.outstanding-invoices-page__email-modal-dialog{max-width:760px;}.outstanding-invoices-page__email-modal-dialog .members-modal-content{max-height:min(90vh,920px);}.outstanding-invoices-page__email-modal-dialog .members-modal-body{max-height:min(90vh,920px);overflow-y:auto;}.outstanding-invoices-page__email-modal{padding:1.6rem;background:#fff;}.outstanding-invoices-page__email-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;}.outstanding-invoices-page__email-modal-head-copy{display:flex;align-items:flex-start;gap:.9rem;}.outstanding-invoices-page__email-modal-icon{width:2.7rem;height:2.7rem;border-radius:12px;background:rgba(59,130,246,.12);color:#3b82f6;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.outstanding-invoices-page__email-modal-icon.is-danger{background:rgba(239,68,68,.14);color:#ef4444;}.outstanding-invoices-page__email-modal-icon.is-recharge{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.outstanding-invoices-page__email-modal-title{margin:0 0 .35rem;color:var(--bs-secondary);font-size:1.05rem;font-weight:800;}.outstanding-invoices-page__email-modal-subtitle{margin:0;color:#6b7280;font-size:.9rem;line-height:1.6;max-width:30rem;}.outstanding-invoices-page__email-modal-close{width:2rem;height:2rem;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;}.outstanding-invoices-page__email-modal-close:disabled{opacity:.7;cursor:not-allowed;}.outstanding-invoices-page__email-preview-card{border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;background:#fff;}.outstanding-invoices-page__email-preview-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;background:#f8fafc;border-bottom:1px solid #eef2f7;color:#7c8aa5;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}.outstanding-invoices-page__email-preview-head strong{color:var(--bs-secondary);font-size:.95rem;letter-spacing:0;}.outstanding-invoices-page__email-preview-list{max-height:300px;overflow-y:auto;}.outstanding-invoices-page__email-preview-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1rem;border-bottom:1px solid #f1f5f9;}.outstanding-invoices-page__email-preview-row:last-child{border-bottom:0;}.outstanding-invoices-page__email-preview-copy{min-width:0;}.outstanding-invoices-page__email-preview-name{color:var(--bs-secondary);font-size:.95rem;font-weight:700;line-height:1.2;}.outstanding-invoices-page__email-preview-email{margin-top:.2rem;color:#94a3b8;font-size:.82rem;}.outstanding-invoices-page__email-preview-amount{color:var(--bs-secondary);font-size:.95rem;font-weight:800;white-space:nowrap;}.outstanding-invoices-page__email-modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;}.outstanding-invoices-page__email-modal-btn{min-height:44px;padding:0 1.2rem;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.9rem;font-weight:700;}.outstanding-invoices-page__email-modal-btn.is-secondary{border:1px solid #dbe2ea;background:#fff;color:#6b7280;}.outstanding-invoices-page__email-modal-btn.is-primary{border:0;background:#1f6fff;color:#fff;box-shadow:0 12px 24px rgba(31,111,255,.2);}.outstanding-invoices-page__email-modal-btn.is-success{border:0;background:var(--bs-secondary);color:#fff;box-shadow:0 12px 24px rgba(30,42,74,.18);}.outstanding-invoices-page__email-modal-btn.is-danger{border:0;background:#ef4444;color:#fff;box-shadow:0 12px 24px rgba(239,68,68,.22);}.outstanding-invoices-page__email-modal-btn.is-recharge{border:0;background:var(--bs-primary);color:#fff;box-shadow:0 12px 24px rgba(var(--bs-primary-rgb),.24);}.outstanding-invoices-page__email-success{padding:1.8rem;background:#fff;}.outstanding-invoices-page__email-success-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.outstanding-invoices-page__email-success-copy{display:flex;align-items:flex-start;gap:.95rem;}.outstanding-invoices-page__email-success-icon{width:2.7rem;height:2.7rem;border-radius:12px;background:rgba(22,163,74,.14);color:#16a34a;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.outstanding-invoices-page__email-success-title{margin:0 0 .35rem;color:var(--bs-secondary);font-size:1.05rem;font-weight:800;}.outstanding-invoices-page__email-success-subtitle{margin:0;color:#6b7280;font-size:.92rem;line-height:1.6;}.outstanding-invoices-page__email-success-actions{display:flex;justify-content:flex-end;margin-top:1.5rem;}.outstanding-invoices-page__recharge-modal-dialog{max-width:660px;}.outstanding-invoices-page__recharge-modal-dialog .members-modal-content{max-height:min(90vh,920px);overflow:hidden;}.outstanding-invoices-page__recharge-modal{padding:1.55rem;background:#fff;max-height:min(90vh,920px);display:flex;flex-direction:column;}.outstanding-invoices-page__recharge-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.outstanding-invoices-page__recharge-head-copy{display:flex;align-items:flex-start;gap:.95rem;}.outstanding-invoices-page__recharge-ring{width:2.7rem;height:2.7rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.12);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.outstanding-invoices-page__recharge-ring-spinner{width:1.25rem;height:1.25rem;border-radius:999px;border:2px solid rgba(var(--bs-primary-rgb),.18);border-top-color:var(--bs-primary);border-right-color:var(--bs-primary);animation:outstanding-invoices-recharge-spin .85s linear infinite;}.outstanding-invoices-page__recharge-progress-wrap{margin-top:1.35rem;}.outstanding-invoices-page__recharge-progress-labels{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.45rem;color:#7c8aa5;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}.outstanding-invoices-page__recharge-progress-labels strong{color:var(--bs-secondary);font-size:.9rem;letter-spacing:0;}.outstanding-invoices-page__recharge-progress-bar{height:.48rem;border-radius:999px;background:#eef2f7;overflow:hidden;display:flex;}.outstanding-invoices-page__recharge-progress-success,.outstanding-invoices-page__recharge-progress-failed{height:100%;}.outstanding-invoices-page__recharge-progress-success{background:#16a34a;}.outstanding-invoices-page__recharge-progress-failed{background:#ef4444;}.outstanding-invoices-page__recharge-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:.95rem;}.outstanding-invoices-page__recharge-stat{padding:.85rem .95rem;border-radius:14px;background:#f8fafc;}.outstanding-invoices-page__recharge-stat.is-success{background:#dbf4e6;}.outstanding-invoices-page__recharge-stat.is-failed{background:#fde2e4;}.outstanding-invoices-page__recharge-stat-label{color:#7c8aa5;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}.outstanding-invoices-page__recharge-stat-value{margin-top:.25rem;color:var(--bs-secondary);font-size:1.5rem;font-weight:900;line-height:1;}.outstanding-invoices-page__recharge-stat-note{margin-top:.3rem;color:#7c8aa5;font-size:.82rem;font-weight:700;}.outstanding-invoices-page__recharge-report-card{margin-top:.95rem;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;background:#fff;min-height:0;flex:1 1 auto;display:flex;flex-direction:column;}.outstanding-invoices-page__recharge-report-list{max-height:360px;min-height:0;overflow-y:auto;flex:1 1 auto;}.outstanding-invoices-page__recharge-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.95rem 1rem;border-bottom:1px solid #f1f5f9;}.outstanding-invoices-page__recharge-row:last-child{border-bottom:0;}.outstanding-invoices-page__recharge-row.is-processing{background:rgba(var(--bs-primary-rgb),.1);}.outstanding-invoices-page__recharge-row.is-success .outstanding-invoices-page__recharge-row-icon{background:#dcfce7;color:#16a34a;}.outstanding-invoices-page__recharge-row.is-failed .outstanding-invoices-page__recharge-row-icon{background:#fee2e2;color:#ef4444;}.outstanding-invoices-page__recharge-row-main{display:flex;align-items:flex-start;gap:.8rem;min-width:0;flex:1 1 auto;}.outstanding-invoices-page__recharge-row-icon{width:1.5rem;height:1.5rem;border-radius:999px;color:#b7c1cf;background:transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.15rem;}.outstanding-invoices-page__recharge-row-spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid rgba(var(--bs-primary-rgb),.18);border-top-color:var(--bs-primary);border-right-color:var(--bs-primary);animation:outstanding-invoices-recharge-spin .85s linear infinite;}.outstanding-invoices-page__recharge-row-dot{width:.45rem;height:.45rem;border-radius:999px;background:#98a2b3;}.outstanding-invoices-page__recharge-row-copy{min-width:0;flex:1 1 auto;}.outstanding-invoices-page__recharge-row-name{color:var(--bs-secondary);font-size:.95rem;font-weight:800;line-height:1.2;}.outstanding-invoices-page__recharge-row-email{margin-top:.18rem;color:#94a3b8;font-size:.81rem;}.outstanding-invoices-page__recharge-row-amount{color:var(--bs-secondary);font-size:.95rem;font-weight:800;white-space:nowrap;}.outstanding-invoices-page__recharge-row-error{margin-top:.55rem;padding:.55rem .75rem;border-radius:10px;background:#fee2e2;color:#ef4444;font-size:.8rem;font-weight:700;line-height:1.45;}.outstanding-invoices-page__recharge-inline-progress{position:relative;width:100%;height:.22rem;border-radius:999px;background:rgba(255,255,255,.8);overflow:hidden;margin-top:.7rem;}.outstanding-invoices-page__recharge-inline-progress span{position:absolute;top:0;bottom:0;left:-32%;width:32%;border-radius:inherit;background:var(--bs-primary);animation:outstanding-invoices-inline-progress 1.2s ease-in-out infinite;}.outstanding-invoices-page__recharge-footer-copy{margin-top:1rem;text-align:center;color:#8c9ab0;font-size:.82rem;font-style:italic;font-weight:600;}@keyframes outstanding-invoices-recharge-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}@keyframes outstanding-invoices-inline-progress{0%{left:-32%;}100%{left:100%;}}@media(max-width:1199.98px){.outstanding-invoices-page__stats{grid-template-columns:repeat(2,minmax(0,1fr));}}@media(max-width:991.98px){.outstanding-invoices-page__head,.outstanding-invoices-page__toolbar,.outstanding-invoices-page__table-head,.outstanding-invoices-page__table-foot,.outstanding-invoices-page__results-head{flex-direction:column;align-items:stretch;}.outstanding-invoices-page__toolbar{grid-template-columns:1fr;}.outstanding-invoices-page__status-tabs{width:100%;overflow-x:auto;}.outstanding-invoices-page__action-grid{grid-template-columns:1fr;}.outstanding-invoices-page__action-footer{flex-direction:column;align-items:stretch;}.outstanding-invoices-page__email-modal{position:relative;padding:.95rem .95rem 1rem;}.outstanding-invoices-page__email-modal-head{position:relative;align-items:flex-start;gap:.85rem;margin-bottom:.9rem;}.outstanding-invoices-page__email-modal-head-copy{width:100%;padding-right:2rem;}.outstanding-invoices-page__email-modal-close{position:absolute;top:0;right:0;width:1.7rem;height:1.7rem;border-radius:999px;}.outstanding-invoices-page__email-preview-row{align-items:flex-start;flex-direction:column;gap:.35rem;padding:.7rem .8rem;}.outstanding-invoices-page__email-modal-actions{flex-direction:column-reverse;position:sticky;bottom:0;padding-top:.75rem;margin-top:.8rem;background:#fff;}.outstanding-invoices-page__email-modal-btn{width:100%;min-height:40px;font-size:.82rem;}.outstanding-invoices-page__email-success{position:relative;padding:1rem;}.outstanding-invoices-page__email-success-head,.outstanding-invoices-page__email-success-copy{flex-direction:column;gap:.75rem;}.outstanding-invoices-page__email-success-actions{margin-top:1.1rem;}.outstanding-invoices-page__email-modal-icon,.outstanding-invoices-page__email-success-icon{width:2.35rem;height:2.35rem;border-radius:10px;font-size:.88rem;}.outstanding-invoices-page__email-modal-title,.outstanding-invoices-page__email-success-title{font-size:.96rem;line-height:1.25;}.outstanding-invoices-page__email-modal-subtitle,.outstanding-invoices-page__email-success-subtitle{font-size:.8rem;line-height:1.5;max-width:none;}.outstanding-invoices-page__email-preview-head{padding:.75rem .8rem;font-size:.68rem;}.outstanding-invoices-page__email-preview-head strong{font-size:.86rem;}.outstanding-invoices-page__email-preview-list{max-height:240px;}.outstanding-invoices-page__email-preview-name,.outstanding-invoices-page__email-preview-amount{font-size:.86rem;}.outstanding-invoices-page__email-preview-email{font-size:.74rem;}.outstanding-invoices-page__recharge-stats{grid-template-columns:1fr;}.outstanding-invoices-page__recharge-row{flex-direction:column;}}@media(max-width:767.98px){.outstanding-invoices-page{padding:1rem 0 1.65rem;}.outstanding-invoices-page__head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions" "subtitle subtitle";align-items:center;gap:.6rem;}.outstanding-invoices-page__head>div:first-child{min-width:0;flex:1 1 auto;display:contents;}.outstanding-invoices-page__title{grid-area:title;font-size:.92rem;line-height:1.2;align-self:center;}.outstanding-invoices-page__subtitle{grid-area:subtitle;font-size:.7rem;margin-top:-.28rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.outstanding-invoices-page__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}.outstanding-invoices-page__stat-card{min-height:92px;padding:.72rem .78rem;gap:.6rem;align-items:flex-start;}.outstanding-invoices-page__person-cell{min-width:0;}.outstanding-invoices-page__actions{grid-area:actions;width:auto;justify-content:flex-end;gap:.35rem;flex-wrap:nowrap;flex-shrink:0;}.outstanding-invoices-page__button{min-height:32px;padding:0 .58rem;flex:0 0 auto;border-radius:9px;font-size:.71rem;font-weight:700;gap:.3rem;}.outstanding-invoices-page__button-refresh{width:32px;min-width:32px;padding:0;}.outstanding-invoices-page__button-refresh .outstanding-invoices-page__button-text{display:none;}.outstanding-invoices-page__toolbar{gap:.5rem;}.outstanding-invoices-page__search input,.outstanding-invoices-page__status-tab{min-height:34px;}.outstanding-invoices-page__search i{left:.75rem;font-size:.8rem;}.outstanding-invoices-page__search input{padding:.52rem .75rem .52rem 2rem;border-radius:10px;font-size:.75rem;font-weight:600;}.outstanding-invoices-page__status-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:hidden;border-radius:10px;}.outstanding-invoices-page__status-tab{min-width:0;padding:.25rem .2rem;font-size:.66rem;font-weight:700;line-height:1.2;}.outstanding-invoices-page__table-head{padding:.82rem .85rem .55rem;}.outstanding-invoices-page__table-title{font-size:.92rem;gap:.55rem;}.outstanding-invoices-page__table-icon{width:1.65rem;height:1.65rem;border-radius:9px;font-size:.72rem;}.outstanding-invoices-page__table-subtitle{display:none;}.outstanding-invoices-page__per-page{display:none;}.outstanding-invoices-page__mobile-table-tools,.outstanding-invoices-page__mobile-list{display:block;}.outstanding-invoices-page__mobile-table-tools{display:flex;gap:.4rem;align-items:center;padding:0 .85rem .65rem;}.outstanding-invoices-page__mobile-table-tool{gap:.32rem;min-width:0;}.outstanding-invoices-page__mobile-table-tool label{font-size:.62rem;letter-spacing:.05em;}.outstanding-invoices-page__mobile-table-tool .form-select,.outstanding-invoices-page__mobile-table-tool .daterangepicker select.monthselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool select.monthselect,.outstanding-invoices-page__mobile-table-tool .daterangepicker select.yearselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool select.yearselect{min-height:32px;padding-top:.28rem;padding-bottom:.28rem;padding-left:.55rem;padding-right:1.8rem;font-size:.7rem;border-radius:9px;}.outstanding-invoices-page__mobile-table-tool:not(.is-sort) .form-select,.outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.monthselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.monthselect,.outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.yearselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.yearselect{width:56px;min-width:56px;}.outstanding-invoices-page__mobile-table-tool.is-sort{flex:1 1 auto;}.outstanding-invoices-page__mobile-sort-select{min-height:32px;padding:.3rem 1.7rem .3rem .6rem;font-size:.7rem;border-radius:9px;}.outstanding-invoices-page__mobile-sort-item{padding:.62rem .8rem;font-size:.74rem;}.outstanding-invoices-page__desktop-table-wrap{display:none;}.outstanding-invoices-page__table-head,.outstanding-invoices-page__table-foot,.outstanding-invoices-page__results-card,.outstanding-invoices-page__loading-card{padding-left:.85rem;padding-right:.85rem;}.outstanding-invoices-page__table-foot{padding-top:.75rem;padding-bottom:.8rem;font-size:.72rem;}.outstanding-invoices-page__page-btn{min-width:58px;min-height:32px;padding:0 .75rem;border-radius:9px;font-size:.72rem;}.outstanding-invoices-page__page-info,.outstanding-invoices-page__footnote{font-size:.7rem;}}@media(max-width:575.98px){.outstanding-invoices-page__recharge-head{gap:.7rem;}.outstanding-invoices-page__recharge-progress-wrap{margin-top:.9rem;}.outstanding-invoices-page__recharge-progress-labels{margin-bottom:.35rem;font-size:.62rem;}.outstanding-invoices-page__recharge-progress-labels strong{font-size:.82rem;}.outstanding-invoices-page__recharge-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-top:.7rem;}.outstanding-invoices-page__recharge-stat{padding:.62rem .58rem;border-radius:10px;}.outstanding-invoices-page__recharge-stat-label{font-size:.58rem;}.outstanding-invoices-page__recharge-stat-value{font-size:.88rem;margin-top:.18rem;}.outstanding-invoices-page__recharge-stat-note{font-size:.66rem;margin-top:.2rem;}.outstanding-invoices-page__recharge-report-card{margin-top:.7rem;}.outstanding-invoices-page__recharge-report-list{max-height:185px;}.outstanding-invoices-page__recharge-row{padding:.72rem .75rem;gap:.55rem;}.outstanding-invoices-page__recharge-row-name,.outstanding-invoices-page__recharge-row-amount{font-size:.8rem;}.outstanding-invoices-page__recharge-row-email{font-size:.7rem;}.outstanding-invoices-page__recharge-row-error{margin-top:.4rem;padding:.45rem .55rem;font-size:.7rem;}.outstanding-invoices-page__recharge-footer-copy{margin-top:.72rem;font-size:.72rem;}.outstanding-invoices-page__email-modal-dialog,.outstanding-invoices-page__recharge-modal-dialog{margin:.45rem;}.outstanding-invoices-page__email-modal,.outstanding-invoices-page__recharge-modal,.outstanding-invoices-page__email-success{padding:.85rem;}.outstanding-invoices-page__email-modal-icon,.outstanding-invoices-page__email-success-icon{width:2.1rem;height:2.1rem;border-radius:9px;font-size:.8rem;}.outstanding-invoices-page__email-modal-close{width:1.55rem;height:1.55rem;font-size:.9rem;}.outstanding-invoices-page__email-modal-title,.outstanding-invoices-page__email-success-title{font-size:.88rem;}.outstanding-invoices-page__email-modal-subtitle,.outstanding-invoices-page__email-success-subtitle{font-size:.74rem;line-height:1.45;}.outstanding-invoices-page__email-preview-head{padding:.68rem .72rem;font-size:.64rem;}.outstanding-invoices-page__email-preview-head strong{font-size:.82rem;}.outstanding-invoices-page__email-preview-row{padding:.62rem .72rem;}.outstanding-invoices-page__email-preview-name,.outstanding-invoices-page__email-preview-amount{font-size:.8rem;}.outstanding-invoices-page__email-preview-email{font-size:.7rem;}.outstanding-invoices-page__email-modal-btn{min-height:36px;border-radius:10px;font-size:.76rem;gap:.42rem;}.outstanding-invoices-page__title{font-size:.86rem;}.outstanding-invoices-page__subtitle{font-size:.66rem;white-space:nowrap;}.outstanding-invoices-page__button{min-height:30px;padding:0 .52rem;font-size:.68rem;}.outstanding-invoices-page__button-refresh{width:30px;min-width:30px;padding:0;}.outstanding-invoices-page__stats{grid-template-columns:repeat(2,minmax(0,1fr));}.outstanding-invoices-page__stat-card{min-height:88px;padding:.68rem .72rem;gap:.55rem;}.outstanding-invoices-page__stat-icon{width:2.05rem;height:2.05rem;border-radius:11px;font-size:.74rem;}.outstanding-invoices-page__stat-label{font-size:.6rem;}.outstanding-invoices-page__stat-value{font-size:.94rem;}.outstanding-invoices-page__stat-note{font-size:.68rem;}.outstanding-invoices-page__mobile-select-row{gap:.5rem;padding:.72rem .85rem;font-size:.68rem;}.outstanding-invoices-page__mobile-select-row .members-table-check-toggle{width:1rem;height:1rem;min-width:1rem;border-radius:.32rem;}.outstanding-invoices-page__mobile-select-row .members-table-check-toggle i{font-size:.58rem;}.outstanding-invoices-page__mobile-card{padding:.72rem .78rem;}.outstanding-invoices-page__mobile-card-top{gap:.48rem;}.outstanding-invoices-page__mobile-card .members-table-row-check{width:1rem;height:1rem;min-width:1rem;border-radius:.32rem;}.outstanding-invoices-page__mobile-card .members-table-row-check i{font-size:.58rem;}.outstanding-invoices-page__mobile-card .members-table-avatar{width:1.85rem;height:1.85rem;min-width:1.85rem;font-size:.72rem;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-cell{gap:.5rem;min-width:0;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-name{font-size:.76rem;line-height:1.2;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__person-sub{font-size:.66rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;}.outstanding-invoices-page__mobile-card-side{min-width:68px;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__amount{font-size:.74rem;line-height:1.15;}.outstanding-invoices-page__mobile-card-due{font-size:.68rem;line-height:1.15;}.outstanding-invoices-page__mobile-card-meta{gap:.3rem;margin-top:.5rem;padding-left:1.68rem;}.outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__tag{min-height:1.35rem;padding:.16rem .45rem;border-radius:7px;font-size:.62rem;}.outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__muted-cell{gap:.22rem;font-size:.63rem;}.outstanding-invoices-page__mobile-card-meta .outstanding-invoices-page__muted-cell i{font-size:.6rem;}.outstanding-invoices-page__mobile-card-foot{gap:.5rem;margin-top:.58rem;padding-left:1.68rem;}.outstanding-invoices-page__mobile-card-status{gap:.35rem;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__status{min-height:1.4rem;padding:.14rem .48rem;font-size:.63rem;}.outstanding-invoices-page__mobile-card-created{font-size:.63rem;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__due-sub{font-size:.63rem;}.outstanding-invoices-page__mobile-card .outstanding-invoices-page__attempt-pill{min-width:1.9rem;min-height:1.3rem;padding:0 .4rem;font-size:.62rem;}.outstanding-invoices-page__mobile-table-tools{padding:0 .78rem .58rem;}.outstanding-invoices-page__mobile-table-tool label{font-size:.58rem;}.outstanding-invoices-page__mobile-table-tool .form-select,.outstanding-invoices-page__mobile-table-tool .daterangepicker select.monthselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool select.monthselect,.outstanding-invoices-page__mobile-table-tool .daterangepicker select.yearselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool select.yearselect,.outstanding-invoices-page__mobile-sort-select{min-height:30px;font-size:.66rem;border-radius:8px;}.outstanding-invoices-page__mobile-table-tool:not(.is-sort) .form-select,.outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.monthselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.monthselect,.outstanding-invoices-page__mobile-table-tool:not(.is-sort) .daterangepicker select.yearselect,.daterangepicker .outstanding-invoices-page__mobile-table-tool:not(.is-sort) select.yearselect{width:65px;min-width:50px;}.outstanding-invoices-page__mobile-sort-item{padding:.56rem .72rem;font-size:.7rem;}}.settings-admin__tab-nav{background:var(--bs-white,#fff);border-bottom:1px solid var(--bs-border-color,#e5e7eb);border-radius:20px 20px 0 0;padding:0 20px;display:flex;gap:2px;overflow-x:auto;}.settings-admin__tab-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 10px;margin:0 6px;border:0;background:transparent;border-bottom:2.5px solid transparent;color:var(--bs-secondary-color,#8a96b0);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;white-space:nowrap;transition:color .15s;}.settings-admin__tab-btn.is-active{color:var(--bs-primary,#5bbfbf);font-weight:800;border-bottom-color:var(--bs-primary,#5bbfbf);}.settings-admin__tab-pill{font-size:.65rem;font-weight:800;padding:1px 7px;border-radius:999px;min-width:18px;text-align:center;background:var(--bs-tertiary-bg,#f3f4f6);color:var(--bs-secondary-color,#8a96b0);}.settings-admin__tab-btn.is-active .settings-admin__tab-pill{background:var(--bs-primary-bg-subtle,rgba(91,191,191,.1));color:var(--bs-primary,#5bbfbf);}.settings-admin__tab-card{border-top:0;border-radius:0 0 20px 20px;box-shadow:0 18px 36px rgba(15,23,42,.05);background:var(--bs-body-bg,#f9fafb);}.settings-admin__mobile-actions{display:none;align-items:center;gap:8px;flex-shrink:0;}.settings-admin__mobile-header-copy{flex:1 1 auto;min-width:0;}.settings-admin__mobile-menu-wrap{position:relative;}.settings-admin__mobile-dropdown-backdrop{position:fixed;inset:0;border:0;background:transparent;z-index:1035;}.settings-admin__mobile-action-btn{min-width:42px;height:42px;padding:0 12px;border-radius:12px;border:1px solid var(--bs-border-color,#e5e7eb);background:var(--bs-white,#fff);color:#7f90af;display:inline-flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 10px 24px rgba(15,23,42,.06);transition:border-color .15s ease,background-color .15s ease,color .15s ease;flex-shrink:0;}.settings-admin__mobile-action-btn:hover,.settings-admin__mobile-action-btn:focus-visible,.settings-admin__mobile-action-btn.is-active{border-color:rgba(var(--bs-primary-rgb),.32);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary,#5bbfbf);}.settings-admin__mobile-dropdown{position:absolute;top:calc(100% + 10px);right:0;min-width:240px;background:var(--bs-white,#fff);border:1px solid rgba(var(--bs-primary-rgb),.12);border-radius:18px;box-shadow:0 20px 40px rgba(15,23,42,.14);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;z-index:1040;}.settings-admin__mobile-dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0);}.settings-admin__mobile-dropdown-item.is-active .settings-admin__tab-pill{background:rgba(var(--bs-primary-rgb),.14);color:var(--bs-primary,#5bbfbf);}.settings-admin__mobile-dropdown-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:0;border-top:1px solid var(--bs-border-color,#e5e7eb);background:var(--bs-white,#fff);color:var(--bs-emphasis-color,#1e2a4a);font-size:.9rem;font-weight:700;text-align:left;white-space:nowrap;}.settings-admin__mobile-dropdown-item:first-child{border-top:0;}.settings-admin__mobile-dropdown-item.is-active{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary,#5bbfbf);}.settings-admin__mobile-dropdown-label{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto;}.settings-admin__mobile-dropdown-label span:last-child{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;}.settings-admin__mobile-sheet-backdrop{display:none;}.settings-admin__mobile-sheet{display:none;}.settings-admin__mobile-sheet-head{display:flex;flex-direction:column;gap:12px;}.settings-admin__mobile-sheet-handle{width:52px;height:5px;border-radius:999px;background:#dbe3ef;align-self:center;}.settings-admin__mobile-sheet-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}.settings-admin__mobile-sheet-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.96rem;font-weight:800;line-height:1.25;}.settings-admin__mobile-sheet-subtitle{margin-top:.25rem;color:#8fa0bd;font-size:.8rem;line-height:1.4;}.settings-admin__mobile-sheet-close{width:34px;height:34px;border-radius:10px;border:1px solid #dbe3ef;background:var(--bs-white,#fff);color:#8fa0bd;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.settings-admin__mobile-sheet-body{padding:0 1rem 1rem;}.settings-admin__mobile-stats-grid{grid-template-columns:1fr;}.gs-stack{display:flex;flex-direction:column;gap:16px;padding:20px 24px 32px;}.gs-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}.gs-stat-tile{background:var(--bs-white,#fff);border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.07);border:1px solid var(--bs-border-color,#e5e7eb);padding:14px 16px;display:flex;align-items:center;gap:10px;min-width:0;}.gs-stat-bar{width:6px;height:38px;border-radius:999px;flex-shrink:0;}.gs-stat-bar.t-success{background:#15803d;}.gs-stat-bar.t-warning{background:#92400e;}.gs-stat-bar.t-primary{background:var(--bs-primary,#5bbfbf);}.gs-stat-label{font-size:.68rem;font-weight:700;color:var(--bs-secondary-color,#8a96b0);text-transform:uppercase;letter-spacing:.06em;}.gs-stat-value{font-size:1.1rem;font-weight:800;color:var(--bs-emphasis-color,#1e2a4a);line-height:1.2;margin-top:2px;}.gs-stat-sub{font-size:.7rem;color:var(--bs-secondary-color,#8a96b0);}.gs-stat-icon{border-radius:10px;padding:8px;display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0;font-size:.9rem;}.gs-stat-icon.t-success{background:rgba(16,185,129,.08);color:#15803d;}.gs-stat-icon.t-warning{background:rgba(245,158,11,.1);color:#92400e;}.gs-stat-icon.t-primary{background:var(--bs-primary-bg-subtle,rgba(91,191,191,.1));color:var(--bs-primary,#5bbfbf);}.gs-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;}.gs-section-head .info{min-width:0;flex:1;}.gs-section-head h2{font-size:1rem;font-weight:800;color:var(--bs-emphasis-color,#1e2a4a);margin:0;}.gs-section-head p{font-size:.78rem;color:var(--bs-secondary-color,#8a96b0);margin:3px 0 0;line-height:1.5;}.gs-section-head .actions{display:flex;gap:8px;flex-shrink:0;align-items:center;}.gs-btn-add{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:0;background:var(--bs-primary,#5bbfbf);color:var(--m-on-primary,#fff);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;white-space:nowrap;flex-shrink:0;transition:opacity .15s ease;}.gs-btn-add:hover{opacity:.88;}.gs-btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:10px;border:1.5px solid var(--bs-border-color,#e5e7eb);background:var(--bs-white,#fff);color:var(--bs-secondary-color,#8a96b0);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .12s ease;}.gs-btn-ghost:hover{background:var(--bs-tertiary-bg,#f3f4f6);}.gs-btn-ghost:disabled{opacity:.55;cursor:not-allowed;}.gs-range-filter{display:inline-flex;align-self:flex-start;padding:4px;gap:2px;border-radius:12px;background:var(--bs-tertiary-bg,#f3f4f6);border:1px solid var(--bs-border-color,#e5e7eb);max-width:100%;}.gs-range-filter button{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;border:0;cursor:pointer;font-family:inherit;font-size:.84rem;font-weight:600;background:transparent;color:var(--bs-secondary-color,#8a96b0);transition:background 120ms ease,color 120ms ease;}.gs-range-filter button.is-active{background:var(--bs-white,#fff);color:var(--bs-emphasis-color,#1e2a4a);box-shadow:0 1px 3px rgba(15,23,42,.1);}.gs-range-filter .count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:9px;font-size:.7rem;font-weight:700;background:var(--bs-secondary-bg,#f3f4f6);color:var(--bs-secondary-color,#8a96b0);}.gs-range-filter button.is-active .count{background:var(--bs-primary-bg-subtle,rgba(91,191,191,.1));color:var(--bs-primary,#5bbfbf);}.gs-list-card{background:var(--bs-white,#fff);border-radius:18px;box-shadow:0 2px 12px rgba(0,0,0,.07);border:1px solid var(--bs-border-color,#e5e7eb);overflow:hidden;}.gs-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-top:1px solid var(--bs-border-color,#e5e7eb);flex-wrap:wrap;}.gs-list-row:first-child{border-top:0;}.gs-list-row.is-default{background:rgba(var(--bs-primary-rgb,91,191,191),.04);}.gs-list-row.is-past{opacity:.62;}.gs-list-row .left{display:flex;align-items:center;gap:12px;min-width:0;flex:1;}.gs-row-avatar{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.9rem;line-height:0;}.gs-row-avatar.t-warn{background:rgba(245,158,11,.1);color:#92400e;}.gs-row-avatar.t-mute{background:var(--bs-tertiary-bg,#f3f4f6);color:var(--bs-secondary-color,#8a96b0);}.gs-row-avatar.t-ok{background:rgba(16,185,129,.08);color:#15803d;}.gs-row-avatar.t-pend{background:rgba(245,158,11,.1);color:#92400e;}.gs-row-avatar.t-prim{background:var(--bs-primary-bg-subtle,rgba(91,191,191,.1));color:var(--bs-primary,#5bbfbf);font-size:.78rem;font-weight:800;line-height:1;}.gs-row-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.92rem;font-weight:700;}.gs-row-email{overflow-wrap:anywhere;min-width:0;}.efa-row-email{color:var(--bs-emphasis-color,#1e2a4a);font-size:.78rem;font-weight:600;margin-top:2px;overflow-wrap:anywhere;}.gs-row-sub{font-size:.75rem;color:var(--bs-secondary-color,#8a96b0);margin-top:2px;}.gs-row-meta-sep{margin:0 6px;color:var(--bs-border-color,#e5e7eb);}.gs-row-actions{display:flex;gap:6px;flex-shrink:0;align-items:center;}.gs-row-error{flex:0 0 100%;order:10;font-size:.75rem;color:#b91c1c;background:rgba(185,28,28,.06);border:1px solid rgba(185,28,28,.2);border-radius:6px;padding:6px 10px;margin-top:2px;display:flex;gap:6px;align-items:flex-start;line-height:1.4;}.gs-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.7rem;font-weight:700;white-space:nowrap;border:1px solid transparent;}.gs-pill.t-success{background:rgba(16,185,129,.08);color:#15803d;border-color:rgba(16,185,129,.4);}.gs-pill.t-warning{background:rgba(245,158,11,.1);color:#92400e;border-color:rgba(245,158,11,.4);}.gs-pill.t-primary{background:var(--bs-primary-bg-subtle,rgba(91,191,191,.1));color:var(--bs-primary,#5bbfbf);border-color:var(--bs-primary-border-subtle,rgba(91,191,191,.3));}.gs-pill.t-info{background:rgba(14,165,233,.08);color:#0369a1;border-color:rgba(14,165,233,.35);}.gs-pill.t-neutral{background:var(--bs-tertiary-bg,#f3f4f6);color:var(--bs-secondary-color,#8a96b0);border-color:var(--bs-border-color,#e5e7eb);}.gs-icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;line-height:0;background:transparent;font-size:.82rem;}.gs-icon-btn.t-primary{background:var(--bs-primary-bg-subtle,rgba(91,191,191,.1));color:var(--bs-primary,#5bbfbf);border-color:var(--bs-primary-border-subtle,rgba(91,191,191,.3));}.gs-icon-btn.t-danger{background:rgba(220,38,38,.07);color:#dc2626;border-color:rgba(220,38,38,.38);}.gs-row-action-btn{padding:7px 14px;border-radius:8px;font-weight:700;font-size:.78rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.gs-row-action-btn.t-verify{background:rgba(245,158,11,.1);color:#92400e;border:1.5px solid rgba(245,158,11,.4);}.gs-row-action-btn.t-default{background:var(--bs-white,#fff);color:var(--bs-primary,#5bbfbf);border:1.5px solid var(--bs-primary-border-subtle,rgba(91,191,191,.3));}.gs-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:44px 16px;gap:12px;text-align:center;}.gs-empty-icon{width:56px;height:56px;border-radius:50%;background:var(--bs-tertiary-bg,#f3f4f6);color:var(--bs-secondary-color,#8a96b0);display:flex;align-items:center;justify-content:center;font-size:1.4rem;}.gs-empty-title{font-weight:700;font-size:.95rem;color:var(--bs-emphasis-color,#1e2a4a);}.gs-empty-body{font-size:.78rem;color:var(--bs-secondary-color,#8a96b0);max-width:360px;}.gs-empty-mini{padding:36px 24px;text-align:center;color:var(--bs-secondary-color,#8a96b0);}.gs-empty-mini-title{font-size:.92rem;font-weight:600;color:var(--bs-emphasis-color,#1e2a4a);margin-bottom:4px;}.gs-add-panel{background:var(--bs-tertiary-bg,#f3f4f6);border-bottom:1px solid var(--bs-border-color,#e5e7eb);padding:16px 20px;}.gs-test-card{background:var(--bs-white,#fff);border-radius:18px;box-shadow:0 2px 12px rgba(0,0,0,.07);border:1px solid var(--bs-border-color,#e5e7eb);padding:20px 22px;display:flex;flex-direction:column;gap:14px;}.cd-modal-dialog{max-width:760px;}.cd-delete-modal-dialog{max-width:560px;}.cd-modal-content{border:0;border-radius:24px;background:var(--bs-white,#fff);box-shadow:0 32px 80px rgba(15,23,42,.22);overflow:hidden;font-size:.92rem;}.cd-modal-header,.cd-modal-footer,.cd-class-row-main,.cd-class-list-header,.cd-group-row,.cd-checkbox-label,.cd-link-btn,.cd-expand-btn,.cd-modal-close,.cd-duration-banner{display:flex;align-items:center;}.cd-modal-header{gap:1rem;padding:1.35rem 1.4rem 1.15rem;border-bottom:1px solid var(--bs-border-color,#e5e7eb);}.cd-modal-icon{width:52px;height:52px;border-radius:16px;background:rgba(var(--bs-primary-rgb),.09);color:var(--bs-primary,#5bbfbf);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.15rem;}.cd-modal-icon.is-success{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary,#5bbfbf);}.cd-modal-icon.is-danger{background:rgba(239,68,68,.09);color:#ef4444;}.cd-modal-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.94rem;font-weight:800;line-height:1.2;}.cd-modal-subtitle{margin-top:.3rem;color:#8fa0bd;font-size:.82rem;line-height:1.45;}.cd-modal-close{width:36px;height:36px;margin-left:auto;justify-content:center;border:0;border-radius:999px;background:#f4f7fb;color:#9aa8c3;flex-shrink:0;transition:background-color .15s ease,color .15s ease,transform .15s ease;}.cd-modal-close:hover,.cd-modal-close:focus-visible{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary,#5bbfbf);transform:translateY(-1px);}.cd-modal-body{padding:1.35rem 1.4rem 0;}.cd-modal-body form{display:flex;flex-direction:column;gap:1rem;}.cd-modal-body--success{padding-bottom:1.25rem;}.cd-field{display:flex;flex-direction:column;gap:.45rem;}.cd-label{margin:0;color:#7f90af;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cd-input{width:100%;min-height:42px;border:1px solid #dce4f1;border-radius:14px;background:var(--bs-white,#fff);color:var(--bs-emphasis-color,#1e2a4a);padding:.8rem .95rem;font-size:.86rem;outline:0;box-shadow:0 10px 26px -24px rgba(15,23,42,.35);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;}.cd-input:focus{border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 4px rgba(var(--bs-primary-rgb),.12);}.cd-input::placeholder{color:#a0aec0;}.cd-dates-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;}.cd-duration-banner{gap:.6rem;border-radius:14px;border:1px solid rgba(var(--bs-primary-rgb),.24);background:rgba(var(--bs-primary-rgb),.09);color:var(--bs-primary,#5bbfbf);padding:.9rem 1rem;font-size:.84rem;font-weight:700;}.cd-applies-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;}.cd-applies-card{width:100%;min-height:86px;padding:.95rem 1rem;border:1px solid #dce4f1;border-radius:16px;background:var(--bs-white,#fff);display:flex;align-items:flex-start;gap:.9rem;text-align:left;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease;}.cd-applies-card:hover{border-color:rgba(var(--bs-primary-rgb),.38);transform:translateY(-1px);}.cd-applies-card.is-active{border-color:rgba(var(--bs-primary-rgb),.55);background:rgba(var(--bs-primary-rgb),.08);box-shadow:0 0 0 1px rgba(var(--bs-primary-rgb),.12) inset;}.cd-applies-radio{width:20px;height:20px;margin-top:.05rem;border-radius:999px;border:2px solid #d8e0ec;background:var(--bs-white,#fff);flex-shrink:0;position:relative;}.cd-applies-radio.is-active{border-color:var(--bs-primary,#5bbfbf);}.cd-applies-radio.is-active::after{content:"";position:absolute;inset:3px;border-radius:999px;background:var(--bs-primary,#5bbfbf);}.cd-applies-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.86rem;font-weight:800;line-height:1.3;}.cd-applies-sub{margin-top:.35rem;color:#8fa0bd;font-size:.8rem;line-height:1.45;}.cd-class-list{border:1px solid var(--bs-border-color,#e5e7eb);border-radius:18px;background:#fbfcfe;overflow:hidden;}.cd-class-list-header{justify-content:space-between;gap:.85rem;padding:.95rem 1rem;background:var(--bs-white,#fff);border-bottom:1px solid var(--bs-border-color,#e5e7eb);}.cd-class-list-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0;}.cd-class-list-body{max-height:260px;overflow-y:auto;}.cd-class-list-body::-webkit-scrollbar{width:9px;}.cd-class-list-body::-webkit-scrollbar-track{background:transparent;}.cd-class-list-body::-webkit-scrollbar-thumb{background:#b8c2d4;border-radius:999px;border:2px solid transparent;background-clip:padding-box;}.cd-class-row+.cd-class-row{border-top:1px solid var(--bs-border-color,#e5e7eb);}.cd-class-row-main{justify-content:space-between;gap:.85rem;padding:.95rem 1rem;}.cd-checkbox-label,.cd-group-row{gap:.75rem;min-width:0;color:var(--bs-emphasis-color,#1e2a4a);font-weight:700;}.cd-group-row{padding:.8rem 1rem .8rem 3.1rem;font-weight:600;color:#5f6f8f;}.cd-group-row+.cd-group-row{border-top:1px solid rgba(229,231,235,.7);}.cd-group-list{border-top:1px solid rgba(229,231,235,.8);background:rgba(var(--bs-primary-rgb),.03);}.cd-checkbox{width:18px;height:18px;margin:0;accent-color:var(--bs-primary,#5bbfbf);flex-shrink:0;}.cd-checkbox--sm{width:16px;height:16px;}.cd-checkbox.is-partial{accent-color:var(--bs-primary,#5bbfbf);}.cd-expand-btn,.cd-link-btn{justify-content:center;border:0;background:transparent;}.cd-expand-btn{width:34px;height:34px;border-radius:10px;color:#94a3b8;flex-shrink:0;transition:background-color .15s ease,color .15s ease,transform .15s ease;}.cd-expand-btn i{transition:transform .15s ease;}.cd-expand-btn:hover,.cd-expand-btn:focus-visible{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary,#5bbfbf);}.cd-expand-btn.is-open i{transform:rotate(180deg);}.cd-link-btn{color:var(--bs-primary,#5bbfbf);font-size:.84rem;font-weight:800;padding:0;}.cd-link-btn:hover,.cd-link-btn:focus-visible{color:hsl(from var(--bs-primary) h s calc(l - 8));}.cd-selection-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-top:1px solid rgba(248,113,113,.18);background:#fff5f5;color:#ef4444;font-size:.88rem;font-weight:700;}.cd-selection-error.is-danger-card{margin-top:1rem;border:1px solid rgba(239,68,68,.16);border-radius:14px;}.cd-delete-copy{color:#334155;font-size:.86rem;line-height:1.5;padding:.25rem 0 .15rem;}.cd-delete-copy strong{color:var(--bs-emphasis-color,#1e2a4a);font-weight:800;}.cd-bottom-toast-wrap{position:fixed;left:50%;bottom:1.35rem;transform:translateX(-50%);z-index:1085;pointer-events:none;}.cd-bottom-toast{display:inline-flex;align-items:center;gap:.55rem;min-height:40px;padding:.72rem 1.1rem;max-width:min(680px,100vw - 2rem);border-radius:14px;background:#1f2d56;color:#fff;box-shadow:0 18px 36px -22px rgba(15,23,42,.75);font-size:.92rem;font-weight:800;white-space:normal;line-height:1.4;}.cd-bottom-toast i{font-size:.82rem;flex-shrink:0;}.cd-bottom-toast.is-error{background:#7f1d1d;}.efa-default-card{display:flex;align-items:flex-start;gap:.85rem;padding:.95rem 1rem;border:1px solid var(--bs-border-color,#e5e7eb);border-radius:16px;background:var(--bs-white,#fff);cursor:pointer;}.efa-default-check{padding-top:.1rem;flex-shrink:0;}.efa-default-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.86rem;font-weight:800;line-height:1.3;}.efa-default-copy,.efa-helper-copy{color:#8fa0bd;font-size:.8rem;line-height:1.45;}.efa-default-copy{margin-top:.3rem;}.efa-helper-copy{padding:0 .05rem;}.efa-table-loading{min-height:260px;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;}.efa-table-loading-dots{display:inline-flex;align-items:center;gap:.45rem;}.efa-table-loading-dots span{width:10px;height:10px;border-radius:999px;background:var(--bs-primary,#5bbfbf);opacity:.25;animation:efa-table-loader 1s ease-in-out infinite;}.efa-table-loading-dots span:nth-child(2){animation-delay:.15s;}.efa-table-loading-dots span:nth-child(3){animation-delay:.3s;}@keyframes efa-table-loader{0%,80%,100%{opacity:.25;transform:translateY(0) scale(.92);}40%{opacity:1;transform:translateY(-2px) scale(1);}}.rq-row{align-items:center;}.rq-row-content{min-width:0;flex:1 1 auto;}.rq-row-tags{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:.45rem;}.rq-row-actions{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex-shrink:0;}.rq-move-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--bs-border-color,#e5e7eb);background:var(--bs-white,#fff);color:#1e3a8a;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;transition:border-color .15s ease,color .15s ease,background-color .15s ease;}.rq-move-btn:hover,.rq-move-btn:focus-visible{border-color:rgba(var(--bs-primary-rgb),.28);color:var(--bs-primary,#5bbfbf);background:rgba(var(--bs-primary-rgb),.05);}.rq-move-btn:disabled{color:#cbd5e1;background:#f8fafc;border-color:#e2e8f0;cursor:not-allowed;}.rq-textarea{min-height:72px;resize:vertical;}.rq-select{min-height:48px;}.rq-required-card{display:flex;align-items:flex-start;gap:.85rem;padding:.95rem 1rem;border:1px solid var(--bs-border-color,#e5e7eb);border-radius:16px;background:var(--bs-white,#fff);cursor:pointer;}.rq-required-check{padding-top:.1rem;flex-shrink:0;}.rq-required-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.86rem;font-weight:800;line-height:1.3;}.rq-required-copy{margin-top:.3rem;color:#8fa0bd;font-size:.8rem;line-height:1.45;}.rq-validation{color:#dc2626;font-size:.82rem;font-weight:700;}.cd-modal-footer{justify-content:flex-end;gap:.8rem;padding:1rem 1.4rem 1.25rem;margin:0 -1.4rem;border-top:1px solid var(--bs-border-color,#e5e7eb);background:#fbfcfe;}.cd-btn-cancel,.cd-btn-save,.cd-btn-delete{min-width:140px;min-height:42px;border-radius:14px;padding:.78rem 1.15rem;font-size:.85rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease,color .15s ease;}.cd-btn-cancel{border-color:#dbe3ef;background:var(--bs-white,#fff);color:#7383a4;}.cd-btn-cancel:hover,.cd-btn-cancel:focus-visible{border-color:rgba(var(--bs-primary-rgb),.24);color:var(--bs-primary,#5bbfbf);}.cd-btn-save{background:var(--bs-primary,#5bbfbf);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));box-shadow:0 14px 30px -20px rgba(var(--bs-primary-rgb),.85);}.cd-btn-save:hover,.cd-btn-save:focus-visible{background:hsl(from var(--bs-primary) h s calc(l - 8));transform:translateY(-1px);}.cd-btn-save:disabled{background:#eef2f7;color:#94a3b8;box-shadow:none;transform:none;cursor:not-allowed;}.cd-btn-delete{background:#ef4444;color:#fff;box-shadow:0 14px 30px -20px rgba(239,68,68,.75);}.cd-btn-delete:hover,.cd-btn-delete:focus-visible{background:#dc2626;transform:translateY(-1px);}.cd-btn-delete:disabled{background:#fecaca;color:#fff;box-shadow:none;transform:none;cursor:not-allowed;}.cd-success-card{border:1px solid rgba(var(--bs-primary-rgb),.24);border-radius:18px;background:rgba(var(--bs-primary-rgb),.08);padding:1rem 1rem 1.05rem;}.cd-success-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.95rem;}.cd-success-name{color:var(--bs-emphasis-color,#1e2a4a);font-size:.94rem;font-weight:800;line-height:1.2;}.cd-success-badges{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}.cd-success-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:.25rem .65rem;border-radius:999px;border:1px solid rgba(245,158,11,.45);background:rgba(245,158,11,.12);color:#b45309;font-size:.78rem;font-weight:800;}.cd-success-badge.is-primary{border-color:rgba(var(--bs-primary-rgb),.38);background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary,#5bbfbf);}.cd-success-meta{display:grid;gap:.85rem;}.cd-success-meta-row{display:flex;align-items:flex-start;gap:.8rem;}.cd-success-meta-icon{width:28px;height:28px;border-radius:10px;background:var(--bs-white,#fff);color:var(--bs-primary,#5bbfbf);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.cd-success-meta-label{color:#8fa0bd;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}.cd-success-meta-value{color:var(--bs-emphasis-color,#1e2a4a);font-size:.86rem;font-weight:800;line-height:1.35;margin-top:.18rem;}.cd-success-note{display:flex;align-items:flex-start;gap:.8rem;margin-top:.8rem;border:1px solid rgba(251,191,36,.45);border-radius:18px;background:#fff7ed;padding:1rem;}.cd-success-note-icon{width:28px;height:28px;border-radius:10px;background:var(--bs-white,#fff);color:#c2410c;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.cd-success-note-title{color:var(--bs-emphasis-color,#1e2a4a);font-size:.86rem;font-weight:800;line-height:1.3;}.cd-success-note-copy{margin-top:.3rem;color:#334155;font-size:.82rem;line-height:1.48;}@media(max-width:768px){.cd-modal-dialog{max-width:calc(100vw - 1rem);margin:.5rem auto;}.cd-modal-header,.cd-modal-body,.cd-modal-footer{padding-left:1rem;padding-right:1rem;}.cd-modal-footer{margin:0 -1rem;}.cd-dates-row,.cd-applies-grid{grid-template-columns:1fr;}.cd-success-head,.cd-class-list-header,.cd-modal-footer{flex-direction:column;align-items:stretch;}.cd-bottom-toast-wrap{left:.75rem;right:.75rem;bottom:.85rem;transform:none;}.cd-bottom-toast{width:100%;justify-content:center;white-space:normal;text-align:center;}.cd-btn-cancel,.cd-btn-save,.cd-btn-delete{width:100%;min-width:0;}.rq-row{align-items:flex-start;}.rq-row-actions{width:100%;justify-content:flex-end;margin-left:0;}}@media(max-width:768px){.gs-stats-row{grid-template-columns:1fr 1fr;gap:8px;}.gs-section-head{flex-direction:column;align-items:stretch;}.gs-btn-add,.gs-btn-ghost{justify-content:center;}.settings-admin__tab-nav{display:none;}.settings-admin__mobile-actions{display:flex;}.settings-admin__tab-card{border-radius:0;border:0;box-shadow:none;background:transparent;}.settings-admin .members-page-header{align-items:flex-start;justify-content:space-between;gap:.85rem;flex-wrap:nowrap;}.settings-admin .members-page-title{font-size:1.05rem;line-height:1.2;}.settings-admin .members-page-subtitle{max-width:none;font-size:.82rem;line-height:1.45;}.settings-admin__mobile-header-copy{padding-right:.15rem;}.settings-admin .gs-stack>.gs-stats-row{display:none;}.gs-stack{padding:14px 0 24px;}.gs-section-head{padding:0 12px;}.gs-list-card{border-radius:18px;margin:0 .5rem;}.gs-list-row{padding:14px 16px;}.gs-row-actions{width:auto;margin-left:auto;}.settings-admin__mobile-sheet-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:1060;}.settings-admin__mobile-sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:1061;background:var(--bs-white,#fff);border-radius:22px 22px 0 0;box-shadow:0 -16px 48px rgba(15,23,42,.22);padding-top:.75rem;transform:translate3d(0,100%,0);transition:transform 180ms ease-out;max-height:min(72vh,560px);overflow:hidden;}.settings-admin__mobile-sheet.is-open{transform:translate3d(0,0,0);}.settings-admin__mobile-sheet-head{padding:0 1rem 1rem;border-bottom:1px solid var(--bs-border-color,#e5e7eb);margin-bottom:1rem;}.settings-admin__mobile-sheet-body{padding:0 1rem 1.1rem;overflow-y:auto;max-height:calc(min(72vh,560px) - 92px);}.settings-admin__mobile-stats-grid{grid-template-columns:1fr 1fr;}.settings-admin__mobile-stats-grid .gs-stat-tile:last-child:nth-child(odd){grid-column:1/-1;}.settings-admin .members-card.settings-admin__tab-card{padding:0;}.settings-admin .rq-row-actions,.settings-admin .cd-class-list-actions{width:100%;}.settings-admin .gs-row-action-btn,.settings-admin .gs-btn-add,.settings-admin .gs-btn-ghost{width:100%;justify-content:center;}}.shop-admin-page{padding:1.5rem 1.75rem 2.5rem;background:#f4f6f9;min-height:calc(100vh - 4rem);font-family:"Nunito",system-ui,sans-serif;}.shop-admin-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;}.shop-admin-title{font-size:1.65rem;font-weight:800;margin:0 0 .35rem;display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;color:#1e2a4a;}.shop-admin-badge{font-size:.72rem;font-weight:700;padding:.25rem .65rem;border-radius:999px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border:1px solid var(--bs-primary-border-subtle);vertical-align:middle;}.shop-admin-subtitle{margin:0;color:#6b7280;font-size:.9rem;}.shop-admin-header-actions{display:flex;flex-wrap:wrap;gap:.5rem;}.shop-products-admin-title-row{display:flex;align-items:flex-start;gap:.85rem;}.shop-products-admin-title-icon{width:52px;height:52px;border-radius:14px;background:#d9fbf3;color:#0f7f78;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.35rem;}.shop-products-admin-title-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;}.shop-btn-categories,.shop-btn-manage-categories{font-weight:600;font-size:.88rem;padding:.5rem 1rem;border-radius:10px;border:1.5px solid #e8ecf1;background:#fff;color:#1e2a4a;display:inline-flex;align-items:center;gap:.45rem;box-shadow:0 1px 2px rgba(30,42,74,.04);}.shop-btn-categories i,.shop-btn-manage-categories i{font-size:.95rem;color:#8a96b0;}.shop-btn-categories:hover,.shop-btn-manage-categories:hover{background:#fafbfc;border-color:#d5dce5;}.shop-btn-categories.active,.shop-btn-manage-categories.active{background:var(--bs-primary-bg-subtle);border-color:var(--bs-primary);color:var(--bs-primary);}.shop-btn-categories.active i,.shop-btn-manage-categories.active i{color:var(--bs-primary);}.shop-btn-add,.shop-btn-add-product{font-weight:700;font-size:.88rem;padding:.5rem 1.15rem;border-radius:10px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));display:inline-flex;align-items:center;justify-content:center;gap:.4rem;box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.35);}.shop-btn-add:hover,.shop-btn-add-product:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-admin-body{display:block;}.shop-admin-body-with-editor{display:grid;grid-template-columns:1fr minmax(340px,420px);gap:1.25rem;align-items:start;}.shop-admin-main{background:#fff;border-radius:16px!important;border:1px solid #e8ecf1!important;box-shadow:0 2px 12px rgba(30,42,74,.06)!important;overflow:visible;}.shop-admin-main>.card-body{overflow:visible;}.shop-loading,.shop-empty{padding:3.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;}.shop-empty .btn-primary{margin-top:.5rem;font-weight:700;border-radius:10px;}.shop-search-wrap .input-group{border-radius:12px;overflow:hidden;border:1px solid #e8ecf1;background:#fafbfc;}.shop-search-wrap .input-group .input-group-text{border:0;background:transparent;}.shop-search-wrap .input-group .form-control{border:0;background:transparent;font-size:.9rem;padding-top:.65rem;padding-bottom:.65rem;}.shop-search-wrap .input-group .form-control:focus{box-shadow:none;}.shop-tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.75rem 1rem 0;border-bottom:1px solid #e5e7eb;}.shop-tab{background:none;border:0;border-bottom:2px solid transparent;padding:.5rem .85rem;font-weight:600;font-size:.88rem;color:#6b7280;cursor:pointer;margin-bottom:-1px;}.shop-tab.active{color:var(--bs-primary);border-bottom-color:var(--bs-primary);}.shop-tab-count{display:inline-block;margin-left:.35rem;font-size:.78rem;font-weight:700;color:#9ca3af;}.shop-tab.active .shop-tab-count{color:var(--bs-primary);}.shop-products-table{font-size:.88rem;}.shop-products-table thead th{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;white-space:nowrap;}.shop-products-table tbody td{padding:.85rem 1rem;border-bottom:1px solid #f3f4f6;vertical-align:middle;}.shop-product-row{cursor:pointer;}.shop-product-row:hover{background:#f9fafb;}.shop-product-row.expanded{background:#f9fafb;}.shop-product-name-row{display:inline-flex;align-items:center;gap:.35rem;}.shop-row-chevron{flex-shrink:0;font-size:.75rem;color:#9ca3af;transition:transform .15s ease;transform:rotate(-90deg);}.shop-row-chevron.expanded{transform:rotate(0deg);color:var(--bs-primary);}.shop-variant-expand-row td{border-bottom:1px solid #e5e7eb;background:#fafbfc;}.shop-variant-expand-panel{margin-left:1rem;padding:.5rem 1rem .85rem 1.25rem;border-left:3px solid var(--bs-primary);}.shop-variant-subtable{width:100%;font-size:.85rem;}.shop-variant-subtable thead th{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;padding:.35rem .75rem .5rem 0;border:0;background:transparent;}.shop-variant-subtable tbody td{padding:.55rem .75rem .55rem 0;border:0;vertical-align:middle;background:transparent;}.shop-variant-subtable .shop-was-price{display:inline;margin-left:.35rem;}.shop-default-price-hint{display:block;font-size:.72rem;color:#9ca3af;margin-top:.1rem;}.shop-field-hint{font-size:.8rem;color:#8a96b0;margin:0;}.shop-on-sale-block{padding-top:.25rem;}.shop-on-sale-toggle-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.shop-on-sale-toggle-text{flex:1;min-width:0;}.shop-on-sale-hint{margin-top:.25rem;font-size:.8rem;color:#8a96b0;line-height:1.4;}.shop-on-sale-switch .form-check-input{width:2.5rem;height:1.35rem;cursor:pointer;}.shop-on-sale-switch .form-check-input:checked{background-color:#dc2626;border-color:#dc2626;}.shop-on-sale-switch .form-check-input:focus{box-shadow:0 0 0 3px rgba(220,38,38,.25);}.shop-sale-price-panel{margin-top:.85rem;padding:.85rem 1rem;border-radius:12px;background:#fff5f5;border:1px solid #fecaca;}.shop-sale-price-label{display:block;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9f1239;margin-bottom:.45rem;}.shop-sale-price-input-wrap{display:flex;align-items:center;background:#fff;border:1px solid #fecaca;border-radius:10px;overflow:hidden;transition:border-color .15s ease;}.shop-sale-price-input-wrap .form-control{border:0!important;border-radius:0!important;box-shadow:none!important;outline:0!important;background:transparent;padding-left:.25rem;font-size:.9rem;}.shop-sale-price-input-wrap .form-control:focus,.shop-sale-price-input-wrap .form-control:focus-visible,.shop-sale-price-input-wrap .form-control:active{border:0!important;box-shadow:none!important;outline:0!important;background:transparent;}.shop-sale-price-input-wrap:focus-within{border-color:#f87171;box-shadow:none;}.shop-sale-price-currency{padding:.45rem 0 .45rem .65rem;font-size:.9rem;color:#8a96b0;flex-shrink:0;}.shop-sale-price-warning{margin-top:.5rem;font-size:.78rem;color:#b45309;font-weight:500;}.shop-variant-sale-summary{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid #e5e7eb;}.shop-variant-sale-badge{font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#dc2626;background:#fef2f2;border-radius:4px;padding:.15rem .4rem;}.shop-variant-sale-detail{font-size:.82rem;color:#1e2a4a;}.shop-was-price-inline{color:#9ca3af;text-decoration:line-through;margin-left:.15rem;}.shop-product-thumb{width:44px;height:44px;border-radius:10px;flex-shrink:0;overflow:hidden;background:#e5e7eb;}.shop-product-thumb.shop-cat-blue{background:rgba(59,130,246,.15);}.shop-product-thumb.shop-cat-violet{background:rgba(139,92,246,.15);}.shop-product-thumb.shop-cat-teal{background:rgba(20,184,166,.15);}.shop-product-thumb.shop-cat-amber{background:rgba(245,158,11,.15);}.shop-product-thumb.shop-cat-rose{background:rgba(244,63,94,.15);}.shop-product-thumb.shop-cat-slate{background:rgba(100,116,139,.15);}.shop-product-thumb-img{width:100%;height:100%;object-fit:cover;}.shop-cat-pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;}.shop-cat-pill.shop-cat-blue{background:rgba(59,130,246,.12);color:#2563eb;}.shop-cat-pill.shop-cat-violet{background:rgba(139,92,246,.12);color:#7c3aed;}.shop-cat-pill.shop-cat-teal{background:rgba(20,184,166,.12);color:#0d9488;}.shop-cat-pill.shop-cat-amber{background:rgba(245,158,11,.12);color:#d97706;}.shop-cat-pill.shop-cat-rose{background:rgba(244,63,94,.12);color:#e11d48;}.shop-cat-pill.shop-cat-slate{background:rgba(100,116,139,.12);color:#475569;}.shop-sale-price{color:#dc2626;font-weight:700;margin-right:.35rem;}.shop-sale-badge{font-size:.65rem;font-weight:800;color:#dc2626;margin-right:.35rem;}.shop-was-price{display:block;font-size:.78rem;color:#9ca3af;text-decoration:line-through;}.shop-stock-low{color:#d97706;font-weight:600;}.shop-stock-out{color:#dc2626;font-weight:600;}.shop-price-cell{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.15rem .35rem;}.shop-hover-trigger{position:relative;display:inline-flex;align-items:center;gap:.2rem;max-width:100%;}.shop-hover-trigger:hover .shop-hover-popover,.shop-hover-trigger:focus-within .shop-hover-popover{opacity:1;visibility:visible;}.shop-hover-trigger:hover .shop-hover-chevron,.shop-hover-trigger:focus-within .shop-hover-chevron{color:var(--bs-primary);}.shop-hover-trigger.shop-hover-trigger--above .shop-hover-popover{top:auto;bottom:calc(100% + 6px);}.shop-hover-trigger.shop-hover-trigger--above .shop-hover-popover::before{top:auto;bottom:-8px;}.shop-hover-trigger-content{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.15rem .35rem;}.shop-hover-chevron{font-size:.65rem;color:#9ca3af;flex-shrink:0;line-height:1;}.shop-hover-popover{position:absolute;left:0;top:calc(100% + 6px);z-index:1100;min-width:220px;padding:.65rem .75rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 25px rgba(15,23,42,.12);opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;}.shop-hover-popover::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px;}.shop-hover-popover-title{font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#9ca3af;margin-bottom:.5rem;}.shop-hover-popover-list{list-style:none;padding:0;margin:0;}.shop-hover-popover-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.3rem 0;font-size:.84rem;}.shop-hover-popover-label{color:#374151;}.shop-hover-popover-values{text-align:right;white-space:nowrap;}.shop-hover-popover-total{display:flex;justify-content:space-between;margin-top:.45rem;padding-top:.45rem;border-top:1px solid #e5e7eb;font-size:.84rem;font-weight:700;color:#111827;}.shop-table-wrap.table-responsive{overflow:visible;padding-bottom:.5rem;}.shop-table-pagination{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem;border-top:1px solid #e5e7eb;background:#fff;}.shop-table-pagination-per-page{display:inline-flex;flex:0 0 auto;align-items:center;gap:.55rem;min-width:0;}.shop-table-pagination-label{margin:0;font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#9ca3af;white-space:nowrap;}.shop-table-pagination-select{appearance:none;flex:0 0 auto;width:4.5rem;min-width:4.5rem;max-width:4.5rem;height:2rem;padding:0 1.75rem 0 .65rem;border:1px solid #e5e7eb;border-radius:8px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%239ca3af' d='M4.427 6.427l3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 6H4.604a.25.25 0 0 0-.177.427z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;background-size:.75rem;font-size:.84rem;font-weight:600;line-height:1.2;color:#374151;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04);}.shop-table-pagination-select:focus{border-color:var(--bs-primary);outline:0;box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.15);}.shop-table-pagination-end{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:.85rem;margin-left:auto;min-width:0;}.shop-table-pagination-range{font-size:.84rem;font-weight:500;color:#6b7280;white-space:nowrap;}.shop-table-pagination-controls{display:inline-flex;flex:0 0 auto;align-items:center;gap:.3rem;padding:.15rem;border:1px solid #e5e7eb;border-radius:9px;background:#fafbfc;}.shop-table-pagination-page{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;padding:0 .35rem;font-size:.82rem;font-weight:700;color:#374151;white-space:nowrap;}.shop-table-pagination-btn{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#6b7280;cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease;}.shop-table-pagination-btn .bi{font-size:.9rem;line-height:1;}.shop-table-pagination-btn:hover:not(:disabled){border-color:#e5e7eb;color:var(--bs-primary);background:#fff;}.shop-table-pagination-btn:disabled{opacity:.35;cursor:not-allowed;}@media(max-width:575.98px){.shop-table-pagination{flex-wrap:wrap;row-gap:.65rem;}.shop-table-pagination-end{width:100%;margin-left:0;justify-content:space-between;}}.shop-products-table tbody tr.shop-product-row:last-of-type td{position:relative;}.shop-status-pill{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;}.shop-status-pill.active{background:rgba(16,185,129,.1);color:#15803d;border:1px solid rgba(16,185,129,.35);}.shop-status-pill.inactive{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb;}.shop-row-actions{display:flex;gap:.35rem;justify-content:flex-end;}.shop-icon-btn{width:32px;height:32px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}.shop-icon-btn.danger{color:#dc2626;border-color:rgba(220,38,38,.3);background:rgba(220,38,38,.05);}.shop-icon-btn:disabled{opacity:.45;cursor:not-allowed;}.shop-categories-panel{margin-bottom:1rem;}.shop-categories-panel-inner{background:#fff;border:1px solid #e8ecf1;border-radius:16px;box-shadow:0 2px 12px rgba(30,42,74,.06);overflow:hidden;}.shop-categories-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem .85rem;border-bottom:1px solid #f0f2f5;}.shop-categories-title{font-size:1rem;font-weight:800;color:#1e2a4a;margin:0 0 .2rem;}.shop-categories-desc{font-size:.82rem;color:#8a96b0;margin:0;max-width:420px;line-height:1.45;}.shop-btn-done{font-weight:600;font-size:.85rem;padding:.4rem .9rem;border-radius:10px;border:1.5px solid #e8ecf1;background:#fff;color:#1e2a4a;white-space:nowrap;}.shop-btn-done:hover:not(:disabled){background:#f9fafb;}.shop-btn-done:disabled{opacity:.6;}.shop-categories-panel-body{position:relative;padding:.35rem 1.25rem 1.1rem;min-height:4rem;}.shop-categories-panel-body.is-busy{pointer-events:none;}.shop-categories-loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.72);border-radius:0 0 16px 16px;}.shop-categories-error{color:#dc2626;font-size:.82rem;margin:.5rem 0 0;}.shop-category-row{display:grid;grid-template-columns:auto minmax(120px,1fr) auto auto auto;align-items:center;gap:.85rem;padding:.75rem 0;border-bottom:1px solid #f3f4f6;}.shop-category-row:last-of-type{border-bottom:0;}.shop-category-name-input{border:0;background:transparent;font-weight:600;font-size:.9rem;color:#1e2a4a;padding:.25rem 0;min-width:0;}.shop-category-name-input:focus{outline:0;box-shadow:0 1px 0 0 var(--bs-primary);}.shop-category-name-input:disabled{opacity:.6;}.shop-category-count{font-size:.82rem;color:#8a96b0;white-space:nowrap;}.shop-category-colors{display:flex;gap:.4rem;align-items:center;flex-wrap:nowrap;}.shop-color-dot{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;flex-shrink:0;transition:transform .12s ease,box-shadow .12s ease;}.shop-color-dot.shop-cat-blue{background:#3b82f6;}.shop-color-dot.shop-cat-violet{background:#8b5cf6;}.shop-color-dot.shop-cat-teal{background:#14b8a6;}.shop-color-dot.shop-cat-amber{background:#f59e0b;}.shop-color-dot.shop-cat-rose{background:#f43f5e;}.shop-color-dot.shop-cat-slate{background:#64748b;}.shop-color-dot.selected{border-color:#1e2a4a;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(30,42,74,.15);transform:scale(1.08);}.shop-color-dot:hover:not(:disabled){transform:scale(1.05);}.shop-color-dot:disabled{opacity:.5;cursor:not-allowed;}.shop-category-add-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.75rem;padding:.85rem 0 .25rem;margin-top:.25rem;border-top:1px dashed #e5e7eb;}.shop-category-add-icon{width:28px;height:28px;border-radius:8px;background:#f3f4f6;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;}.shop-category-add-input{border:0;background:transparent;box-shadow:none;padding-left:0;font-size:.9rem;color:#8a96b0;}.shop-category-add-input::placeholder{color:#b0b8c9;}.shop-category-add-input:focus{box-shadow:none;color:#1e2a4a;}.shop-btn-add-category{font-weight:700;font-size:.85rem;padding:.4rem 1rem;border-radius:10px;border:0;background:#e8ecf1;color:#8a96b0;}.shop-btn-add-category:not(:disabled){background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-btn-add-category:not(:disabled):hover{background:hsl(from var(--bs-primary) h s calc(l - 8));}.shop-btn-add-category:disabled{opacity:.55;}.shop-editor-panel{border-radius:16px;border:1px solid #e8ecf1!important;box-shadow:0 4px 24px rgba(30,42,74,.1)!important;background:#fff;position:sticky;top:1rem;align-self:start;display:flex;flex-direction:column;max-height:calc(100vh - 2rem);height:fit-content;overflow:hidden;}.shop-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.15rem;border-bottom:1px solid #e5e7eb;flex-shrink:0;}.shop-editor-body{padding:1rem 1.15rem;overflow-x:hidden;overflow-y:auto;flex:0 1 auto;min-height:0;max-height:calc(100vh - 9rem);overscroll-behavior:contain;}.shop-editor-body .form-label{font-weight:700;font-size:.85rem;color:#1e2a4a;margin-bottom:.35rem;}.shop-editor-body .form-control,.shop-editor-body .form-select,.shop-editor-body .daterangepicker select.monthselect,.daterangepicker .shop-editor-body select.monthselect,.shop-editor-body .daterangepicker select.yearselect,.daterangepicker .shop-editor-body select.yearselect{border-radius:10px;border-color:#e8ecf1;font-size:.9rem;}.shop-editor-body .form-control:focus,.shop-editor-body .form-select:focus,.shop-editor-body .daterangepicker select.monthselect:focus,.daterangepicker .shop-editor-body select.monthselect:focus,.shop-editor-body .daterangepicker select.yearselect:focus,.daterangepicker .shop-editor-body select.yearselect:focus{border-color:hsl(from var(--bs-primary) h s calc(l + 5));box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.25);}.shop-editor-body .form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary);}.shop-editor-footer{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;padding:.85rem 1.15rem;border-top:1px solid #e5e7eb;background:#fafbfc;flex-shrink:0;margin-top:auto;}.shop-editor-footer .btn-link{font-weight:600;color:var(--bs-primary);text-decoration:none;padding:.35rem .5rem;}.shop-editor-footer .btn-link:hover{color:hsl(from var(--bs-primary) h s calc(l - 8));text-decoration:none;}.shop-editor-footer .btn-primary{font-weight:700;border-radius:10px;padding:.5rem 1.25rem;background:var(--bs-primary);border-color:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-editor-footer .btn-primary:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));border-color:hsl(from var(--bs-primary) h s calc(l - 8));}.shop-editor-alert{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.65rem .85rem;font-size:.82rem;color:#92400e;margin-bottom:1rem;}.shop-editor-section{padding:.75rem 0;border-top:1px solid #f3f4f6;}.shop-addon-only-section{border-top:0;padding-top:0;}.shop-addon-only-toggle-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.shop-addon-only-toggle-text{flex:1;min-width:0;}.shop-addon-only-label{display:block;font-weight:700;font-size:.9rem;color:#1e2a4a;margin-bottom:.25rem;cursor:pointer;}.shop-addon-only-hint{font-size:.82rem;color:#6b7280;line-height:1.45;}.shop-addon-only-switch{flex-shrink:0;padding-top:.1rem;}.shop-addon-only-switch .form-check-input{width:2.5rem;height:1.35rem;cursor:pointer;}.shop-addon-config{margin-top:1rem;padding:1rem 1.05rem;border-radius:12px;background:#f5f3ff;border:1px solid #e9e5ff;}.shop-addon-config-title{margin:0 0 .85rem;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#7c3aed;}.shop-addon-config-hint{font-size:.82rem;color:#6b7280;line-height:1.45;}.shop-addon-config-segment{display:inline-flex;width:100%;max-width:100%;padding:4px;gap:2px;margin-bottom:1rem;border-radius:10px;background:rgba(255,255,255,.65);border:1px solid #e9e5ff;}.shop-addon-config-segment-btn{flex:1;padding:.5rem .75rem;border:0;border-radius:8px;background:transparent;color:#6b7280;font-size:.88rem;font-weight:600;cursor:pointer;transition:background 120ms ease,color 120ms ease,box-shadow 120ms ease;}.shop-addon-config-segment-btn.is-active{background:#fff;color:#1e2a4a;box-shadow:0 1px 3px rgba(124,58,237,.12);}.shop-addon-config-segment-btn:hover:not(.is-active){color:#4b5563;}.shop-addon-config-qty-label{display:block;margin-bottom:.4rem;font-size:.88rem;font-weight:700;color:#1e2a4a;}.shop-addon-config-qty-input{max-width:6rem;border-radius:10px;border-color:#e5e7eb;background:#fff;}.shop-option-cards{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;}.shop-option-card{position:relative;text-align:left;border:2px solid #e5e7eb;border-radius:12px;padding:.85rem;background:#fff;cursor:pointer;}.shop-option-card.selected{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);}.shop-option-title{display:block;font-weight:700;font-size:.88rem;}.shop-option-check{position:absolute;top:.5rem;right:.5rem;color:var(--bs-primary);}.shop-photo-section{position:relative;}.shop-photos-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.65rem;}.shop-photos-count{font-size:.78rem;color:#8a96b0;text-align:right;line-height:1.3;}.shop-photo-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;border:2px dashed #d1d5db;border-radius:12px;padding:1.5rem;cursor:pointer;text-align:center;color:#6b7280;background:#fff;}.shop-photo-drop:hover{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.06);}.shop-photo-drop:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px;}.shop-photo-main{position:relative;width:100%;height:100%;border-radius:12px;overflow:hidden;background:#e5e7eb;margin-bottom:.65rem;}.shop-photo-main img{width:100%;height:100%;object-fit:cover;display:block;}.shop-photo-main-badge{position:absolute;top:.5rem;left:.5rem;z-index:2;display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:999px;background:#fff;font-size:.72rem;font-weight:600;color:#1e2a4a;box-shadow:0 1px 4px rgba(0,0,0,.12);pointer-events:none;}.shop-photo-main-badge .bi-star-fill{color:#f59e0b;font-size:.7rem;}.shop-photo-main-overlay{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .15s ease;}.shop-photo-main:hover .shop-photo-main-overlay{opacity:1;pointer-events:auto;}.shop-photo-gallery{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem;}.shop-photo-thumb{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;background:#e5e7eb;flex-shrink:0;}.shop-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}.shop-photo-thumb-actions{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;gap:.35rem;padding-top:.35rem;background:rgba(255,255,255,.55);opacity:0;transition:opacity .15s ease;}.shop-photo-thumb:hover .shop-photo-thumb-actions{opacity:1;}.shop-photo-action{position:relative;width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;color:#1e2a4a;font-size:.85rem;}.shop-photo-action.set-main{color:#f59e0b;}.shop-photo-action.remove{color:#dc2626;font-size:.95rem;}.shop-photo-action.shop-photo-main-delete{position:absolute;top:.5rem;right:.5rem;left:auto;bottom:auto;z-index:4;color:#dc2626;background:#fff;}.shop-photo-action.shop-photo-main-delete i{color:#dc2626;}.shop-photo-action:hover{transform:scale(1.05);}.shop-photo-action[data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:50%;transform:translateX(-50%);padding:.25rem .5rem;border-radius:6px;background:#1f2937;color:#fff;font-size:.68rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:10;}.shop-photo-action[data-tooltip]:hover::after{opacity:1;}.shop-photo-action.shop-photo-main-delete[data-tooltip]::after{bottom:auto;top:calc(100% + 6px);}.shop-photo-action.set-main[data-tooltip]::after,.shop-photo-action.remove[data-tooltip]::after{bottom:auto;top:calc(100% + 6px);}.shop-photo-add-loading,.shop-photo-drop-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:default;pointer-events:none;}.shop-photo-add-loading .loader-container-sm,.shop-photo-drop-loading .loader-container-sm{margin:0;}.shop-photo-add{width:72px;height:72px;border:2px dashed #d1d5db;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;cursor:pointer;color:#9ca3af;background:#fff;margin:0;flex-shrink:0;}.shop-photo-add i{font-size:1.1rem;line-height:1;}.shop-photo-add span{font-size:.72rem;font-weight:600;}.shop-photo-add:hover{border-color:var(--bs-primary);color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.04);}.shop-toggle-section{padding:.85rem 0;}.shop-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;}.shop-toggle-label{font-weight:700;font-size:.9rem;color:#1e2a4a;}.shop-toggle-hint{margin-top:.35rem;font-size:.8rem;color:#8a96b0;line-height:1.4;}.shop-toggle-section .form-check-input{width:2.5rem;height:1.35rem;cursor:pointer;}.shop-variants-block{border-top:1px solid #e5e7eb;padding-top:1rem;margin-top:.25rem;}.shop-variants-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;}.shop-variants-title{font-size:.95rem;font-weight:700;color:#1e2a4a;margin:0 0 .2rem;}.shop-variants-subtitle{font-size:.78rem;color:#8a96b0;margin:0;line-height:1.4;max-width:16rem;}.shop-variants-add{flex-shrink:0;border:0;background:transparent;padding:0;font-size:.88rem;font-weight:700;color:var(--bs-primary);cursor:pointer;}.shop-variants-add:hover{text-decoration:underline;}.shop-variant-card{border:1px solid #e5e7eb;border-radius:12px;background:#fafbfc;padding:.75rem;margin-bottom:.65rem;}.shop-variant-card-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem;}.shop-variant-card-top .form-control{flex:1;border-radius:10px;font-size:.88rem;}.shop-variant-delete{flex-shrink:0;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:#ef4444;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}.shop-variant-delete:hover{background:#fef2f2;}.shop-variant-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;}.shop-variant-fields.shop-variant-fields-no-stock{grid-template-columns:1fr 1fr;}.shop-variant-field{min-width:0;}.shop-variant-field-label{display:block;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a96b0;margin-bottom:.3rem;}.shop-variant-field-label-price,.shop-variant-field-label-sale{color:#e11d48;}.shop-variant-input-wrap{display:flex;align-items:center;border:1px solid #e8ecf1;border-radius:10px;background:#fff;overflow:hidden;}.shop-variant-input-wrap .form-control{border:0;box-shadow:none;padding-left:.25rem;font-size:.85rem;min-width:0;}.shop-variant-input-wrap .form-control:focus{box-shadow:none;}.shop-variant-currency{padding:.4rem 0 .4rem .55rem;font-size:.85rem;color:#8a96b0;flex-shrink:0;}.shop-variant-currency.is-partial{accent-color:var(--bs-warning,#f59e0b);opacity:.75;}.shop-variant-field>.form-control{border-radius:10px;border-color:#e8ecf1;font-size:.85rem;}@media(max-width:1199.98px){.shop-admin-body-with-editor{grid-template-columns:1fr;}.shop-editor-panel{position:fixed;inset:0;z-index:1050;max-height:100vh;height:100%;border-radius:0;}.shop-editor-panel .shop-editor-body{flex:1 1 auto;max-height:none;}}@media(max-width:991.98px){.shop-category-row{grid-template-columns:1fr;gap:.5rem;}.shop-category-add-row{grid-template-columns:1fr;}}@media(max-width:767.98px){.shop-admin-page{padding:1rem;}.shop-admin-header{flex-direction:column;align-items:stretch;}.shop-products-admin-title-row{gap:.8rem;}.shop-products-admin-title-icon{width:48px;height:48px;border-radius:13px;font-size:1.15rem;}.shop-products-admin-title-copy{gap:.25rem;}.shop-products-admin-header-text .shop-admin-title{font-size:1.95rem;margin-bottom:0;}.shop-products-admin-header-text .shop-admin-badge{font-size:.72rem;}.shop-admin-header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem;}.shop-admin-header-actions .shop-btn-categories,.shop-admin-header-actions .shop-btn-add{flex:1;justify-content:center;padding-left:.75rem;padding-right:.75rem;}.shop-products-mobile-toolbar,.shop-products-mobile-list{display:block;}.shop-products-mobile-toolbar{padding-top:1rem!important;}.shop-option-cards{grid-template-columns:1fr;}.shop-tabs,.shop-table-wrap{display:none;}.shop-search-wrap{padding-top:.85rem!important;padding-bottom:.9rem!important;}.shop-search-wrap .input-group{border-radius:10px;}.shop-search-wrap .form-control{font-size:.85rem;padding-top:.55rem!important;padding-bottom:.55rem!important;}.shop-products-mobile-list{padding-bottom:.95rem!important;}.shop-products-mobile-card{width:100%;border:1px solid #e8ecf1;border-radius:14px;background:#fff;padding:.9rem;text-align:left;box-shadow:0 1px 2px rgba(15,23,42,.03);}.shop-products-mobile-card+.shop-products-mobile-card{margin-top:.85rem;}.shop-products-mobile-card-top{min-width:0;}.shop-products-mobile-name{font-size:.82rem;font-weight:800;color:#1e2a4a;line-height:1.25;}.shop-products-mobile-meta{margin-top:.15rem;font-size:.74rem;color:#64748b;line-height:1.4;}.shop-products-mobile-price{margin-top:.35rem;font-size:.8rem;}.shop-products-mobile-card-footer{margin-top:.85rem;padding-top:.8rem;border-top:1px solid #eef2f6;display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.shop-products-mobile-card-pills{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0;}.shop-products-mobile-edit-icon{width:28px;height:28px;color:#64748b;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.95rem;}.shop-products-categories-inline{padding-top:.3rem!important;padding-bottom:.9rem!important;}.shop-categories-panel-inner{border-radius:14px;box-shadow:none;}.shop-categories-panel-head{padding:1rem 1rem .75rem;}.shop-categories-title{font-size:.98rem;}.shop-categories-desc{font-size:.8rem;line-height:1.4;}.shop-categories-panel-body{padding:.35rem 1rem 1rem;}.shop-category-row{grid-template-columns:auto 1fr;gap:.6rem .8rem;padding:.8rem .1rem;}.shop-category-name-input{padding:.05rem 0;font-size:.88rem;}.shop-category-colors,.shop-category-count,.shop-category-row .shop-icon-btn{grid-column:2;}.shop-category-add-row{grid-template-columns:auto 1fr;gap:.65rem;padding-top:.95rem;}.shop-category-add-input,.shop-category-add-row .shop-category-colors,.shop-category-add-row .shop-btn-add-category{grid-column:2;}.shop-category-add-row .shop-btn-add-category{justify-self:start;}.shop-table-pagination{padding:.7rem .9rem .85rem;}.shop-products-editor-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.52);z-index:1055;}.shop-products-editor-sheet{position:fixed;inset:auto 0 0;z-index:1056;padding-top:2rem;pointer-events:none;}.shop-products-editor-sheet .shop-editor-panel{position:relative;inset:auto;top:auto;max-height:min(86vh,840px);height:auto;width:100%;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.22)!important;pointer-events:auto;overflow:hidden;}.shop-products-editor-sheet .shop-editor-header{padding:1rem 1rem .85rem;}.shop-products-editor-sheet .shop-editor-body{padding:.95rem 1rem 1rem;max-height:calc(86vh - 8rem);}.shop-products-editor-sheet .shop-editor-footer{padding:.8rem 1rem calc(env(safe-area-inset-bottom,0) + .85rem);}}.club-shop-page{max-width:1400px;}.shop-products-mobile-toolbar,.shop-products-mobile-list{display:none;}.shop-products-mobile-toolbar-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.shop-products-mobile-filter-title{font-size:1.05rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.shop-products-mobile-filter-btn{border:1px solid #e8ecf1;border-radius:12px;background:#fff;color:#1e2a4a;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .85rem;font-size:.88rem;font-weight:700;white-space:nowrap;box-shadow:0 1px 2px rgba(30,42,74,.04);}.shop-products-mobile-filter-btn i{font-size:.9rem;color:#8a96b0;}.shop-products-categories-inline .shop-categories-panel{margin-bottom:0;}.shop-products-editor-backdrop{display:none;}.shop-products-editor-sheet{display:contents;}.shop-products-mobile-sheet-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:1050;}.shop-products-mobile-sheet-backdrop.is-open{opacity:1;pointer-events:auto;}.shop-products-mobile-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1051;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.22);transform:translateY(calc(100% + 1rem));opacity:0;pointer-events:none;transition:transform .28s ease,opacity .2s ease;max-height:min(72vh,620px);display:flex;flex-direction:column;}.shop-products-mobile-sheet.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}.shop-products-mobile-sheet-handle{width:44px;height:5px;border-radius:999px;background:#d7dce5;margin:.6rem auto 0;flex-shrink:0;}.shop-products-mobile-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1rem .85rem;border-bottom:1px solid #eef2f6;flex-shrink:0;}.shop-products-mobile-sheet-title{margin:0;font-size:1.05rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.shop-products-mobile-sheet-close{width:2rem;height:2rem;border:0;border-radius:50%;background:#f8fafc;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.shop-products-mobile-filter-list{padding:.9rem 1rem 1.1rem;overflow-y:auto;}.shop-products-mobile-filter-option{width:100%;border:0;border-radius:12px;background:transparent;color:#1e2a4a;padding:.75rem .85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.95rem;font-weight:700;text-align:left;}.shop-products-mobile-filter-option+.shop-products-mobile-filter-option{margin-top:.35rem;}.shop-products-mobile-filter-option.selected{background:#ecf9f8;color:#0f9a94;}.shop-products-mobile-filter-count{min-width:1.65rem;height:1.65rem;padding:0 .45rem;border-radius:999px;background:#f1f5f9;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;}.club-shop-header-actions{display:flex;align-items:flex-start;gap:.75rem;}.club-shop-mobile-header-btn,.club-shop-mobile-filter-btn{display:none;}.club-shop-mobile-header-btn{position:relative;width:2.6rem;height:2.6rem;border:1px solid #e8ecf1;border-radius:12px;background:#fff;color:#1e2a4a;align-items:center;justify-content:center;box-shadow:0 1px 2px rgba(30,42,74,.04);}.club-shop-mobile-header-btn i{font-size:1rem;}.club-shop-mobile-header-count{position:absolute;top:-.35rem;right:-.35rem;min-width:1.15rem;height:1.15rem;padding:0 .2rem;border-radius:999px;background:#0f9a94;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;line-height:1;}.club-shop-mobile-toolbar{display:none;}.club-shop-mobile-toolbar-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.club-shop-mobile-category-title{font-size:1.05rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.club-shop-mobile-filter-btn{border:1px solid #e8ecf1;border-radius:12px;background:#fff;color:#1e2a4a;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .85rem;font-size:.88rem;font-weight:700;white-space:nowrap;box-shadow:0 1px 2px rgba(30,42,74,.04);}.club-shop-mobile-filter-btn i{font-size:.9rem;color:#8a96b0;}.club-shop-section-title{font-size:.88rem;font-weight:700;color:#1e2a4a;margin-bottom:.65rem;display:flex;align-items:center;gap:.4rem;}.club-shop-section-title i{font-size:.95rem;color:#8a96b0;}.club-shop-student-row{display:flex;flex-wrap:wrap;gap:.5rem;}.club-shop-student-card{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .6rem;border:1.5px solid #e8ecf1;border-radius:10px;background:#fff;min-width:0;text-align:left;font-size:.85rem;color:#1e2a4a;box-shadow:0 1px 2px rgba(30,42,74,.04);transition:border-color .15s ease,background .15s ease;}.club-shop-student-card:hover{background:#fafbfc;border-color:#d5dce5;}.club-shop-student-card.selected{background:var(--bs-primary-bg-subtle);border-color:var(--bs-primary);color:var(--bs-primary);}.club-shop-student-card.selected .club-shop-student-icon{background:rgba(var(--bs-primary-rgb),.15);color:var(--bs-primary);}.club-shop-student-card.selected .club-shop-student-name{color:var(--bs-primary);}.club-shop-student-icon{width:26px;height:26px;border-radius:50%;background:rgba(var(--bs-primary-rgb),.08);color:#8a96b0;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8rem;}.club-shop-student-text{display:flex;flex-direction:column;gap:.05rem;flex:1;min-width:0;}.club-shop-student-name{font-size:.85rem;font-weight:600;color:#1e2a4a;line-height:1.2;}.club-shop-student-group{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a96b0;line-height:1.2;}.club-shop-student-count{background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));border-radius:999px;min-width:1.15rem;height:1.15rem;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;padding:0 .25rem;}.club-shop-student-check{color:var(--bs-primary);font-size:.85rem;}.club-shop-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;}.club-shop-product-card{border-radius:12px!important;border:1px solid #e8ecf1!important;box-shadow:none!important;overflow:hidden;font-size:.88rem;}.club-shop-product-card .card-body{padding:.75rem;}.club-shop-product-thumb{height:300px;position:relative;border-radius:0;}.club-shop-product-thumb .shop-sale-badge{position:absolute;top:.4rem;left:.4rem;background:#fee2e2;padding:.15rem .4rem;border-radius:6px;margin-right:0;z-index:1;}.club-shop-product-thumb-clickable{width:100%;border:0;padding:0;display:block;cursor:zoom-in;text-align:left;transition:filter .15s ease;}.club-shop-product-thumb-clickable:hover{filter:brightness(.97);}.club-shop-product-thumb-clickable:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px;}.club-shop-photo-more-tag{position:absolute;right:.45rem;bottom:.45rem;z-index:2;padding:.18rem .5rem;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:.7rem;font-weight:700;line-height:1.25;pointer-events:none;}.book-class-addon-label{margin-bottom:0;}.book-class-addon-photo-btn{color:var(--bs-primary);text-decoration:none;vertical-align:middle;}.book-class-addon-photo-btn:hover,.book-class-addon-photo-btn:focus{color:var(--bs-primary);opacity:.85;}.book-class-addon-photo-btn .bi-images{font-size:1rem;}.club-shop-gallery-backdrop{position:fixed;inset:0;z-index:1060;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:rgba(15,23,42,.82);}.club-shop-gallery{width:min(920px,100%);max-height:calc(100vh - 2.5rem);display:flex;flex-direction:column;gap:1rem;}.club-shop-gallery-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.club-shop-gallery-title{margin:0;font-size:1.35rem;font-weight:800;color:#fff;line-height:1.2;}.club-shop-gallery-counter{margin:.2rem 0 0;font-size:.88rem;font-weight:500;color:rgba(255,255,255,.72);}.club-shop-gallery-close{width:2.25rem;height:2.25rem;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:background .12s ease;}.club-shop-gallery-close:hover{background:rgba(255,255,255,.22);}.club-shop-gallery-stage{position:relative;display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:0;}.club-shop-gallery-main{flex:1;min-width:0;max-height:min(62vh,520px);border-radius:14px;overflow:hidden;background:#e5e7eb;}.club-shop-gallery-main-img{display:block;width:100%;max-height:min(62vh,520px);object-fit:contain;background:#111827;}.club-shop-gallery-nav{width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#374151;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.2);transition:background .12s ease,opacity .12s ease;}.club-shop-gallery-nav:hover:not(:disabled){background:#fff;color:var(--bs-primary);}.club-shop-gallery-nav:disabled{opacity:.35;cursor:not-allowed;}.club-shop-gallery-nav .bi{font-size:1.1rem;line-height:1;}.club-shop-gallery-thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;padding-bottom:.25rem;}.club-shop-gallery-thumb{width:64px;height:64px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.15);cursor:pointer;opacity:.75;transition:border-color .12s ease,opacity .12s ease,transform .12s ease;}.club-shop-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}.club-shop-gallery-thumb:hover{opacity:1;}.club-shop-gallery-thumb.active{border-color:#fff;opacity:1;transform:translateY(-1px);}@media(max-width:767.98px){.club-shop-gallery-backdrop{padding:.75rem;}.club-shop-gallery-title{font-size:1.1rem;}.club-shop-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;}.club-shop-gallery-nav-prev{left:.35rem;}.club-shop-gallery-nav-next{right:.35rem;}.club-shop-gallery-stage{display:block;}}.club-shop-product-name{font-size:.88rem;font-weight:700;color:#1e2a4a;line-height:1.25;}.club-shop-product-desc{font-size:.78rem;color:#8a96b0;margin-bottom:.35rem;line-height:1.35;}.club-shop-price-regular{font-size:.88rem;font-weight:700;color:#1e2a4a;}.club-shop-qty{display:inline-flex;align-items:center;border:1px solid #e8ecf1;border-radius:8px;overflow:hidden;background:#fafbfc;}.club-shop-qty .btn{border:0;border-radius:0;min-width:1.65rem;padding:.1rem .35rem;font-size:.85rem;color:#1e2a4a;background:transparent;}.club-shop-qty .btn:hover:not(:disabled){background:#f0f2f5;}.club-shop-qty span{min-width:1.65rem;text-align:center;font-size:.85rem;font-weight:600;color:#1e2a4a;}.club-shop-qty-sm .btn{min-width:1.35rem;padding:.05rem .25rem;font-size:.78rem;}.club-shop-qty-sm span{min-width:1.35rem;font-size:.78rem;}.club-shop-add-btn{font-weight:600;font-size:.78rem;padding:.4rem .55rem;border-radius:10px;border:1.5px solid var(--bs-primary);color:var(--bs-primary);background:#fff;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.club-shop-add-btn:hover:not(:disabled){background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-color:var(--bs-primary);}.club-shop-add-btn:disabled{opacity:.55;}.club-shop-product-actions{display:flex;align-items:center;gap:.5rem;margin-top:auto;}.club-shop-basket{position:sticky;top:1rem;overflow:hidden;}.club-shop-location-picker{border-top:1px solid #f0f0f0;padding-top:.6rem;}.club-shop-location-label{font-size:.75rem;font-weight:700;color:#666;display:flex;align-items:center;gap:.3em;}.club-shop-location-label i{color:var(--bs-primary);}.club-shop-location-name{font-size:.8rem;font-weight:700;color:#333;}.club-shop-location-address{font-size:.75rem;color:#888;}.club-shop-basket-mobile{display:none;}.club-shop-mobile-sheet-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:1050;}.club-shop-mobile-sheet-backdrop.is-open{opacity:1;pointer-events:auto;}.club-shop-mobile-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1051;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.22);transform:translateY(calc(100% + 1rem));opacity:0;pointer-events:none;transition:transform .28s ease,opacity .2s ease;max-height:min(78vh,680px);display:flex;flex-direction:column;}.club-shop-mobile-sheet.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}.club-shop-mobile-sheet-handle{width:44px;height:5px;border-radius:999px;background:#d7dce5;margin:.6rem auto 0;flex-shrink:0;}.club-shop-mobile-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1rem .85rem;border-bottom:1px solid #eef2f6;flex-shrink:0;}.club-shop-mobile-sheet-title{margin:0;font-size:1.05rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.club-shop-mobile-sheet-close{width:2rem;height:2rem;border:0;border-radius:50%;background:#f8fafc;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.club-shop-mobile-filter-list{padding:.9rem 1rem 1.1rem;overflow-y:auto;}.club-shop-mobile-filter-option{width:100%;border:0;border-radius:12px;background:transparent;color:#1e2a4a;padding:.75rem .85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.95rem;font-weight:700;text-align:left;}.club-shop-mobile-filter-option+.club-shop-mobile-filter-option{margin-top:.35rem;}.club-shop-mobile-filter-option.selected{background:#ecf9f8;color:#0f9a94;}.club-shop-mobile-filter-count{min-width:1.65rem;height:1.65rem;padding:0 .45rem;border-radius:999px;background:#f1f5f9;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;}.club-shop-basket-toast{display:flex;align-items:center;gap:.45rem;padding:.6rem .85rem;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));font-size:.82rem;font-weight:600;line-height:1.3;}.club-shop-basket-toast i{font-size:1rem;flex-shrink:0;}.club-shop-basket-body{padding:.85rem;}.club-shop-basket-item-count{font-size:.78rem;font-weight:600;color:#8a96b0;background:#f3f4f6;padding:.15rem .55rem;border-radius:999px;white-space:nowrap;}.club-shop-basket-student-block.has-divider{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e8ecf1;}.club-shop-basket-student-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.65rem;}.club-shop-basket-student-icon{width:28px;height:28px;border-radius:50%;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.85rem;}.club-shop-basket-student-name{font-size:.85rem;font-weight:700;color:#1e2a4a;line-height:1.25;}.club-shop-basket-student-group{font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#8a96b0;line-height:1.25;}.club-shop-basket-student-total{font-size:.85rem;font-weight:700;color:#1e2a4a;white-space:nowrap;}.club-shop-basket-item{display:flex;gap:.65rem;padding:.45rem 0;}.club-shop-basket-item+.club-shop-basket-item{border-top:1px solid #f3f4f6;}.club-shop-basket-item-thumb{width:44px;height:44px;border-radius:10px;background:#e5e7eb;flex-shrink:0;}.club-shop-basket-item-main{flex:1;min-width:0;}.club-shop-basket-item-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;}.club-shop-basket-item-side{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0;}.club-shop-basket-item-price{font-size:.85rem;font-weight:700;color:#1e2a4a;white-space:nowrap;}.club-shop-basket-remove{border:0;background:transparent;color:#dc2626;padding:0;line-height:1;font-size:.85rem;opacity:.85;}.club-shop-basket-remove:hover{opacity:1;}.club-shop-basket-line-name{font-size:.82rem;font-weight:600;color:#1e2a4a;line-height:1.25;}.club-shop-basket-line-variant{font-size:.75rem;color:#8a96b0;line-height:1.25;margin-top:.1rem;}.club-shop-basket-summary{border-top:1px solid #e8ecf1;padding-top:.65rem;margin-top:.65rem;}.club-shop-basket-summary-row{display:flex;justify-content:space-between;font-size:.85rem;color:#8a96b0;margin-bottom:.35rem;}.club-shop-basket-summary-total{display:flex;justify-content:space-between;font-size:.95rem;font-weight:700;color:#1e2a4a;}.club-shop-empty-icon{font-size:1.5rem;color:#d1d5db;margin-bottom:.5rem;}@media(max-width:1199.98px){.club-shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.club-shop-basket{position:static;}}@media(max-width:767.98px){.shop-admin-page.club-shop-page{padding:1rem .9rem 1.5rem;}.shop-admin-header{margin-bottom:.9rem;gap:.75rem;}.shop-admin-title{font-size:1.9rem;gap:.55rem;margin-bottom:.2rem;}.shop-admin-title .fa{font-size:1rem;}.shop-admin-subtitle{font-size:.8rem;line-height:1.4;}.club-shop-header-actions{width:100%;justify-content:space-between;align-items:center;}.shop-admin-badge{font-size:.7rem;padding:.22rem .62rem;}.club-shop-mobile-header-btn,.club-shop-mobile-filter-btn,.club-shop-mobile-toolbar,.club-shop-basket-mobile{display:inline-flex;}.club-shop-mobile-toolbar{display:block;}.shop-tabs{display:none;}.shop-search-wrap{padding-top:.8rem!important;padding-bottom:.85rem!important;}.shop-search-wrap .input-group{border-radius:10px;}.shop-search-wrap .form-control{font-size:.85rem;padding-top:.55rem!important;padding-bottom:.55rem!important;}.club-shop-students .card-body{padding:.95rem!important;}.club-shop-student-row{flex-wrap:nowrap;overflow-x:auto;gap:.55rem;padding-bottom:.15rem;scrollbar-width:none;}.club-shop-student-row::-webkit-scrollbar{display:none;}.club-shop-student-card{min-width:142px;max-width:74vw;padding:.45rem .65rem;border-radius:12px;}.club-shop-product-grid{grid-template-columns:1fr;gap:.85rem;padding:0 .9rem .9rem!important;}.club-shop-product-card{border-radius:14px!important;}.club-shop-product-card .card-body{padding:.8rem;}.club-shop-product-thumb{height:150px;}.club-shop-product-name{font-size:.82rem;}.club-shop-product-desc{font-size:.74rem;margin-bottom:.3rem;}.club-shop-price{margin-bottom:.55rem!important;}.club-shop-price-regular,.shop-sale-price{font-size:.8rem;}.club-shop-product-actions{gap:.45rem;}.club-shop-qty{min-width:0;}.club-shop-qty .btn,.club-shop-qty span{min-width:1.5rem;font-size:.8rem;}.club-shop-add-btn{font-size:.74rem;padding:.38rem .45rem;border-radius:9px;}.club-shop-basket-desktop{display:none;}.club-shop-mobile-basket-sheet{padding-bottom:calc(env(safe-area-inset-bottom,0) + .4rem);}.club-shop-basket-mobile{display:block;overflow-y:auto;}.club-shop-basket-mobile .club-shop-basket-body{padding:.9rem 1rem 1rem;}.club-shop-basket-mobile .club-shop-basket-item{padding:.6rem 0;}.club-shop-basket-mobile .shop-btn-add{padding-top:.7rem;padding-bottom:.7rem;}}.shop-admin-title-icon{font-size:1.35rem;color:#8b5cf6;vertical-align:-.1em;}.shop-orders-stat-card{background:#fff;border:1px solid #e8ecf1;border-radius:16px;padding:1.1rem 1.25rem;box-shadow:0 2px 12px rgba(30,42,74,.06);height:100%;}.shop-orders-mobile-toolbar,.shop-orders-mobile-list{display:none;}.shop-orders-stat-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}.shop-orders-stat-value{font-size:2rem;font-weight:800;line-height:1.1;color:#1e2a4a;}.shop-orders-stat-meta{font-size:.84rem;font-weight:500;color:#8a96b0;margin-top:.2rem;}.shop-orders-stat-label{font-size:.85rem;font-weight:700;color:#374151;margin-top:.85rem;}.shop-orders-stat-icon{font-size:1.75rem;opacity:.85;}.shop-orders-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap;}.shop-orders-toolbar-controls{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:auto;}.shop-orders-search.shop-search-wrap{flex:1 1 14rem;min-width:0;max-width:100%;}.shop-orders-filter-btn{display:inline-flex;align-items:center;gap:.45rem;height:2.35rem;padding:0 .85rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#374151;font-size:.84rem;font-weight:600;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.04);}.shop-orders-filter-btn:hover{background:#f9fafb;color:#374151;}.shop-orders-filter-btn .bi-calendar3{color:#6b7280;font-size:.95rem;}.shop-orders-filter-btn-chevron{font-size:.7rem;color:#9ca3af;}.shop-orders-date-filter{position:relative;}.shop-orders-date-filter-backdrop{position:fixed;inset:0;z-index:1040;border:0;padding:0;background:transparent;cursor:default;}.shop-orders-date-filter-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:1050;width:min(18rem,100vw - 2rem);padding:.35rem;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.12);}.shop-orders-date-filter-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.55rem .65rem;border:0;border-radius:8px;background:transparent;color:#374151;font-size:.86rem;font-weight:500;text-align:left;cursor:pointer;}.shop-orders-date-filter-option:hover{background:#f3f4f6;}.shop-orders-date-filter-option.selected{color:var(--bs-primary);font-weight:600;}.shop-orders-date-filter-check{color:var(--bs-primary);font-size:1rem;}.shop-orders-date-filter-custom{margin-top:.25rem;padding:.55rem .65rem .65rem;border-top:1px solid #f3f4f6;}.shop-orders-date-filter-custom-title{font-size:.86rem;font-weight:600;color:#374151;margin-bottom:.55rem;}.shop-orders-date-filter-fields{display:grid;gap:.5rem;margin-bottom:.65rem;}.shop-orders-date-filter-field-label{display:block;margin-bottom:.2rem;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#9ca3af;}.shop-orders-date-input{border-radius:8px;border-color:#e5e7eb;font-size:.82rem;}.shop-orders-date-filter-apply{font-size:.84rem;font-weight:700;padding:.45rem .75rem;border-radius:9px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-date-filter-apply:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-rows-picker{display:inline-flex;align-items:center;gap:.35rem;height:2.35rem;padding:0 .65rem 0 .75rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04);}.shop-orders-rows-picker-prefix{font-size:.84rem;font-weight:600;color:#374151;white-space:nowrap;}.shop-orders-rows-select{appearance:none;border:0;background:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16'%3E%3Cpath fill='%239ca3af' d='M4.427 6.427l3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 6H4.604a.25.25 0 0 0-.177.427z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;padding:0 1rem 0 .15rem;font-size:.84rem;font-weight:600;color:#374151;cursor:pointer;min-width:2rem;}.shop-orders-rows-select:focus{outline:0;box-shadow:none;}.shop-orders-pagination-footer{justify-content:flex-end;}.shop-orders-pagination-footer .shop-orders-pagination-end{margin-left:0;width:100%;justify-content:flex-end;}.shop-orders-stat-icon-pending{color:#dc2626;}.shop-orders-stat-icon-ready{color:#d97706;}.shop-orders-stat-icon-collected{color:var(--bs-primary);}.shop-orders-actions-wrap{display:inline-flex;align-items:center;justify-content:flex-end;gap:.4rem;}.shop-orders-refund-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#6b7280;flex-shrink:0;}.shop-orders-refund-icon-btn:hover{background:#f9fafb;color:#374151;border-color:#d1d5db;}.shop-orders-refund-icon-btn .bi{font-size:.95rem;}.shop-orders-table .shop-orders-badge-cell{vertical-align:middle;}.shop-orders-table .shop-orders-badge-stack{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.25rem;}.shop-orders-table .shop-orders-cell-total{font-weight:700;color:#1e2a4a;white-space:nowrap;}.shop-orders-table .shop-orders-cell-actions{white-space:nowrap;vertical-align:middle;}.shop-orders-table .shop-orders-cell-refund{vertical-align:middle;white-space:nowrap;}.shop-orders-pill{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;line-height:1.25;white-space:nowrap;max-width:100%;}.shop-orders-order-number{font-size:.9rem;font-weight:800;color:#1e2a4a;}.shop-orders-order-meta{font-size:.86rem;font-weight:600;color:#374151;margin-top:.15rem;}.shop-orders-order-student{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a96b0;margin-top:.2rem;}.shop-orders-item-line{font-size:.86rem;font-weight:500;color:#374151;line-height:1.45;}.shop-orders-items-foot{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8a96b0;margin-top:.35rem;}.shop-orders-location-foot{color:var(--bs-primary);text-transform:none;letter-spacing:0;font-weight:600;}.shop-orders-location-foot i{font-size:.72rem;margin-right:.2em;}.shop-orders-date-main{font-size:.86rem;font-weight:700;color:#1e2a4a;}.shop-orders-date-sub{font-size:.78rem;font-weight:500;color:#8a96b0;margin-top:.1rem;}.shop-orders-session-label{display:block;font-size:.75rem;font-weight:500;color:#8a96b0;line-height:1.3;}.shop-orders-action-btn{font-size:.82rem;font-weight:700;padding:.4rem .85rem;border-radius:10px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));box-shadow:0 2px 6px rgba(var(--bs-primary-rgb),.3);}.shop-orders-action-btn:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-pagination .shop-orders-pagination-range{font-weight:500;}.shop-orders-pagination .shop-table-pagination-page{min-width:2rem;height:2rem;padding:0 .5rem;border-radius:8px;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));font-weight:700;}.shop-orders-class-pill{background:rgba(59,130,246,.12);color:#2563eb;}.shop-orders-group-pill{background:#f3e8ff;color:#7c3aed;}.shop-orders-status{font-weight:600;}.shop-orders-status-pending{background:#fee2e2;color:#b91c1c;}.shop-orders-status-ready{background:#fef3c7;color:#b45309;}.shop-orders-status-collected{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary);}.shop-orders-status-cancelled{background:#f3f4f6;color:#4b5563;}.shop-orders-status-refunded{background:#fce7f3;color:#be185d;}.shop-orders-refund-dash{color:#9ca3af;font-size:.9rem;font-weight:500;}.shop-orders-refund-amount{font-size:.86rem;font-weight:700;color:#1e2a4a;line-height:1.3;}.shop-orders-refund-meta{font-size:.75rem;font-weight:600;color:#6b7280;margin-top:.1rem;}.shop-orders-mobile-filter-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2.35rem;padding:0 .85rem;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#374151;font-size:.84rem;font-weight:600;white-space:nowrap;box-shadow:0 1px 2px rgba(15,23,42,.04);}.shop-orders-mobile-filter-btn .bi{color:#6b7280;font-size:.95rem;}.shop-orders-mobile-filter-sheet-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:1050;}.shop-orders-mobile-filter-sheet-backdrop.is-open{opacity:1;pointer-events:auto;}.shop-orders-mobile-filter-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1051;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.22);transform:translateY(calc(100% + 1rem));opacity:0;pointer-events:none;transition:transform .28s ease,opacity .2s ease;max-height:min(72vh,620px);display:flex;flex-direction:column;}.shop-orders-mobile-filter-sheet.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}.shop-orders-mobile-filter-sheet-handle{width:44px;height:5px;border-radius:999px;background:#d7dce5;margin:.6rem auto 0;flex-shrink:0;}.shop-orders-mobile-filter-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1rem .85rem;border-bottom:1px solid #eef2f6;flex-shrink:0;}.shop-orders-mobile-filter-sheet-title{margin:0;font-size:1.05rem;font-weight:800;color:#1e2a4a;}.shop-orders-mobile-filter-sheet-close{width:2rem;height:2rem;border:0;border-radius:50%;background:#f8fafc;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.shop-orders-mobile-filter-sheet-list{padding:.9rem 1rem 1.1rem;overflow-y:auto;}.shop-orders-mobile-filter-sheet-option{width:100%;border:0;border-radius:12px;background:transparent;color:#1e2a4a;padding:.75rem .85rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.95rem;font-weight:700;text-align:left;}.shop-orders-mobile-filter-sheet-option+.shop-orders-mobile-filter-sheet-option{margin-top:.35rem;}.shop-orders-mobile-filter-sheet-option.selected{background:#ecf9f8;color:#0f9a94;}.shop-orders-mobile-filter-sheet-count{min-width:1.65rem;height:1.65rem;padding:0 .45rem;border-radius:999px;background:#f1f5f9;color:#8a96b0;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;}.shop-orders-items-trigger{width:100%;border:0;padding:0;background:transparent;text-align:left;color:inherit;}.shop-orders-items-trigger:hover .shop-orders-item-line:first-child{color:var(--bs-primary);}.shop-orders-modal-backdrop,.shop-orders-mark-ready-backdrop{position:fixed;inset:0;z-index:1055;border:0;padding:0;background:rgba(15,23,42,.45);cursor:default;}.shop-orders-refund-payment-modal{z-index:1060;}.shop-orders-items-modal{z-index:1060;}.shop-orders-items-dialog{max-width:28rem;}.shop-orders-items-content{border-radius:16px;box-shadow:0 20px 48px rgba(15,23,42,.18);overflow:hidden;}.shop-orders-items-header{padding:1.2rem 1.2rem .8rem;align-items:flex-start;}.shop-orders-items-title{font-size:1.05rem;font-weight:800;color:#1e2a4a;}.shop-orders-items-subtitle{margin-top:.2rem;font-size:.82rem;font-weight:600;color:#8a96b0;}.shop-orders-items-body{padding:0 1.2rem .8rem;}.shop-orders-items-line-card{padding:.9rem 1rem;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;}.shop-orders-items-line-card+.shop-orders-items-line-card{margin-top:.55rem;}.shop-orders-items-line-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}.shop-orders-items-line-name{font-size:.95rem;font-weight:700;color:#1e2a4a;line-height:1.3;}.shop-orders-items-line-total{font-size:.95rem;font-weight:800;color:#1e2a4a;white-space:nowrap;}.shop-orders-items-line-variant{margin-top:.15rem;font-size:.8rem;font-weight:600;color:#8a96b0;}.shop-orders-items-line-meta{margin-top:.15rem;font-size:.66rem;font-weight:800;letter-spacing:.05em;color:#9ca3af;}.shop-orders-items-total-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding:.1rem 0;font-size:.9rem;font-weight:700;color:#1e2a4a;}.shop-orders-items-footer{display:flex;justify-content:flex-end;padding:0 1.2rem 1.2rem;}.shop-orders-items-btn-close{font-size:.88rem;font-weight:700;padding:.55rem 1.15rem;border-radius:10px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-items-btn-close:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-refund-payment-dialog{max-width:26rem;}.shop-orders-refund-payment-content{border-radius:16px;box-shadow:0 20px 48px rgba(15,23,42,.18);}.shop-orders-refund-payment-header{padding:1.25rem 1.25rem 0;}.shop-orders-refund-payment-head{display:flex;align-items:center;gap:.65rem;}.shop-orders-refund-payment-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;background:#ffe4e6;color:#e11d48;font-size:1rem;flex-shrink:0;}.shop-orders-refund-payment-title{font-size:1.05rem;font-weight:800;color:#1e2a4a;}.shop-orders-refund-payment-body{padding:.75rem 1.25rem 1rem;}.shop-orders-refund-payment-summary{padding:.9rem 1rem;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;margin-bottom:1rem;}.shop-orders-refund-payment-customer{font-size:.8rem;font-weight:500;color:#8a96b0;line-height:1.4;}.shop-orders-refund-payment-order-number{font-size:.95rem;font-weight:800;color:#1e2a4a;}.shop-orders-refund-payment-summary-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.84rem;padding-top:.35rem;}.shop-orders-refund-payment-summary-row+.shop-orders-refund-payment-summary-row{margin-top:.25rem;}.shop-orders-refund-payment-summary-label{color:#8a96b0;font-weight:500;}.shop-orders-refund-payment-summary-value{font-weight:700;color:#1e2a4a;}.shop-orders-refund-payment-summary-value-available{color:#059669;}.shop-orders-refund-payment-amount-label{display:block;font-size:.86rem;font-weight:700;color:#1e2a4a;margin-bottom:.4rem;}.shop-orders-refund-payment-amount-input{border-radius:10px;border-color:#e5e7eb;font-size:.9rem;font-weight:600;padding:.55rem .75rem;}.shop-orders-refund-payment-amount-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.15);}.shop-orders-refund-payment-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:0 1.25rem 1.25rem;}.shop-orders-refund-payment-btn-cancel{font-size:.86rem;font-weight:600;padding:.5rem .9rem;border-radius:10px;border:1px solid #e5e7eb;background:#fff;color:#374151;}.shop-orders-refund-payment-btn-cancel:hover{background:#f9fafb;color:#374151;}.shop-orders-refund-payment-btn-issue{display:inline-flex;align-items:center;gap:.35rem;font-size:.86rem;font-weight:700;padding:.5rem .95rem;border-radius:10px;border:0;background:#e11d48;color:#fff;}.shop-orders-refund-payment-btn-issue .spinner-border{width:.9rem;height:.9rem;border-color:rgba(255,255,255,.35);border-right-color:#fff;}.shop-orders-refund-payment-btn-issue:disabled{opacity:.55;cursor:not-allowed;}.shop-orders-refund-issued-modal{z-index:1060;}.shop-orders-refund-issued-dialog{max-width:26rem;}.shop-orders-refund-issued-content{border-radius:16px;box-shadow:0 20px 48px rgba(15,23,42,.18);overflow:hidden;}.shop-orders-refund-issued-body{padding:1.5rem 1.25rem 1.25rem;text-align:center;}.shop-orders-refund-issued-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:999px;background:#dcfce7;color:#16a34a;font-size:1.35rem;margin-bottom:.85rem;}.shop-orders-refund-issued-title{font-size:1.1rem;font-weight:800;color:#1e2a4a;margin-bottom:1.1rem;}.shop-orders-refund-issued-summary{text-align:left;padding:.9rem 1rem;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;margin-bottom:1.1rem;}.shop-orders-refund-issued-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.86rem;}.shop-orders-refund-issued-row+.shop-orders-refund-issued-row{margin-top:.45rem;}.shop-orders-refund-issued-label{color:#8a96b0;font-weight:500;}.shop-orders-refund-issued-value{font-weight:700;color:#1e2a4a;text-align:right;}.shop-orders-refund-issued-value-amount{color:#be185d;}.shop-orders-refund-issued-footer{display:flex;justify-content:flex-end;}.shop-orders-refund-issued-btn-done{font-size:.88rem;font-weight:700;padding:.55rem 1.15rem;border-radius:10px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-refund-issued-btn-done:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-mark-ready-modal{z-index:1060;}.shop-orders-mark-ready-dialog{max-width:28rem;}.shop-orders-mark-ready-content{border-radius:16px;box-shadow:0 20px 48px rgba(15,23,42,.18);overflow:hidden;}.shop-orders-mark-ready-header{padding:1.25rem 1.25rem 0;}.shop-orders-mark-ready-head{display:flex;align-items:flex-start;gap:.75rem;padding-right:.5rem;}.shop-orders-mark-ready-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:#ffedd5;color:#ea580c;flex-shrink:0;font-size:1.1rem;}.shop-orders-mark-ready-title{font-size:1.05rem;font-weight:800;color:#1e2a4a;line-height:1.3;}.shop-orders-mark-ready-subtitle{font-size:.84rem;font-weight:500;color:#8a96b0;margin-top:.2rem;}.shop-orders-mark-ready-body{padding:.75rem 1.25rem 1rem;}.shop-orders-mark-ready-notice{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem .9rem;border:1px solid #fde68a;border-radius:12px;background:#fffbeb;}.shop-orders-mark-ready-notice-icon{color:#d97706;font-size:1rem;flex-shrink:0;margin-top:.1rem;}.shop-orders-mark-ready-notice-text{font-size:.86rem;font-weight:500;color:#92400e;line-height:1.45;}.shop-orders-mark-ready-footer{padding:0 1.25rem 1.25rem;}.shop-orders-mark-ready-footer-row{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;}.shop-orders-mark-ready-btn-cancel{font-size:.86rem;font-weight:600;padding:.5rem .9rem;border-radius:10px;border:1px solid #e5e7eb;background:#fff;color:#374151;}.shop-orders-mark-ready-btn-cancel:hover{background:#f9fafb;color:#374151;}.shop-orders-mark-ready-btn-outline{display:inline-flex;align-items:center;gap:.35rem;font-size:.86rem;font-weight:700;padding:.5rem .9rem;border-radius:10px;border:1.5px solid var(--bs-primary);background:#fff;color:var(--bs-primary);}.shop-orders-mark-ready-btn-outline:hover:not(:disabled){background:rgba(var(--bs-primary-rgb),.06);color:var(--bs-primary);}.shop-orders-mark-ready-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.88rem;font-weight:700;padding:.6rem 1rem;border-radius:10px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));opacity:1;}.shop-orders-mark-ready-btn-primary:disabled{opacity:.55;cursor:not-allowed;}.shop-orders-mark-ready-success{padding:1.5rem 1.25rem 1.25rem;text-align:center;}.shop-orders-mark-ready-success-icon{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:999px;background:#dcfce7;color:#16a34a;font-size:1.35rem;margin-bottom:.85rem;}.shop-orders-mark-ready-success-title{font-size:1.1rem;font-weight:800;color:#1e2a4a;margin-bottom:1.1rem;}.shop-orders-mark-ready-success-summary{text-align:left;padding:.9rem 1rem;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;margin-bottom:1.1rem;}.shop-orders-mark-ready-success-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.86rem;}.shop-orders-mark-ready-success-row+.shop-orders-mark-ready-success-row{margin-top:.45rem;}.shop-orders-mark-ready-success-label{color:#8a96b0;font-weight:500;}.shop-orders-mark-ready-success-value{font-weight:700;color:#1e2a4a;text-align:right;}.shop-orders-mark-ready-success-value-muted{font-weight:600;color:#6b7280;}.shop-orders-mark-ready-success-footer{display:flex;justify-content:flex-end;}.shop-orders-mark-ready-success-btn-done{font-size:.88rem;font-weight:700;padding:.55rem 1.15rem;border-radius:10px;border:0;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}.shop-orders-mark-ready-success-btn-done:hover{background:hsl(from var(--bs-primary) h s calc(l - 8));color:var(--bs-primary-foreground,var(--m-on-primary,#fff));}@media(max-width:767.98px){.shop-orders-admin.shop-admin-page{padding:1rem .9rem 1.4rem;}.shop-orders-stats{--bs-gutter-x:0;gap:0;margin-bottom:1rem!important;}.shop-orders-stats>[class*=col-]{width:33.3333%;padding:0;}.shop-orders-stat-card{border-radius:0;box-shadow:none;padding:.9rem .45rem .8rem;text-align:center;}.shop-orders-stats>[class*=col-]:first-child .shop-orders-stat-card{border-radius:14px 0 0 14px;}.shop-orders-stats>[class*=col-]:last-child .shop-orders-stat-card{border-radius:0 14px 14px 0;}.shop-orders-stats>[class*=col-]+[class*=col-] .shop-orders-stat-card{border-left:0;}.shop-orders-stat-card-top{display:block;}.shop-orders-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:999px;font-size:.8rem;margin-bottom:.45rem;opacity:1;}.shop-orders-stat-icon-pending{background:#fee2e2;}.shop-orders-stat-icon-ready{background:#fef3c7;}.shop-orders-stat-icon-collected{background:rgba(var(--bs-primary-rgb),.12);}.shop-orders-stat-value{font-size:1.85rem;}.shop-orders-stat-label{margin-top:.35rem;font-size:.62rem;letter-spacing:.07em;text-transform:uppercase;color:#0f172a;}.shop-orders-stat-meta{margin-top:.15rem;font-size:.68rem;}.shop-orders-mobile-toolbar,.shop-orders-mobile-list{display:block;}.shop-orders-mobile-toolbar-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;}.shop-orders-mobile-filter-title{font-size:1rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.shop-tabs,.shop-table-wrap,.shop-orders-pagination-footer{display:none;}.shop-orders-toolbar{display:block;padding-top:.75rem!important;padding-bottom:.9rem!important;}.shop-orders-search.shop-search-wrap{width:100%;max-width:none;}.shop-orders-toolbar-controls{width:100%;margin-left:0;margin-top:.7rem;justify-content:flex-start;flex-wrap:wrap;}.shop-orders-filter-btn,.shop-orders-rows-picker{height:2.1rem;border-radius:999px;padding-left:.7rem;padding-right:.7rem;}.shop-orders-filter-btn,.shop-orders-rows-picker-prefix,.shop-orders-rows-select{font-size:.8rem;}.shop-orders-mobile-list{padding-bottom:.95rem!important;}.shop-orders-mobile-pagination{margin-top:.95rem;padding-top:.85rem;border-top:1px solid #eef2f6;}.shop-orders-mobile-pagination-range{font-size:.74rem;font-weight:500;color:#64748b;margin-bottom:.6rem;}.shop-orders-mobile-pagination-controls{display:inline-flex;}.shop-orders-mobile-pagination-controls .shop-table-pagination-page{min-width:1.8rem;height:1.8rem;padding:0 .45rem;border-radius:7px;background:var(--bs-primary);color:var(--bs-primary-foreground,var(--m-on-primary,#fff));font-size:.76rem;font-weight:700;}.shop-orders-mobile-pagination-controls .shop-table-pagination-btn{width:1.75rem;height:1.75rem;}.shop-orders-mobile-card{border:1px solid #e8ecf1;border-radius:14px;background:#fff;padding:.9rem;box-shadow:0 1px 2px rgba(15,23,42,.03);}.shop-orders-mobile-card+.shop-orders-mobile-card{margin-top:.85rem;}.shop-orders-mobile-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;}.shop-orders-mobile-card-side{text-align:right;flex-shrink:0;}.shop-orders-mobile-total{font-size:.84rem;font-weight:800;color:#1e2a4a;line-height:1.2;}.shop-orders-mobile-pill-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem;}.shop-orders-mobile-items-btn{width:100%;border:0;background:transparent;padding:0;margin-top:.7rem;text-align:left;color:inherit;}.shop-orders-mobile-items-btn .shop-orders-item-line{color:var(--bs-primary);text-decoration:underline;text-underline-offset:.08em;font-size:.8rem;line-height:1.35;}.shop-orders-mobile-items-btn>.shop-orders-items-foot:not(.shop-orders-items-foot-mobile-clean){display:none;}.shop-orders-items-foot-mobile-clean{display:block;}.shop-orders-mobile-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.85rem;}.shop-orders-mobile-status-wrap{min-width:0;}.shop-orders-actions-wrap{gap:.35rem;}.shop-orders-action-btn{padding:.38rem .8rem;font-size:.72rem;border-radius:8px;}.shop-orders-refund-icon-btn{width:1.8rem;height:1.8rem;}.shop-orders-order-number{font-size:.8rem;}.shop-orders-order-meta{font-size:.78rem;}.shop-orders-order-student{font-size:.62rem;margin-top:.15rem;}.shop-orders-date-sub{font-size:.7rem;}.shop-orders-pill{font-size:.68rem;padding:.24rem .52rem;}.shop-orders-items-foot{font-size:.62rem;margin-top:.28rem;}.shop-orders-mobile-filter-title{font-size:.92rem;}}.page-header{background:#fff;border-bottom:1px solid var(--bs-border-color);padding:20px 24px 18px;}.page-header-row{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}.page-header-icon{width:38px;height:38px;border-radius:10px;background:var(--bs-success-bg-subtle);color:var(--bs-success);display:flex;align-items:center;justify-content:center;flex-shrink:0;}.page-header-icon--pound{background:var(--bs-success);color:#fff;font-size:1.15rem;font-weight:800;line-height:1;}.page-title{font-size:1.4rem;font-weight:800;color:var(--bs-emphasis-color);margin:0;}.page-subtitle{font-size:.82rem;color:var(--bs-secondary-color);margin:2px 0 0;}.header-icon-btn{width:42px;height:42px;border-radius:12px;border:1.5px solid var(--bs-border-color);background:#fff;color:var(--bs-secondary-color);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;}.header-icon-btn.is-primary{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.header-icon-btn.has-active{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.badge-dot{position:absolute;top:-4px;right:-4px;background:var(--bs-primary);color:#fff;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:.66rem;font-weight:800;display:flex;align-items:center;justify-content:center;}.stat-range{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--bs-border-color);border-radius:12px;padding:12px 16px;}.stat-range-left{display:flex;align-items:center;gap:10px;color:var(--bs-secondary-color);}.stat-range-icon{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.stat-range-icon svg{color:var(--bs-primary);}.successful-payments__stat-range-icon{width:2.2rem;height:2.2rem;border-radius:12px;font-size:.85rem;}.stat-range-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}.stat-range-value{font-size:.78rem;color:var(--bs-emphasis-color);font-weight:600;}.stat-range-fields{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;}.field-mini{font-size:.68rem;font-weight:600;color:var(--bs-secondary-color);margin-bottom:4px;}.input-date{padding:8px 10px;border:1.5px solid var(--bs-border-color);border-radius:8px;background:#fff;font-family:inherit;font-size:.8rem;color:var(--bs-emphasis-color);}.btn-reset{padding:8px 12px;border:1.5px solid var(--bs-border-color);border-radius:8px;background:#fff;color:var(--bs-secondary-color);font-family:inherit;font-weight:700;font-size:.76rem;cursor:pointer;}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}.stat-card{background:#fff;border:1px solid var(--bs-border-color);border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:14px;}.stat-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}.stat-icon.t-success{background:var(--bs-success-bg-subtle);color:var(--bs-success);}.stat-icon.t-info{background:var(--bs-info-bg-subtle);color:var(--bs-info);}.stat-label{font-size:.72rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;}.stat-value{font-size:1.35rem;font-weight:800;color:var(--bs-emphasis-color);line-height:1.1;margin-top:2px;}.stat-sub{font-size:.74rem;color:var(--bs-secondary-color);margin-top:2px;}@media(max-width:768px){.stats-grid{grid-template-columns:1fr 1fr;}}.bulk-bar{background:#fff;border-radius:14px;border:1.5px solid var(--bs-primary-border-subtle);box-shadow:0 2px 12px rgba(var(--bs-primary-rgb),.1);padding:14px 18px;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}.bulk-count{display:flex;align-items:center;gap:8px;background:var(--bs-primary-bg-subtle);border-radius:8px;padding:8px 14px;}.bulk-count-text{font-weight:800;font-size:.82rem;color:var(--bs-primary);white-space:nowrap;}.bulk-action-field{flex:1 1 200px;position:relative;min-width:180px;}.field-label{display:block;margin-bottom:5px;font-size:.7rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.05em;}.bulk-action-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border:1.5px solid var(--bs-border-color);border-radius:9px;background:#fff;font-family:inherit;font-weight:600;font-size:.82rem;cursor:pointer;}.bulk-action-menu{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;border:1.5px solid var(--bs-border-color);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);margin-top:4px;overflow:hidden;}.bulk-action-item{padding:9px 14px;font-size:.82rem;display:flex;align-items:center;gap:10px;cursor:pointer;}.bulk-action-item.is-active{font-weight:700;background:var(--bs-primary-bg-subtle);}.bulk-buttons{display:flex;gap:8px;}.btn-apply{flex:1;padding:9px 18px;border:0;border-radius:9px;background:var(--bs-primary);color:#fff;font-family:inherit;font-weight:700;font-size:.82rem;cursor:pointer;}.btn-apply.is-disabled{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);border:1.5px dashed var(--bs-border-color);cursor:not-allowed;opacity:.75;}.btn-clear{padding:9px 16px;border:1.5px solid var(--bs-border-color);border-radius:9px;background:#fff;color:var(--bs-secondary-color);font-family:inherit;font-weight:600;font-size:.82rem;cursor:pointer;}.table-card{background:#fff;border:1px solid var(--bs-border-color);border-radius:14px;overflow:hidden;}.tabs-bar{display:flex;border-bottom:1px solid var(--bs-border-color);overflow-x:auto;}.tab{display:inline-flex;align-items:center;gap:8px;padding:14px 18px;background:transparent;border:0;border-bottom:2.5px solid transparent;color:var(--bs-secondary-color);font-weight:700;font-size:.85rem;cursor:pointer;font-family:inherit;white-space:nowrap;}.tab:hover{color:var(--bs-emphasis-color);}.tab.is-active{border-bottom-color:var(--bs-primary);color:var(--bs-primary);}.tab-count{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:800;}.toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bs-border-color);flex-wrap:wrap;}.search-wrap{flex:1;min-width:200px;position:relative;}.search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--bs-secondary-color);pointer-events:none;}.search-input{width:100%;padding:9px 12px 9px 36px;border:1.5px solid var(--bs-border-color);border-radius:10px;font-family:inherit;font-size:.85rem;}.btn-toolbar{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1.5px solid var(--bs-border-color);border-radius:10px;background:#fff;color:var(--bs-secondary-color);font-family:inherit;font-weight:700;font-size:.82rem;cursor:pointer;}.btn-toolbar.is-active{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.filter-count-pill{background:var(--bs-primary);color:#fff;padding:1px 7px;border-radius:999px;font-size:.7rem;font-weight:800;}.rows-control{display:flex;align-items:center;gap:6px;}.rows-control-label{font-size:.78rem;font-weight:700;color:var(--bs-secondary-color);}.rows-control select{padding:7px 28px 7px 10px;border:1.5px solid var(--bs-border-color);border-radius:8px;background:#fff;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;}.filter-panel{border-top:1px solid var(--bs-border-color);background:#fff;padding:20px 22px;display:flex;flex-direction:column;gap:18px;}.filter-section-label{display:block;font-size:.72rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}.chip-row{display:flex;flex-wrap:wrap;gap:7px;}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border:1.5px solid var(--bs-border-color);border-radius:8px;background:#fff;color:var(--bs-secondary-color);font-family:inherit;font-weight:600;font-size:.78rem;cursor:pointer;}.chip.is-active{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-color:var(--bs-primary);font-weight:700;}.chip-dot{width:7px;height:7px;border-radius:50%;background:var(--bs-secondary-color);}.chip.is-active .chip-dot{background:var(--bs-primary);}.field-row{display:flex;gap:8px;flex-wrap:wrap;}.pound-input{position:relative;}.pound-prefix{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--bs-secondary-color);font-size:.8rem;pointer-events:none;}.pound-input input{padding:8px 10px 8px 22px;width:130px;border:1.5px solid var(--bs-border-color);border-radius:8px;font-family:inherit;font-size:.8rem;}.filter-actions{display:flex;justify-content:flex-end;gap:8px;}.btn-filter-reset{padding:7px 16px;border:1.5px solid var(--bs-border-color);border-radius:9px;background:#fff;color:var(--bs-secondary-color);font-family:inherit;font-weight:700;font-size:.78rem;cursor:pointer;}.btn-filter-search{padding:7px 18px;border:1.5px solid var(--bs-primary);border-radius:9px;background:var(--bs-primary);color:#fff;font-family:inherit;font-weight:700;font-size:.78rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}.sp-table-wrap{overflow-x:auto;}.sp-table{width:100%;border-collapse:collapse;font-size:.85rem;}.sp-table thead tr{background:var(--bs-tertiary-bg);}.sp-table th{padding:.8rem .85rem;font-size:.74rem;font-weight:800;color:#6d7c92;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #ecf1f6;white-space:nowrap;text-align:left;vertical-align:middle;background:#fbfcfe;}.sp-table th.num{text-align:right;}.sp-table th.col-check,.sp-table td.col-check{width:46px;min-width:46px;position:sticky;left:0;z-index:3;background:var(--bs-tertiary-bg);}.sp-table th.col-customer,.sp-table td.col-customer{min-width:200px;position:sticky;left:10px;z-index:3;background:var(--bs-tertiary-bg);box-shadow:6px 0 8px -6px rgba(0,0,0,.1);}.sp-table tbody td{padding:.8rem .85rem;vertical-align:middle;border-bottom:1px solid #edf2f7;}.sp-table tbody tr{transition:background .12s;cursor:pointer;}.sp-table tbody tr:hover{background:var(--bs-tertiary-bg);}.sp-table tbody td.col-check{z-index:1;background:#fff;}.sp-table tbody td.col-customer{z-index:1;background:#fff;}.sp-table tbody tr.is-selected{background:rgba(var(--bs-primary-rgb),.07);}.sp-table tbody tr.is-selected td.col-check,.sp-table tbody tr.is-selected td.col-customer{background:linear-gradient(0deg,var(--bs-primary-bg-subtle),var(--bs-primary-bg-subtle)),#fff;}.sp-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:pointer;}.sp-check .box{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--bs-border-color);background:#fff;display:flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s;}.sp-check.is-checked .box{background:var(--bs-primary);border-color:var(--bs-primary);}.sp-check.is-indeterminate .box{background:var(--bs-primary-bg-subtle);border-color:var(--bs-primary);}.tick{color:#fff;}.student-name{display:flex;align-items:center;gap:6px;color:var(--bs-secondary);font-size:.92rem;font-weight:700;line-height:1.2;}.student-icon{color:var(--bs-primary);}.parent-name{display:flex;align-items:center;gap:5px;margin-top:.15rem;color:#7a8ba4;font-size:.78rem;font-weight:600;line-height:1.2;}.card-brand{display:inline-flex;align-items:center;gap:5px;margin-top:.15rem;color:#7a8ba4;font-size:.78rem;font-weight:600;line-height:1.2;}.payment-title{color:var(--bs-secondary);font-size:.92rem;font-weight:700;line-height:1.25;}.card-dots{letter-spacing:2px;}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap;border:1px solid var(--bs-border-color);background:#fff;}.pill.k-invoice{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-color:var(--bs-primary-border-subtle);}.pill.k-subscription{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-color:var(--bs-primary-border-subtle);}.pill.k-charge{background:var(--bs-info-bg-subtle);color:var(--bs-info);border-color:var(--bs-info-border-subtle);}.pill.s-succeeded{background:var(--bs-success-bg-subtle);color:var(--bs-success);border-color:var(--bs-success-border-subtle);}.pill.s-partial{background:var(--bs-warning-bg-subtle);color:var(--bs-warning);}.pill.s-refunded{background:var(--bs-danger-bg-subtle);color:var(--bs-danger);border-color:var(--bs-danger-border-subtle);}.num-amount{color:var(--bs-secondary);font-size:.9rem;font-weight:700;text-align:right;}.num-refund{font-size:.9rem;font-weight:700;color:var(--bs-danger);text-align:right;}.num-empty{color:#94a3b8;font-size:.9rem;font-weight:700;text-align:right;}.cell-date-primary{color:var(--bs-secondary);font-size:.9rem;font-weight:700;line-height:1.2;}.cell-date-relative{margin-top:.15rem;color:#7b8aa5;font-size:.76rem;font-weight:700;line-height:1.2;}.btn-refund-row{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--bs-danger-border-subtle);background:var(--bs-danger-bg-subtle);color:var(--bs-danger);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}.btn-refund-row.is-disabled{opacity:.4;cursor:not-allowed;}.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;}.pager-summary{font-size:.8rem;color:var(--bs-secondary-color);}.pager-controls{display:flex;align-items:center;gap:8px;}.btn-page{width:34px;height:34px;border-radius:9px;border:1.5px solid var(--bs-border-color);background:#fff;color:var(--bs-emphasis-color);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}.btn-page.is-disabled{opacity:.4;cursor:not-allowed;}.pager-counter{font-size:.82rem;font-weight:700;color:var(--bs-emphasis-color);}.modal-backdrop{position:fixed;inset:0;background:rgba(30,42,74,.45);display:flex;align-items:center;justify-content:center;z-index:1050;padding:16px;}.modal-box{background:#fff;border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.22);overflow:hidden;}.modal-box.refund{max-width:460px;width:100%;}.modal-head{padding:16px 20px;border-bottom:1px solid var(--bs-border-color);display:flex;justify-content:space-between;align-items:center;}.modal-head .eyebrow{font-size:.72rem;font-weight:800;color:var(--bs-secondary-color);text-transform:uppercase;}.modal-head .title{font-size:1.1rem;font-weight:800;color:var(--bs-emphasis-color);margin-top:2px;}.modal-head-icon{width:34px;height:34px;border-radius:9px;background:var(--bs-danger-bg-subtle);color:var(--bs-danger);display:flex;align-items:center;justify-content:center;cursor:pointer;border:0;}.modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px;}.modal-foot{padding:12px 20px 16px;border-top:1px solid var(--bs-border-color);display:flex;gap:8px;justify-content:flex-end;}.summary-box{background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:10px;padding:12px;}.input-amount{width:100%;padding:10px 10px 10px 28px;border:1.5px solid var(--bs-border-color);border-radius:10px;font-family:inherit;font-size:1rem;font-weight:700;}.btn-modal-secondary{padding:8px 14px;background:#fff;color:var(--bs-secondary-color);border:1.5px solid var(--bs-border-color);border-radius:10px;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;}.btn-modal-danger{padding:8px 16px;background:var(--bs-danger);color:#fff;border:0;border-radius:10px;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--bs-emphasis-color);color:#fff;padding:10px 22px;border-radius:999px;font-size:.82rem;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:2000;white-space:nowrap;animation:toast-in .2s ease-out;}@keyframes toast-in{from{opacity:0;transform:translateX(-50%) translateY(12px);}}.mobile-payment-card{background:#fff;border:1px solid var(--bs-border-color);border-radius:14px;padding:14px;margin-bottom:14px;box-shadow:0 2px 10px rgba(0,0,0,.04);}.mobile-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}.mobile-user{display:flex;align-items:center;gap:10px;margin-left:-100px;}.mobile-user-icon{width:36px;height:36px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;}.mobile-user-info{min-width:0;}.mobile-student{font-weight:700;color:var(--bs-emphasis-color);}.mobile-parent{font-size:.82rem;color:var(--bs-secondary-color);overflow:hidden;text-overflow:ellipsis;}.mobile-amount{font-weight:800;font-size:1rem;}.mobile-description{margin-top:12px;padding-left:40px;}.mobile-footer{margin-top:14px;display:flex;justify-content:space-between;align-items:center;padding-left:40px;}.modal-box.detail{max-width:520px;width:100%;}.modal-box.refund{max-width:460px;width:100%;}.eyebrow{font-size:.72rem;font-weight:800;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;}.title{font-size:1.1rem;font-weight:800;color:var(--bs-emphasis-color);margin-top:2px;}.sheet-close{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--bs-border-color);background:var(--bs-white);color:var(--bs-secondary-color);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}.detail-row{display:flex;gap:12px;align-items:flex-start;}.detail-row-icon{width:28px;height:28px;border-radius:8px;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);display:flex;align-items:center;justify-content:center;flex-shrink:0;}.detail-row-label{font-size:.7rem;font-weight:800;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;}.btn-modal-danger-soft{padding:8px 16px;background:var(--bs-danger-bg-subtle);color:var(--bs-danger);border:1.5px solid var(--bs-danger-border-subtle);border-radius:10px;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.refund-spinner{width:56px;height:56px;border-radius:50%;border:4px solid var(--bs-primary-bg-subtle);border-top-color:var(--bs-primary);animation:sp-spin .9s linear infinite;}.refund-success-icon{width:56px;height:56px;border-radius:50%;background:var(--bs-success-bg-subtle);color:var(--bs-success);display:flex;align-items:center;justify-content:center;}.btn-modal-primary{padding:8px 22px;background:var(--bs-primary);color:#fff;border:1.5px solid var(--bs-primary);border-radius:10px;font-weight:700;font-size:.85rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.refund-modal-box{max-width:490px;width:100%;border-radius:16px;overflow:hidden;}.refund-modal-box.is-processing,.refund-modal-box.is-done,.refund-modal-box.is-error{max-width:560px;}.receipt-modal-box{max-width:540px;width:100%;border-radius:16px;overflow:hidden;background:#fff;}.receipt-modal-box.is-done,.receipt-modal-box.is-error{max-width:500px;}.refund-modal-head{padding:1.6rem;border-bottom:0;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:0;}.receipt-modal-head{padding:1.35rem 1.35rem 1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid #edf1f6;}.receipt-modal-head-main{display:flex;align-items:flex-start;gap:.85rem;min-width:0;}.receipt-modal-head-icon{width:2.2rem;height:2.2rem;border-radius:10px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}.receipt-modal-title{margin:0;color:var(--bs-secondary);font-size:1.05rem;font-weight:800;line-height:1.2;}.receipt-modal-subtitle{margin-top:.3rem;color:#94a3b8;font-size:.82rem;font-weight:700;line-height:1.2;}.receipt-modal-close{width:2rem;height:2rem;border:1px solid #e6edf5;border-radius:10px;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}.receipt-modal-close:disabled{opacity:.55;cursor:not-allowed;}.receipt-modal-body{padding:1rem 1.35rem 0;}.receipt-modal-copy{margin:0 0 .9rem;color:#6b7280;font-size:.95rem;line-height:1.45;}.receipt-modal-list{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;max-height:380px;overflow-y:auto;}.receipt-modal-list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.8rem 1rem;}.receipt-modal-list-row+.receipt-modal-list-row{border-top:1px solid #edf1f6;}.receipt-modal-list-copy{min-width:0;}.receipt-modal-list-name{color:var(--bs-secondary);font-size:.95rem;font-weight:800;line-height:1.2;}.receipt-modal-list-email{margin-top:.18rem;color:#94a3b8;font-size:.8rem;line-height:1.2;word-break:break-word;}.receipt-modal-list-amount{color:var(--bs-secondary);font-size:.95rem;font-weight:800;line-height:1.2;white-space:nowrap;}.receipt-modal-total{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem .1rem 0;color:#94a3b8;font-size:.95rem;}.receipt-modal-total strong{color:var(--bs-secondary);font-size:.95rem;font-weight:800;}.receipt-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem 1.35rem 1.35rem;}.receipt-modal-actions.is-single{justify-content:flex-end;margin-top:1.5rem;}.receipt-modal-btn{min-height:42px;padding:0 1.1rem;min-width:110px;border-radius:12px;font-family:inherit;font-size:.88rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;}.receipt-modal-btn-secondary{border:1px solid #dbe2ea;background:#fff;color:#6b7280;}.receipt-modal-btn-primary{border:0;background:var(--bs-primary);color:#fff;box-shadow:0 12px 24px rgba(var(--bs-primary-rgb),.22);}.receipt-modal-btn-primary.is-loading{opacity:.9;}.receipt-modal-btn-done{border:0;background:#7367d7;color:#fff;box-shadow:0 12px 24px rgba(115,103,215,.22);}.receipt-modal-state{padding:1.85rem;background:#fff;text-align:center;}.receipt-modal-state-title{margin:0 0 .35rem;color:var(--bs-secondary);font-size:1.05rem;font-weight:800;text-align:center;}.receipt-modal-state-copy{max-width:360px;margin:0 auto;color:#94a3b8;font-size:.92rem;line-height:1.6;text-align:center;}.receipt-result-card{margin:1.1rem auto 0;max-width:360px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:.95rem 1rem;text-align:left;}.receipt-result-label{color:#94a3b8;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;}.receipt-result-email-row{display:flex;align-items:center;gap:.55rem;color:var(--bs-secondary);font-size:.92rem;line-height:1.4;}.receipt-result-email-row+.receipt-result-email-row{margin-top:.35rem;}.receipt-result-email-row i{color:var(--bs-primary);font-size:.85rem;}.receipt-result-more{margin-top:.55rem;color:var(--bs-primary);font-size:.88rem;font-weight:800;}.refund-modal-head-main{display:flex;align-items:flex-start;gap:.9rem;min-width:0;}.refund-modal-head-icon{width:2.7rem;height:2.7rem;border-radius:12px;background:rgba(239,68,68,.14);color:#ef4444;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}.refund-modal-title{margin:0 0 .35rem;color:var(--bs-secondary);font-size:1.05rem;font-weight:800;}.refund-modal-close{width:2rem;height:2rem;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}.refund-modal-body{padding:0 1.6rem;}.refund-modal-summary{border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;background:#fff;}.refund-modal-summary-email{padding:.9rem 1rem 0;color:#94a3b8;font-size:.82rem;line-height:1.2;}.refund-modal-summary-title{padding:.2rem 1rem 0;color:var(--bs-secondary);font-size:.95rem;font-weight:700;line-height:1.2;}.refund-modal-summary-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem 0;color:#94a3b8;font-size:.95rem;}.refund-modal-summary-row strong{color:var(--bs-secondary);font-size:.95rem;font-weight:800;letter-spacing:0;}.refund-modal-summary-row strong.is-positive{color:#16a34a;}.refund-modal-summary-row:last-child{padding-bottom:.9rem;}.refund-modal-field{margin-top:1rem;}.refund-modal-label{display:block;margin-bottom:.75rem;color:var(--bs-secondary);font-size:.95rem;font-weight:800;}.refund-modal-input-wrap{position:relative;}.refund-modal-input-wrap.is-error .refund-modal-input{border-color:#ff8c96;box-shadow:0 0 0 4px rgba(255,140,150,.16);padding-right:48px;}.refund-modal-input{width:100%;min-height:44px;border:1px solid #dbe2ea;border-radius:12px;background:#fff;padding:0 16px;color:var(--bs-secondary);font-size:1rem;font-weight:700;font-family:inherit;}.refund-modal-input:focus{outline:0;border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.12);}.refund-modal-input-wrap.is-error .refund-modal-input:focus{border-color:#ff6f7c;box-shadow:0 0 0 4px rgba(255,140,150,.16);}.refund-modal-input-icon{position:absolute;top:50%;right:14px;transform:translateY(-50%);color:#ef4444;display:inline-flex;align-items:center;justify-content:center;}.refund-modal-error-text{margin-top:8px;color:#ef4444;font-size:.8rem;font-weight:700;line-height:1.5;}.refund-modal-actions{padding:0;border-top:0;margin-top:1rem;display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:0 1.6rem 1.6rem;}.refund-modal-actions.is-single{justify-content:flex-end;margin-top:1.5rem;}.refund-modal-btn{min-height:44px;padding:0 1.2rem;min-width:110px;border-radius:12px;font-family:inherit;font-size:.88rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;}.refund-modal-btn-secondary{border:1px solid #dbe2ea;background:#fff;color:#6b7280;}.refund-modal-btn-danger{border:0;background:#ef4444;color:#fff;box-shadow:0 12px 24px rgba(239,68,68,.22);}.refund-modal-btn.is-disabled{opacity:.55;box-shadow:none;cursor:not-allowed;}.refund-modal-btn-primary{border:0;background:var(--bs-secondary);color:#fff;box-shadow:0 12px 24px rgba(30,42,74,.18);}.refund-modal-state{padding:1.8rem;background:#fff;}.refund-processing-ring{width:2.7rem;height:2.7rem;border-radius:12px;background:rgba(var(--bs-primary-rgb),.12);display:inline-flex;align-items:center;justify-content:center;margin:0 auto .95rem;}.refund-spinner-lg{width:1.25rem;height:1.25rem;margin:0;border-width:2px;border-color:rgba(var(--bs-primary-rgb),.18);border-top-color:var(--bs-primary);border-right-color:var(--bs-primary);}.successful-payments__loading-icon{color:var(--bs-primary);}.refund-modal-state-title{margin:0 0 .35rem;color:var(--bs-secondary);font-size:1.05rem;font-weight:800;text-align:center;}.refund-modal-state-copy{max-width:360px;margin:0 auto;color:#6b7280;font-size:.92rem;line-height:1.6;text-align:center;}.refund-result-icon{width:2.7rem;height:2.7rem;margin:0 auto .95rem;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;}.refund-result-icon.is-success{background:rgba(22,163,74,.14);color:#16a34a;}.refund-result-icon.is-error{background:rgba(239,68,68,.14);color:#ef4444;}.refund-result-card{margin:1.1rem auto 0;max-width:400px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:.9rem 1rem;text-align:left;}.refund-result-card.is-error{max-width:360px;}.refund-result-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:#94a3b8;font-size:.82rem;line-height:1.2;}.refund-result-row+.refund-result-row{margin-top:.45rem;}.refund-result-row strong{color:var(--bs-secondary);font-size:.95rem;font-weight:700;text-align:right;line-height:1.2;}.refund-result-row strong.is-danger{color:#ef2f2f;font-weight:800;}.refund-result-card-line{display:inline-flex;align-items:center;gap:8px;}@media(max-width:575.98px){.refund-modal-box,.refund-modal-box.is-processing,.refund-modal-box.is-done,.refund-modal-box.is-error{max-width:100%;}.refund-modal-head,.refund-modal-body,.refund-modal-actions,.refund-modal-state{padding-left:.95rem;padding-right:.95rem;}.refund-modal-actions{flex-direction:column-reverse;align-items:stretch;position:sticky;bottom:0;padding-top:.75rem;margin-top:.8rem;background:#fff;}.refund-modal-btn{width:100%;min-height:40px;font-size:.82rem;}.refund-modal-head{position:relative;gap:.85rem;margin-bottom:.9rem;}.refund-modal-head-main{width:100%;padding-right:2rem;}.refund-modal-close{position:absolute;top:0;right:0;width:1.7rem;height:1.7rem;border-radius:999px;}.refund-modal-head-icon,.refund-result-icon,.refund-processing-ring{width:2.35rem;height:2.35rem;border-radius:10px;}.refund-modal-title,.refund-modal-state-title{font-size:.96rem;line-height:1.25;}.refund-modal-state-copy{font-size:.8rem;line-height:1.5;}.refund-result-row{align-items:flex-start;flex-direction:column;}.refund-result-row strong{text-align:left;}.receipt-modal-box,.receipt-modal-box.is-done,.receipt-modal-box.is-error{max-width:100%;}.receipt-modal-head,.receipt-modal-body,.receipt-modal-actions,.receipt-modal-state{padding-left:.95rem;padding-right:.95rem;}.receipt-modal-actions{flex-direction:column-reverse;align-items:stretch;}.receipt-modal-btn{width:100%;}.receipt-modal-list-row,.receipt-modal-total{align-items:flex-start;flex-direction:column;}.receipt-modal-list{max-height:300px;}}@keyframes sp-spin{to{transform:rotate(360deg);}}.mobile-toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--bs-border-color);}.mobile-toolbar .search-wrap{flex:1;min-width:0;}.btn-select-all{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1.5px solid var(--bs-border-color);border-radius:10px;background:#fff;color:var(--bs-secondary-color);font-weight:700;font-size:.8rem;cursor:pointer;white-space:nowrap;}.btn-select-all.is-active{background:var(--bs-secondary);color:#fff;border-color:var(--bs-secondary);}.count-pill{background:rgba(0,0,0,.05);padding:2px 6px;border-radius:6px;font-size:.72rem;font-weight:800;}.btn-select-all.is-active .count-pill{background:rgba(255,255,255,.15);color:#fff;}.mob-list{padding:12px;display:flex;flex-direction:column;gap:10px;}.mob-card{background:#fff;border:1px solid var(--bs-border-color);border-radius:var(--radius-card);padding:14px;box-shadow:0 2px 6px rgba(0,0,0,.02);cursor:pointer;transition:background .1s ease,border-color .1s ease;}.mob-card.is-selected{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.04);}.mob-card-body{display:flex;align-items:flex-start;gap:12px;}.mob-check-col{padding-top:2px;display:flex;align-items:center;}.mob-details-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}.mob-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}.mob-card-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:0;}.mob-card-desc{font-size:.84rem;color:var(--bs-secondary);font-weight:600;line-height:1.35;padding-bottom:10px;border-bottom:1px dashed #e2e8f0;}.mob-card-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;}.mob-card-amount{font-weight:800;font-size:1.05rem;color:var(--bs-secondary);}.mob-card-meta{font-size:.76rem;color:#8aa0c2;font-weight:600;}.successful-payments-mobile-head-actions{display:flex;align-items:center;gap:.55rem;}.successful-payments-mobile-head-btn{width:2.45rem;height:2.45rem;border-radius:12px;border-color:rgba(var(--bs-primary-rgb),.24);color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.05);}.successful-payments-mobile-select-row{display:none;}.successful-payments-mobile-select-btn{margin:0 12px 12px auto;display:inline-flex;align-items:center;gap:.45rem;padding:.52rem .8rem;border-radius:10px;border:1px solid #dbe4ef;background:#fff;color:#8aa0c2;font-size:.78rem;font-weight:600;}.successful-payments-mobile-select-btn.is-active{border-color:rgba(var(--bs-primary-rgb),.24);color:var(--bs-primary);}.successful-payments-mobile-pagination{display:none;}.successful-payments-mobile-sheet-backdrop{display:none;}.successful-payments-mobile-sheet{display:none;}.successful-payments-mobile-sheet-handle{width:42px;height:5px;border-radius:999px;background:#dbe3ef;margin:.55rem auto .35rem;flex-shrink:0;}.successful-payments-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:0 1rem .9rem;border-bottom:1px solid #edf2f7;}.successful-payments-mobile-sheet-head-main{display:flex;align-items:center;gap:.75rem;}.successful-payments-mobile-sheet-icon{width:2rem;height:2rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.08);}.successful-payments-mobile-sheet-title{margin:0;color:var(--bs-secondary);font-size:1rem;font-weight:800;line-height:1.2;}.successful-payments-mobile-sheet-close{width:2rem;height:2rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;}.successful-payments-mobile-sheet-body{padding:.95rem 1rem calc(env(safe-area-inset-bottom,0) + 1rem);max-height:calc(80vh - 72px);overflow-y:auto;}.successful-payments-mobile-sheet-body--stats{padding-top:.9rem;}.successful-payments-mobile-stat-range{background:#f8fafc;border:1px solid #edf2f7;border-radius:14px;padding:.95rem;}.successful-payments-mobile-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:.9rem;}.successful-payments-mobile-stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:.95rem;}.successful-payments-mobile-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}.successful-payments-mobile-type-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.48rem .75rem;border-radius:10px;border:1px solid #e2e8f0;background:#fff;color:#8aa0c2;font-size:.78rem;font-weight:700;justify-content:space-between;min-width:0;}.successful-payments-mobile-type-pill.is-active{border-color:rgba(var(--bs-primary-rgb),.35);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.successful-payments-mobile-type-pill .tab-count{min-width:1.4rem;height:1.4rem;padding:0 .3rem;border-radius:999px;font-size:.7rem;}.successful-payments-mobile-filter-panel{padding:0;border:0;background:transparent;}@media(max-width:767.98px){.page-header{padding:1rem 1rem .9rem;}.page-header-row{align-items:flex-start;gap:.8rem;flex-wrap:nowrap;}.page-header-row .stat-icon.t-success{width:2rem;height:2rem;border-radius:12px;flex-shrink:0;}.page-header-row .outstanding-invoices-page__title{font-size:1.05rem;line-height:1.2;}.page-header-row .outstanding-invoices-page__subtitle{margin-top:.2rem;font-size:.76rem;line-height:1.35;max-width:13rem;}.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.9rem .85rem .8rem;}.search-wrap{min-width:0;}.search-input{height:2.45rem;font-size:.82rem;}.rows-control{margin-left:0;gap:.45rem;}.rows-control-label{font-size:.8rem;}.rows-control select{height:2.45rem;min-width:4.6rem;padding:0 .7rem!important;font-size:.82rem;}.successful-payments-mobile-select-row,.successful-payments-mobile-pagination,.successful-payments-mobile-sheet-backdrop,.successful-payments-mobile-sheet{display:block;}.successful-payments-mobile-pagination{padding:.15rem .85rem .95rem;}.successful-payments-mobile-pagination-summary{font-size:.76rem;color:#8aa0c2;font-weight:500;margin-bottom:.7rem;}.successful-payments-mobile-pagination-controls{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;}.successful-payments-mobile-sheet-backdrop{position:fixed;inset:0;border:0;z-index:1080;background:rgba(15,23,42,.45);}.successful-payments-mobile-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1081;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px rgba(15,23,42,.22);}.successful-payments-mobile-stats-grid .stat-card{min-height:0;padding:.75rem .7rem;border-radius:14px;}.successful-payments-mobile-stats-grid .stat-value{font-size:.98rem;line-height:1.15;}.successful-payments-mobile-stats-grid .stat-sub{font-size:.7rem;}.successful-payments-mobile-stats-grid .stat-label{font-size:.58rem;letter-spacing:.06em;}.successful-payments-mobile-stats-grid .stat-icon,.successful-payments-mobile-stats-grid .outstanding-invoices-page__stat-icon{width:2rem;height:2rem;min-width:2rem;border-radius:11px;font-size:.76rem;}.successful-payments-mobile-sheet-title{font-size:.92rem;}.successful-payments-mobile-sheet-body{padding:.8rem .85rem calc(env(safe-area-inset-bottom,0) + .9rem);}.successful-payments-mobile-stat-range{padding:.8rem;}.successful-payments-mobile-stat-range .stat-range-label{font-size:.62rem;}.successful-payments-mobile-stat-range .stat-range-value{font-size:.72rem;}.successful-payments-mobile-stat-range .field-mini{font-size:.64rem;margin-bottom:.2rem;}.successful-payments-mobile-stat-range .input-date{width:100%;min-width:0;height:2.45rem;padding:.5rem .68rem;font-size:.78rem;}.mob-list{padding:0 .85rem .35rem;gap:.85rem;}.mob-card{padding:.9rem .85rem;border-radius:14px;}.mob-card-body{gap:.7rem;}.mob-check-col .members-table-row-check{width:16px;height:16px;min-width:16px;border-radius:5px;}.mob-check-col .members-table-row-check i{font-size:.56rem;}.mob-details-col .student-name{font-size:.78rem;}.mob-details-col .parent-name{margin-top:.15rem;font-size:.74rem;}.mob-card-amount{font-size:.98rem;}.mob-card-pills .pill{padding:.22rem .5rem;font-size:.64rem;}.mob-card-desc{font-size:.8rem;}.mob-card-footer{gap:.75rem;}.mob-card-meta{font-size:.72rem;}.mob-card-footer .btn-refund-row{width:2rem;height:2rem;flex-shrink:0;}.successful-payments-mobile-filter-panel .filter-section{margin-bottom:.95rem;}.successful-payments-mobile-filter-panel .filter-section-label{font-size:.62rem;margin-bottom:.5rem;}.successful-payments-mobile-filter-panel .field-mini{font-size:.64rem;margin-bottom:.2rem;}.successful-payments-mobile-filter-panel .input-date,.successful-payments-mobile-filter-panel .pound-input input{width:100%;min-width:0;height:2.45rem;font-size:.78rem;}.successful-payments-mobile-filter-panel .status-pills-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;}.successful-payments-mobile-filter-panel .status-pill{width:100%;min-width:0;justify-content:center;padding:.5rem .35rem;font-size:.72rem;line-height:1.2;text-align:center;}.successful-payments-mobile-filter-panel .status-pill .dot{width:7px;height:7px;min-width:7px;}.successful-payments-mobile-filter-panel .btn-filter-reset,.successful-payments-mobile-filter-panel .btn-filter-search{height:2.65rem;font-size:.79rem;}.shop-products-mobile-toolbar,.shop-products-mobile-list{display:block!important;}.shop-products-mobile-list{padding-bottom:.95rem!important;}.shop-tabs,.shop-table-wrap,.shop-table-pagination{display:none!important;}.shop-admin-header-actions .shop-btn-categories,.shop-admin-header-actions .shop-btn-add{min-height:3.1rem;padding:.45rem .65rem;font-size:.78rem;border-radius:12px;gap:.35rem;}.shop-admin-header-actions .shop-btn-categories i,.shop-admin-header-actions .shop-btn-add i{font-size:.9rem;}.shop-products-mobile-card{display:block;}.shop-products-editor-backdrop{display:block!important;position:fixed;inset:0;background:rgba(15,23,42,.52);z-index:1055;}.shop-products-editor-sheet{display:block!important;position:fixed;inset:auto 0 0;z-index:1056;padding-top:1rem;pointer-events:none;}.shop-products-editor-sheet .shop-editor-panel{position:relative!important;inset:auto!important;top:auto!important;width:100%;height:auto;max-height:89vh;border-radius:22px 22px 0 0!important;box-shadow:0 -12px 40px rgba(15,23,42,.22)!important;pointer-events:auto;overflow:hidden;}.shop-products-editor-sheet .shop-editor-header{padding:1rem 1rem .85rem;}.shop-products-editor-sheet .shop-editor-body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0;max-height:calc(89vh - 8.75rem);padding:.95rem 1rem 1rem;overscroll-behavior:contain;}.shop-products-editor-sheet .shop-editor-footer{flex-shrink:0;padding:.8rem 1rem calc(env(safe-area-inset-bottom,0) + .9rem);}}*,*::before,*::after{box-sizing:border-box;}body{font-family:"Nunito",system-ui,sans-serif;background:var(--bs-body-bg);-webkit-font-smoothing:antialiased;color:var(--bs-body-color);margin:0;}.doc-wrapper{max-width:1280px;margin:0 auto;}.doc-nav{background:var(--bs-emphasis-color);padding:12px 20px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;top:0;z-index:1000;}.doc-nav-label{font-size:.66rem;font-weight:700;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.08em;margin-right:4px;}.doc-nav a{font-size:.72rem;font-weight:700;color:rgba(255,255,255,.65);text-decoration:none;padding:4px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);}.doc-nav a:hover{color:#fff;background:rgba(255,255,255,.1);}.doc-section{padding:0 0 12px;}.doc-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color);padding-bottom:10px;margin-bottom:6px;}.doc-note{font-size:.8rem;color:var(--bs-secondary-color);margin:8px 0 0;line-height:1.55;}.doc-note code{background:var(--bs-tertiary-bg);color:var(--bs-emphasis-color);padding:1px 6px;border-radius:4px;font-size:.82em;}pre.doc-code{background:#0f172a;color:#e2e8f0;padding:14px 16px;border-radius:10px;font-size:.76rem;line-height:1.55;overflow-x:auto;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;margin:8px 0 0;}.doc-stage{background:var(--bs-tertiary-bg);border-radius:14px;padding:22px;}.nj-page{background:var(--bs-body-bg);min-height:100vh;color:var(--bs-body-color);font-family:"Nunito",system-ui,sans-serif;}.nj-shell{max-width:1280px;margin:0 auto;padding:20px 10px 32px;display:flex;flex-direction:column;}@media(max-width:768px){.nj-shell{padding:14px 12px 28px;gap:12px;}.nj-header-icon{width:55px!important;}}.nj-header{background:#fff;border-bottom:1px solid var(--bs-border-color);padding:20px 24px 18px;}.nj-header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}.nj-header-title-row{display:flex;align-items:center;gap:12px;}.nj-header-icon{width:38px;height:38px;border-radius:10px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);display:flex;align-items:center;justify-content:center;}.nj-title{font-size:1.35rem;font-weight:800;color:var(--bs-emphasis-color);margin:0;}.nj-subtitle{font-size:.78rem;color:var(--bs-secondary-color);margin:2px 0 0;}@media(max-width:768px){.nj-header{padding:16px 16px 14px;}.nj-title{font-size:1.1rem;}}.nj-stats{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;}@media(max-width:768px){.nj-stats{grid-template-columns:1fr;gap:8px;}}.nj-card{background:#fff;border-radius:14px;box-shadow:var(--m-shadow-card-soft);padding:14px 16px;}.nj-card-row{display:flex;align-items:center;gap:12px;}.nj-card-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}.nj-card-icon-sm{width:32px;height:32px;border-radius:9px;}.nj-card-icon.t-primary{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.nj-card-icon.t-warning{background:var(--bs-warning-bg-subtle);color:var(--m-warning-emphasis);}.nj-card-label{font-size:.7rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}.nj-card-value{font-size:1.25rem;font-weight:800;color:var(--bs-emphasis-color);line-height:1.2;}.nj-card-sub{font-size:.7rem;color:var(--bs-secondary-color);margin-top:1px;}.nj-date-input{padding:5px 8px;border:1.5px solid var(--bs-border-color);border-radius:8px;font-size:.78rem;font-family:inherit;color:var(--bs-emphasis-color);background:#fff;outline:0;min-width:0;flex:1 1 110px;}.nj-date-sep{font-size:.7rem;color:var(--bs-secondary-color);font-weight:700;}.nj-top-classes{display:flex;flex-direction:column;gap:7px;}.nj-top-row{display:flex;flex-direction:column;gap:3px;}.nj-top-rank-row{display:flex;align-items:center;gap:8px;}.nj-top-rank{font-size:.7rem;font-weight:700;color:var(--bs-secondary-color);width:18px;flex-shrink:0;}.nj-top-name{flex:1;min-width:0;font-size:.78rem;font-weight:700;color:var(--bs-emphasis-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.nj-top-count{font-size:.72rem;font-weight:700;color:var(--bs-secondary-color);}.nj-top-bar-track{height:6px;background:var(--bs-tertiary-bg);border-radius:999px;overflow:hidden;}.nj-top-bar-fill{height:100%;border-radius:999px;transition:width .3s ease;}.nj-top-bar-fill.b-1{background:var(--bs-primary);}.nj-top-bar-fill.b-2{background:var(--bs-purple);}.nj-top-bar-fill.b-3{background:var(--m-info-dark);}.nj-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}.nj-search{flex:1 1 240px;min-width:200px;position:relative;}.nj-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--bs-secondary-color);display:inline-flex;pointer-events:none;}.nj-search input{width:100%;padding:9px 12px 9px 36px;border:1.5px solid var(--bs-border-color);border-radius:10px;font-size:.85rem;font-family:inherit;color:var(--bs-emphasis-color);background:#fff;outline:0;}.nj-search input:focus{border-color:var(--bs-primary);}.nj-filter-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;border:1.5px solid var(--bs-border-color);background:#fff;color:var(--bs-secondary-color);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;}.nj-filter-btn.is-active{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.nj-filter-count{background:var(--bs-primary);color:var(--m-on-primary);border-radius:999px;font-size:.65rem;font-weight:800;padding:1px 7px;min-width:18px;text-align:center;}.nj-rpp{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 12px;border-radius:10px;border:1.5px solid var(--bs-border-color);background:#fff;}.nj-rpp label{font-size:.78rem;color:var(--bs-secondary-color);font-weight:600;margin:0;}.nj-rpp select{padding:4px 6px;border:0;outline:0;font-family:inherit;font-size:.82rem;font-weight:700;color:var(--bs-emphasis-color);background:transparent;cursor:pointer;}.nj-filters{background:#fff;border-radius:18px;box-shadow:var(--m-shadow-card);padding:20px 22px;display:flex;flex-direction:column;gap:18px;animation:nj-fade-up .2s ease;}@media(max-width:768px){.nj-filters{padding:16px 14px;}}.nj-filters-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap;}.nj-filter-label{font-size:.72rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:8px;}.nj-mode-toggle{display:inline-flex;border:1.5px solid var(--bs-border-color);border-radius:10px;padding:2px;background:#fff;}.nj-mode-toggle button{padding:5px 12px;border-radius:8px;border:0;background:transparent;color:var(--bs-secondary-color);font-family:inherit;font-weight:600;font-size:.78rem;cursor:pointer;}.nj-mode-toggle button.is-active{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-weight:700;}.nj-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}@media(max-width:768px){.nj-grid-2{grid-template-columns:1fr;}}.nj-grid-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;}@media(max-width:768px){.nj-grid-cols{grid-template-columns:1fr;}}.nj-input-label-sm{font-size:.7rem;font-weight:600;color:var(--bs-secondary-color);margin-bottom:4px;}.nj-input{width:100%;padding:9px 12px;border:1.5px solid var(--bs-border-color);border-radius:10px;font-size:.85rem;font-family:inherit;color:var(--bs-emphasis-color);background:#fff;outline:0;}.nj-input:focus{border-color:var(--bs-primary);}.nj-accordion{border:1.5px solid var(--bs-border-color);border-radius:12px;overflow:hidden;background:#fff;}.nj-acc-row{border-top:1px solid var(--bs-border-color);}.nj-acc-row:first-child{border-top:0;}.nj-acc-head{display:flex;align-items:center;gap:12px;padding:11px 14px;cursor:pointer;background:#fff;}.nj-acc-head.is-expanded{background:var(--bs-tertiary-bg);}.nj-acc-title{flex:1;font-weight:700;font-size:.86rem;color:var(--bs-emphasis-color);}.nj-acc-count{font-size:.68rem;font-weight:700;background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border:1px solid var(--bs-primary-border-subtle);border-radius:999px;padding:1px 8px;}.nj-acc-chev{color:var(--bs-secondary-color);transition:transform .18s ease;}.nj-acc-chev.is-expanded{transform:rotate(180deg);}.nj-acc-body{padding:4px 14px 10px 44px;background:var(--bs-tertiary-bg);display:flex;flex-direction:column;gap:6px;}.nj-acc-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer;background:transparent;}.nj-acc-item.is-checked{background:rgba(var(--bs-primary-rgb),.06);}.nj-acc-item-label{font-size:.82rem;color:var(--bs-emphasis-color);font-weight:500;}.nj-acc-item.is-checked .nj-acc-item-label{color:var(--bs-primary);font-weight:700;}.nj-chip-row{display:flex;flex-wrap:wrap;gap:7px;}.nj-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border:1.5px solid var(--bs-border-color);border-radius:10px;background:#fff;color:var(--bs-secondary-color);font-family:inherit;font-weight:600;font-size:.82rem;cursor:pointer;}.nj-chip.is-active{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-weight:700;}.nj-filters-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:6px;border-top:1px solid var(--bs-border-color);flex-wrap:wrap;}.nj-btn-ghost{padding:9px 16px;border-radius:10px;border:1.5px solid var(--bs-border-color);background:#fff;color:var(--bs-secondary-color);font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;}.nj-btn-primary{padding:9px 18px;border-radius:10px;border:0;background:var(--bs-primary);color:#fff;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.nj-btn-danger{padding:9px 18px;border-radius:10px;border:0;background:var(--bs-danger);color:#fff;font-weight:700;font-size:.82rem;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;}.nj-btn-disabled{padding:9px 18px;border:1.5px dashed var(--bs-border-color);border-radius:9px;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-family:inherit;font-weight:600;font-size:.82rem;cursor:not-allowed;opacity:.75;}.nj-selbar{background:#fff;border-radius:14px;border:1.5px solid var(--bs-primary-border-subtle);box-shadow:0 2px 12px rgba(var(--bs-primary-rgb),.1);padding:14px 18px;display:flex;flex-direction:column;gap:12px;}.nj-selbar-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}.nj-selbar-count{display:flex;align-items:center;gap:8px;flex-shrink:0;background:var(--bs-primary-bg-subtle);border-radius:8px;padding:8px 14px;}.nj-selbar-count-text{font-weight:800;font-size:.82rem;color:var(--m-primary-dark);white-space:nowrap;}.nj-action-wrap{flex:1 1 200px;position:relative;}.nj-action-label{font-size:.7rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:5px;}.nj-action-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border:1.5px solid var(--bs-border-color);border-radius:9px;background:var(--bs-body-bg);color:var(--bs-emphasis-color);font-family:inherit;font-weight:600;font-size:.82rem;cursor:pointer;text-align:left;}.nj-action-menu{position:absolute;top:100%;left:0;right:0;z-index:50;background:#fff;border:1.5px solid var(--bs-border-color);border-radius:10px;box-shadow:var(--m-shadow-dropdown);margin-top:4px;overflow:hidden;}.nj-action-item{padding:9px 14px;font-size:.82rem;display:flex;align-items:center;gap:10px;color:var(--bs-body-color);font-weight:500;cursor:pointer;}.nj-action-item.is-active{background:var(--bs-primary-bg-subtle);font-weight:700;}.nj-action-item .nj-action-icon{color:var(--bs-secondary-color);flex-shrink:0;display:inline-flex;}.nj-action-item.is-active .nj-action-icon{color:inherit;}.nj-action-apply-row{display:flex;gap:8px;}.nj-apply-full{flex:1;padding:9px 18px;border:0;border-radius:9px;background:var(--bs-primary);color:#fff;font-family:inherit;font-weight:700;font-size:.82rem;cursor:pointer;}.nj-clear-sel{flex:0 0 auto;padding:9px 16px;border:1.5px solid var(--bs-border-color);border-radius:9px;background:var(--bs-body-bg);color:var(--bs-secondary-color);font-family:inherit;font-weight:600;font-size:.82rem;cursor:pointer;white-space:nowrap;}.a-none{color:var(--bs-secondary-color);}.a-email{color:var(--bs-purple);}.a-bulk{color:var(--m-info-dark);}.a-invoice{color:var(--bs-purple);}.a-credit{color:var(--bs-warning);}.a-export{color:var(--bs-emphasis-color);}.nj-table-card{background:#fff;border-radius:18px;box-shadow:var(--m-shadow-card);overflow:hidden;}.nj-table-scroll{overflow-x:auto;}.nj-table{width:100%;border-collapse:collapse;min-width:800px;}.nj-table thead tr{background:var(--bs-tertiary-bg);}.nj-table th{padding:11px 14px;font-size:.7rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.06em;text-align:left;background:var(--bs-tertiary-bg);white-space:nowrap;}.nj-table th.nj-th-check{width:1px;}.nj-table td{padding:12px 14px;font-size:.84rem;border-top:1px solid var(--bs-border-color);vertical-align:middle;}.nj-table tbody tr{cursor:pointer;}.nj-table tbody tr.is-fresh{background:rgba(var(--bs-success-rgb),.06);}.nj-table tbody tr.is-refunded{background:rgba(var(--bs-success-rgb),.06);}.nj-table tbody tr.is-selected{background:rgba(var(--bs-primary-rgb),.07);}.nj-table tbody tr.is-zebra{background:rgba(var(--bs-secondary-rgb),.025);}.nj-cell-member{display:flex;align-items:center;gap:10px;}.nj-cell-class{display:flex;flex-direction:column;gap:4px;}.nj-name{font-weight:700;color:var(--bs-emphasis-color);}.nj-dim{font-size:.72rem;color:var(--bs-secondary-color);margin-top:1px;}.nj-cell-strong{font-weight:700;color:var(--bs-emphasis-color);white-space:nowrap;}.nj-cell-age{font-weight:700;color:var(--bs-emphasis-color);}.nj-cell-payment{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;}.nj-cell-payment-copy{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}.nj-refunded{font-size:.7rem;color:var(--bs-danger);margin-top:1px;line-height:1.2;}.nj-avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.72rem;letter-spacing:.02em;flex-shrink:0;}.nj-avatar.av-1{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.nj-avatar.av-2{background:var(--bs-info-bg-subtle);color:var(--m-info-dark);}.nj-avatar.av-3{background:var(--bs-success-bg-subtle);color:var(--m-success-mid);}.nj-avatar.av-4{background:var(--bs-warning-bg-subtle);color:var(--m-warning-emphasis);}.nj-avatar.av-5{background:var(--bs-pink-bg-subtle);color:var(--m-pink-dark);}.nj-avatar.av-6{background:var(--bs-purple-bg-subtle);color:var(--bs-purple);}.nj-badge-class{font-size:.72rem;font-weight:700;background:var(--bs-info-bg-subtle);color:var(--m-info-dark);border:1px solid var(--bs-info-border-subtle);border-radius:6px;padding:2px 8px;align-self:flex-start;white-space:nowrap;display:inline-block;}.nj-badge-group{font-size:.72rem;color:var(--bs-secondary-color);}.nj-badge-group-pill{font-size:.7rem;font-weight:600;background:var(--bs-purple-bg-subtle);color:var(--bs-purple);border:1px solid var(--bs-purple-border-subtle);border-radius:6px;padding:2px 8px;}.nj-pill-location{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;background:var(--bs-warning-bg-subtle);color:var(--m-warning-emphasis);border:1px solid var(--bs-warning-border-subtle);border-radius:999px;padding:3px 10px 3px 8px;white-space:nowrap;}.nj-recency{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:8px;font-size:.7rem;font-weight:800;white-space:nowrap;border:1px solid transparent;}.nj-recency.r-today{background:var(--bs-success-bg-subtle);color:var(--m-success-mid);border-color:var(--bs-success-border-subtle);}.nj-recency.r-recent{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-color:var(--bs-primary-border-subtle);}.nj-recency.r-older{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);border-color:var(--bs-border-color);}.nj-subs-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--bs-success-border-subtle);background:var(--bs-success-bg-subtle);color:var(--bs-success);font-family:inherit;font-weight:800;font-size:.82rem;cursor:pointer;padding:0;}.nj-subs-btn.is-empty{border:0;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);cursor:default;font-weight:700;font-size:.8rem;}.nj-subs-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;border:1.5px solid var(--bs-success-border-subtle);background:var(--bs-success-bg-subtle);color:var(--bs-success);font-family:inherit;font-weight:700;font-size:.74rem;cursor:pointer;}.nj-subs-pill.is-empty{border-color:var(--bs-border-color);background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);cursor:not-allowed;}.nj-subs-pill-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--bs-success);color:#fff;font-weight:800;font-size:.74rem;}.nj-subs-pill.is-empty .nj-subs-pill-num{background:#fff;color:var(--bs-secondary-color);}.nj-refund-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--bs-danger-border-subtle);background:var(--bs-danger-bg-subtle);color:var(--bs-danger);cursor:pointer;padding:0;}.nj-refund-btn.is-refunded{background:var(--bs-danger-bg-subtle);border-color:var(--bs-danger-border-subtle);color:rgba(var(--bs-danger-rgb),.55);}.nj-refund-btn:disabled,.nj-refund-btn.is-disabled{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);cursor:not-allowed;opacity:.6;}.nj-refund-btn-lg{width:36px;height:36px;}.nj-check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--bs-border-color);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}.nj-check.is-checked,.nj-check.is-indeterminate{background:var(--bs-primary);border-color:var(--bs-primary);color:#fff;}.nj-check svg{width:12px;height:12px;}.nj-pag{padding:12px 16px;border-top:1px solid var(--bs-border-color);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}.nj-pag-info{font-size:.78rem;color:var(--bs-secondary-color);}.nj-pag-nav{display:inline-flex;align-items:center;gap:6px;}.nj-pag-btn{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--bs-border-color);background:#fff;color:var(--bs-emphasis-color);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}.nj-pag-btn:disabled{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);cursor:not-allowed;opacity:.55;}.nj-pag-page{font-size:.78rem;color:var(--bs-secondary-color);padding:0 6px;}.nj-mlist{display:flex;flex-direction:column;gap:10px;}.nj-mcard{background:#fff;border-radius:14px;box-shadow:var(--m-shadow-card-soft);border:1px solid var(--bs-border-color);padding:14px;display:flex;flex-direction:column;gap:10px;}.nj-mcard.is-fresh{border:1.5px solid var(--bs-success-border-subtle);}.nj-mcard.is-refunded{background:rgba(var(--bs-success-rgb),.06);border-color:rgba(var(--bs-success-rgb),.12);}.nj-mcard-head{display:flex;align-items:flex-start;gap:10px;}.nj-mcard-namerow{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}.nj-mcard-name{font-weight:700;color:var(--bs-emphasis-color);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.nj-mcard-meta{font-size:.72rem;color:var(--bs-secondary-color);margin-top:1px;}.nj-mcard-tags{display:flex;flex-wrap:wrap;gap:5px;}.nj-mcard-parent{font-size:.74rem;color:var(--bs-secondary-color);}.nj-mcard-footer{padding-top:8px;border-top:1px solid var(--bs-border-color);font-size:.78rem;color:var(--bs-secondary-color);display:flex;align-items:center;justify-content:space-between;gap:10px;}.nj-mcard-payment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid var(--bs-border-color);}.nj-mcard-payment-label{font-size:.7rem;font-weight:700;color:var(--bs-secondary-color);text-transform:uppercase;letter-spacing:.05em;}.nj-mcard-payment-value{font-size:.95rem;font-weight:800;color:var(--bs-emphasis-color);margin-top:2px;}.nj-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:200;}.nj-modal{background:#fff;border-radius:18px;box-shadow:var(--m-shadow-modal);width:100%;max-width:420px;display:flex;flex-direction:column;animation:nj-fade-up .2s ease;overflow:hidden;}.nj-modal.size-md{max-width:540px;max-height:85vh;}.nj-modal-head{padding:18px 22px;border-bottom:1px solid var(--bs-border-color);display:flex;align-items:center;gap:12px;}.nj-modal-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;}.nj-modal-icon.t-danger{background:var(--bs-danger-bg-subtle);color:var(--bs-danger);}.nj-modal-icon.t-success{background:var(--bs-success-bg-subtle);color:var(--bs-success);}.nj-modal-icon.t-primary{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);}.nj-modal-title{font-weight:800;font-size:1rem;color:var(--bs-emphasis-color);}.nj-modal-sub{font-size:.74rem;color:var(--bs-secondary-color);margin-top:2px;}.nj-modal-body{padding:18px 22px;font-size:.85rem;color:var(--bs-body-color);line-height:1.5;}.nj-modal-body.scroll{overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:14px 22px;}.nj-modal-foot{padding:12px 22px;border-top:1px solid var(--bs-border-color);display:flex;justify-content:flex-end;gap:8px;}.nj-modal-close{width:30px;height:30px;border-radius:50%;border:0;background:var(--bs-tertiary-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--bs-secondary-color);}.nj-sub-item{border:1px solid var(--bs-border-color);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:#fff;}.nj-sub-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}.nj-sub-product{font-weight:700;font-size:.9rem;color:var(--bs-emphasis-color);}.nj-sub-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.76rem;color:var(--bs-secondary-color);border-top:1px solid var(--bs-border-color);padding-top:8px;margin-top:2px;}.nj-sub-status{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 8px;white-space:nowrap;border:1px solid transparent;}.nj-sub-status.s-active{background:var(--bs-success-bg-subtle);color:var(--bs-success);border-color:var(--bs-success-border-subtle);}.nj-sub-status.s-trialing{background:var(--bs-info-bg-subtle);color:var(--bs-info);border-color:var(--bs-info-border-subtle);}.nj-sub-status.s-pastdue{background:var(--bs-danger-bg-subtle);color:var(--bs-danger);border-color:var(--bs-danger-border-subtle);}.nj-sub-status.s-canceled{background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);border-color:var(--bs-border-color);}.nj-refund-amount-label{display:block;margin-bottom:.75rem;color:var(--bs-secondary-color);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.nj-amt{display:flex;align-items:stretch;border:1.5px solid var(--bs-border-color);border-radius:12px;overflow:hidden;background:#fff;}.nj-amt.is-error{border-color:rgba(var(--bs-danger-rgb),.55);box-shadow:0 0 0 4px rgba(var(--bs-danger-rgb),.1);}.nj-amt-prefix{display:inline-flex;align-items:center;justify-content:center;padding:0 16px;background:var(--bs-tertiary-bg);color:#8fa0c1;font-weight:800;font-size:1.1rem;border-right:1px solid var(--bs-border-color);}.nj-amt input{flex:1;min-height:54px;padding:10px 14px;border:0;outline:0;font-family:inherit;font-size:1.1rem;font-weight:700;color:var(--bs-emphasis-color);background:#fff;}.nj-amt-max{padding:0 18px;border:0;border-left:1px solid var(--bs-border-color);background:#fff;color:var(--bs-primary);font-family:inherit;font-weight:800;font-size:.9rem;cursor:pointer;}.nj-refund-hint{font-size:.8rem;color:var(--bs-secondary-color);margin-top:10px;line-height:1.5;}.nj-refund-input-error{margin-top:10px;color:var(--bs-danger);font-size:.9rem;font-weight:700;line-height:1.45;}.nj-spin{width:36px;height:36px;border:3px solid rgba(var(--bs-primary-rgb),.16);border-top-color:var(--bs-primary);border-right-color:var(--bs-primary);border-radius:50%;animation:nj-spin .8s linear infinite;margin:0 auto;}.nj-refund-stage-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding-top:28px;padding-bottom:24px;}.nj-refund-stage-icon{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;}.nj-refund-stage-icon.is-processing{background:rgba(var(--bs-primary-rgb),.1);}.nj-refund-stage-icon.is-success{background:#e7f8f1;color:#1db67d;font-size:2.2rem;}.nj-refund-stage-icon.is-error{background:var(--bs-danger-bg-subtle);color:var(--bs-danger);font-size:2rem;}.nj-refund-stage-body.is-error{gap:16px;}.nj-refund-stage-title{font-size:1.05rem;font-weight:800;color:var(--bs-emphasis-color);}.nj-refund-stage-amount{font-size:1.55rem;line-height:1.1;font-weight:900;color:var(--bs-emphasis-color);}.nj-refund-stage-copy{max-width:430px;font-size:.92rem;line-height:1.55;color:#55637f;}.nj-refund-summary{width:100%;max-width:420px;border-radius:16px;background:#f5f7fc;padding:12px 18px;}.nj-refund-summary.is-error{background:#fff;border:1px solid var(--bs-border-color);}.nj-refund-summary-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;font-size:.95rem;color:#8390ae;}.nj-refund-summary-row strong{color:var(--bs-emphasis-color);font-weight:800;}.nj-refund-summary-row.is-negative strong{color:var(--bs-danger);}.nj-refund-summary-row.is-total{border-top:1px solid #dde3f0;margin-top:4px;padding-top:12px;}.nj-refund-summary-row.is-total,.nj-refund-summary-row.is-total strong{color:var(--bs-emphasis-color);font-weight:800;}.nj-btn-soft-disabled{border:0;border-radius:14px;padding:12px 28px;min-width:168px;background:#eef2f8;color:#a8b1c3;font-weight:800;}.nj-btn-success{border:0;border-radius:14px;padding:12px 28px;min-width:104px;background:var(--bs-primary);color:#fff;font-weight:800;box-shadow:0 12px 24px rgba(var(--bs-primary-rgb),.2);}.nj-empty{padding:40px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;}.nj-empty-icon{width:56px;height:56px;border-radius:50%;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);display:flex;align-items:center;justify-content:center;}.nj-empty-title{font-weight:700;font-size:.95rem;color:var(--bs-emphasis-color);}.nj-empty-sub{font-size:.78rem;color:var(--bs-secondary-color);max-width:320px;}.nj-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--bs-emphasis-color);color:var(--m-on-secondary);padding:12px 20px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;gap:8px;z-index:300;}@keyframes nj-fade-up{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}@keyframes nj-spin{to{transform:rotate(360deg);}}.authorized-layout__main{background:#f8fafc;}.authorized-layout__top-search{position:sticky;top:0;z-index:20;background:rgba(248,250,252,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(148,163,184,.18);}.authorized-layout__top-search-inner{padding:16px 24px;}.authorized-layout__body{min-height:100%;}.global-system-search{position:relative;width:100%;max-width:720px;}.global-system-search__button{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:0;background:transparent;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;padding:0;}.global-system-search__button:disabled{opacity:.6;}.global-system-search__input{width:100%;min-height:48px;border-radius:14px;border:1px solid #dbe4f0;background:#fff;padding:12px 16px 12px 44px;font-size:.92rem;font-weight:600;color:#0f172a;box-shadow:0 10px 28px rgba(15,23,42,.04);}.global-system-search__input::placeholder{color:#94a3b8;font-weight:500;}.global-system-search__input:focus{outline:0;border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 0 0 4px rgba(var(--bs-primary-rgb),.12);}.global-system-search__dropdown{position:absolute;top:calc(100% + 10px);left:0;right:0;background:#fff;border:1px solid #dbe4f0;border-radius:16px;box-shadow:0 20px 44px rgba(15,23,42,.12);overflow:hidden;z-index:40;}.global-system-search__result{width:100%;border:0;background:#fff;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-bottom:1px solid rgba(148,163,184,.14);}.global-system-search__result:last-child{border-bottom:0;}.global-system-search__result:hover{background:rgba(var(--bs-primary-rgb),.06);}.global-system-search__empty{padding:16px 18px;color:#64748b;font-weight:600;text-align:left;}.global-system-search__avatar,.global-system-search__avatar-image{width:40px;height:40px;border-radius:999px;flex-shrink:0;}.global-system-search__avatar{display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-primary-rgb),.14);color:var(--bs-primary);font-size:.88rem;font-weight:800;}.global-system-search__avatar-image{object-fit:cover;border:1px solid rgba(148,163,184,.18);}.global-system-search__copy{display:flex;flex-direction:column;min-width:0;}.global-system-search__name{color:#0f172a;font-size:.9rem;font-weight:700;line-height:1.2;}.global-system-search__meta{color:#64748b;font-size:.78rem;font-weight:600;line-height:1.35;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}@media(max-width:991.98px){.authorized-layout__top-search-inner{padding:12px 16px;}.global-system-search{max-width:none;}.global-system-search__input{min-height:44px;border-radius:12px;font-size:.88rem;}.global-system-search__dropdown{top:calc(100% + 8px);border-radius:14px;}.global-system-search__result{padding:11px 12px;}.global-system-search__avatar,.global-system-search__avatar-image{width:36px;height:36px;}.global-system-search__name{font-size:.86rem;}.global-system-search__meta{font-size:.75rem;}}.award-report-page{width:100%;}.award-reports-page__header-wrap{padding-top:.2rem;padding-bottom:.2rem;}.award-reports-page__header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}.award-report-title{margin:0;font-size:1.2rem;line-height:1.2;font-weight:700;color:var(--bs-emphasis-color);}.award-report-subtitle{margin:.2rem 0 0;color:var(--bs-secondary-color);font-size:.9rem;}.award-report-toolbar{display:flex;gap:1rem;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:.8rem;}.award-report-toolbar-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(320px,460px);gap:1rem;flex:1 1 620px;}.award-report-field{min-width:0;}.award-report-field label{display:block;margin-bottom:.45rem;font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:rgba(var(--bs-secondary-rgb),.72);}.award-report-field-grow{min-width:0;}.award-report-dropdown,.award-report-export{position:relative;}.award-report-select,.award-report-btn{min-height:46px;border-radius:14px;}.award-report-select{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.72rem .95rem;background:#fff;border:1px solid var(--bs-border-color);color:var(--bs-emphasis-color);font-size:.9rem;font-weight:700;text-align:left;box-shadow:0 2px 10px rgba(15,23,42,.02);}.award-report-menu{position:absolute;top:calc(100% + .55rem);left:0;z-index:30;width:100%;padding:.4rem;border-radius:14px;border:1px solid rgba(var(--bs-primary-rgb),.14);background:#fff;box-shadow:0 22px 40px rgba(15,23,42,.12);}.award-report-menu-sm{max-width:330px;}.award-report-option,.award-report-export-item{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;border-radius:10px;color:var(--bs-emphasis-color);text-align:left;}.award-report-option:hover,.award-report-option.is-selected,.award-report-export-item:hover{background:rgba(var(--bs-primary-rgb),.07);}.award-report-check{width:18px;height:18px;border-radius:6px;border:1px solid var(--bs-border-color);display:inline-flex;align-items:center;justify-content:center;color:#fff;background:#fff;flex-shrink:0;font-size:.65rem;}.award-report-check.is-selected,.award-report-check.is-partial{border-color:var(--bs-primary);background:var(--bs-primary);}.award-report-option-copy{display:flex;flex-direction:column;gap:.1rem;}.award-report-option-copy strong{font-size:.84rem;line-height:1.2;}.award-report-option-copy small{color:var(--bs-secondary-color);font-size:.74rem;line-height:1.2;}.award-report-search{position:relative;}.award-report-search i{position:absolute;top:50%;left:1rem;transform:translateY(-50%);color:var(--bs-secondary-color);}.award-report-search .form-control{min-height:46px;border-radius:14px;border-color:var(--bs-border-color);padding-left:2.45rem;font-size:.9rem;box-shadow:none;}.award-report-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;}.award-report-btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:.72rem 1.05rem;border:1px solid transparent;text-decoration:none;font-size:.9rem;font-weight:700;transition:.15s ease;}.award-report-btn:hover{transform:translateY(-1px);}.award-report-btn-primary{background:var(--bs-primary);border-color:var(--bs-primary);color:var(--m-on-primary,#fff);}.award-report-btn-outline{background:#fff;border-color:rgba(var(--bs-primary-rgb),.5);color:var(--bs-primary);}.award-report-btn-neutral{background:#fff;border-color:var(--bs-border-color);color:var(--bs-emphasis-color);}.award-report-btn-chevron{font-size:.8rem;}.award-report-export-menu{width:360px;max-width:min(360px,100vw - 2rem);left:auto;right:0;}.award-report-export-item{align-items:flex-start;}.award-report-export-item i{color:var(--bs-primary);margin-top:.1rem;}.award-report-export-item span{display:flex;flex-direction:column;gap:.1rem;}.award-report-export-item small{color:var(--bs-secondary-color);font-size:.78rem;}.award-report-filter-bar{gap:1rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:.4rem;}.award-report-filter-label{min-width:90px;}.award-report-filter-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;flex:1 1 auto;}.award-report-mode-tabs{display:inline-flex;padding:.35rem;border:1px solid var(--bs-border-color);border-radius:18px;background:#fff;}.award-report-mode-tab{border:0;background:transparent;color:rgba(var(--bs-secondary-rgb),.78);font-weight:800;padding:.72rem 1rem;border-radius:14px;font-size:.9rem;}.award-report-mode-tab.is-active{background:var(--bs-primary);color:var(--m-on-primary,#fff);}.award-report-class-dropdown{width:min(100%,340px);}.award-report-class-menu{max-height:360px;overflow:auto;}.award-report-class-item+.award-report-class-item{margin-top:.25rem;}.award-report-class-head{display:flex;align-items:center;gap:.45rem;}.award-report-class-trigger{flex:1 1 auto;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:.45rem .15rem;color:var(--bs-emphasis-color);font-weight:800;font-size:.84rem;}.award-report-class-body{padding-left:1.55rem;}.award-report-payment-chips{display:flex;gap:.75rem;flex-wrap:wrap;}.award-report-chip{border:1px solid var(--bs-border-color);background:#fff;color:rgba(var(--bs-secondary-rgb),.85);border-radius:999px;padding:.62rem .95rem;align-items:center;gap:.55rem;font-weight:700;font-size:.88rem;}.award-report-chip.is-active{border-color:rgba(var(--bs-primary-rgb),.38);background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);}.award-report-payment-note{display:flex;align-items:center;gap:.55rem;color:var(--bs-secondary-color);font-size:.83rem;margin:0 0 1rem .2rem;}.award-report-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:.9rem;}.award-report-stat{background:#fff;border:1px solid var(--bs-border-color);border-radius:18px;padding:.95rem 1rem;display:flex;align-items:center;gap:1rem;min-height:92px;}.award-report-stat-icon{width:46px;height:46px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}.award-report-stat-icon.is-students{background:rgba(var(--bs-info-rgb),.12);color:var(--bs-info);}.award-report-stat-icon.is-levels{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);}.award-report-stat-icon.is-populated{background:rgba(var(--bs-success-rgb),.12);color:var(--bs-success);}.award-report-stat-label{display:block;color:rgba(var(--bs-secondary-rgb),.72);font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}.award-report-stat strong{display:block;margin-top:.15rem;color:var(--bs-emphasis-color);font-size:.95rem;line-height:1.15;}.award-report-stat small{display:block;margin-top:.2rem;color:var(--bs-secondary-color);font-size:.82rem;}.award-report-table-wrap{overflow:auto;background:#fff;border:1px solid var(--bs-border-color);border-radius:18px;}.award-report-table{width:100%;border-collapse:separate;border-spacing:0;}.award-report-table th{background:rgba(var(--bs-primary-rgb),.05);color:rgba(var(--bs-secondary-rgb),.82);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.8rem .95rem;white-space:nowrap;}.award-report-table td{padding:.9rem .95rem;border-top:1px solid var(--bs-border-color);vertical-align:middle;font-size:.88rem;}.award-report-sort{width:100%;border:0;background:transparent;display:inline-flex;align-items:center;gap:.55rem;padding:0;color:inherit;font:inherit;font-weight:inherit;text-transform:inherit;letter-spacing:inherit;}.award-report-row{cursor:pointer;transition:background .15s ease;}.award-report-row:hover{background:rgba(var(--bs-primary-rgb),.03);}.award-report-warning-row{cursor:pointer;background:#fffaf0;}.award-report-warning td{background:rgba(var(--bs-warning-rgb),.12);border-top-color:rgba(var(--bs-warning-rgb),.35);}.award-report-warning{display:flex;align-items:center;gap:1rem;}.award-report-warning-icon{width:40px;height:40px;border-radius:12px;border:1px solid rgba(var(--bs-warning-rgb),.48);background:#fff;color:var(--bs-warning);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem;}.award-report-warning-copy{display:flex;flex-direction:column;gap:.25rem;color:var(--bs-emphasis-color);}.award-report-warning-copy span{color:var(--bs-secondary-color);}.award-report-warning-arrow{margin-left:auto;color:var(--bs-warning);}.award-report-cell-muted{color:rgba(var(--bs-secondary-rgb),.92);font-size:.88rem;}.award-report-cell-strong{font-weight:900;color:var(--bs-secondary);}.award-report-level-cell{display:inline-flex;align-items:center;gap:.75rem;color:var(--bs-secondary);}.award-report-level-icon{width:34px;height:34px;border-radius:12px;background:rgba(var(--bs-primary-rgb),.09);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.award-report-progress-cell{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;}.award-report-progress{width:120px;height:8px;border-radius:999px;background:rgba(var(--bs-secondary-rgb),.08);overflow:hidden;}.award-report-progress span{display:block;height:100%;border-radius:inherit;background:var(--bs-primary);}.award-report-row .award-report-cell-strong,.award-report-row .award-report-progress-cell strong{color:var(--bs-secondary);}.award-report-total-row td{background:rgba(var(--bs-primary-rgb),.12);border-top:1px solid rgba(var(--bs-primary-rgb),.2);color:var(--bs-secondary);font-size:.95rem;font-weight:900;padding-top:1rem;padding-bottom:1rem;}.award-report-total-row td:first-child{text-align:center;}.award-report-total-mobile-count{display:none;}.award-report-total-row td:nth-child(2),.award-report-total-row td:nth-child(3),.award-report-total-row td:nth-child(4){color:var(--bs-primary);}.award-report-skeleton-wrap{min-height:0;}.award-report-skeleton-cell{padding:1.15rem 1.2rem!important;}.award-report-skeleton-row{display:flex;align-items:center;gap:1rem;}.award-report-skeleton-icon,.award-report-skeleton-line{display:inline-block;background:linear-gradient(90deg,rgba(var(--bs-secondary-rgb),.06) 25%,rgba(var(--bs-secondary-rgb),.11) 50%,rgba(var(--bs-secondary-rgb),.06) 75%);background-size:200% 100%;animation:award-report-skeleton 1.35s ease-in-out infinite;}.award-report-skeleton-icon{width:38px;height:38px;border-radius:12px;flex-shrink:0;}.award-report-skeleton-line{height:.85rem;border-radius:999px;}.award-report-skeleton-line.is-wide{width:280px;max-width:28%;}.award-report-skeleton-line.is-short{width:76px;max-width:12%;}.award-report-skeleton-line.is-mid{width:200px;max-width:22%;}.award-report-empty{min-height:330px;border:1px solid var(--bs-border-color);border-radius:18px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;text-align:center;padding:1.5rem;}.award-report-empty.is-table-empty{min-height:240px;}.award-report-empty.is-error{gap:.9rem;}.award-report-empty-icon{width:64px;height:64px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--bs-secondary-rgb),.08);color:var(--bs-secondary);font-size:1.4rem;}.award-report-empty-icon.is-error{background:rgba(var(--bs-danger-rgb),.08);color:var(--bs-danger);}.award-report-empty h3{margin:0;color:var(--bs-emphasis-color);font-size:.95rem;font-weight:900;}.award-report-empty p{margin:0;max-width:420px;color:var(--bs-secondary-color);font-size:.86rem;}.award-report-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.award-report-modal-title{margin:0;font-size:.95rem;font-weight:800;color:var(--bs-emphasis-color);}.award-report-modal-sub{margin-top:.25rem;color:var(--bs-secondary-color);font-size:.8rem;}.award-report-modal-close{width:42px;height:42px;border:1px solid var(--bs-border-color);border-radius:12px;background:#fff;color:var(--bs-secondary-color);font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;}.award-report-roster-dialog{max-width:45rem;}.award-report-roster-modal{border-radius:24px;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.18);}.award-report-roster-badge{width:46px;height:46px;border-radius:14px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.award-report-roster-table-wrap{max-height:500px;overflow:auto;}.award-report-roster-modal .modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding-top:1.1rem!important;padding-bottom:1.1rem!important;padding-left:1.6rem!important;padding-right:1.6rem!important;background:#fff;}.award-report-roster-modal .modal-header>:first-child{min-width:0;}.award-report-roster-modal .modal-body{background:#fff;}.award-report-roster-modal .modal-footer{padding-left:1.6rem!important;padding-right:1.6rem!important;background:#fff;}.award-report-roster-table-wrap .award-report-table{table-layout:fixed;}.award-report-roster-table thead th{background:#fff;color:rgba(var(--bs-secondary-rgb),.8);border-bottom:1px solid var(--bs-border-color);padding-top:.85rem;padding-bottom:.85rem;}.award-report-roster-table thead th:nth-child(1){width:30%;}.award-report-roster-table thead th:nth-child(2),.award-report-roster-table thead th:nth-child(3){width:35%;}.award-report-roster-table td{color:rgba(var(--bs-secondary-rgb),.92);font-size:.82rem;padding-top:.9rem;padding-bottom:.9rem;background:#fff;}.award-report-roster-table .award-report-cell-strong{font-size:.84rem;font-weight:800;color:var(--bs-emphasis-color);}.award-report-roster-table td div+div{margin-top:.2rem;}.award-report-roster-count{color:var(--bs-secondary-color);font-size:.82rem;}.award-report-roster-close{min-width:92px;border-radius:14px;padding:.6rem 1rem;font-size:.88rem;font-weight:700;border:0;box-shadow:none;}.award-report-roster-modal .award-report-sort{gap:.4rem;}.award-report-roster-modal .award-report-sort i{font-size:.75rem;}.award-report-roster-modal .award-report-modal-sub{font-size:.84rem;}.award-report-roster-modal .award-report-modal-close:hover{background:rgba(var(--bs-secondary-rgb),.04);}.award-report-roster-modal .award-report-modal-close{margin-left:auto;flex-shrink:0;align-self:flex-start;}.award-report-assign-note{display:flex;align-items:center;gap:.5rem;color:var(--bs-secondary-color);font-size:.82rem;padding:.85rem 0 .75rem;}.award-report-assign-note i{color:var(--bs-primary);font-size:.85rem;}.award-report-assign-table thead th:last-child{width:28%;}.award-report-assign-table-wrap{overflow:visible;max-height:none;}.award-report-assign-table-wrap .award-report-assign-table{overflow:visible;}.award-report-assign-check{width:44px;text-align:center;}.award-report-assign-check .form-check-input{width:1.1rem;height:1.1rem;border-color:rgba(var(--bs-primary-rgb),.25);box-shadow:none;}.award-report-assign-dropdown{position:relative;}.award-report-assign-cell{position:relative;overflow:visible;}.award-report-assign-trigger{width:100%;min-height:42px;border-radius:14px;border:1px solid var(--bs-border-color);background:#fff;color:var(--bs-secondary);box-shadow:none;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .95rem;font-size:.9rem;font-weight:800;text-align:left;}.award-report-assign-trigger:disabled{background:rgba(var(--bs-secondary-rgb),.05);color:var(--bs-secondary-color);}.award-report-assign-trigger i{font-size:.85rem;color:rgba(var(--bs-secondary-rgb),.78);}.award-report-assign-trigger.is-placeholder{color:var(--bs-secondary-color);}.award-report-assign-dropdown.is-open .award-report-assign-trigger{border-color:rgba(var(--bs-primary-rgb),.28);box-shadow:0 0 0 .18rem rgba(var(--bs-primary-rgb),.1);}.award-report-assign-menu{position:absolute;top:calc(100% + .45rem);left:0;z-index:60;width:19rem;max-width:19rem;background:#fff;border:1px solid rgba(var(--bs-secondary-rgb),.12);border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.16);padding:.9rem .9rem .85rem;}.award-report-assign-cell .award-report-assign-menu{left:auto;right:0;}.award-report-assign-menu-copy{color:var(--bs-secondary-color);font-size:.8rem;font-weight:700;margin-bottom:.75rem;}.award-report-assign-menu-groups{max-height:290px;overflow-x:hidden;overflow-y:auto;}.award-report-assign-group+.award-report-assign-group{margin-top:.25rem;}.award-report-assign-group-toggle{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .1rem;color:rgba(var(--bs-secondary-rgb),.82);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:left;}.award-report-assign-group-icons{display:inline-flex;align-items:center;gap:.65rem;color:var(--bs-primary);flex-shrink:0;}.award-report-assign-options{padding:.1rem 0 .2rem;}.award-report-assign-option{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .1rem;color:var(--bs-emphasis-color);font-size:.82rem;font-weight:800;text-align:left;}.award-report-assign-option.is-selected,.award-report-assign-option i{color:var(--bs-primary);}.award-report-assign-done{width:100%;margin-top:.85rem;border-radius:12px;min-height:42px;font-size:.9rem;font-weight:800;}.award-report-assign-bulk{border-top:1px solid var(--bs-border-color);padding:1rem 0 .9rem;}.award-report-assign-bulk-label{font-size:.84rem;font-weight:800;color:var(--bs-emphasis-color);margin-bottom:.55rem;}.award-report-assign-bulk-help{margin-top:.55rem;font-size:.8rem;color:var(--bs-secondary-color);}.award-report-pdf-frame{border:1px solid var(--bs-border-color);border-radius:16px;overflow:hidden;min-height:70vh;background:rgba(var(--bs-primary-rgb),.03);}.award-report-pdf-frame iframe{width:100%;height:70vh;border:0;background:#fff;}.award-report-pdf-link{color:var(--bs-primary);font-size:1.15rem;}.award-report-preview-dialog{max-width:50rem;}.award-report-preview-modal{border-radius:24px;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.18);}.award-report-preview-modal .modal-header,.award-report-preview-modal .modal-footer,.award-report-preview-modal .modal-body{background:#fff;}.award-report-preview-modal .modal-header,.award-report-orders-modal .modal-header{display:flex;justify-content:space-between;align-items:flex-start;}.award-report-preview-modal .modal-header>:first-child,.award-report-orders-modal .modal-header>:first-child{min-width:0;}.award-report-preview-badge{width:46px;height:46px;border-radius:14px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.award-report-preview-scroll{max-height:540px;overflow:auto;padding:.25rem;}.award-report-preview-sheet{background:rgba(var(--bs-primary-rgb),.03);border:1px solid var(--bs-border-color);border-radius:18px;padding:1.2rem;}.award-report-preview-btn{min-height:44px;border-radius:14px;padding:.55rem 1rem;font-size:.88rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;}.award-report-preview-btn-primary{border:0;color:var(--m-on-primary,#fff);}.award-report-order-doc{max-width:700px;margin:0 auto;padding:1.6rem 1.8rem;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.08);}.award-report-order-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;}.award-report-order-doc-brand{display:flex;align-items:flex-start;gap:.9rem;min-width:0;}.award-report-order-doc-logo{width:58px;height:58px;object-fit:contain;flex-shrink:0;}.award-report-order-doc-club{font-size:.98rem;font-weight:800;color:var(--bs-secondary);}.award-report-order-doc-meta{margin-top:.2rem;font-size:.82rem;color:var(--bs-secondary-color);}.award-report-order-doc-title-wrap{text-align:right;}.award-report-order-doc-title{font-size:.98rem;font-weight:900;color:var(--bs-primary);text-transform:uppercase;}.award-report-order-doc-date{margin-top:.2rem;font-size:.82rem;color:var(--bs-secondary-color);}.award-report-order-doc-rule{height:2px;margin:1rem 0 1rem;background:var(--bs-primary);opacity:.7;}.award-report-order-doc-copy{display:grid;gap:.25rem;margin-bottom:1rem;color:var(--bs-emphasis-color);font-size:.86rem;}.award-report-order-doc-section-title{margin:.95rem 0 .4rem;color:var(--bs-primary);font-size:.9rem;font-weight:800;}.award-report-order-doc-table{margin-bottom:.8rem;}.award-report-order-doc-table thead th{padding:.6rem .55rem;color:rgba(var(--bs-secondary-rgb),.8);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-bottom-width:1px;}.award-report-order-doc-table tbody td,.award-report-order-doc-table tfoot td{padding:.62rem .55rem;font-size:.86rem;color:var(--bs-emphasis-color);border-bottom-color:rgba(var(--bs-secondary-rgb),.12);}.award-report-order-doc-table tbody td:first-child{color:var(--bs-secondary);font-weight:700;}.award-report-order-doc-table tbody td:last-child,.award-report-order-doc-table tfoot td:last-child{font-weight:800;color:var(--bs-secondary);}.award-report-order-doc-table tfoot td{color:rgba(var(--bs-secondary-rgb),.84);font-weight:800;text-transform:uppercase;}.award-report-order-doc-total{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:.85rem;border-top:2px solid rgba(var(--bs-primary-rgb),.7);color:var(--bs-primary-color);font-size:.94rem;font-weight:800;}.award-report-order-doc-total strong{color:var(--bs-primary);font-size:1.05rem;}.award-report-order-doc-foot{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(var(--bs-secondary-rgb),.12);color:var(--bs-secondary-color);font-size:.82rem;line-height:1.5;}.award-report-orders-dialog{max-width:45rem!important;}.award-report-orders-modal{border-radius:24px;overflow:hidden;box-shadow:0 24px 60px rgba(15,23,42,.18);}.award-report-orders-modal .modal-header,.award-report-orders-modal .modal-body,.award-report-orders-modal .modal-footer{background:#fff;}.award-report-orders-badge{width:46px;height:46px;border-radius:14px;background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}.award-report-orders-table-wrap{max-height:530px;overflow:auto;}.award-report-orders-table thead th{background:#fff;color:rgba(var(--bs-secondary-rgb),.82);border-bottom:1px solid var(--bs-border-color);padding-top:.9rem;padding-bottom:.9rem;}.award-report-orders-table th:nth-child(1){width:34%;}.award-report-orders-table th:nth-child(2){width:30%;}.award-report-orders-table th:nth-child(3){width:14%;}.award-report-orders-table th:nth-child(4){width:14%;}.award-report-orders-table th:nth-child(5){width:8%;}.award-report-orders-table td{background:#fff;padding-top:.95rem;padding-bottom:.95rem;font-size:.82rem;color:rgba(var(--bs-secondary-rgb),.92);}.award-report-orders-subject{font-size:.84rem;font-weight:800;color:var(--bs-emphasis-color);}.award-report-orders-recipient,.award-report-orders-date{color:rgba(var(--bs-secondary-rgb),.88);}.award-report-orders-download{width:42px;height:42px;border:1px solid var(--bs-border-color);border-radius:12px;background:#fff;color:var(--bs-primary);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}.award-report-orders-download:hover{background:rgba(var(--bs-primary-rgb),.04);color:var(--bs-primary);}.award-report-orders-download:disabled{opacity:1;cursor:default;}.award-report-orders-download-spinner{width:.95rem;height:.95rem;border-width:.14em;color:currentColor;}.award-report-preview-modal .award-report-modal-close,.award-report-orders-modal .award-report-modal-close{margin-left:auto;flex-shrink:0;align-self:flex-start;}@keyframes award-report-skeleton{0%{background-position:200% 0;}100%{background-position:-200% 0;}}@media(max-width:1199.98px){.award-report-toolbar{align-items:stretch;}.award-report-toolbar-grid{grid-template-columns:1fr 1fr;}.award-report-actions{width:100%;}}@media(max-width:991.98px){.award-report-title{font-size:1.05rem;}.award-report-toolbar-grid,.award-report-stats{grid-template-columns:1fr;}.award-report-actions{flex-direction:column;align-items:stretch;}.award-report-export-menu{width:100%;right:auto;left:0;}}@media(max-width:767.98px){.award-reports-page__header-wrap{padding-top:0;}.award-report-title{font-size:.98rem;}.award-report-subtitle{font-size:.78rem;}.award-report-toolbar,.award-report-toolbar-grid,.award-report-filter-controls,.award-report-filter-bar,.award-report-stats,.award-report-actions{gap:.7rem;}.award-report-filter-controls{width:100%;}.award-report-mode-tabs,.award-report-class-dropdown,.award-report-chip,.award-report-btn,.award-report-select{width:100%;}.award-report-mode-tabs{flex-direction:column;}.award-report-payment-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;width:100%;}.award-report-chip{width:100%;justify-content:flex-start;}.award-report-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.award-report-field label,.award-report-filter-label,.award-report-stat-label,.award-report-table th{font-size:.68rem;}.award-report-select,.award-report-search .form-control,.award-report-btn,.award-report-mode-tab,.award-report-chip{min-height:42px;font-size:.82rem;}.award-report-select,.award-report-btn,.award-report-mode-tab,.award-report-chip{padding:.58rem .8rem;}.award-report-search i{left:.8rem;font-size:.9rem;}.award-report-search .form-control{padding-left:2.15rem;}.award-report-option-copy strong,.award-report-export-item small,.award-report-class-trigger,.award-report-payment-note,.award-report-cell-muted,.award-report-table td{font-size:.78rem;}.award-report-option-copy small{font-size:.7rem;}.award-report-warning,.award-report-stat{align-items:flex-start;}.award-report-warning{gap:.75rem;}.award-report-warning-icon,.award-report-stat-icon{width:38px;height:38px;border-radius:12px;font-size:.95rem;}.award-report-warning-copy,.award-report-warning-copy span,.award-report-stat small{font-size:.76rem;}.award-report-stat{padding:.8rem .85rem;min-height:80px;gap:.8rem;}.award-report-stat strong{font-size:.86rem;}.award-report-table th{padding:.7rem .75rem;}.award-report-table td{padding:.75rem;}.award-report-level-cell{gap:.55rem;}.award-report-level-icon{width:28px;height:28px;border-radius:10px;font-size:.78rem;}.award-report-progress-cell{flex-direction:column;align-items:flex-end;gap:.45rem;}.award-report-progress{width:94px;height:6px;}.award-report-total-row td{font-size:.82rem;padding-top:.8rem;padding-bottom:.8rem;}.award-report-modal-title{font-size:.88rem;}.award-report-modal-sub,.award-report-roster-count,.award-report-assign-note,.award-report-assign-bulk-help{font-size:.74rem;}.award-report-modal-close{width:38px;height:38px;border-radius:11px;font-size:.88rem;}.award-report-roster-badge,.award-report-orders-badge,.award-report-preview-badge{width:40px;height:40px;border-radius:12px;font-size:.92rem;}.award-report-roster-modal .modal-header,.award-report-roster-modal .modal-footer,.award-report-preview-modal .modal-header,.award-report-preview-modal .modal-body,.award-report-preview-modal .modal-footer,.award-report-orders-modal .modal-header,.award-report-orders-modal .modal-body,.award-report-orders-modal .modal-footer{padding-left:.9rem!important;padding-right:.9rem!important;}.award-report-roster-table thead th,.award-report-orders-table thead th{font-size:.68rem;padding-top:.7rem;padding-bottom:.7rem;}.award-report-roster-table td,.award-report-orders-table td,.award-report-orders-subject,.award-report-orders-recipient,.award-report-orders-date{font-size:.76rem;}.award-report-roster-close,.award-report-preview-btn{min-height:40px;padding:.5rem .85rem;font-size:.82rem;}.award-report-orders-download{width:38px;height:38px;border-radius:11px;}.award-report-assign-check{width:36px;}.award-report-assign-trigger,.award-report-assign-done{min-height:40px;font-size:.82rem;}.award-report-assign-trigger{padding:.55rem .8rem;}.award-report-assign-menu{width:17rem;max-width:17rem;padding:.75rem;}.award-report-assign-menu-copy,.award-report-assign-bulk-label{font-size:.74rem;}.award-report-assign-group-toggle{font-size:.68rem;}.award-report-assign-option{font-size:.78rem;}.award-report-preview-dialog{max-width:min(32rem,100vw - 1.25rem);margin:.625rem auto;}.award-report-preview-modal .modal-header,.award-report-preview-modal .modal-body,.award-report-preview-modal .modal-footer{padding-left:.9rem!important;padding-right:.9rem!important;}.award-report-preview-scroll{max-height:52vh;padding:0;}.award-report-preview-sheet{padding:.7rem;}.award-report-order-doc{max-width:100%;padding:1rem;box-shadow:none;}.award-report-order-doc-head{gap:.9rem;}.award-report-order-doc-brand{gap:.7rem;min-width:0;flex:1 1 auto;}.award-report-order-doc-logo{width:42px;height:42px;min-width:42px;}.award-report-order-doc-brand>div,.award-report-order-doc-title-wrap{min-width:0;}.award-report-order-doc-club,.award-report-order-doc-title{font-size:.84rem;line-height:1.25;word-break:break-word;}.award-report-order-doc-meta,.award-report-order-doc-date,.award-report-order-doc-copy,.award-report-order-doc-table tbody td,.award-report-order-doc-table tfoot td,.award-report-order-doc-foot{font-size:.76rem;}.award-report-order-doc-rule{margin:.8rem 0;}.award-report-order-doc-section-title{font-size:.82rem;margin-top:.8rem;}.award-report-order-doc-table thead th{font-size:.68rem;padding:.45rem .35rem;}.award-report-order-doc-table tbody td,.award-report-order-doc-table tfoot td{padding:.45rem .35rem;}.award-report-order-doc-total{font-size:.84rem;}.award-report-order-doc-total strong{font-size:.96rem;}.award-report-preview-modal .modal-footer{gap:.6rem!important;}}@media(max-width:575.98px){.award-report-title{font-size:.9rem;}.award-report-subtitle,.award-report-payment-note,.award-report-warning-copy,.award-report-warning-copy span,.award-report-stat small,.award-report-modal-sub,.award-report-roster-count,.award-report-assign-note,.award-report-assign-bulk-help,.award-report-order-doc-meta,.award-report-order-doc-date,.award-report-order-doc-copy,.award-report-order-doc-foot{font-size:.72rem;}.award-report-field label,.award-report-filter-label,.award-report-stat-label,.award-report-table th,.award-report-roster-table thead th,.award-report-orders-table thead th,.award-report-assign-group-toggle{font-size:.64rem;}.award-report-select,.award-report-search .form-control,.award-report-btn,.award-report-mode-tab,.award-report-chip,.award-report-assign-trigger,.award-report-assign-done{min-height:38px;font-size:.76rem;}.award-report-select,.award-report-btn,.award-report-mode-tab,.award-report-chip,.award-report-assign-trigger{padding:.5rem .72rem;}.award-report-option-copy strong,.award-report-class-trigger,.award-report-table td,.award-report-cell-muted,.award-report-roster-table td,.award-report-orders-table td,.award-report-orders-subject,.award-report-orders-recipient,.award-report-orders-date,.award-report-assign-option,.award-report-preview-btn{font-size:.74rem;}.award-report-stat{padding:.72rem .75rem;min-height:72px;}.award-report-stat strong,.award-report-total-row td{font-size:.8rem;}.award-report-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.award-report-stat:last-child:nth-child(odd){grid-column:1/-1;}.award-report-table th,.award-report-table td{padding-left:.62rem;padding-right:.62rem;}.award-report-mode-tabs,.award-report-table-wrap,.award-report-stat,.award-report-preview-modal,.award-report-orders-modal,.award-report-roster-modal{border-radius:16px;}.award-report-roster-dialog{max-width:calc(100vw - .9rem);margin:.45rem auto;}.award-report-roster-modal .modal-header,.award-report-roster-modal .modal-body,.award-report-roster-modal .modal-footer{padding-left:.9rem!important;padding-right:.9rem!important;}.award-report-roster-table-wrap{max-height:52vh;overflow:auto;}.award-report-roster-table{display:table;width:100%;table-layout:fixed;}.award-report-roster-table thead{display:table-header-group;}.award-report-roster-table tbody{display:table-row-group;}.award-report-roster-table tbody tr{display:table-row;background:transparent;border:0;}.award-report-roster-table thead th:nth-child(1){width:34%;}.award-report-roster-table thead th:nth-child(2),.award-report-roster-table thead th:nth-child(3){width:33%;}.award-report-roster-table td{display:table-cell;padding:.7rem .45rem;background:#fff;border-top:1px solid var(--bs-border-color);font-size:.74rem;color:rgba(var(--bs-secondary-rgb),.9);vertical-align:top;word-break:break-word;}.award-report-roster-table th{word-break:break-word;white-space:normal;}.award-report-roster-table td div{word-break:break-word;}.award-report-roster-table td div+div{margin-top:.18rem;}.award-report-roster-table .award-report-cell-strong{font-size:.8rem;line-height:1.3;}.award-report-roster-close{min-width:0;padding-left:1rem;padding-right:1rem;}.award-report-assign-note{align-items:flex-start;gap:.45rem;font-size:.72rem;padding-top:.7rem;padding-bottom:.65rem;}.award-report-assign-table-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;}.award-report-assign-table{width:100%;min-width:34rem;table-layout:fixed;}.award-report-assign-table th,.award-report-assign-table td{padding-top:.7rem;padding-bottom:.7rem;padding-left:.45rem;padding-right:.45rem;font-size:.74rem;vertical-align:middle;word-break:break-word;}.award-report-assign-table thead th{font-size:.64rem;}.award-report-assign-table th:nth-child(1),.award-report-assign-table td:nth-child(1){width:2.5rem;}.award-report-assign-table th:nth-child(2),.award-report-assign-table td:nth-child(2){width:26%;}.award-report-assign-table th:nth-child(3),.award-report-assign-table td:nth-child(3){width:20%;}.award-report-assign-table th:nth-child(4),.award-report-assign-table td:nth-child(4){width:18%;}.award-report-assign-table th:nth-child(5),.award-report-assign-table td:nth-child(5){width:36%;}.award-report-assign-check{width:2.5rem;min-width:2.5rem;}.award-report-assign-check .form-check-input{width:1rem;height:1rem;}.award-report-assign-table .award-report-cell-strong{font-size:.78rem;line-height:1.3;}.award-report-assign-trigger,.award-report-assign-done{min-height:38px;font-size:.76rem;}.award-report-assign-trigger{padding:.45rem .65rem;gap:.45rem;border-radius:12px;}.award-report-assign-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.award-report-assign-menu{width:min(15rem,100vw - 2rem);max-width:min(15rem,100vw - 2rem);padding:.7rem .7rem .75rem;border-radius:14px;}.award-report-assign-menu-copy{font-size:.72rem;margin-bottom:.6rem;}.award-report-assign-menu-groups{max-height:220px;}.award-report-assign-group-toggle{font-size:.64rem;padding-top:.35rem;padding-bottom:.35rem;}.award-report-assign-option{font-size:.74rem;padding-top:.42rem;padding-bottom:.42rem;}.award-report-assign-bulk{padding-top:.85rem;padding-bottom:.75rem;}.award-report-assign-bulk-label{font-size:.78rem;}.award-report-assign-bulk-help{font-size:.72rem;line-height:1.45;}.award-report-main-table-wrap{background:transparent;border:0;overflow:visible;border-radius:0;}.award-report-main-table{display:block;}.award-report-main-table>thead{display:none;}.award-report-main-table>tbody,.award-report-main-table>tfoot{display:block;}.award-report-main-table>tbody{display:grid;gap:.9rem;}.award-report-row.award-report-mobile-card,.award-report-warning-row.award-report-mobile-card,.award-report-total-row.award-report-mobile-total-card{display:block;background:#fff;border:1px solid var(--bs-border-color);border-radius:18px;overflow:hidden;}.award-report-row.award-report-mobile-card td,.award-report-warning-row.award-report-mobile-card td,.award-report-total-row.award-report-mobile-total-card td{display:block;width:100%;border-top:0;}.award-report-row.award-report-mobile-card{padding:.95rem 1rem .9rem;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"level students" "syllabus syllabus" "percentage percentage";row-gap:.55rem;column-gap:.8rem;align-items:start;}.award-report-row.award-report-mobile-card td{padding:0;}.award-report-mobile-level{grid-area:level;}.award-report-mobile-students{grid-area:students;text-align:right!important;font-size:.92rem!important;line-height:1.2;}.award-report-mobile-syllabus{grid-area:syllabus;color:rgba(var(--bs-secondary-rgb),.7);font-size:.78rem!important;line-height:1.3;}.award-report-mobile-percentage{grid-area:percentage;}.award-report-mobile-card .award-report-level-cell{gap:.7rem;align-items:center;}.award-report-mobile-card .award-report-level-cell strong{font-size:.88rem;line-height:1.25;}.award-report-mobile-card .award-report-level-icon{width:36px;height:36px;border-radius:12px;font-size:.9rem;}.award-report-mobile-card .award-report-progress-cell{flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;}.award-report-mobile-card .award-report-progress{width:100%;max-width:none;height:8px;flex:1 1 auto;}.award-report-mobile-card .award-report-progress-cell strong{flex-shrink:0;font-size:.82rem;color:var(--bs-secondary);}.award-report-warning-row.award-report-mobile-card td{padding:.9rem 1rem;}.award-report-total-row.award-report-mobile-total-card{margin-top:.9rem;}.award-report-total-row.award-report-mobile-total-card td{padding:1rem;font-size:.82rem;}.award-report-total-row.award-report-mobile-total-card td:first-child{display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:left;}.award-report-total-mobile-count{display:inline-block;color:var(--bs-primary);font-size:.96rem;font-weight:900;line-height:1;flex-shrink:0;}.award-report-total-row.award-report-mobile-total-card td:nth-child(2),.award-report-total-row.award-report-mobile-total-card td:nth-child(3),.award-report-total-row.award-report-mobile-total-card td:nth-child(4){display:none;}.award-report-preview-dialog{max-width:calc(100vw - .9rem);margin:.45rem auto;}.award-report-preview-modal{border-radius:18px;}.award-report-preview-modal .modal-header{padding-top:.85rem!important;padding-bottom:.85rem!important;}.award-report-preview-badge{width:38px;height:38px;border-radius:12px;font-size:.9rem;}.award-report-preview-modal .modal-header .d-flex.align-items-start.gap-3{gap:.7rem!important;min-width:0;flex:1 1 auto;}.award-report-modal-title{font-size:.92rem;line-height:1.2;}.award-report-modal-sub{font-size:.74rem;line-height:1.3;word-break:break-word;}.award-report-preview-sheet{padding:.55rem;border-radius:14px;}.award-report-order-doc{padding:.85rem .75rem;border-radius:12px;}.award-report-order-doc-head{flex-direction:column;align-items:stretch;gap:.7rem;}.award-report-order-doc-title-wrap{text-align:left;}.award-report-order-doc-copy{line-height:1.5;}.award-report-preview-modal .modal-footer{flex-wrap:nowrap;justify-content:space-between!important;}.award-report-preview-btn{width:auto;min-width:0;font-size:.72rem;gap:.4rem;}}.cs-month-headers--mobile{display:none;}.cs-month-mobile{display:none;}.cs-month-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}@media(max-width:767.98px){.cs-month-wrap{padding-inline:.5rem;padding-bottom:1rem;}.cs-month-headers--desktop{display:none;}.cs-month-headers--mobile{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;}.cs-month-headers--mobile .cs-month-dh{font-size:.65rem;letter-spacing:0;padding:2px 0;}.cs-month-grid{gap:3px;}.cs-month-cell:not(.empty){min-height:52px;height:52px;padding:4px 2px;align-items:center;text-align:center;gap:2px;-webkit-tap-highlight-color:transparent;}.cs-month-cell.empty{min-height:52px;height:52px;}.cs-month-cell.today{border-color:var(--bs-primary);}.cs-month-cell.selected{background-color:rgba(var(--bs-primary-rgb),.1);border-color:var(--bs-primary)!important;border-width:2px;}.cs-month-num{width:22px;height:22px;margin-bottom:0;font-size:.75rem;}.cs-month-num.today{background-color:var(--bs-primary);color:var(--bs-white,#fff);}.cs-month-desktop{display:none!important;}.cs-month-mobile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:0;}.cs-month-dots{display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap;max-width:100%;}.cs-month-overflow{font-size:.58rem;font-weight:700;color:var(--bs-primary);line-height:1;}}.cs-detail-sheet-backdrop,.cs-detail-sheet-top{display:none;}@media(max-width:767.98px){.cs-detail-sheet-backdrop{display:block;position:fixed;inset:0;z-index:1080;border:0;padding:0;margin:0;background:rgba(15,23,42,.45);-webkit-tap-highlight-color:transparent;}.cs-detail-panel{position:fixed;left:0;right:0;bottom:0;z-index:1081;margin:0!important;max-height:85vh;display:flex;flex-direction:column;border-radius:22px 22px 0 0;border-bottom:0;overflow:hidden;}.cs-detail-sheet-top{display:block;flex-shrink:0;background:#fff;padding-top:.55rem;}.cs-detail-sheet-handle{display:block;width:42px;height:5px;border-radius:999px;background:#dbe3ef;margin:0 auto .35rem;}.cs-detail-header{flex-shrink:0;}.cs-detail-body{overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 1rem)!important;}.cs-day-list{padding-inline:12px;padding-bottom:12px;}.cs-day-header{padding:4px 12px 14px;}.cs-day-list .cs-day-card,.cs-detail-body .cs-day-card{display:flex;flex-direction:row;align-items:center;gap:12px;padding:10px 12px;margin:0;width:100%;max-width:100%;box-sizing:border-box;}.cs-dc-time{min-width:64px;flex-shrink:0;}.cs-dc-info{flex:1;min-width:0;width:auto;}.cs-dc-name{margin-bottom:2px;}.cs-dc-stats{flex-shrink:0;min-width:52px;text-align:right;}.cs-day-card .cs-fill-bar{display:none;}.cs-week-card{display:flex;flex-direction:row;align-items:center;gap:10px;padding:10px 12px;}.cs-wc-time{flex-shrink:0;min-width:72px;margin-bottom:0;font-size:.72rem;line-height:1.25;}.cs-wc-name{flex:1;min-width:0;margin-bottom:0;}.cs-wc-foot{flex-shrink:0;flex-direction:column;align-items:flex-end;gap:2px;min-width:56px;}.cs-detail-body .cs-empty{padding:2rem 0;}}@media(min-width:768px){.cs-week-grid.cs-week-grid--3day{grid-template-columns:repeat(3,1fr);padding:0 16px 24px;min-width:auto;}}@media(max-width:767.98px){.cs-week-grid.cs-week-grid--3day{grid-template-columns:1fr;padding:0;gap:10px;}.cs-week-grid .cs-col{padding:8px;border-radius:10px;background:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#e8eaf0);}.cs-col-header--toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 4px;margin-bottom:0;border:0;border-bottom:2px solid var(--bs-border-color,#e8eaf0);background:transparent;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;}.cs-col-header--toggle.today{border-bottom-color:var(--bs-primary);}.cs-col-header-main{display:flex;align-items:center;gap:10px;min-width:0;}.cs-col-header-main .cs-col-abbr{margin:0;min-width:2rem;}.cs-col-header-main .cs-col-circle{margin:0;}.cs-col-header-meta{display:flex;align-items:center;gap:6px;flex-shrink:0;}.cs-col-summary{font-size:.72rem;font-weight:600;color:var(--bs-secondary,#6b7280);white-space:nowrap;}.cs-col-chevron{font-size:.85rem;color:var(--bs-secondary,#6b7280);transition:transform .15s ease;}.cs-col.is-expanded .cs-col-chevron{transform:rotate(180deg);}.cs-col-body{display:none;padding-top:8px;}.cs-col.is-expanded .cs-col-body{display:block;}}@media(min-width:768px){.cs-col-header--toggle{display:block;width:100%;padding:8px 4px;margin-bottom:10px;border:0;border-bottom:2px solid var(--bs-border-color,#e8eaf0);background:transparent;pointer-events:none;cursor:default;text-align:center;appearance:none;-webkit-appearance:none;}.cs-col-header--toggle.today{border-bottom-color:var(--bs-primary);}.cs-col-header-meta{display:none!important;}.cs-col-header-main{display:block;text-align:center;}.cs-col-body{display:block!important;}.cs-week-card{display:block;}.cs-wc-time{min-width:unset;margin-bottom:2px;}.cs-wc-name{margin-bottom:5px;}.cs-wc-foot{display:flex;flex-direction:row;align-items:center;justify-content:space-between;min-width:unset;gap:4px;}}.demo-external-effects-blocked .trials-delete-email-card,.demo-external-effects-blocked .remove-from-class-modal__email-card,.demo-external-effects-blocked .waiting-list-admin__delete-email-card,.demo-external-effects-blocked .set-sub-group-notify-card,.demo-external-effects-blocked .set-affiliation-notify-card,.demo-external-effects-blocked .set-tags-notify-card,.demo-external-effects-blocked .manage-awards-notify-card,.demo-external-effects-blocked .member-transfer-modal__email-card,.demo-external-effects-blocked .subscription-management-confirm-card,.demo-external-effects-blocked .class-invite-flow__review-email,.demo-external-effects-blocked .demo-email-action,.demo-external-effects-blocked .members-action-item.is-email,.demo-external-effects-blocked .members-action-item.is-email-invoice-links,.demo-external-effects-blocked .award-report-actions>.award-report-btn-outline,.demo-external-effects-blocked .send-email-modal .send-email-success-btn,.demo-external-effects-blocked .trials-add-flow__btn.is-primary-outline{display:none!important;}