/* ================================================================
   LOCAL_REPITIT — Pixel-Perfect CSS v3
   Scoped под .local-repitit-wrapper
   Извлечено из vremennyi_etalon (light + dark варианты)
   ================================================================ */

/* ---- Scoped reset ---- */
.local-repitit-wrapper,
.local-repitit-wrapper *,
.local-repitit-wrapper *::before,
.local-repitit-wrapper *::after {
  box-sizing: border-box;
}
.local-repitit-wrapper {
  font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', Roboto, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #111827;
  background: #f9fafb;
  /* Full-width escape из Moodle-контейнера */
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  width: 100vw;
  max-width: 100vw;
  overflow-x: hidden;
  padding-bottom: 64px;
}
.local-repitit-wrapper h1,
.local-repitit-wrapper h2,
.local-repitit-wrapper h3,
.local-repitit-wrapper p {
  margin: 0; padding: 0;
}
.local-repitit-wrapper button {
  cursor: pointer;
  font-family: inherit;
  background: none;
  border: none;
  padding: 0;
}
.local-repitit-wrapper img {
  display: block;
  max-width: 100%;
}
.local-repitit-wrapper input {
  font-family: inherit;
}

/* Utilities */
.local-repitit-wrapper .rr-hidden { display: none !important; }
.local-repitit-wrapper .rr-muted  { color: #9ca3af; }
.local-repitit-wrapper .rr-hide-mobile { display: none; }

/* Icons */
.local-repitit-wrapper .rr-icon-xs  { width: 12px; height: 12px; flex-shrink: 0; }
.local-repitit-wrapper .rr-icon-sm  { width: 16px; height: 16px; flex-shrink: 0; }
.local-repitit-wrapper .rr-icon-md  { width: 24px; height: 24px; flex-shrink: 0; }
.local-repitit-wrapper .rr-icon-lg  { width: 24px; height: 24px; flex-shrink: 0; }
.local-repitit-wrapper .rr-icon-badge { width: 16px; height: 16px; }
.local-repitit-wrapper .rr-text-yellow-300 { color: #fde047; }
.local-repitit-wrapper .rr-text-yellow-400 { color: #facc15; }
.local-repitit-wrapper .rr-text-blue-400   { color: #60a5fa; }
.local-repitit-wrapper .rr-text-white      { color: #fff; }
.local-repitit-wrapper .rr-text-amber      { color: #d97706; }

/* ================================================================
   HERO
   ================================================================ */
.local-repitit-wrapper .rr-hero {
  background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 50%, #ec4899 100%);
  overflow: hidden;
  position: relative;
}
.local-repitit-wrapper .rr-hero__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 12px 24px;
}
.local-repitit-wrapper .rr-hero__layout {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.local-repitit-wrapper .rr-hero__left {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Avatar */
.local-repitit-wrapper .rr-avatar-wrap {
  --rr-avatar-size: 90px;
  --rr-ring-offset: 4px;
  position: relative;
  width: var(--rr-avatar-size);
  height: var(--rr-avatar-size);
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-avatar-wrap .avatar-large {
  position: relative;
  width: 100%;
  height: 100%;
  margin-bottom: 0;
  flex-shrink: 0;
  display: block;
  line-height: 0;
}
.local-repitit-wrapper .rr-avatar-wrap .rr-avatar-anchor {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.local-repitit-wrapper .rr-avatar-wrap .avatar-story-ring {
  position: absolute;
  inset: calc(var(--rr-ring-offset) * -1);
  border-radius: 50%;
  background: #d1d5db;
  padding: var(--rr-ring-offset);
  z-index: 1;
}
.local-repitit-wrapper .rr-avatar-wrap .avatar-story-ring::after {
  content: '';
  position: absolute;
  inset: var(--rr-ring-offset);
  background: #fff;
  border-radius: 50%;
}
.local-repitit-wrapper .rr-avatar-wrap .avatar-story-ring,
.local-repitit-wrapper .rr-avatar-wrap .avatar-story-ring::after {
  display: none !important;
}
.local-repitit-wrapper .rr-avatar-wrap .avatar-img {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  display: block;
}
.local-repitit-wrapper .rr-avatar-wrap .online-indicator {
  position: absolute !important;
  left: 85.355%;
  top: 85.355%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 3px solid #fff;
  z-index: 20;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  display: block;
}
.local-repitit-wrapper .rr-avatar-wrap .online-indicator.online {
  background: #10b981;
  animation: pulse-online 2s infinite;
}
.local-repitit-wrapper .rr-avatar-wrap .online-indicator.offline {
  background: #9ca3af;
}
body.path-local-tutor #local-tutor-root .rr-avatar-wrap .avatar-story-ring {
  display: none !important;
}
body.path-local-tutor #local-tutor-root .rr-avatar-wrap .rr-avatar-anchor {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  isolation: isolate;
  overflow: visible !important;
}
body.path-local-tutor #local-tutor-root .rr-avatar-wrap,
body.path-local-tutor #local-tutor-root .rr-avatar-wrap .avatar-large {
  overflow: visible !important;
}
body.path-local-tutor #local-tutor-root .rr-avatar-wrap .rr-avatar-anchor > .avatar-img {
  position: relative;
  z-index: 1;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 50% !important;
  object-fit: cover !important;
}
body.path-local-tutor #local-tutor-root .rr-avatar-wrap .rr-avatar-anchor > .online-indicator {
  position: absolute !important;
  left: 85.355% !important;
  top: 85.355% !important;
  z-index: 2 !important;
  transform: translate(-50%, -50%) !important;
}
@keyframes pulse-online {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

/* Hero info */
.local-repitit-wrapper .rr-hero__info { flex: 1; min-width: 0; }
.local-repitit-wrapper .rr-hero__username {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  font-size: 10px;
  position: relative;
}
.local-repitit-wrapper .rr-username-text {
  color: rgba(255,255,255,0.7);
  font-size: 1em;
}
.local-repitit-wrapper .ou-verified {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 1.15em;
}

.local-repitit-wrapper .rr-hero__name {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
  line-height: 1.25;
}
.local-repitit-wrapper .rr-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}
.local-repitit-wrapper .rr-meta-item {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  color: rgba(255,255,255,0.9);
}
.local-repitit-wrapper .rr-meta-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,0.2);
  backdrop-filter: blur(8px);
  border-radius: 9999px;
  padding: 2px 10px;
}
.local-repitit-wrapper .rr-meta-badge--mobile {
  display: none;
}
.local-repitit-wrapper .rr-rating-val {
  font-weight: 600;
  color: #fff;
  font-size: 12px;
}
.local-repitit-wrapper .rr-rating-cnt {
  color: rgba(255,255,255,0.8);
  font-size: 12px;
}
.local-repitit-wrapper .rr-meta-pill {
  color: rgba(255,255,255,0.8);
  font-size: 12px;
}

/* Price card */
.local-repitit-wrapper .rr-price-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
  padding: 20px;
  width: 100%;
}
.local-repitit-wrapper .rr-price-card__price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-bottom: 12px;
}
.local-repitit-wrapper .rr-price-card__amount {
  font-size: 32px;
  font-weight: 700;
  color: #111827;
}
.local-repitit-wrapper .rr-price-card__currency {
  font-size: 18px;
  color: #6b7280;
}
.local-repitit-wrapper .rr-price-card__per {
  font-size: 13px;
  color: #9ca3af;
}
.local-repitit-wrapper .rr-btn-book {
  width: 100%;
  height: 44px;
  background: linear-gradient(to right, #4f46e5, #7c3aed);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: opacity 0.15s;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(79,70,229,0.4);
}
.local-repitit-wrapper .rr-btn-book:hover { opacity: 0.9; }
.local-repitit-wrapper .rr-price-card__notes {
  font-size: 11px;
  color: #9ca3af;
  text-align: center;
  line-height: 1.6;
}

/* ================================================================
   SUBJECTS BAR
   ================================================================ */
.local-repitit-wrapper .rr-subjects-bar {
  background: #fff;
  border-top: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.local-repitit-wrapper .rr-subjects-bar__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.local-repitit-wrapper .rr-subjects-bar__label {
  font-size: 10px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.local-repitit-wrapper .rr-subjects-bar__col--right { text-align: left; }
.local-repitit-wrapper .rr-subjects-bar__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.local-repitit-wrapper .rr-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
}
.local-repitit-wrapper .rr-badge--primary {
  background: #4f46e5;
  color: #fff;
  border: none;
}
.local-repitit-wrapper .rr-badge--outline {
  background: transparent;
  border: 1px solid #d1d5db;
  color: #374151;
}

/* ================================================================
   MAIN GRID
   ================================================================ */
.local-repitit-wrapper .rr-main {
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px 12px;
}
.local-repitit-wrapper .rr-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
.local-repitit-wrapper .rr-col-main { }
.local-repitit-wrapper .rr-col-side { display: flex; flex-direction: column; gap: 16px; }

/* CARD */
.local-repitit-wrapper .rr-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border: 1px solid #f3f4f6;
  overflow: hidden;
}

/* ================================================================
   TABS
   ================================================================ */
.local-repitit-wrapper .rr-tabs-nav {
  display: flex;
  border-bottom: 1px solid #e5e7eb;
  background: rgba(249,250,251,0.5);
  overflow-x: auto;
}
.local-repitit-wrapper .rr-tab-btn {
  display: inline-flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #374151;
  border: none;
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s, background 0.15s;
  border-bottom: 2px solid transparent;
}
.local-repitit-wrapper .rr-tab-btn--active {
  background: #4f46e5;
  color: #fff;
  border-bottom-color: #4f46e5;
}
.local-repitit-wrapper .rr-tab-pane {
  padding: 16px;
}
.local-repitit-wrapper .rr-tab-pane--active { display: block; }

/* About */
.local-repitit-wrapper .rr-about-text {
  color: #374151;
  font-size: 14px;
  line-height: 1.7;
  white-space: pre-line;
}

/* Video */
body.page-local-tutor-index .local-repitit-wrapper .rr-video-wrap { }
body.page-local-tutor-index .local-repitit-wrapper .rr-bunny-player {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}
body.page-local-tutor-index .local-repitit-wrapper .rr-bunny-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  opacity: 0;
  transition: opacity .24s ease;
}
body.page-local-tutor-index .local-repitit-wrapper .rr-bunny-player--ready iframe {
  opacity: 1;
}
body.page-local-tutor-index .local-repitit-wrapper .rr-bunny-player__skeleton {
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(255,255,255,.06) 8%, rgba(255,255,255,.14) 18%, rgba(255,255,255,.06) 33%);
  background-size: 200% 100%;
  animation: rrVideoShimmer 1.2s linear infinite;
  transition: opacity .24s ease;
}
body.page-local-tutor-index .local-repitit-wrapper .rr-bunny-player--ready .rr-bunny-player__skeleton {
  opacity: 0;
  pointer-events: none;
}
@keyframes rrVideoShimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.local-repitit-wrapper .rr-video-thumb {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}
.local-repitit-wrapper .rr-video-thumb img {
  width: 100%;
  height: auto;
  opacity: 0.8;
}
.local-repitit-wrapper .rr-video-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.local-repitit-wrapper .rr-play-btn {
  width: 56px;
  height: 56px;
  background: rgba(255,255,255,0.9);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
  transition: transform 0.15s;
}
.local-repitit-wrapper .rr-play-btn:hover { transform: scale(1.08); }
.local-repitit-wrapper .rr-play-icon { width: 24px; height: 24px; color: #4f46e5; }

/* Reviews header */
.local-repitit-wrapper .rr-reviews-header {
  background: linear-gradient(to right, #facc15, #fb923c, #f472b6);
  padding: 16px;
  text-align: center;
  color: #fff;
}
.local-repitit-wrapper .rr-reviews-avg-block {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 6px;
}
.local-repitit-wrapper .rr-reviews-avg {
  font-size: 36px;
  font-weight: 700;
  color: #fff;
}
.local-repitit-wrapper .rr-reviews-stars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  margin-bottom: 4px;
}
.local-repitit-wrapper .rr-reviews-count-text {
  color: rgba(255,255,255,0.9);
  font-size: 12px;
}

/* Rating distribution */
.local-repitit-wrapper .rr-rating-dist {
  padding: 12px 16px;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
}
.local-repitit-wrapper .rr-rating-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.local-repitit-wrapper .rr-rating-row:last-child { margin-bottom: 0; }
.local-repitit-wrapper .rr-rating-row__label {
  display: flex;
  align-items: center;
  gap: 2px;
  width: 40px;
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 500;
  color: #374151;
}
.local-repitit-wrapper .rr-rating-bar {
  flex: 1;
  height: 6px;
  background: #e5e7eb;
  border-radius: 9999px;
  overflow: hidden;
}
.local-repitit-wrapper .rr-rating-bar__fill {
  height: 100%;
  background: linear-gradient(to right, #facc15, #fb923c);
  border-radius: 9999px;
  transition: width 0.3s;
}
.local-repitit-wrapper .rr-rating-row__count {
  font-size: 12px;
  color: #6b7280;
  width: 28px;
  text-align: right;
}

/* Reviews list */
.local-repitit-wrapper .rr-reviews-list { padding: 16px; display: flex; flex-direction: column; gap: 16px; }
.local-repitit-wrapper .rr-review-card {
  position: relative;
  background: linear-gradient(135deg, #f9fafb, #fff);
  border: 2px solid #f3f4f6;
  border-radius: 12px;
  padding: 16px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.local-repitit-wrapper .rr-review-card:hover {
  border-color: #c7d2fe;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
.local-repitit-wrapper .rr-review-quote {
  position: absolute;
  top: 12px; right: 12px;
  opacity: 0.1;
  color: #4f46e5;
}
.local-repitit-wrapper .rr-quote-icon { width: 32px; height: 32px; }
.local-repitit-wrapper .rr-review-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}
.local-repitit-wrapper .rr-review-avatar {
  width: 40px; height: 40px;
  border-radius: 9999px;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-review-avatar-fb {
  width: 40px; height: 40px;
  border-radius: 9999px;
  background: #4f46e5;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-review-meta { flex: 1; min-width: 0; }
.local-repitit-wrapper .rr-review-author {
  font-weight: 600;
  color: #111827;
  font-size: 14px;
}
.local-repitit-wrapper .rr-review-subj {
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 4px;
}
.local-repitit-wrapper .rr-review-stars-row {
  display: flex;
  align-items: center;
  gap: 2px;
  background: #fefce8;
  padding: 2px 6px;
  border-radius: 6px;
  width: fit-content;
  margin-top: 4px;
}
.local-repitit-wrapper .rr-review-date {
  font-size: 10px;
  color: #9ca3af;
  white-space: nowrap;
}
.local-repitit-wrapper .rr-review-comment {
  color: #374151;
  font-size: 13px;
  line-height: 1.6;
  position: relative;
  z-index: 1;
}

/* ================================================================
   SCHEDULE CARD
   ================================================================ */
.local-repitit-wrapper .rr-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  color: #fff;
}
.local-repitit-wrapper .rr-card-header--indigo {
  background: linear-gradient(to right, #6366f1, #8b5cf6);
}
.local-repitit-wrapper .rr-card-header--purple {
  background: linear-gradient(to right, #6366f1, #8b5cf6, #ec4899);
  position: relative;
  overflow: hidden;
}
.local-repitit-wrapper .rr-card-header__sparkles {
  position: absolute;
  top: 0; right: 0;
  opacity: 0.2;
  pointer-events: none;
}
.local-repitit-wrapper .rr-sparkles-bg { width: 96px; height: 96px; }
.local-repitit-wrapper .rr-card-header__icon {
  width: 44px; height: 44px;
  background: rgba(255,255,255,0.2);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  backdrop-filter: blur(8px);
  position: relative;
  z-index: 1;
}
.local-repitit-wrapper .rr-card-header__text { flex: 1; min-width: 0; position: relative; z-index: 1; }
.local-repitit-wrapper .rr-card-header__text h2 {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}
.local-repitit-wrapper .rr-card-header__text p {
  font-size: 12px;
  color: rgba(255,255,255,0.8);
}
.local-repitit-wrapper .rr-schedule-tz {
  display: none;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.2);
  backdrop-filter: blur(8px);
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  flex-shrink: 0;
}

.local-repitit-wrapper .rr-schedule-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.local-repitit-wrapper .rr-schedule-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 12px;
  border: 2px solid transparent;
  text-align: left;
  cursor: pointer;
  transition: box-shadow 0.15s, transform 0.1s;
}
.local-repitit-wrapper .rr-schedule-row--available {
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.local-repitit-wrapper .rr-schedule-row--available:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transform: scale(1.01);
}
.local-repitit-wrapper .rr-schedule-row--off {
  background: #f9fafb;
  border-color: #e5e7eb;
  cursor: not-allowed;
  opacity: 0.7;
}
.local-repitit-wrapper .rr-schedule-day {
  width: 44px; height: 44px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-schedule-day--green {
  background: linear-gradient(135deg, #4ade80, #10b981);
  color: #fff;
  box-shadow: 0 4px 12px rgba(74,222,128,0.4);
}
.local-repitit-wrapper .rr-schedule-day--gray {
  background: #e5e7eb;
  color: #6b7280;
}
.local-repitit-wrapper .rr-schedule-day__short {
  font-size: 10px;
}
.local-repitit-wrapper .rr-schedule-info { flex: 1; min-width: 0; }
.local-repitit-wrapper .rr-schedule-dayname {
  font-weight: 600;
  font-size: 13px;
  color: #111827;
  margin-bottom: 4px;
}
.local-repitit-wrapper .rr-schedule-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.local-repitit-wrapper .rr-slot-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fff;
  border: 1px solid #bbf7d0;
  border-radius: 6px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 500;
  color: #374151;
  box-shadow: 0 1px 3px rgba(0,0,0,0.07);
}
.local-repitit-wrapper .rr-slot-clock { color: #16a34a; }

/* ================================================================
   MATERIALS CARD
   ================================================================ */
.local-repitit-wrapper .rr-materials-body { padding: 16px; }
.local-repitit-wrapper .rr-materials-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
.local-repitit-wrapper .rr-mat-item {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  border: 2px solid #e5e7eb;
  background: linear-gradient(135deg, #fff, #f9fafb);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 12px 8px;
  transition: box-shadow 0.15s, transform 0.1s;
}
.local-repitit-wrapper .rr-mat-item:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  transform: scale(1.02);
}
.local-repitit-wrapper .rr-mat-icon {
  width: 44px; height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  margin-bottom: 10px;
}
.local-repitit-wrapper .rr-mat-icon--blue    { background: linear-gradient(135deg, #60a5fa, #22d3ee); }
.local-repitit-wrapper .rr-mat-icon--purple  { background: linear-gradient(135deg, #a78bfa, #f472b6); }
.local-repitit-wrapper .rr-mat-icon--green   { background: linear-gradient(135deg, #4ade80, #34d399); }
.local-repitit-wrapper .rr-mat-icon--orange  { background: linear-gradient(135deg, #fb923c, #f87171); }
.local-repitit-wrapper .rr-mat-label {
  font-weight: 600;
  color: #111827;
  font-size: 12px;
  margin-bottom: 2px;
}
.local-repitit-wrapper .rr-mat-count {
  font-size: 16px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}
.local-repitit-wrapper .rr-mat-bar {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 4px;
}
.local-repitit-wrapper .rr-mat-bar--blue    { background: linear-gradient(to right, #60a5fa, #22d3ee); }
.local-repitit-wrapper .rr-mat-bar--purple  { background: linear-gradient(to right, #a78bfa, #f472b6); }
.local-repitit-wrapper .rr-mat-bar--green   { background: linear-gradient(to right, #4ade80, #34d399); }
.local-repitit-wrapper .rr-mat-bar--orange  { background: linear-gradient(to right, #fb923c, #f87171); }

.local-repitit-wrapper .rr-exclusive-block {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: linear-gradient(to right, #fef3c7, #fff7ed);
  border: 1px solid #fde68a;
  border-radius: 10px;
}
.local-repitit-wrapper .rr-exclusive-icon {
  width: 32px; height: 32px;
  background: #fef3c7;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-exclusive-title {
  font-weight: 600;
  color: #78350f;
  font-size: 13px;
  margin-bottom: 2px;
}
.local-repitit-wrapper .rr-exclusive-desc {
  font-size: 12px;
  color: #92400e;
  line-height: 1.5;
}

/* ================================================================
   BOOKING MODAL
   ================================================================ */

/*
  FIX B: Mobile (<1024px) — backdrop & modal геометрия.
  Backdrop НЕ full-screen (inset:0) на мобиле, чтобы НЕ затемнять bottom-nav.
  Он ограничен между шапкой alphachild (64px) и bottom-nav (64px + safe-area).
  На lg (≥1024px) — backdrop восстанавливается в full-screen (inset:0).
  Используем dvh через @supports для iOS Safari (динамический viewport).
*/

/* --- Backdrop: мобиле ограничен, не накрывает bottom-nav --- */
.local-repitit-wrapper .rr-modal-backdrop {
  position: fixed;
  left: 0; right: 0;
  top: 64px;
  bottom: 64px;
  bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
  z-index: 400;
}

/* --- Modal: мобиле точно между шапкой и bottom-nav --- */
.local-repitit-wrapper .rr-modal {
  position: fixed;
  left: 0; right: 0;
  background: #fff;
  z-index: 401;
  display: flex;
  flex-direction: column;
  top: 64px;
  bottom: 64px;
  bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  height: auto;
  /* dvh fallback для iOS Safari (браузерная панель двигается) */
  max-height: calc(100vh - 128px);
}
@supports (height: 100dvh) {
  .local-repitit-wrapper .rr-modal {
    max-height: calc(100dvh - 128px - env(safe-area-inset-bottom, 0px));
  }
}

/* --- Контент внутри: safe-area снизу для iOS --- */
.local-repitit-wrapper .rr-modal-body {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.local-repitit-wrapper .rr-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #e5e7eb;
  flex-shrink: 0;
  background: #fff;
}
.local-repitit-wrapper .rr-modal-title {
  font-size: 18px;
  font-weight: 700;
  color: #111827;
}
.local-repitit-wrapper .rr-modal-close {
  width: 32px; height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: #6b7280;
  transition: background 0.15s;
}
.local-repitit-wrapper .rr-modal-close:hover { background: #f3f4f6; }
.local-repitit-wrapper .rr-modal-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ================================================================
   MODAL STEPS CONTENT (injected via JS)
   ================================================================ */

/* Step container */
.local-repitit-wrapper .rr-step { display: flex; flex-direction: column; flex: 1; overflow: hidden; }
.local-repitit-wrapper .rr-step-scroll {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 16px 20px;
  min-height: 0;
}
.local-repitit-wrapper .rr-step-footer {
  flex-shrink: 0;
  padding: 12px 20px;
  background: #fff;
  border-top: 1px solid #f3f4f6;
}

/* Step headings */
.local-repitit-wrapper .rr-step-title {
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 4px;
}
.local-repitit-wrapper .rr-step-subtitle {
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Back button */
.local-repitit-wrapper .rr-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 500;
  color: #4f46e5;
  margin-bottom: 16px;
  border: none;
  background: none;
  cursor: pointer;
}
.local-repitit-wrapper .rr-back-btn:hover { color: #3730a3; }

/* Subject items */
.local-repitit-wrapper .rr-subject-item {
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 8px;
}
.local-repitit-wrapper .rr-subject-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  font-weight: 600;
  font-size: 14px;
  color: #111827;
  background: #fff;
  cursor: pointer;
  transition: background 0.1s;
}
.local-repitit-wrapper .rr-subject-header:hover { background: #f9fafb; }
.local-repitit-wrapper .rr-subject-header.is-open { border-bottom: 1px solid #e5e7eb; }
.local-repitit-wrapper .rr-subject-chevron {
  transition: transform 0.2s;
}
.local-repitit-wrapper .rr-subject-header.is-open .rr-subject-chevron { transform: rotate(180deg); }
.local-repitit-wrapper .rr-subject-programs { display: none; }
.local-repitit-wrapper .rr-program-btn {
  width: 100%;
  text-align: left;
  padding: 12px 16px;
  border-bottom: 1px solid #f3f4f6;
  cursor: pointer;
  transition: background 0.1s;
  background: #fff;
}
.local-repitit-wrapper .rr-program-btn:last-child { border-bottom: none; }
.local-repitit-wrapper .rr-program-btn:hover { background: #f0f9ff; }
.local-repitit-wrapper .rr-program-name {
  font-weight: 500;
  font-size: 13px;
  color: #111827;
}
.local-repitit-wrapper .rr-program-desc {
  font-size: 12px;
  color: #6b7280;
  margin-top: 2px;
}

/* Package items */
.local-repitit-wrapper .rr-package-item {
  width: 100%;
  text-align: left;
  padding: 16px;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
  position: relative;
  background: #fff;
}
.local-repitit-wrapper .rr-package-item:hover { border-color: #c7d2fe; }
.local-repitit-wrapper .rr-package-item.is-selected {
  border-color: #4f46e5;
  box-shadow: 0 0 0 3px rgba(79,70,229,0.12);
  background: #f5f3ff;
}
.local-repitit-wrapper .rr-package-popular {
  position: absolute;
  top: -10px; right: 12px;
  background: linear-gradient(to right, #4f46e5, #7c3aed);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 9999px;
}
.local-repitit-wrapper .rr-package-check {
  position: absolute;
  top: 14px; right: 14px;
  color: #4f46e5;
  opacity: 0;
  transition: opacity 0.15s;
}
.local-repitit-wrapper .rr-package-item.is-selected .rr-package-check { opacity: 1; }
.local-repitit-wrapper .rr-package-name { font-weight: 700; font-size: 15px; color: #111827; margin-bottom: 6px; }
.local-repitit-wrapper .rr-package-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 8px;
}
.local-repitit-wrapper .rr-package-desc { font-size: 13px; color: #6b7280; margin-bottom: 10px; }
.local-repitit-wrapper .rr-package-price { display: flex; align-items: baseline; gap: 8px; }
.local-repitit-wrapper .rr-package-price__main { font-size: 22px; font-weight: 700; color: #111827; }
.local-repitit-wrapper .rr-package-price__old { font-size: 13px; color: #9ca3af; text-decoration: line-through; }
.local-repitit-wrapper .rr-package-price__disc {
  font-size: 11px;
  font-weight: 700;
  color: #16a34a;
  background: #dcfce7;
  padding: 2px 6px;
  border-radius: 4px;
}

/* Buttons */
.local-repitit-wrapper .rr-btn-full {
  width: 100%;
  height: 48px;
  background: linear-gradient(to right, #4f46e5, #7c3aed);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  transition: opacity 0.15s;
  box-shadow: 0 4px 14px rgba(79,70,229,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.local-repitit-wrapper .rr-btn-full:disabled {
  background: #e5e7eb;
  color: #9ca3af;
  cursor: not-allowed;
  box-shadow: none;
  opacity: 1;
}
.local-repitit-wrapper .rr-btn-full:not(:disabled):hover { opacity: 0.9; }
.local-repitit-wrapper .rr-btn-secondary {
  height: 48px;
  padding: 0 20px;
  background: #f3f4f6;
  color: #374151;
  font-size: 14px;
  font-weight: 600;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
}
.local-repitit-wrapper .rr-btn-secondary:hover { background: #e5e7eb; }
.local-repitit-wrapper .rr-footer-btns { display: flex; gap: 10px; }

/* DateTime step */
.local-repitit-wrapper .rr-selected-info {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 16px;
}
.local-repitit-wrapper .rr-selected-info__label { font-size: 11px; color: #6b7280; margin-bottom: 4px; }
.local-repitit-wrapper .rr-selected-info__subject { font-weight: 600; color: #1e40af; font-size: 14px; }
.local-repitit-wrapper .rr-selected-info__pkg { font-size: 12px; color: #3b82f6; }

/* Week nav */
.local-repitit-wrapper .rr-week-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.local-repitit-wrapper .rr-week-nav-btn {
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  color: #374151;
  transition: background 0.1s;
}
.local-repitit-wrapper .rr-week-nav-btn:hover { background: #f3f4f6; }
.local-repitit-wrapper .rr-current-week-btn {
  flex: 1;
  height: 36px;
  font-size: 13px;
  font-weight: 500;
  color: #4f46e5;
  border: 1px solid #c7d2fe;
  border-radius: 8px;
  background: #f5f3ff;
  transition: background 0.1s;
}
.local-repitit-wrapper .rr-current-week-btn:disabled {
  color: #9ca3af;
  border-color: #e5e7eb;
  background: #f9fafb;
}

/* Days grid */
.local-repitit-wrapper .rr-days-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 16px;
}
.local-repitit-wrapper .rr-day-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 4px;
  border-radius: 10px;
  border: 2px solid transparent;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.1s;
}
.local-repitit-wrapper .rr-day-btn--available {
  background: #f0f9ff;
  border-color: #bae6fd;
  color: #0369a1;
}
.local-repitit-wrapper .rr-day-btn--available:hover { background: #e0f2fe; }
.local-repitit-wrapper .rr-day-btn--selected {
  background: #4f46e5;
  border-color: #4f46e5;
  color: #fff;
  box-shadow: 0 4px 12px rgba(79,70,229,0.4);
}
.local-repitit-wrapper .rr-day-btn--disabled {
  background: #f9fafb;
  border-color: #f3f4f6;
  color: #d1d5db;
  cursor: not-allowed;
}
.local-repitit-wrapper .rr-day-btn__name { font-size: 9px; font-weight: 600; margin-bottom: 2px; }
.local-repitit-wrapper .rr-day-btn__num  { font-size: 15px; font-weight: 700; }
.local-repitit-wrapper .rr-day-btn__month { font-size: 9px; opacity: 0.7; }

/* Times grid */
.local-repitit-wrapper .rr-times-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  font-size: 12px;
  color: #111827;
  margin-bottom: 8px;
}
.local-repitit-wrapper .rr-times-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-bottom: 16px;
}
.local-repitit-wrapper .rr-time-btn {
  padding: 8px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.1s;
}
.local-repitit-wrapper .rr-time-btn--available {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #166534;
}
.local-repitit-wrapper .rr-time-btn--available:hover { background: #dcfce7; }
.local-repitit-wrapper .rr-time-btn--selected {
  background: #4f46e5;
  border-color: #4f46e5;
  color: #fff;
}
.local-repitit-wrapper .rr-time-btn--disabled {
  background: #f9fafb;
  border-color: #f3f4f6;
  color: #d1d5db;
  cursor: not-allowed;
}

/* Info block */
.local-repitit-wrapper .rr-info-block {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px;
  background: #f0f9ff;
  border-radius: 8px;
  font-size: 12px;
  color: #0369a1;
}

/* Payment step */
.local-repitit-wrapper .rr-summary-card {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.local-repitit-wrapper .rr-summary-card__label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7280;
  margin-bottom: 12px;
}
.local-repitit-wrapper .rr-summary-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #f3f4f6;
}
.local-repitit-wrapper .rr-summary-row__name { font-weight: 600; font-size: 14px; color: #111827; }
.local-repitit-wrapper .rr-summary-row__sub { font-size: 12px; color: #6b7280; display: flex; align-items: center; gap: 4px; }
.local-repitit-wrapper .rr-price-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 13px;
  color: #6b7280;
}
.local-repitit-wrapper .rr-price-total {
  display: flex;
  justify-content: space-between;
  padding: 10px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: #111827;
  border-top: 2px solid #e5e7eb;
  margin-top: 4px;
}
.local-repitit-wrapper .rr-price-total__amount { color: #4f46e5; }

/* Payment form */
.local-repitit-wrapper .rr-payment-form {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
}
.local-repitit-wrapper .rr-payment-form__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 14px;
  color: #111827;
  margin-bottom: 12px;
}
.local-repitit-wrapper .rr-field { margin-bottom: 10px; }
.local-repitit-wrapper .rr-field label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #374151;
  margin-bottom: 4px;
}
.local-repitit-wrapper .rr-field input {
  width: 100%;
  height: 40px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 0 12px;
  font-size: 14px;
  color: #111827;
  outline: none;
  transition: border-color 0.15s;
}
.local-repitit-wrapper .rr-field input:focus { border-color: #4f46e5; box-shadow: 0 0 0 3px rgba(79,70,229,0.1); }
.local-repitit-wrapper .rr-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.local-repitit-wrapper .rr-ssl-note {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #16a34a;
  margin-top: 10px;
}
.local-repitit-wrapper .rr-warning-block {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 12px;
  font-size: 12px;
  color: #92400e;
  line-height: 1.5;
}

/* Success step */
.local-repitit-wrapper .rr-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 24px;
  text-align: center;
  gap: 12px;
}
.local-repitit-wrapper .rr-success-icon {
  width: 72px; height: 72px;
  background: linear-gradient(135deg, #4ade80, #22c55e);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 8px 24px rgba(74,222,128,0.4);
  margin-bottom: 8px;
}
.local-repitit-wrapper .rr-success-title {
  font-size: 20px;
  font-weight: 700;
  color: #111827;
}
.local-repitit-wrapper .rr-success-desc {
  font-size: 14px;
  color: #6b7280;
  max-width: 320px;
}
.local-repitit-wrapper .rr-success-cards {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 8px 0;
}
.local-repitit-wrapper .rr-success-card-blue,
.local-repitit-wrapper .rr-success-card-purple {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  border-radius: 12px;
  text-align: left;
}
.local-repitit-wrapper .rr-success-card-blue {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}
.local-repitit-wrapper .rr-success-card-purple {
  background: #f5f3ff;
  border: 1px solid #ddd6fe;
}
.local-repitit-wrapper .rr-success-card-icon-blue {
  width: 36px; height: 36px;
  background: #3b82f6;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-success-card-icon-purple {
  width: 36px; height: 36px;
  background: #7c3aed;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.local-repitit-wrapper .rr-success-card-title {
  font-weight: 600;
  font-size: 13px;
  color: #111827;
  margin-bottom: 4px;
}
.local-repitit-wrapper .rr-success-card-desc { font-size: 12px; color: #6b7280; }
.local-repitit-wrapper .rr-success-footer { font-size: 11px; color: #9ca3af; }

/* Spinner */
.local-repitit-wrapper .rr-spinner {
  width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 9999px;
  animation: rr-spin 0.7s linear infinite;
  display: inline-block;
}
@keyframes rr-spin { to { transform: rotate(360deg); } }

/* ================================================================
   RESPONSIVE — sm (≥640px)
   ================================================================ */
@media (min-width: 640px) {
  .local-repitit-wrapper .rr-hide-mobile { display: inline; }
  .local-repitit-wrapper .rr-hero__inner { padding: 24px 16px 32px; }
  .local-repitit-wrapper .rr-avatar-wrap { --rr-avatar-size: 110px; --rr-ring-offset: 5px; }
  .local-repitit-wrapper .rr-hero__name { font-size: 22px; }
  .local-repitit-wrapper .rr-hero__username { font-size: 12px; }
  .local-repitit-wrapper .rr-hero__meta { font-size: 14px; gap: 12px; }
  .local-repitit-wrapper .rr-price-card { padding: 24px; }
  .local-repitit-wrapper .rr-price-card__amount { font-size: 40px; }
  .local-repitit-wrapper .rr-subjects-bar__inner { flex-direction: row; align-items: center; justify-content: space-between; padding: 16px; }
  .local-repitit-wrapper .rr-subjects-bar__col--right { text-align: right; }
  .local-repitit-wrapper .rr-subjects-bar__col--right .rr-subjects-bar__tags { justify-content: flex-end; }
  .local-repitit-wrapper .rr-main { padding: 24px 16px; }
  .local-repitit-wrapper .rr-schedule-tz { display: flex; }
  .local-repitit-wrapper .rr-tab-btn { font-size: 14px; padding: 14px 20px; }
  .local-repitit-wrapper .rr-about-text { font-size: 15px; }
}

@media (max-width: 639.98px) {
  .local-repitit-wrapper .rr-hero__username {
    flex-wrap: nowrap;
    overflow: hidden;
    gap: 6px;
    margin-bottom: 6px;
  }
  .local-repitit-wrapper .rr-username-text {
    flex: 0 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .local-repitit-wrapper .rr-meta-badge--desktop {
    display: none;
  }
  .local-repitit-wrapper .rr-meta-badge--mobile {
    display: inline-flex;
    padding: 1px 6px;
    gap: 2px;
    font-size: 10px;
    line-height: 1;
    margin-left: 4px;
    flex: 0 0 auto;
    visibility: hidden;
  }
  .local-repitit-wrapper .rr-meta-badge--mobile.is-visible { visibility: visible; }
  .local-repitit-wrapper .rr-meta-badge--mobile.is-hidden { display: none; }
  .local-repitit-wrapper .rr-meta-badge--mobile .rr-icon-xs {
    width: 10px;
    height: 10px;
  }
  .local-repitit-wrapper .rr-rating-val,
  .local-repitit-wrapper .rr-rating-cnt {
    font-size: 10px;
    line-height: 1;
  }
  .local-repitit-wrapper .rr-hero__meta {
    gap: 6px;
  }
}

/* ================================================================
   RESPONSIVE — lg (≥1024px)
   ================================================================ */
@media (min-width: 1024px) {
  .local-repitit-wrapper {
    padding-bottom: 0;
  }
  .local-repitit-wrapper .rr-hero__inner { padding: 40px 32px; }
  .local-repitit-wrapper .rr-hero__layout {
    flex-direction: row;
    align-items: center;
    gap: 32px;
  }
  .local-repitit-wrapper .rr-avatar-wrap { --rr-avatar-size: 150px; --rr-ring-offset: 6px; }
  .local-repitit-wrapper .rr-hero__name { font-size: 26px; }
  .local-repitit-wrapper .rr-price-card { margin-left: auto; min-width: 280px; width: auto; }
  .local-repitit-wrapper .rr-subjects-bar__inner { padding: 16px 32px; }
  .local-repitit-wrapper .rr-main { padding: 32px; }
  .local-repitit-wrapper .rr-grid {
    grid-template-columns: 2fr 1fr;
    align-items: start;
  }
  .local-repitit-wrapper .rr-tab-btn { padding: 16px 24px; font-size: 14px; }
  .local-repitit-wrapper .rr-tab-pane { padding: 24px 32px; }
  .local-repitit-wrapper .rr-card-header { padding: 20px 24px; }
  .local-repitit-wrapper .rr-schedule-body { padding: 20px 24px; }
  .local-repitit-wrapper .rr-materials-body { padding: 20px 24px; }
  /* На lg (≥1024px): backdrop — от шапки (64px) вниз; модалка — правая панель */
  /* 
     FIX B: 1024-1279px — bottom-nav ещё есть (xl:hidden), поэтому backdrop/modal
     заканчиваются над ним. Header = 64px, bottom-nav = 64px.
     Решаем геометрией, а не z-index.
  */
  .local-repitit-wrapper .rr-modal-backdrop {
    top: 64px;
    bottom: 64px;
    bottom: calc(64px + env(safe-area-inset-bottom, 0px));
    left: 0; right: 0;
  }
  .local-repitit-wrapper .rr-modal {
    top: 64px;
    bottom: 64px;
    bottom: calc(64px + env(safe-area-inset-bottom, 0px));
    left: auto; right: 0;
    width: 480px;
    height: auto;
    max-height: none;
  }
  /* Убираем safe-area padding из body — боковая панель */
  .local-repitit-wrapper .rr-modal-body { padding-bottom: 0; }
}

/*
  FIX B: 1280px+ — bottom-nav скрыт (xl:hidden), поэтому можно backdrop full-height.
  Шапка всё ещё есть (64px), поэтому top: 64px.
  Снизу ограничений нет — bottom: 0.
*/
@media (min-width: 1280px) {
  .local-repitit-wrapper .rr-modal-backdrop {
    top: 64px;
    bottom: 0;
    left: 0; right: 0;
  }
  .local-repitit-wrapper .rr-modal {
    top: 64px;
    bottom: 0;
    left: auto; right: 0;
    width: 480px;
    height: auto;
    max-height: none;
  }
}

/* ================================================================
   DARK THEME — follows site theme contracts:
     body.theme-dark  (alphachild theme toggle)
     html.dark-mode   (alternative contract)
     html.theme-dark  (server-side fallback)
   Plugin does NOT write to localStorage or touch html/body classes.
   Selector macro: DK = "body.theme-dark .local-repitit-wrapper,\nhtml.dark-mode .local-repitit-wrapper,\nhtml.theme-dark .local-repitit-wrapper"
   ================================================================ */

/* ── Root / page background ───────────────────────────────────── */
body.theme-dark .local-repitit-wrapper,
html.dark-mode .local-repitit-wrapper,
html.theme-dark .local-repitit-wrapper {
  color: #f9fafb;
  background: #111827;
}

/* ── Hero section ─────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-hero__username,
html.dark-mode .local-repitit-wrapper .rr-hero__username,
html.theme-dark .local-repitit-wrapper .rr-hero__username { color: rgba(255,255,255,0.6); }

body.theme-dark .local-repitit-wrapper .rr-hero__name,
html.dark-mode .local-repitit-wrapper .rr-hero__name,
html.theme-dark .local-repitit-wrapper .rr-hero__name { color: #fff; }

/* ── Price card ───────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-price-card,
html.dark-mode .local-repitit-wrapper .rr-price-card,
html.theme-dark .local-repitit-wrapper .rr-price-card { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-price-card__amount,
html.dark-mode .local-repitit-wrapper .rr-price-card__amount,
html.theme-dark .local-repitit-wrapper .rr-price-card__amount { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-price-card__currency,
html.dark-mode .local-repitit-wrapper .rr-price-card__currency,
html.theme-dark .local-repitit-wrapper .rr-price-card__currency { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-price-card__trial,
html.dark-mode .local-repitit-wrapper .rr-price-card__trial,
html.theme-dark .local-repitit-wrapper .rr-price-card__trial { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-price-card__note,
html.dark-mode .local-repitit-wrapper .rr-price-card__note,
html.theme-dark .local-repitit-wrapper .rr-price-card__note { color: #6b7280; }

/* ── Subjects bar ─────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-subjects-bar,
html.dark-mode .local-repitit-wrapper .rr-subjects-bar,
html.theme-dark .local-repitit-wrapper .rr-subjects-bar { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-subjects-bar__label,
html.dark-mode .local-repitit-wrapper .rr-subjects-bar__label,
html.theme-dark .local-repitit-wrapper .rr-subjects-bar__label { color: #9ca3af; }

/* ── Badges ───────────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-badge--outline,
html.dark-mode .local-repitit-wrapper .rr-badge--outline,
html.theme-dark .local-repitit-wrapper .rr-badge--outline { border-color: #4b5563; color: #d1d5db; }

/* ── Cards / panels ───────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-card,
html.dark-mode .local-repitit-wrapper .rr-card,
html.theme-dark .local-repitit-wrapper .rr-card { background: #1f2937; border-color: #374151; }

/* ── Tabs nav ─────────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-tabs-nav,
html.dark-mode .local-repitit-wrapper .rr-tabs-nav,
html.theme-dark .local-repitit-wrapper .rr-tabs-nav { background: rgba(31,41,55,0.7); border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-tab-btn,
html.dark-mode .local-repitit-wrapper .rr-tab-btn,
html.theme-dark .local-repitit-wrapper .rr-tab-btn { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-tab-btn--active,
html.dark-mode .local-repitit-wrapper .rr-tab-btn--active,
html.theme-dark .local-repitit-wrapper .rr-tab-btn--active { background: #4f46e5; color: #fff; }

body.theme-dark .local-repitit-wrapper .rr-tab-pane,
html.dark-mode .local-repitit-wrapper .rr-tab-pane,
html.theme-dark .local-repitit-wrapper .rr-tab-pane { background: #1f2937; }

/* ── About text ───────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-about-text,
html.dark-mode .local-repitit-wrapper .rr-about-text,
html.theme-dark .local-repitit-wrapper .rr-about-text { color: #d1d5db; }

/* ── Video tab ────────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-video-thumb,
html.dark-mode .local-repitit-wrapper .rr-video-thumb,
html.theme-dark .local-repitit-wrapper .rr-video-thumb { background: #111827; }

/* ── Reviews ──────────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-reviews-header,
html.dark-mode .local-repitit-wrapper .rr-reviews-header,
html.theme-dark .local-repitit-wrapper .rr-reviews-header { background: linear-gradient(to right, #78350f, #7c2d12); border-color: #92400e; }

body.theme-dark .local-repitit-wrapper .rr-reviews-count-text,
html.dark-mode .local-repitit-wrapper .rr-reviews-count-text,
html.theme-dark .local-repitit-wrapper .rr-reviews-count-text { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-rating-dist,
html.dark-mode .local-repitit-wrapper .rr-rating-dist,
html.theme-dark .local-repitit-wrapper .rr-rating-dist { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-rating-row__label,
html.dark-mode .local-repitit-wrapper .rr-rating-row__label,
html.theme-dark .local-repitit-wrapper .rr-rating-row__label { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-rating-bar,
html.dark-mode .local-repitit-wrapper .rr-rating-bar,
html.theme-dark .local-repitit-wrapper .rr-rating-bar { background: #374151; }

body.theme-dark .local-repitit-wrapper .rr-rating-row__count,
html.dark-mode .local-repitit-wrapper .rr-rating-row__count,
html.theme-dark .local-repitit-wrapper .rr-rating-row__count { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-review-card,
html.dark-mode .local-repitit-wrapper .rr-review-card,
html.theme-dark .local-repitit-wrapper .rr-review-card { background: linear-gradient(135deg, #1f2937, #111827); border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-review-author,
html.dark-mode .local-repitit-wrapper .rr-review-author,
html.theme-dark .local-repitit-wrapper .rr-review-author { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-review-comment,
html.dark-mode .local-repitit-wrapper .rr-review-comment,
html.theme-dark .local-repitit-wrapper .rr-review-comment { color: #d1d5db; }

/* ── Card headers (gradient banners) ─────────────────────────── */
/* Gradient headers keep their colors - they look good in dark too */
/* But add subtle dark border for better separation */
body.theme-dark .local-repitit-wrapper .rr-card-header,
html.dark-mode .local-repitit-wrapper .rr-card-header,
html.theme-dark .local-repitit-wrapper .rr-card-header { border-bottom-color: #374151; }

/* ── Schedule ─────────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-schedule-body,
html.dark-mode .local-repitit-wrapper .rr-schedule-body,
html.theme-dark .local-repitit-wrapper .rr-schedule-body { background: #1f2937; }

body.theme-dark .local-repitit-wrapper .rr-schedule-row--available,
html.dark-mode .local-repitit-wrapper .rr-schedule-row--available,
html.theme-dark .local-repitit-wrapper .rr-schedule-row--available { background: #064e3b; border-color: #065f46; }

body.theme-dark .local-repitit-wrapper .rr-schedule-row--off,
html.dark-mode .local-repitit-wrapper .rr-schedule-row--off,
html.theme-dark .local-repitit-wrapper .rr-schedule-row--off { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-schedule-day--gray,
html.dark-mode .local-repitit-wrapper .rr-schedule-day--gray,
html.theme-dark .local-repitit-wrapper .rr-schedule-day--gray { background: #374151; color: #6b7280; }

body.theme-dark .local-repitit-wrapper .rr-schedule-dayname,
html.dark-mode .local-repitit-wrapper .rr-schedule-dayname,
html.theme-dark .local-repitit-wrapper .rr-schedule-dayname { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-schedule-info p,
html.dark-mode .local-repitit-wrapper .rr-schedule-info p,
html.theme-dark .local-repitit-wrapper .rr-schedule-info p { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-slot-badge,
html.dark-mode .local-repitit-wrapper .rr-slot-badge,
html.theme-dark .local-repitit-wrapper .rr-slot-badge { background: #374151; border-color: #065f46; color: #d1d5db; }

body.theme-dark .local-repitit-wrapper .rr-slot-clock,
html.dark-mode .local-repitit-wrapper .rr-slot-clock,
html.theme-dark .local-repitit-wrapper .rr-slot-clock { color: #4ade80; }

body.theme-dark .local-repitit-wrapper .rr-schedule-tz,
html.dark-mode .local-repitit-wrapper .rr-schedule-tz,
html.theme-dark .local-repitit-wrapper .rr-schedule-tz { color: #d1d5db; }

/* ── Materials ────────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-mat-item,
html.dark-mode .local-repitit-wrapper .rr-mat-item,
html.theme-dark .local-repitit-wrapper .rr-mat-item { background: linear-gradient(135deg, #1f2937, #111827); border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-mat-label,
html.dark-mode .local-repitit-wrapper .rr-mat-label,
html.theme-dark .local-repitit-wrapper .rr-mat-label { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-mat-count,
html.dark-mode .local-repitit-wrapper .rr-mat-count,
html.theme-dark .local-repitit-wrapper .rr-mat-count { color: #f9fafb; }

/* ── Exclusive block ──────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-exclusive-block,
html.dark-mode .local-repitit-wrapper .rr-exclusive-block,
html.theme-dark .local-repitit-wrapper .rr-exclusive-block { background: linear-gradient(to right, #451a03, #431407); border-color: #78350f; }

body.theme-dark .local-repitit-wrapper .rr-exclusive-title,
html.dark-mode .local-repitit-wrapper .rr-exclusive-title,
html.theme-dark .local-repitit-wrapper .rr-exclusive-title { color: #fde68a; }

body.theme-dark .local-repitit-wrapper .rr-exclusive-desc,
html.dark-mode .local-repitit-wrapper .rr-exclusive-desc,
html.theme-dark .local-repitit-wrapper .rr-exclusive-desc { color: #fcd34d; }

/* ── Modal shell ──────────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-modal,
html.dark-mode .local-repitit-wrapper .rr-modal,
html.theme-dark .local-repitit-wrapper .rr-modal { background: #1f2937; }

body.theme-dark .local-repitit-wrapper .rr-modal-header,
html.dark-mode .local-repitit-wrapper .rr-modal-header,
html.theme-dark .local-repitit-wrapper .rr-modal-header { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-modal-title,
html.dark-mode .local-repitit-wrapper .rr-modal-title,
html.theme-dark .local-repitit-wrapper .rr-modal-title { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-modal-close,
html.dark-mode .local-repitit-wrapper .rr-modal-close,
html.theme-dark .local-repitit-wrapper .rr-modal-close { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-modal-close:hover,
html.dark-mode .local-repitit-wrapper .rr-modal-close:hover,
html.theme-dark .local-repitit-wrapper .rr-modal-close:hover { background: #374151; }

body.theme-dark .local-repitit-wrapper .rr-modal-backdrop,
html.dark-mode .local-repitit-wrapper .rr-modal-backdrop,
html.theme-dark .local-repitit-wrapper .rr-modal-backdrop { background: rgba(0,0,0,0.75); }

/* ── Step footer / nav ────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-step-footer,
html.dark-mode .local-repitit-wrapper .rr-step-footer,
html.theme-dark .local-repitit-wrapper .rr-step-footer { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-step-title,
html.dark-mode .local-repitit-wrapper .rr-step-title,
html.theme-dark .local-repitit-wrapper .rr-step-title { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-step-subtitle,
html.dark-mode .local-repitit-wrapper .rr-step-subtitle,
html.theme-dark .local-repitit-wrapper .rr-step-subtitle { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-back-btn,
html.dark-mode .local-repitit-wrapper .rr-back-btn,
html.theme-dark .local-repitit-wrapper .rr-back-btn { color: #a5b4fc; }

body.theme-dark .local-repitit-wrapper .rr-back-btn:hover,
html.dark-mode .local-repitit-wrapper .rr-back-btn:hover,
html.theme-dark .local-repitit-wrapper .rr-back-btn:hover { color: #818cf8; }

/* ── Step 1: Subject accordion ───────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-subject-item,
html.dark-mode .local-repitit-wrapper .rr-subject-item,
html.theme-dark .local-repitit-wrapper .rr-subject-item { border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-subject-header,
html.dark-mode .local-repitit-wrapper .rr-subject-header,
html.theme-dark .local-repitit-wrapper .rr-subject-header { background: #1f2937; color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-subject-header:hover,
html.dark-mode .local-repitit-wrapper .rr-subject-header:hover,
html.theme-dark .local-repitit-wrapper .rr-subject-header:hover { background: #374151; }

body.theme-dark .local-repitit-wrapper .rr-subject-header.is-open,
html.dark-mode .local-repitit-wrapper .rr-subject-header.is-open,
html.theme-dark .local-repitit-wrapper .rr-subject-header.is-open { border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-subject-chevron,
html.dark-mode .local-repitit-wrapper .rr-subject-chevron,
html.theme-dark .local-repitit-wrapper .rr-subject-chevron { color: #6b7280; }

body.theme-dark .local-repitit-wrapper .rr-subject-programs,
html.dark-mode .local-repitit-wrapper .rr-subject-programs,
html.theme-dark .local-repitit-wrapper .rr-subject-programs { background: #111827; }

body.theme-dark .local-repitit-wrapper .rr-program-btn,
html.dark-mode .local-repitit-wrapper .rr-program-btn,
html.theme-dark .local-repitit-wrapper .rr-program-btn { background: #111827; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-program-btn:hover,
html.dark-mode .local-repitit-wrapper .rr-program-btn:hover,
html.theme-dark .local-repitit-wrapper .rr-program-btn:hover { background: #1e3a5f; }

body.theme-dark .local-repitit-wrapper .rr-program-name,
html.dark-mode .local-repitit-wrapper .rr-program-name,
html.theme-dark .local-repitit-wrapper .rr-program-name { color: #f9fafb; }

/* ── Step 2: Package cards ───────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-package-item,
html.dark-mode .local-repitit-wrapper .rr-package-item,
html.theme-dark .local-repitit-wrapper .rr-package-item { background: #1f2937; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-package-item.is-selected,
html.dark-mode .local-repitit-wrapper .rr-package-item.is-selected,
html.theme-dark .local-repitit-wrapper .rr-package-item.is-selected { background: #1e1b4b; border-color: #4f46e5; }

body.theme-dark .local-repitit-wrapper .rr-package-name,
html.dark-mode .local-repitit-wrapper .rr-package-name,
html.theme-dark .local-repitit-wrapper .rr-package-name { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-package-desc,
html.dark-mode .local-repitit-wrapper .rr-package-desc,
html.theme-dark .local-repitit-wrapper .rr-package-desc { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-package-price__main,
html.dark-mode .local-repitit-wrapper .rr-package-price__main,
html.theme-dark .local-repitit-wrapper .rr-package-price__main { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-package-price__old,
html.dark-mode .local-repitit-wrapper .rr-package-price__old,
html.theme-dark .local-repitit-wrapper .rr-package-price__old { color: #6b7280; }

/* ── Step 3: Date/time picker ────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-week-nav,
html.dark-mode .local-repitit-wrapper .rr-week-nav,
html.theme-dark .local-repitit-wrapper .rr-week-nav { background: #111827; border-color: #374151; color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-week-nav-btn,
html.dark-mode .local-repitit-wrapper .rr-week-nav-btn,
html.theme-dark .local-repitit-wrapper .rr-week-nav-btn { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-week-nav-btn:hover,
html.dark-mode .local-repitit-wrapper .rr-week-nav-btn:hover,
html.theme-dark .local-repitit-wrapper .rr-week-nav-btn:hover { background: #374151; }

body.theme-dark .local-repitit-wrapper .rr-current-week-btn,
html.dark-mode .local-repitit-wrapper .rr-current-week-btn,
html.theme-dark .local-repitit-wrapper .rr-current-week-btn { color: #a5b4fc; }

body.theme-dark .local-repitit-wrapper .rr-day-btn,
html.dark-mode .local-repitit-wrapper .rr-day-btn,
html.theme-dark .local-repitit-wrapper .rr-day-btn { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-day-btn--available,
html.dark-mode .local-repitit-wrapper .rr-day-btn--available,
html.theme-dark .local-repitit-wrapper .rr-day-btn--available { background: #0c2340; border-color: #1d4ed8; color: #93c5fd; }

body.theme-dark .local-repitit-wrapper .rr-day-btn--available:hover,
html.dark-mode .local-repitit-wrapper .rr-day-btn--available:hover,
html.theme-dark .local-repitit-wrapper .rr-day-btn--available:hover { background: #1e3a5f; }

body.theme-dark .local-repitit-wrapper .rr-day-btn--selected,
html.dark-mode .local-repitit-wrapper .rr-day-btn--selected,
html.theme-dark .local-repitit-wrapper .rr-day-btn--selected { background: #4f46e5; border-color: #4f46e5; color: #fff; }

body.theme-dark .local-repitit-wrapper .rr-day-btn--disabled,
html.dark-mode .local-repitit-wrapper .rr-day-btn--disabled,
html.theme-dark .local-repitit-wrapper .rr-day-btn--disabled { background: #1f2937; border-color: #374151; color: #4b5563; }

body.theme-dark .local-repitit-wrapper .rr-times-label,
html.dark-mode .local-repitit-wrapper .rr-times-label,
html.theme-dark .local-repitit-wrapper .rr-times-label { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-time-btn,
html.dark-mode .local-repitit-wrapper .rr-time-btn,
html.theme-dark .local-repitit-wrapper .rr-time-btn { color: #9ca3af; }

body.theme-dark .local-repitit-wrapper .rr-time-btn--available,
html.dark-mode .local-repitit-wrapper .rr-time-btn--available,
html.theme-dark .local-repitit-wrapper .rr-time-btn--available { background: #064e3b; border-color: #065f46; color: #6ee7b7; }

body.theme-dark .local-repitit-wrapper .rr-time-btn--selected,
html.dark-mode .local-repitit-wrapper .rr-time-btn--selected,
html.theme-dark .local-repitit-wrapper .rr-time-btn--selected { background: #4f46e5; border-color: #4f46e5; color: #fff; }

body.theme-dark .local-repitit-wrapper .rr-time-btn--disabled,
html.dark-mode .local-repitit-wrapper .rr-time-btn--disabled,
html.theme-dark .local-repitit-wrapper .rr-time-btn--disabled { background: #1f2937; border-color: #374151; color: #4b5563; }

body.theme-dark .local-repitit-wrapper .rr-selected-info,
html.dark-mode .local-repitit-wrapper .rr-selected-info,
html.theme-dark .local-repitit-wrapper .rr-selected-info { background: #1e3a5f; border-color: #1d4ed8; }

body.theme-dark .local-repitit-wrapper .rr-selected-info__label,
html.dark-mode .local-repitit-wrapper .rr-selected-info__label,
html.theme-dark .local-repitit-wrapper .rr-selected-info__label { color: #93c5fd; }

body.theme-dark .local-repitit-wrapper .rr-selected-info__subject,
html.dark-mode .local-repitit-wrapper .rr-selected-info__subject,
html.theme-dark .local-repitit-wrapper .rr-selected-info__subject { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-selected-info__pkg,
html.dark-mode .local-repitit-wrapper .rr-selected-info__pkg,
html.theme-dark .local-repitit-wrapper .rr-selected-info__pkg { color: #d1d5db; }

/* ── Step 4: Payment ─────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-summary-card,
html.dark-mode .local-repitit-wrapper .rr-summary-card,
html.theme-dark .local-repitit-wrapper .rr-summary-card { background: #111827; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-summary-row__name,
html.dark-mode .local-repitit-wrapper .rr-summary-row__name,
html.theme-dark .local-repitit-wrapper .rr-summary-row__name { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-summary-row__sub,
html.dark-mode .local-repitit-wrapper .rr-summary-row__sub,
html.theme-dark .local-repitit-wrapper .rr-summary-row__sub { color: #6b7280; }

body.theme-dark .local-repitit-wrapper .rr-summary-row,
html.dark-mode .local-repitit-wrapper .rr-summary-row,
html.theme-dark .local-repitit-wrapper .rr-summary-row { border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-price-total,
html.dark-mode .local-repitit-wrapper .rr-price-total,
html.theme-dark .local-repitit-wrapper .rr-price-total { color: #f9fafb; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-payment-form,
html.dark-mode .local-repitit-wrapper .rr-payment-form,
html.theme-dark .local-repitit-wrapper .rr-payment-form { background: #111827; border-color: #374151; }

body.theme-dark .local-repitit-wrapper .rr-payment-form__title,
html.dark-mode .local-repitit-wrapper .rr-payment-form__title,
html.theme-dark .local-repitit-wrapper .rr-payment-form__title { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-field label,
html.dark-mode .local-repitit-wrapper .rr-field label,
html.theme-dark .local-repitit-wrapper .rr-field label { color: #d1d5db; }

body.theme-dark .local-repitit-wrapper .rr-field input,
html.dark-mode .local-repitit-wrapper .rr-field input,
html.theme-dark .local-repitit-wrapper .rr-field input { background: #1f2937; border-color: #4b5563; color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-field input::placeholder,
html.dark-mode .local-repitit-wrapper .rr-field input::placeholder,
html.theme-dark .local-repitit-wrapper .rr-field input::placeholder { color: #6b7280; }

body.theme-dark .local-repitit-wrapper .rr-warning-block,
html.dark-mode .local-repitit-wrapper .rr-warning-block,
html.theme-dark .local-repitit-wrapper .rr-warning-block { background: #1c1102; border-color: #78350f; color: #fde68a; }

body.theme-dark .local-repitit-wrapper .rr-ssl-note,
html.dark-mode .local-repitit-wrapper .rr-ssl-note,
html.theme-dark .local-repitit-wrapper .rr-ssl-note { color: #6b7280; }

body.theme-dark .local-repitit-wrapper .rr-btn-secondary,
html.dark-mode .local-repitit-wrapper .rr-btn-secondary,
html.theme-dark .local-repitit-wrapper .rr-btn-secondary { background: #374151; color: #d1d5db; border-color: #4b5563; }

/* ── Step 5: Success ─────────────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-success,
html.dark-mode .local-repitit-wrapper .rr-success,
html.theme-dark .local-repitit-wrapper .rr-success { background: #1f2937; }

body.theme-dark .local-repitit-wrapper .rr-success-title,
html.dark-mode .local-repitit-wrapper .rr-success-title,
html.theme-dark .local-repitit-wrapper .rr-success-title { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-success-desc,
html.dark-mode .local-repitit-wrapper .rr-success-desc,
html.theme-dark .local-repitit-wrapper .rr-success-desc { color: #d1d5db; }

body.theme-dark .local-repitit-wrapper .rr-success-card-blue,
html.dark-mode .local-repitit-wrapper .rr-success-card-blue,
html.theme-dark .local-repitit-wrapper .rr-success-card-blue { background: #1e3a5f; border-color: #1d4ed8; }

body.theme-dark .local-repitit-wrapper .rr-success-card-purple,
html.dark-mode .local-repitit-wrapper .rr-success-card-purple,
html.theme-dark .local-repitit-wrapper .rr-success-card-purple { background: #1e1b4b; border-color: #4338ca; }

body.theme-dark .local-repitit-wrapper .rr-success-card-title,
html.dark-mode .local-repitit-wrapper .rr-success-card-title,
html.theme-dark .local-repitit-wrapper .rr-success-card-title { color: #f9fafb; }

body.theme-dark .local-repitit-wrapper .rr-success-card-desc,
html.dark-mode .local-repitit-wrapper .rr-success-card-desc,
html.theme-dark .local-repitit-wrapper .rr-success-card-desc { color: #93c5fd; }

body.theme-dark .local-repitit-wrapper .rr-success-footer,
html.dark-mode .local-repitit-wrapper .rr-success-footer,
html.theme-dark .local-repitit-wrapper .rr-success-footer { color: #6b7280; }

/* ── Info blocks / misc text ─────────────────────────────────── */
body.theme-dark .local-repitit-wrapper .rr-info-block,
html.dark-mode .local-repitit-wrapper .rr-info-block,
html.theme-dark .local-repitit-wrapper .rr-info-block { background: #1f2937; border-color: #374151; color: #d1d5db; }

body.theme-dark .local-repitit-wrapper .rr-spinner,
html.dark-mode .local-repitit-wrapper .rr-spinner,
html.theme-dark .local-repitit-wrapper .rr-spinner { border-color: #374151; border-top-color: #6366f1; }


.ou-tutor-profile-settings-btn {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 1050;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  background: #1f2937;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.ou-tutor-profile-settings-btn:hover,
.ou-tutor-profile-settings-btn:focus {
  color: #fff;
  text-decoration: none;
  background: #111827;
}

/* =====================================================
   BOOKING MODAL: hold notice + pending banner styles
   ===================================================== */
.rr-hold-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 13.5px;
  color: #92400e;
  margin-bottom: 14px;
}

.rr-pending-banner {
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 13.5px;
  color: #92400e;
  margin-bottom: 12px;
}

.rr-pending-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.local-repitit-wrapper .rr-btn-pending-continue {
  padding: 8px 16px;
  border-radius: 8px;
  border: 1.5px solid #bfdbfe !important;
  background: #eff6ff !important;
  color: #1e40af !important;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  outline: none !important;
  box-shadow: none !important;
}
.local-repitit-wrapper .rr-btn-pending-continue:hover,
.local-repitit-wrapper .rr-btn-pending-continue:focus,
.local-repitit-wrapper .rr-btn-pending-continue:active {
  background: #dbeafe !important;
  color: #1e3a8a !important;
  outline: none !important;
  box-shadow: none !important;
}

.rr-btn-pending-cancel {
  padding: 8px 16px;
  border-radius: 8px;
  border: 1.5px solid #e5e7eb;
  background: #fff;
  color: #6b7280;
  font-size: 13px;
  cursor: pointer;
}

.rr-btn-pending-cancel:hover {
  background: #f9fafb;
  color: #374151;
}

/* Dark theme */
body.theme-dark .rr-hold-notice,
html.dark-mode .rr-hold-notice,
html.theme-dark .rr-hold-notice {
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.25);
  color: #fbbf24;
}

body.theme-dark .rr-pending-banner,
html.dark-mode .rr-pending-banner,
html.theme-dark .rr-pending-banner {
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.25);
  color: #fbbf24;
}

body.theme-dark .rr-btn-pending-cancel,
html.dark-mode .rr-btn-pending-cancel,
html.theme-dark .rr-btn-pending-cancel {
  background: #252838;
  border-color: #2E3148;
  color: #9095B8;
}

/* Not-accepting schedule notice */
.rr-not-accepting-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 13px;
  color: #92400e;
  margin: 0 0 12px;
}
body.theme-dark .rr-not-accepting-notice,
html.dark-mode .rr-not-accepting-notice,
html.theme-dark .rr-not-accepting-notice {
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.25);
  color: #fbbf24;
}

/* Dark mode: pending-continue uses indigo background + white text */
body.theme-dark .local-repitit-wrapper .rr-btn-pending-continue,
html.dark-mode .local-repitit-wrapper .rr-btn-pending-continue,
html.theme-dark .local-repitit-wrapper .rr-btn-pending-continue {
  background: #4f46e5 !important;
  color: #fff !important;
  border-color: transparent !important;
}
body.theme-dark .local-repitit-wrapper .rr-btn-pending-continue:hover,
body.theme-dark .local-repitit-wrapper .rr-btn-pending-continue:focus,
html.dark-mode .local-repitit-wrapper .rr-btn-pending-continue:hover,
html.dark-mode .local-repitit-wrapper .rr-btn-pending-continue:focus,
html.theme-dark .local-repitit-wrapper .rr-btn-pending-continue:hover,
html.theme-dark .local-repitit-wrapper .rr-btn-pending-continue:focus {
  background: #4338ca !important;
  color: #fff !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ===== Task 4: Hide edit-mode toggle on tutor page ===== */
body.page-local-tutor-index .editmode-switch-form { display: none !important; }
