/* ═══════════════════════════════════════════════════════
   REPAIR-CALC.CSS v3.1
   Калькулятор ремонта — понятный, для всех
   Тёмная тема, фиолетовые акценты
   ═══════════════════════════════════════════════════════ */

/* ── ГЛОБАЛЬНАЯ ЗАЩИТА ОТ ГОРИЗОНТАЛЬНОГО СКРОЛЛА ──────── */
/* Все дочерние элементы calc не могут растянуть страницу   */
[class^="rc-"], [class^="sm-"] {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

/* ── Сброс для всех кнопок-карточек (iOS tap fix) ──────── */
.rc-type-btn,.rc-room-btn,.rc-mat-btn,.rc-opt-btn,
.rc-urg-btn,.rc-visit-btn,.rc-hint-btn,.rc-btn-order,
.rc-btn-wa,.rc-dim-btn,.rc-btn-add,.rc-room-remove {
  font-family: inherit;
  border: none;
  outline: none;
  background: none;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
  box-sizing: border-box;
}

/* ── Загрузка ──────────────────────────────────────────── */
.rc-loading {
  text-align: center;
  padding: 4rem 1rem;
  color: rgba(255,255,255,0.5);
}
.rc-loading-icon {
  font-size: 2.5rem;
  margin-bottom: 0.75rem;
  animation: rc-pulse 1.2s ease-in-out infinite;
}
@keyframes rc-pulse {
  0%,100% { opacity:0.5; transform: scale(1); }
  50%      { opacity:1;   transform: scale(1.1); }
}

/* ── Основная сетка ────────────────────────────────────── */
.rc-calculator {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 2rem;
  align-items: start;
}
@media (max-width: 1050px) { .rc-calculator { grid-template-columns: 1fr; } }

/* ── Вводный баннер ────────────────────────────────────── */
.rc-intro-banner {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: linear-gradient(135deg, rgba(138,43,226,0.18), rgba(91,14,166,0.12));
  border: 1px solid rgba(138,43,226,0.35);
  border-radius: 14px;
  padding: 1.1rem 1.25rem;
  margin-bottom: 1.2rem;
}
.rc-intro-icon { font-size: 2rem; flex-shrink: 0; margin-top: 2px; }
.rc-intro-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #e8d8ff;
  margin-bottom: 0.3rem;
}
.rc-intro-sub {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.65);
  line-height: 1.5;
}

/* ── Секция (1 шаг) ────────────────────────────────────── */
.rc-section {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(138,43,226,0.22);
  border-radius: 16px;
  padding: 1.3rem 1.4rem;
  margin-bottom: 1rem;
}
.rc-section:hover { border-color: rgba(138,43,226,0.4); }

.rc-section-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.4rem;
}

/* Бейдж «Шаг N» */
.rc-step-badge {
  flex-shrink: 0;
  padding: 0.2rem 0.65rem;
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  color: #fff;
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.rc-section-title {
  font-size: 1rem;
  font-weight: 700;
  color: #f0e8ff;
  margin: 0;
}

.rc-section-explain {
  font-size: 0.83rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.5;
  margin: 0.3rem 0 0.9rem 0;
}

/* ── Кнопка-подсказка ──────────────────────────────────── */
.rc-hint-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.42rem 0.9rem;
  background: rgba(250,204,21,0.12);
  border: 1px solid rgba(250,204,21,0.35);
  border-radius: 20px;
  color: #fde68a;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 1rem;
  transition: background 0.2s, border-color 0.2s;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.rc-hint-btn:hover {
  background: rgba(250,204,21,0.22);
  border-color: rgba(250,204,21,0.6);
  color: #fef08a;
}

/* ── Шаг 1: Виды ремонта ────────────────────────────────── */
.rc-types-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.65rem;
}
.rc-type-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.25rem;
  padding: 1rem 0.6rem;
  background: rgba(138,43,226,0.08);
  border: 2px solid rgba(138,43,226,0.22);
  border-radius: 14px;
  transition: all 0.2s;
}
.rc-type-btn:hover { border-color: rgba(138,43,226,0.5); background: rgba(138,43,226,0.15); }
.rc-type-btn.rc-active {
  background: linear-gradient(135deg, rgba(138,43,226,0.4), rgba(91,14,166,0.35));
  border-color: #8A2BE2;
  box-shadow: 0 0 0 3px rgba(138,43,226,0.25);
}
.rc-type-icon  { font-size: 1.7rem; }
.rc-type-name  { font-size: 0.85rem; font-weight: 700; color: #e8d8ff; }
.rc-type-price { font-size: 0.75rem; font-weight: 600; color: #a78bfa; }
.rc-type-days  { font-size: 0.72rem; color: rgba(255,255,255,0.45); }
.rc-type-desc  { font-size: 0.7rem; color: rgba(255,255,255,0.4); margin-top: 0.1rem; }

/* ── Шаг 2: Площадь ─────────────────────────────────────── */
.rc-area-block { margin-top: 0.5rem; }
.rc-area-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.rc-dim-btn {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(138,43,226,0.2);
  border: 2px solid rgba(138,43,226,0.4);
  color: #c084fc;
  font-size: 1rem;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s;
  touch-action: manipulation;
  cursor: pointer;
}
.rc-dim-btn:hover { background: rgba(138,43,226,0.35); border-color: #8A2BE2; }
.rc-area-display {
  display: flex; align-items: center; gap: 0.4rem;
  background: rgba(255,255,255,0.06);
  border: 2px solid rgba(138,43,226,0.35);
  border-radius: 12px;
  padding: 0.5rem 1rem;
}
.rc-area-input {
  width: 70px;
  background: transparent;
  border: none;
  color: #f0f0f0;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  outline: none;
  font-family: inherit;
  -moz-appearance: textfield;
}
.rc-area-input::-webkit-inner-spin-button,
.rc-area-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.rc-area-unit { font-size: 1rem; color: rgba(255,255,255,0.5); font-weight: 600; }

.rc-area-range {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  height: 6px;
  border-radius: 3px;
  background: rgba(138,43,226,0.2);
  outline: none;
  margin-bottom: 0.75rem;
}
.rc-area-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, #8A2BE2, #c084fc);
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(138,43,226,0.5);
}

.rc-area-labels {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.3rem;
  text-align: center;
}
.rc-area-labels span {
  font-size: 0.7rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.4;
}

/* ── Шаг 3: Тип объекта ─────────────────────────────────── */
.rc-rooms-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.55rem;
}
.rc-room-btn {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 0.2rem;
  padding: 0.85rem 0.5rem;
  background: rgba(138,43,226,0.07);
  border: 2px solid rgba(138,43,226,0.2);
  border-radius: 12px;
  transition: all 0.2s;
}
.rc-room-btn:hover { border-color: rgba(138,43,226,0.45); background: rgba(138,43,226,0.14); }
.rc-room-btn.rc-active {
  background: linear-gradient(135deg, rgba(138,43,226,0.38), rgba(91,14,166,0.3));
  border-color: #8A2BE2;
  box-shadow: 0 0 0 3px rgba(138,43,226,0.22);
}
.rc-room-icon { font-size: 1.6rem; }
.rc-room-name { font-size: 0.82rem; font-weight: 700; color: #e8d8ff; }
.rc-room-desc { font-size: 0.68rem; color: rgba(255,255,255,0.38); }

/* ── Шаг 4: Материалы ───────────────────────────────────── */
.rc-mats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.55rem;
}
.rc-mat-btn {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 0.2rem;
  padding: 0.9rem 0.6rem;
  background: rgba(138,43,226,0.07);
  border: 2px solid rgba(138,43,226,0.2);
  border-radius: 12px;
  transition: all 0.2s;
}
.rc-mat-btn:hover { border-color: rgba(138,43,226,0.45); background: rgba(138,43,226,0.14); }
.rc-mat-btn.rc-active {
  background: linear-gradient(135deg, rgba(138,43,226,0.38), rgba(91,14,166,0.3));
  border-color: #8A2BE2;
  box-shadow: 0 0 0 3px rgba(138,43,226,0.22);
}
.rc-mat-icon  { font-size: 1.5rem; }
.rc-mat-name  { font-size: 0.85rem; font-weight: 700; color: #e8d8ff; }
.rc-mat-desc  { font-size: 0.7rem; color: rgba(255,255,255,0.45); line-height: 1.3; }

/* ── Бейджи коэффициентов (общие) ──────────────────────── */
.rc-coef-badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: 20px;
  margin-top: 0.15rem;
}
.rc-coef-base { background: rgba(74,222,128,0.15); color: #4ade80; }
.rc-coef-up   { background: rgba(251,146,60,0.15); color: #fb923c; }
.rc-free      { color: #4ade80; font-weight: 700; }

/* ── Шаг 5: Опции ───────────────────────────────────────── */
.rc-opts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
  gap: 0.65rem;
}
.rc-opt-btn {
  display: flex; flex-direction: column;
  gap: 0.3rem;
  padding: 0.85rem 0.9rem;
  background: rgba(76,175,80,0.06);
  border: 2px solid rgba(76,175,80,0.18);
  border-radius: 12px;
  text-align: left;
  transition: all 0.2s;
  min-width: 0;
  overflow: hidden;
  word-break: break-word;
  overflow-wrap: break-word;
}
.rc-opt-btn:hover { border-color: rgba(76,175,80,0.4); background: rgba(76,175,80,0.12); }
.rc-opt-btn.rc-opt-active {
  background: rgba(76,175,80,0.18);
  border-color: #4caf50;
  box-shadow: 0 0 0 3px rgba(76,175,80,0.2);
}
.rc-opt-top   { display: flex; align-items: center; gap: 0.4rem; }
.rc-opt-check { font-size: 1rem; flex-shrink: 0; }
.rc-opt-icon  { font-size: 1.1rem; flex-shrink: 0; }
.rc-opt-name  { font-size: 0.82rem; font-weight: 700; color: #a7f3d0; flex: 1; min-width: 0; word-break: break-word; overflow-wrap: break-word; }
.rc-opt-price { font-size: 0.78rem; font-weight: 600; color: #4ade80; }
.rc-opt-desc  { font-size: 0.7rem; color: rgba(255,255,255,0.45); margin: 0; line-height: 1.3; }

/* ── Шаг 6: Срочность ───────────────────────────────────── */
.rc-urg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.6rem;
}
.rc-urg-btn {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 0.3rem;
  padding: 0.9rem 0.6rem;
  background: rgba(138,43,226,0.07);
  border: 2px solid rgba(138,43,226,0.2);
  border-radius: 12px;
  transition: all 0.2s;
}
.rc-urg-btn:hover { border-color: rgba(138,43,226,0.45); background: rgba(138,43,226,0.14); }
.rc-urg-btn.rc-active {
  background: linear-gradient(135deg, rgba(138,43,226,0.38), rgba(91,14,166,0.3));
  border-color: #8A2BE2;
  box-shadow: 0 0 0 3px rgba(138,43,226,0.22);
}
.rc-urg-name  { font-size: 0.88rem; font-weight: 700; color: #e8d8ff; }
.rc-urg-badge { font-size: 0.7rem; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 20px; }
.rc-urg-desc  { font-size: 0.72rem; color: rgba(255,255,255,0.45); line-height: 1.3; }

/* ── Шаг 7: Выезд мастера ───────────────────────────────── */
.rc-visit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.6rem;
}
.rc-visit-btn {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 0.3rem;
  padding: 0.9rem 0.6rem;
  background: rgba(138,43,226,0.07);
  border: 2px solid rgba(138,43,226,0.2);
  border-radius: 12px;
  transition: all 0.2s;
}
.rc-visit-btn:hover { border-color: rgba(138,43,226,0.45); background: rgba(138,43,226,0.14); }
.rc-visit-btn.rc-active {
  background: linear-gradient(135deg, rgba(138,43,226,0.38), rgba(91,14,166,0.3));
  border-color: #8A2BE2;
  box-shadow: 0 0 0 3px rgba(138,43,226,0.22);
}
.rc-visit-name  { font-size: 0.85rem; font-weight: 700; color: #e8d8ff; }
.rc-visit-price { font-size: 0.8rem; font-weight: 700; }
.rc-visit-desc  { font-size: 0.7rem; color: rgba(255,255,255,0.4); line-height: 1.3; }

/* ══════════════════════════════════════════════════════════
   ПРАВАЯ ПАНЕЛЬ — СМЕТА
   ══════════════════════════════════════════════════════════ */

.rc-right { display: flex; flex-direction: column; gap: 1rem; }

/* Пустое состояние */
.rc-result-empty {
  text-align: center;
  padding: 3rem 1rem;
  background: rgba(255,255,255,0.03);
  border: 1px dashed rgba(138,43,226,0.3);
  border-radius: 16px;
}
.rc-result-empty-icon { font-size: 2.5rem; margin-bottom: 0.75rem; }
.rc-result-empty-text { color: rgba(255,255,255,0.45); font-size: 0.9rem; line-height: 1.6; }

/* Карточка сметы */
.rc-result-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(138,43,226,0.3);
  border-radius: 16px;
  overflow: hidden;
  position: sticky;
  top: 80px;
}
@media (max-width: 1050px) { .rc-result-card { position: static; } }

.rc-result-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, rgba(138,43,226,0.25), rgba(91,14,166,0.2));
  border-bottom: 1px solid rgba(138,43,226,0.25);
}
.rc-result-icon  { font-size: 1.3rem; }
.rc-result-title { font-size: 1rem; font-weight: 700; color: #e8d8ff; }

/* Блок формулы */
.rc-formula-block {
  padding: 0.9rem 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rc-formula-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(192,132,252,0.7);
  margin-bottom: 0.6rem;
}
.rc-formula-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.3rem 0;
  font-size: 0.83rem;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.rc-formula-row:last-child { border-bottom: none; }
.rc-f-label { color: rgba(255,255,255,0.6); }
.rc-f-val   { font-weight: 600; color: #c084fc; }

.rc-formula-coef .rc-f-label { color: rgba(251,146,60,0.8); }
.rc-formula-coef .rc-f-val   { color: #fb923c; }

.rc-formula-subtotal {
  background: rgba(138,43,226,0.1);
  border-radius: 6px;
  padding: 0.35rem 0.5rem;
  margin-top: 0.35rem;
}
.rc-formula-subtotal .rc-f-label { color: #e8d8ff; font-weight: 600; }
.rc-formula-subtotal .rc-f-val   { color: #e8d8ff; font-weight: 700; font-size: 0.92rem; }

/* Доп.работы / выезд / срочность */
.rc-res-block {
  padding: 0.6rem 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rc-res-block-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(74,222,128,0.7);
  margin-bottom: 0.45rem;
}
.rc-res-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82rem;
  padding: 0.22rem 0;
  color: rgba(255,255,255,0.7);
}
.rc-res-option { color: rgba(167,243,208,0.85); }
.rc-res-plus   { font-weight: 600; color: #4ade80; }
.rc-res-subtotal {
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: 0.3rem;
  padding-top: 0.4rem;
  font-weight: 600;
  color: #a7f3d0;
}

.rc-res-free-visit {
  padding: 0.55rem 1.25rem;
  font-size: 0.83rem;
  color: #4ade80;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

/* Итоговый блок */
.rc-result-total-block {
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, rgba(138,43,226,0.2), rgba(91,14,166,0.15));
  border-top: 1px solid rgba(138,43,226,0.35);
  text-align: center;
}
.rc-result-total-label {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.3rem;
}
.rc-result-total-sum {
  font-size: 2rem;
  font-weight: 800;
  color: #4ade80;
  line-height: 1.1;
}
.rc-result-days {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
  margin-top: 0.35rem;
}

/* Примечание */
.rc-result-note {
  padding: 0.6rem 1.25rem;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.4;
  border-top: 1px solid rgba(255,255,255,0.05);
}

/* Кнопки действий */
.rc-result-actions {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.9rem 1.25rem 1.25rem;
}
.rc-btn-order {
  display: block;
  width: 100%;
  padding: 0.8rem 1rem;
  border-radius: 12px;
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  color: #fff;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  transition: filter 0.2s;
  box-shadow: 0 4px 15px rgba(138,43,226,0.4);
}
.rc-btn-order:hover { filter: brightness(1.12); }

.rc-btn-wa {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  padding: 0.7rem 1rem;
  border-radius: 12px;
  background: rgba(37,211,102,0.15);
  border: 1px solid rgba(37,211,102,0.4);
  color: #4ade80;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s;
}
.rc-btn-wa:hover { background: rgba(37,211,102,0.25); }

/* ── Карточка «Как мы работаем» ─────────────────────────── */
.rc-how-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(138,43,226,0.18);
  border-radius: 16px;
  padding: 1.2rem 1.25rem;
}
.rc-how-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #c084fc;
  margin-bottom: 1rem;
}
.rc-how-steps { display: flex; flex-direction: column; gap: 0.7rem; }
.rc-how-step {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.82rem;
}
.rc-how-num {
  flex-shrink: 0;
  width: 22px; height: 22px;
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
  margin-top: 1px;
}
.rc-how-step strong { display: block; color: #e8d8ff; margin-bottom: 0.1rem; }
.rc-how-step span   { color: rgba(255,255,255,0.5); line-height: 1.4; }

/* ══════════════════════════════════════════════════════════
   МОДАЛЬНОЕ ОКНО ПОДСКАЗКИ
   ══════════════════════════════════════════════════════════ */
.rc-hint-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.72);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  animation: rc-fade-in 0.2s ease;
}
@keyframes rc-fade-in { from { opacity:0; } to { opacity:1; } }

.rc-hint-modal {
  background: linear-gradient(145deg, #1e1230, #160d28);
  border: 1px solid rgba(138,43,226,0.5);
  border-radius: 20px;
  padding: 1.5rem;
  max-width: 420px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(138,43,226,0.2);
  animation: rc-slide-up 0.25s ease;
}
@keyframes rc-slide-up { from { transform: translateY(20px); opacity:0; } to { transform:none; opacity:1; } }

.rc-hint-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.rc-hint-title {
  font-size: 1rem;
  font-weight: 700;
  color: #e8d8ff;
  line-height: 1.4;
}
.rc-hint-close-x {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: none;
  color: rgba(255,255,255,0.5);
  font-size: 0.8rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
  touch-action: manipulation;
  font-family: inherit;
}
.rc-hint-close-x:hover { background: rgba(255,255,255,0.16); color: #fff; }

.rc-hint-body {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.78);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}
.rc-hint-bullet { color: #c084fc; margin-right: 0.1rem; }

.rc-hint-close {
  width: 100%;
  padding: 0.7rem 1rem;
  border-radius: 12px;
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  border: none;
  color: #fff;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  transition: filter 0.2s;
}
.rc-hint-close:hover { filter: brightness(1.12); }

/* ══════════════════════════════════════════════════════════
   ТАБЫ КАЛЬКУЛЯТОРА
   ══════════════════════════════════════════════════════════ */
.rc-tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(138,43,226,0.25);
  border-radius: 12px;
  padding: 0.35rem;
}
.rc-tab {
  flex: 1;
  padding: 0.65rem 1rem;
  border-radius: 9px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,0.5);
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.rc-tab:hover { color: #c084fc; background: rgba(138,43,226,0.12); }
.rc-tab.active {
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  color: #fff;
  box-shadow: 0 3px 12px rgba(138,43,226,0.4);
}
.rc-tab-panel { animation: rc-fade-in 0.25s ease; }

/* ══════════════════════════════════════════════════════════
   ДЕТАЛЬНАЯ СМЕТА ПО КОМНАТАМ (вкладка 2)
   ══════════════════════════════════════════════════════════ */
.rc-smeta-wrap {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 1.5rem;
  align-items: start;
}
@media (max-width: 960px) { .rc-smeta-wrap { grid-template-columns: 1fr; } }

.rc-smeta-rooms-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.rc-btn-add {
  padding: 0.45rem 1rem;
  border-radius: 8px;
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  color: #fff;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  touch-action: manipulation;
  box-shadow: 0 2px 10px rgba(138,43,226,0.35);
  transition: filter 0.2s;
  border: none;
}
.rc-btn-add:hover { filter: brightness(1.15); }

/* Карточка комнаты */
.rc-room-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(138,43,226,0.25);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  margin-bottom: 0.85rem;
  transition: border-color 0.2s;
}
.rc-room-card:hover { border-color: rgba(138,43,226,0.5); }
.rc-room-header {
  display: flex; align-items: center; gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.rc-room-icon { font-size: 1.3rem; flex-shrink: 0; }
.rc-room-name-input {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(138,43,226,0.3);
  color: #f0f0f0;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  padding: 0.15rem 0.3rem;
  outline: none;
  transition: border-color 0.15s;
}
.rc-room-name-input:focus { border-bottom-color: #8A2BE2; }
.rc-room-remove {
  background: none;
  border: none;
  color: #f87171;
  font-size: 1rem;
  cursor: pointer;
  padding: 0.2rem 0.4rem;
  border-radius: 6px;
  transition: background 0.15s;
  touch-action: manipulation;
}
.rc-room-remove:hover { background: rgba(248,113,113,0.15); }
.rc-room-type-row { margin-bottom: 0.75rem; }
.rc-room-type-sel {
  width: 100%;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(138,43,226,0.25);
  border-radius: 8px;
  color: #e0d0ff;
  font-family: inherit;
  font-size: 0.88rem;
  padding: 0.45rem 0.7rem;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
}
.rc-dims {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
  margin-bottom: 0.65rem;
}
@media (max-width: 480px) { .rc-dims { grid-template-columns: 1fr; } }
.rc-dim-group { display: flex; flex-direction: column; gap: 0.2rem; }
.rc-dim-group label { font-size: 0.76rem; color: rgba(160,160,176,0.8); font-weight: 500; }
.rc-hint-lbl {
  display: inline-block;
  width: 14px; height: 14px;
  line-height: 14px; text-align: center;
  border-radius: 50%;
  background: rgba(138,43,226,0.3);
  color: #c084fc;
  font-size: 0.6rem;
  cursor: help;
  vertical-align: middle;
}
.rc-dim-input {
  width: 100%;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(138,43,226,0.22);
  border-radius: 8px;
  color: #f0f0f0;
  font-family: inherit;
  font-size: 0.88rem;
  padding: 0.45rem 0.7rem;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.15s;
  -webkit-appearance: none;
}
.rc-dim-input:focus { border-color: #8A2BE2; }
.rc-dim-input.error { border-color: #f87171; }
.rc-room-areas { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.3rem; }
.rc-area-badge {
  font-size: 0.74rem; padding: 0.18rem 0.6rem;
  border-radius: 20px;
  background: rgba(138,43,226,0.1);
  border: 1px solid rgba(138,43,226,0.25);
  color: rgba(192,132,252,0.6);
  font-weight: 500; transition: all 0.2s;
}
.rc-area-badge.filled { background: rgba(138,43,226,0.22); border-color: rgba(138,43,226,0.5); color: #c084fc; }
.rc-room-error { font-size: 0.74rem; color: #f87171; margin-top: 0.25rem; min-height: 0.9rem; }

/* Правая часть сметы */
.rc-smeta-right { display: flex; flex-direction: column; gap: 1rem; }
.rc-smeta-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(138,43,226,0.22);
  border-radius: 12px;
  overflow: hidden;
  position: sticky; top: 80px;
}
@media (max-width: 960px) { .rc-smeta-card { position: static; } }
.rc-smeta-card-title {
  padding: 0.8rem 1rem;
  font-weight: 700; font-size: 0.9rem;
  background: rgba(138,43,226,0.1);
  border-bottom: 1px solid rgba(138,43,226,0.2);
  display: flex; align-items: center; gap: 0.5rem;
}
.rc-print-btn {
  margin-left: auto; padding: 0.3rem 0.7rem;
  border-radius: 7px; border: 1px solid rgba(138,43,226,0.4);
  background: transparent; color: #c084fc;
  font-family: inherit; font-size: 0.78rem; font-weight: 600;
  cursor: pointer; touch-action: manipulation; transition: background 0.15s;
}
.rc-print-btn:hover { background: rgba(138,43,226,0.2); }

/* Таблицы сметы */
.rc-area-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; display: block; padding: 0.75rem; }
.rc-area-table table { width: 100%; border-collapse: collapse; }
.rc-area-table th { font-size: 0.72rem; color: rgba(160,160,176,0.7); font-weight: 500; padding: 0.25rem 0.4rem; text-align: left; border-bottom: 1px solid rgba(138,43,226,0.18); }
.rc-area-table td { padding: 0.32rem 0.4rem; border-bottom: 1px solid rgba(255,255,255,0.04); }
.rc-area-table tfoot td { font-weight: 700; color: #c084fc; border-top: 1px solid rgba(138,43,226,0.3) !important; border-bottom: none; }
.rc-area-table th.rc-num, .rc-area-table td.rc-num { text-align: right; }

.rc-est-section { margin-bottom: 1rem; }
.rc-est-title { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #8A2BE2; padding: 0.5rem 0.75rem 0.3rem; border-bottom: 1px solid rgba(138,43,226,0.2); }
.rc-est-table-wrap { overflow-x: auto; }
.rc-est-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.rc-est-table th { font-size: 0.7rem; color: rgba(160,160,176,0.65); font-weight: 500; padding: 0.25rem 0.4rem; text-align: left; border-bottom: 1px solid rgba(138,43,226,0.15); white-space: nowrap; }
.rc-est-table td { padding: 0.3rem 0.4rem; border-bottom: 1px solid rgba(255,255,255,0.03); vertical-align: top; }
.rc-est-table th.rc-num, .rc-est-table td.rc-num { text-align: right; }
.rc-est-table td.rc-price-cell { text-align:right; font-weight:600; color:#c084fc; white-space:nowrap; }
.rc-est-table td.rc-cat-cell  { font-size:0.68rem; color:rgba(160,160,176,0.55); }

.rc-totals { margin: 0.5rem 0.75rem 0.75rem; background: rgba(138,43,226,0.08); border: 1px solid rgba(138,43,226,0.25); border-radius: 10px; padding: 0.75rem 1rem; }
.rc-total-row { display: flex; justify-content: space-between; font-size: 0.85rem; padding: 0.25rem 0; color: rgba(255,255,255,0.7); }
.rc-total-row span:last-child { font-weight:600; color:#c084fc; }
.rc-grand { display:flex; justify-content:space-between; font-size:1rem; font-weight:700; border-top:1px solid rgba(138,43,226,0.35); margin-top:0.4rem; padding-top:0.5rem; }
.rc-grand span:first-child { color:#f0f0f0; }
.rc-grand span:last-child  { color:#4ade80; font-size:1.05rem; }
.rc-print-btn-full { width:100%; margin-top:0.75rem; padding:0.6rem 1rem; border:1px solid rgba(138,43,226,0.4); border-radius:9px; background:rgba(138,43,226,0.12); color:#c084fc; font-family:inherit; font-size:0.85rem; font-weight:600; cursor:pointer; touch-action:manipulation; transition:background 0.2s; }
.rc-print-btn-full:hover { background:rgba(138,43,226,0.25); }

.rc-num { text-align: right; font-variant-numeric: tabular-nums; }
.rc-empty-hint { text-align: center; padding: 1.5rem 1rem; color: rgba(160,160,176,0.5); font-size: 0.85rem; }

/* ══════════════════════════════════════════════════════════
   ГЛОБАЛЬНАЯ ЗАЩИТА ОТ ГОРИЗОНТАЛЬНОГО СКРОЛЛА
   (работает на ВСЕХ экранах, в т.ч. реальных телефонах)
   ══════════════════════════════════════════════════════════ */
.rc-calculator,
.rc-left,
.rc-right,
.rc-section,
.rc-result-card,
.rc-smeta-wrap,
.rc-smeta-left,
.rc-smeta-right,
.rc-smeta-card,
.sm-app,
.sm-left,
.sm-right,
.sm-estimate-panel,
.sm-room-card,
#repair-calc-root,
#sm-smeta-root {
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

/* Таблицы сметы — только горизонтальный скролл внутри */
.rc-est-table-wrap,
.rc-area-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

.rc-est-table,
.rc-area-table table {
  min-width: 320px; /* минимум, не меньше */
}

/* Длинный текст в ячейках — перенос */
.rc-est-table td,
.rc-est-table th {
  word-break: break-word;
  overflow-wrap: break-word;
}

/* ══════════════════════════════════════════════════════════
   МОБИЛЬНАЯ АДАПТАЦИЯ (≤600px)
   ══════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  /* Сброс двухколоночного layout */
  .rc-calculator   { grid-template-columns: 1fr !important; }
  .rc-smeta-wrap   { grid-template-columns: 1fr !important; }
  .sm-app          { grid-template-columns: 1fr !important; }

  /* Сетки карточек — 2 столбца */
  .rc-types-grid  { grid-template-columns: repeat(2, 1fr); }
  .rc-rooms-grid  { grid-template-columns: repeat(2, 1fr); }
  .rc-mats-grid   { grid-template-columns: repeat(2, 1fr); }
  .rc-urg-grid    { grid-template-columns: repeat(2, 1fr); }
  .rc-visit-grid  { grid-template-columns: 1fr; }

  /* Типы ремонта — текст не вылезает */
  .rc-type-name  { font-size: 0.78rem; word-break: break-word; overflow-wrap: break-word; }
  .rc-type-price { font-size: 0.7rem; }
  .rc-type-btn   { padding: 0.75rem 0.4rem; min-width: 0; overflow: hidden; }
  .rc-type-icon  { font-size: 1.4rem; }

  /* Помещения — текст не вылезает */
  .rc-room-name  { font-size: 0.75rem; word-break: break-word; overflow-wrap: break-word; }
  .rc-room-btn   { padding: 0.65rem 0.4rem; min-width: 0; overflow: hidden; }

  /* Материалы — текст не вылезает */
  .rc-mat-name   { font-size: 0.75rem; word-break: break-word; overflow-wrap: break-word; }
  .rc-mat-btn    { padding: 0.65rem 0.5rem; min-width: 0; overflow: hidden; }
  .rc-section     { padding: 0.9rem; }
  .rc-intro-banner { flex-direction: column; gap: 0.6rem; }
  .rc-area-labels { grid-template-columns: repeat(2, 1fr); }
  .sm-dims-row    { grid-template-columns: repeat(2, 1fr); }

  /* Опции — компактная карточка на мобиле */
  .rc-opts-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
  .rc-opt-btn {
    flex-direction: column !important;
    text-align: left !important;
    gap: 0.3rem;
    padding: 0.6rem 0.65rem;
    min-width: 0;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .rc-opt-top {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    flex-wrap: nowrap;
  }
  .rc-opt-icon  { font-size: 1rem; flex-shrink: 0; }
  .rc-opt-check { font-size: 0.9rem; flex-shrink: 0; }
  .rc-opt-name  {
    font-size: 0.75rem;
    line-height: 1.25;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    min-width: 0;
  }
  .rc-opt-price { font-size: 0.73rem; }
  .rc-opt-desc  { font-size: 0.67rem; display: block; }

  /* Выезд — горизонтальная строка */
  .rc-visit-btn {
    flex-direction: row !important;
    text-align: left !important;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
  }

  /* Вкладки — меньше padding */
  .rc-tabs { gap: 0.3rem; }
  .rc-tab  { font-size: 0.82rem; padding: 0.6rem 0.75rem; flex: 1; text-align: center; }

  /* Кнопки заказа */
  .rc-btn-order { width: 100%; font-size: 0.88rem; }
  .rc-btn-wa    { width: 100%; }

  /* Правая панель — статическая */
  .rc-result-card { position: static !important; }
  .rc-smeta-card  { position: static !important; }
  .sm-estimate-panel { position: static !important; max-height: none !important; }

  /* Скрыть лишний текст в карточках */
  .rc-type-days { display: none; }
  .rc-type-desc { display: none; }
  .rc-urg-desc  { display: none; }
}

/* ══════════════════════════════════════════════════════════
   МАЛЫЕ ЭКРАНЫ (≤430px) — реальные телефоны
   ══════════════════════════════════════════════════════════ */
@media (max-width: 430px) {
  /* Убираем любые горизонтальные отступы */
  #repair-calc-root,
  #sm-smeta-root {
    padding: 0;
    overflow-x: hidden;
    max-width: 100%;
    width: 100%;
  }

  /* Глобальная защита всех карточек от переполнения */
  .rc-type-btn, .rc-room-btn, .rc-mat-btn,
  .rc-opt-btn, .rc-urg-btn, .rc-visit-btn {
    max-width: 100%;
    width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }

  /* Сетки — ширина 100% */
  .rc-types-grid, .rc-rooms-grid, .rc-mats-grid,
  .rc-urg-grid, .rc-opts-grid, .rc-visit-grid {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .rc-section {
    padding: 0.75rem;
    border-radius: 10px;
    margin-bottom: 0.75rem;
  }
  .rc-section-title { font-size: 0.88rem; }

  /* Карточки — 2 столбца, компактные */
  .rc-types-grid,
  .rc-rooms-grid,
  .rc-mats-grid,
  .rc-urg-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.4rem;
  }

  .rc-type-btn,
  .rc-room-btn,
  .rc-mat-btn {
    padding: 0.6rem 0.3rem;
  }
  .rc-type-icon,
  .rc-room-icon,
  .rc-mat-icon  { font-size: 1.3rem; }
  .rc-type-name,
  .rc-room-name,
  .rc-mat-name  { font-size: 0.75rem; }
  .rc-type-price { font-size: 0.68rem; }
  .rc-urg-name   { font-size: 0.77rem; }
  .rc-urg-badge  { font-size: 0.62rem; padding: 0.1rem 0.4rem; }

  /* Площадь */
  .rc-area-input  { width: 55px; font-size: 1.3rem; }
  .rc-dim-btn     { width: 38px; height: 38px; font-size: 0.9rem; }
  .rc-area-labels { grid-template-columns: repeat(2, 1fr); gap: 0.2rem; }
  .rc-area-label  { font-size: 0.7rem; padding: 0.3rem 0.2rem; }

  /* Результирующая панель */
  .rc-result-header  { padding: 0.75rem 0.9rem; }
  .rc-formula-block  { padding: 0.6rem 0.9rem; }
  .rc-formula-row    { font-size: 0.78rem; }
  .rc-totals-block   { padding: 0.6rem 0.9rem; }
  .rc-total-main     { font-size: 1.3rem; }
  .rc-btn-order      { font-size: 0.85rem; padding: 0.7rem 0.9rem; }
  .rc-btn-wa         { font-size: 0.8rem;  padding: 0.6rem 0.7rem; }

  /* Конструктор сметы */
  .sm-room-card      { padding: 0.85rem; border-radius: 12px; }
  .sm-room-card-header { gap: 0.5rem; }
  .sm-room-icon      { font-size: 1.3rem; }
  .sm-room-name-input { font-size: 0.9rem; }
  .sm-dims-row       { grid-template-columns: repeat(2, 1fr); gap: 0.4rem; }
  .sm-dim-input      { font-size: 0.85rem; padding: 0.4rem 0.5rem; }
  .sm-section-btn    { padding: 0.6rem 0.75rem; }
  .sm-sec-label      { font-size: 0.82rem; }
  .sm-items-grid     { grid-template-columns: 1fr; gap: 0.35rem; }
  .sm-item-name      { font-size: 0.8rem; }
  .sm-item-price     { font-size: 0.78rem; }
  .sm-estimate-header { padding: 0.75rem 0.9rem; }
  .sm-estimate-title  { font-size: 0.88rem; }
  .sm-btn-add-room   { font-size: 0.88rem; padding: 0.85rem; }

  /* Таблица сметы — уменьшить шрифт */
  .rc-est-table th   { font-size: 0.65rem; padding: 0.2rem 0.3rem; }
  .rc-est-table td   { font-size: 0.72rem; padding: 0.25rem 0.3rem; }
  .rc-total-row      { font-size: 0.8rem; }
  .rc-grand          { font-size: 0.95rem; }

  /* Вкладки — уравнять ширину */
  .rc-tabs { display: flex; width: 100%; }
  .rc-tab  { flex: 1; font-size: 0.78rem; padding: 0.55rem 0.5rem; }
}

/* ══════════════════════════════════════════════════════════
   ПЕЧАТЬ
   ══════════════════════════════════════════════════════════ */
@media print {
  .sp-hero, header, footer, .rc-tabs, .rc-smeta-left,
  .sp-steps, .sp-features-grid, #tab-quick, .rc-intro-banner { display: none !important; }
  #tab-detail, .rc-smeta-wrap { display: block !important; }
  .rc-smeta-wrap  { grid-template-columns: 1fr; }
  .rc-smeta-right { position: static; }
  body, .rc-smeta-card, .rc-totals { background: #fff !important; color: #000 !important; border-color: #ddd !important; }
  .rc-smeta-card-title { color: #000 !important; background: #f5f5f5 !important; }
  .rc-price-cell, .rc-grand span { color: #000 !important; }
}

/* ══════════════════════════════════════════════════════════
   КОНСТРУКТОР СМЕТЫ — SM-* v1.0
   ══════════════════════════════════════════════════════════ */

/* ── Загрузка ─────────────────────────────────────────── */
.sm-loading {
  display: flex; flex-direction: column; align-items: center;
  padding: 4rem 1rem; color: rgba(255,255,255,0.55); gap: 0.75rem;
}
.sm-loading-icon { font-size: 2.5rem; animation: rc-pulse 1.2s ease-in-out infinite; }

/* ── Основной layout ─────────────────────────────────── */
.sm-app {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 1.5rem;
  align-items: start;
}
@media (max-width: 1080px) { .sm-app { grid-template-columns: 1fr; } }

/* ── Верхний баннер-подсказка ─────────────────────────── */
.sm-top-hint {
  display: flex; gap: 1rem; align-items: flex-start;
  background: rgba(138,43,226,0.12);
  border: 1px solid rgba(138,43,226,0.3);
  border-radius: 12px; padding: 1rem 1.2rem; margin-bottom: 1.5rem;
}
.sm-top-hint-icon { font-size: 1.6rem; flex-shrink: 0; }
.sm-top-hint-text { font-size: 0.88rem; color: rgba(255,255,255,0.82); line-height: 1.55; }
.sm-top-hint-text strong { color: #e0d0ff; }

/* ── Кнопка добавить комнату ───────────────────────────── */
.sm-btn-add-room {
  width: 100%; padding: 1rem; border: 2px dashed rgba(138,43,226,0.5);
  border-radius: 12px; background: rgba(138,43,226,0.07);
  color: #c084fc; font-size: 1rem; font-weight: 600;
  font-family: inherit; cursor: pointer; transition: all 0.2s;
  margin-top: 1rem;
}
.sm-btn-add-room:hover {
  border-color: #8A2BE2; background: rgba(138,43,226,0.14);
  transform: translateY(-1px);
}

/* ── Карточка комнаты ────────────────────────────────── */
.sm-room-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(138,43,226,0.25);
  border-radius: 14px; padding: 1.25rem; margin-bottom: 1rem;
  transition: border-color 0.2s;
}
.sm-room-card:hover { border-color: rgba(138,43,226,0.5); }

.sm-room-card-header {
  display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem;
}
.sm-room-card-title {
  display: flex; align-items: center; gap: 0.6rem; flex: 1; min-width: 0;
}
.sm-room-icon { font-size: 1.5rem; flex-shrink: 0; }
.sm-room-name-input {
  flex: 1; background: none; border: none; border-bottom: 1px solid rgba(138,43,226,0.3);
  color: #e0d0ff; font-size: 1rem; font-weight: 600; font-family: inherit;
  padding: 0.2rem 0.3rem; outline: none; min-width: 0;
}
.sm-room-name-input:focus { border-bottom-color: #8A2BE2; }
.sm-room-remove-btn {
  background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.2);
  border-radius: 8px; padding: 0.4rem 0.6rem; cursor: pointer;
  font-size: 1rem; color: #f87171; transition: all 0.15s; flex-shrink: 0;
}
.sm-room-remove-btn:hover { background: rgba(239,68,68,0.22); }

/* ── Подсказка к размерам ────────────────────────────── */
.sm-dims-hint { margin-bottom: 0.6rem; }
.sm-hint-btn {
  background: rgba(138,43,226,0.18); border: 1px solid rgba(138,43,226,0.35);
  border-radius: 20px; padding: 0.3rem 0.9rem; cursor: pointer;
  font-size: 0.8rem; font-weight: 600; color: #c084fc; font-family: inherit;
  transition: all 0.15s;
}
.sm-hint-btn:hover { background: rgba(138,43,226,0.32); }

/* ── Поля размеров ──────────────────────────────────── */
.sm-dims-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.6rem;
  margin-bottom: 0.75rem;
}
@media (max-width: 600px) { .sm-dims-row { grid-template-columns: repeat(2, 1fr); } }

.sm-dim-group { display: flex; flex-direction: column; gap: 0.3rem; }
.sm-dim-group label {
  font-size: 0.75rem; color: rgba(255,255,255,0.55); font-weight: 500;
}
.sm-dim-input {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(138,43,226,0.25);
  border-radius: 8px; padding: 0.5rem 0.65rem; color: #e0d0ff;
  font-size: 0.9rem; font-family: inherit; outline: none; width: 100%;
  box-sizing: border-box; transition: border-color 0.15s;
}
.sm-dim-input:focus { border-color: #8A2BE2; background: rgba(138,43,226,0.1); }
.sm-dim-error { font-size: 0.78rem; color: #f87171; min-height: 1.2em; margin-bottom: 0.4rem; }

/* ── Значки площадей ────────────────────────────────── */
.sm-areas-row {
  display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem;
}
.sm-area-badge {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(138,43,226,0.2);
  border-radius: 20px; padding: 0.3rem 0.8rem; font-size: 0.8rem;
  color: rgba(255,255,255,0.5); transition: all 0.2s;
}
.sm-area-badge.filled {
  background: rgba(138,43,226,0.15); border-color: rgba(138,43,226,0.45);
  color: #c084fc; font-weight: 600;
}

/* ── Кнопки секций (пол / стены / потолок / …) ────────── */
.sm-sections { display: flex; flex-direction: column; gap: 0.5rem; }
.sm-section-row { display: flex; gap: 0.5rem; align-items: center; }
.sm-section-btn {
  flex: 1; display: flex; align-items: center; gap: 0.75rem;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(138,43,226,0.2);
  border-radius: 10px; padding: 0.7rem 1rem; cursor: pointer;
  font-family: inherit; transition: all 0.2s; text-align: left; color: #e0d0ff;
  min-width: 0;
}
.sm-section-btn:hover {
  background: rgba(138,43,226,0.12); border-color: rgba(138,43,226,0.45);
}
.sm-section-btn.has-items {
  background: rgba(138,43,226,0.1); border-color: rgba(138,43,226,0.45);
}
.sm-sec-icon { font-size: 1.1rem; flex-shrink: 0; }
.sm-sec-label { font-size: 0.88rem; font-weight: 600; flex: 1; }
.sm-sec-add { font-size: 0.78rem; color: rgba(138,43,226,0.7); }
.sm-sec-count {
  font-size: 0.75rem; color: #c084fc; background: rgba(138,43,226,0.2);
  border-radius: 12px; padding: 0.15rem 0.5rem; flex-shrink: 0;
}
.sm-sec-clear-btn {
  background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.2);
  border-radius: 8px; padding: 0.45rem 0.6rem; cursor: pointer;
  font-size: 0.85rem; color: #f87171; transition: all 0.15s; flex-shrink: 0;
}
.sm-sec-clear-btn:hover { background: rgba(239,68,68,0.22); }

.sm-room-subtotal {
  margin-top: 0.75rem; padding-top: 0.6rem; font-size: 0.85rem;
  border-top: 1px solid rgba(138,43,226,0.15);
  color: rgba(255,255,255,0.6); text-align: right;
}
.sm-room-subtotal strong { color: #c084fc; }

/* ── ПАНЕЛЬ СМЕТЫ (правая колонка) ────────────────────── */
.sm-estimate-panel {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(138,43,226,0.22);
  border-radius: 16px; overflow: hidden;
  position: sticky; top: 80px; max-height: calc(100vh - 100px);
  display: flex; flex-direction: column;
}
@media (max-width: 1080px) {
  .sm-estimate-panel { position: static; max-height: none; }
}

.sm-estimate-header {
  padding: 1rem 1.25rem; background: rgba(138,43,226,0.12);
  border-bottom: 1px solid rgba(138,43,226,0.2);
  flex-shrink: 0;
}
.sm-estimate-title { font-size: 1rem; font-weight: 700; color: #e0d0ff; }
.sm-estimate-sub {
  font-size: 0.82rem; color: rgba(192,132,252,0.8); margin-top: 0.2rem;
}

.sm-estimate-empty {
  padding: 3rem 1.5rem; text-align: center;
  color: rgba(255,255,255,0.35); font-size: 0.9rem; line-height: 1.6;
}

#sm-estimate-body {
  flex: 1; overflow-y: auto; padding: 0.5rem;
  scrollbar-width: thin; scrollbar-color: rgba(138,43,226,0.3) transparent;
}

/* ── Строки сметы ───────────────────────────────────── */
.sm-est-room {
  border-bottom: 1px solid rgba(138,43,226,0.12); margin-bottom: 0.5rem;
  padding-bottom: 0.5rem;
}
.sm-est-room:last-child { border-bottom: none; }
.sm-est-room-title {
  font-size: 0.88rem; font-weight: 700; color: #e0d0ff;
  padding: 0.4rem 0.5rem; display: flex; align-items: center; gap: 0.4rem;
}
.sm-est-room-area {
  font-size: 0.72rem; color: rgba(192,132,252,0.7);
  background: rgba(138,43,226,0.12); border-radius: 10px;
  padding: 0.1rem 0.5rem;
}
.sm-est-empty-room {
  padding: 0.5rem; font-size: 0.78rem; color: rgba(255,255,255,0.3);
  font-style: italic;
}
.sm-est-section { margin-bottom: 0.4rem; }
.sm-est-sec-title {
  font-size: 0.75rem; font-weight: 700; color: rgba(192,132,252,0.75);
  padding: 0.25rem 0.5rem; text-transform: uppercase; letter-spacing: 0.04em;
}
.sm-est-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; }
.sm-est-table th {
  padding: 0.2rem 0.4rem; color: rgba(255,255,255,0.4); font-weight: 600;
  text-align: left; border-bottom: 1px solid rgba(138,43,226,0.12);
}
.sm-est-table td {
  padding: 0.2rem 0.4rem; color: rgba(255,255,255,0.75);
  border-bottom: 1px solid rgba(255,255,255,0.04); vertical-align: top;
}
.sm-est-num { text-align: right; }
.sm-est-sum { color: #c084fc !important; font-weight: 600; }
.sm-est-room-total {
  text-align: right; font-size: 0.8rem; color: rgba(255,255,255,0.55);
  padding: 0.3rem 0.5rem;
}
.sm-est-room-total strong { color: #c084fc; }

/* ── Итоговый блок ───────────────────────────────────── */
#sm-estimate-footer { padding: 1rem; border-top: 1px solid rgba(138,43,226,0.2); flex-shrink: 0; }
.sm-total-block {
  background: rgba(138,43,226,0.1); border: 1px solid rgba(138,43,226,0.25);
  border-radius: 10px; padding: 0.75rem 1rem; margin-bottom: 1rem;
}
.sm-total-row {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 0.85rem; color: rgba(255,255,255,0.7); padding: 0.25rem 0;
}
.sm-total-row.sm-grand {
  border-top: 1px solid rgba(138,43,226,0.25); margin-top: 0.4rem;
  padding-top: 0.6rem; font-size: 1rem; font-weight: 700; color: #e0d0ff;
}
.sm-total-row.sm-grand span:last-child { color: #c084fc; font-size: 1.1rem; }

.sm-action-btns {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem;
}
.sm-btn-print {
  grid-column: 1 / -1; background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15); border-radius: 8px;
  padding: 0.65rem; cursor: pointer; font-size: 0.85rem; font-weight: 600;
  color: #e0d0ff; font-family: inherit; transition: all 0.15s;
}
.sm-btn-print:hover { background: rgba(255,255,255,0.14); }
.sm-btn-wa {
  background: linear-gradient(135deg, #25D366, #128C7E);
  border-radius: 8px; padding: 0.65rem; text-align: center;
  font-size: 0.85rem; font-weight: 600; color: #fff; text-decoration: none;
  transition: opacity 0.15s;
}
.sm-btn-wa:hover { opacity: 0.88; }
.sm-btn-order {
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  border: none; border-radius: 8px; padding: 0.65rem; cursor: pointer;
  font-size: 0.85rem; font-weight: 600; color: #fff; font-family: inherit;
  transition: opacity 0.15s;
}
.sm-btn-order:hover { opacity: 0.88; }

/* ── МОДАЛЬНЫЕ ОКНА ──────────────────────────────────── */
.sm-modal-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,0.72); z-index: 9000;
  align-items: center; justify-content: center; padding: 1rem;
}
.sm-modal-overlay.active { display: flex; }

.sm-modal {
  background: #1a1025; border: 1px solid rgba(138,43,226,0.35);
  border-radius: 16px; width: 100%; max-width: 780px;
  max-height: 92vh; display: flex; flex-direction: column;
  box-shadow: 0 24px 80px rgba(0,0,0,0.6);
}
.sm-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 1.25rem; border-bottom: 1px solid rgba(138,43,226,0.2);
  flex-shrink: 0;
}
.sm-modal-title { font-size: 1rem; font-weight: 700; color: #e0d0ff; }
.sm-modal-close {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px; padding: 0.35rem 0.65rem; cursor: pointer;
  font-size: 1rem; color: rgba(255,255,255,0.7); transition: all 0.15s;
}
.sm-modal-close:hover { background: rgba(239,68,68,0.2); color: #f87171; }

.sm-modal-body {
  flex: 1; overflow-y: auto; padding: 1.25rem;
  scrollbar-width: thin; scrollbar-color: rgba(138,43,226,0.3) transparent;
}

/* ── Сетка типов помещений ───────────────────────────── */
.sm-room-type-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 0.75rem; margin-bottom: 1.25rem;
}
.sm-room-type-btn {
  display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(138,43,226,0.2);
  border-radius: 12px; padding: 1rem 0.75rem; cursor: pointer;
  font-family: inherit; transition: all 0.2s; text-align: center;
}
.sm-room-type-btn:hover {
  background: rgba(138,43,226,0.14); border-color: rgba(138,43,226,0.5);
  transform: translateY(-2px);
}
.sm-room-type-icon { font-size: 2rem; }
.sm-room-type-label { font-size: 0.82rem; color: #c0a0e0; font-weight: 600; }

/* ── Своё название ──────────────────────────────────── */
.sm-custom-room {
  border-top: 1px solid rgba(138,43,226,0.2); padding-top: 1rem;
}
.sm-custom-room-label {
  display: block; font-size: 0.85rem; color: rgba(255,255,255,0.55);
  margin-bottom: 0.5rem;
}
.sm-custom-room-row { display: flex; gap: 0.5rem; }
.sm-custom-room-input {
  flex: 1; background: rgba(255,255,255,0.06); border: 1px solid rgba(138,43,226,0.25);
  border-radius: 8px; padding: 0.6rem 0.9rem; color: #e0d0ff;
  font-size: 0.9rem; font-family: inherit; outline: none;
}
.sm-custom-room-input:focus { border-color: #8A2BE2; }

/* ── Кнопки основные ────────────────────────────────── */
.sm-btn-primary {
  background: linear-gradient(135deg, #8A2BE2, #5B0EA6);
  border: none; border-radius: 8px; padding: 0.65rem 1.25rem;
  cursor: pointer; font-size: 0.9rem; font-weight: 700; color: #fff;
  font-family: inherit; transition: opacity 0.15s;
}
.sm-btn-primary:hover { opacity: 0.88; }

/* ── Вторичная кнопка ───────────────────────────────── */
.sm-btn-secondary {
  background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15);
  border-radius: 8px; padding: 0.65rem 1.25rem; cursor: pointer;
  font-size: 0.9rem; font-weight: 600; color: rgba(255,255,255,0.7);
  font-family: inherit; transition: all 0.15s;
}
.sm-btn-secondary:hover { background: rgba(255,255,255,0.13); color: #fff; }

/* ── Блок подсказки в модале ─────────────────────────── */
.sm-hint-block {
  display: flex; gap: 0.75rem; align-items: flex-start;
  background: rgba(138,43,226,0.1); border: 1px solid rgba(138,43,226,0.25);
  border-radius: 10px; padding: 0.85rem 1rem; margin-bottom: 1.25rem;
  font-size: 0.85rem; color: rgba(255,255,255,0.78); line-height: 1.55;
}
.sm-hint-block strong { color: #e0d0ff; }
.sm-hint-icon { font-size: 1.3rem; flex-shrink: 0; }

/* ── Группы позиций ─────────────────────────────────── */
.sm-items-group { margin-bottom: 1.5rem; }
.sm-items-group-title {
  font-size: 0.78rem; font-weight: 700; color: #c084fc;
  text-transform: uppercase; letter-spacing: 0.05em;
  margin-bottom: 0.75rem; padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(138,43,226,0.2);
}
.sm-items-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.65rem;
}
@media (max-width: 600px) { .sm-items-grid { grid-template-columns: 1fr; } }

/* ── Блок «Ваши позиции» ─────────────────────────────── */
.sm-items-block { margin-bottom: 1.2rem; }
.sm-items-block-title {
  font-size: 0.82rem; font-weight: 700;
  margin-bottom: 1rem; padding: 0.5rem 0.75rem;
  border-radius: 8px;
}
/* Ваши данные — зелёный акцент */
.sm-items-block--yours .sm-items-block-title {
  background: rgba(37,211,102,0.1);
  border: 1px solid rgba(37,211,102,0.3);
  color: #4ade80;
}
/* Демо-прайс — серый приглушённый */
.sm-items-block--demo .sm-items-block-title {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.45);
}
/* Демо-карточки чуть приглушены */
.sm-items-block--demo .sm-item-card {
  opacity: 0.75;
}
.sm-items-block--demo .sm-item-card:hover,
.sm-items-block--demo .sm-item-card.selected {
  opacity: 1;
}

/* ── Карточка позиции ────────────────────────────────── */
.sm-item-card {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(138,43,226,0.18);
  border-radius: 10px; padding: 0.85rem; cursor: pointer;
  transition: all 0.18s; position: relative;
}
.sm-item-card:hover {
  background: rgba(138,43,226,0.1); border-color: rgba(138,43,226,0.4);
  transform: translateY(-1px);
}
.sm-item-card.selected {
  background: rgba(138,43,226,0.16); border-color: rgba(138,43,226,0.65);
  box-shadow: 0 0 0 2px rgba(138,43,226,0.25);
}
.sm-item-check {
  font-size: 1rem; margin-bottom: 0.4rem; display: block;
}
.sm-item-name {
  font-size: 0.85rem; font-weight: 600; color: #e0d0ff;
  margin-bottom: 0.35rem; line-height: 1.35;
}
.sm-item-price-row {
  display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: baseline;
  margin-bottom: 0.4rem;
}
.sm-item-price {
  font-size: 0.85rem; font-weight: 700; color: #c084fc;
}
.sm-item-qty {
  font-size: 0.75rem; color: rgba(255,255,255,0.5);
}
.sm-item-qty strong { color: #a78bfa; }
.sm-item-desc {
  font-size: 0.75rem; color: rgba(255,255,255,0.45); line-height: 1.4;
  margin-bottom: 0.35rem;
}
.sm-item-hint {
  font-size: 0.75rem; color: rgba(192,132,252,0.7); line-height: 1.4;
  background: rgba(138,43,226,0.08); border-radius: 6px;
  padding: 0.35rem 0.5rem; display: flex; gap: 0.35rem; align-items: flex-start;
}
.sm-item-hint-icon { flex-shrink: 0; }

.sm-empty { padding: 2rem; text-align: center; color: rgba(255,255,255,0.35); }

/* ── Футер модала ────────────────────────────────────── */
.sm-modal-footer {
  padding-top: 1rem; border-top: 1px solid rgba(138,43,226,0.15);
  margin-top: 1rem; display: flex; justify-content: flex-end; gap: 0.5rem;
}

/* ── Большая подсказка ───────────────────────────────── */
.sm-hint-full {
  display: flex; gap: 1rem; align-items: flex-start;
  background: rgba(138,43,226,0.08); border-radius: 10px; padding: 1rem;
  margin-bottom: 1rem;
}
.sm-hint-full-icon { font-size: 2rem; flex-shrink: 0; }
.sm-hint-full-text {
  font-size: 0.9rem; color: rgba(255,255,255,0.8); line-height: 1.65;
}

/* ── Печать сметы ────────────────────────────────────── */
@media print {
  .sm-constructor, .sm-modal-overlay, .sm-btn-add-room,
  .rc-tabs, header, footer, .sp-hero,
  .sp-steps, .sp-section:not(#calculator) { display: none !important; }
  .sm-app { grid-template-columns: 1fr !important; }
  .sm-estimate-panel { position: static !important; max-height: none !important; border: none !important; }
  .sm-estimate-panel, #sm-estimate-body, #sm-estimate-footer { overflow: visible !important; }
  .sm-est-table td, .sm-est-table th { color: #000 !important; }
  .sm-total-block { background: #f5f5f5 !important; }
  .sm-est-room-title, .sm-estimate-title { color: #000 !important; }
}

/* ══════════════════════════════════════════════════════════
   МОБИЛЬНЫЕ ИСПРАВЛЕНИЯ — repair.html
   ══════════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* Общий контейнер не выходит за экран */
  .rc-calculator,
  .rc-smeta-wrap,
  .sm-app {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
  }

  /* Карточки типа ремонта — 2 колонки */
  .rc-types-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Карточки помещений — 2 колонки */
  .rc-rooms-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Карточки материалов — 2 колонки */
  .rc-mats-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Опции — 1 колонка на мобильном */
  .rc-opts-grid {
    grid-template-columns: 1fr !important;
  }

  /* Срочность и выезд — 2 колонки */
  .rc-urg-grid,
  .rc-visit-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Карточки не обрезаются */
  .rc-room-btn,
  .rc-mat-btn,
  .rc-urg-btn,
  .rc-visit-btn,
  .rc-opt-btn {
    min-width: 0 !important;
    word-break: break-word;
  }

  /* Текст в карточках чуть меньше */
  .rc-room-name, .rc-mat-name, .rc-urg-name,
  .rc-visit-name, .rc-mat-desc, .rc-room-desc {
    font-size: 0.75rem !important;
  }

  /* Иконки чуть меньше */
  .rc-room-icon, .rc-mat-icon { font-size: 1.3rem !important; }

  /* Смета правая панель — под калькулятором */
  .rc-calculator {
    grid-template-columns: 1fr !important;
  }

  /* Смета по комнатам тоже в одну колонку */
  .rc-smeta-wrap {
    grid-template-columns: 1fr !important;
  }

  /* Конструктор сметы — одна колонка */
  .sm-app {
    grid-template-columns: 1fr !important;
  }

  /* Панель сметы конструктора — не sticky */
  .sm-estimate-panel {
    position: static !important;
    max-height: 400px !important;
  }

  /* Метки площади — 2 колонки вместо 4 */
  .rc-area-labels {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Паддинги блоков поменьше */
  .rc-formula-block,
  .rc-result-header {
    padding: 0.75rem 1rem !important;
  }

  .rc-formula-row {
    font-size: 0.78rem !important;
  }
}
