/* ============================================================
   КАЛЬКУЛЯТОР ОБОГРЕВАТЕЛЕЙ (.ch) - СОВРЕМЕННЫЙ ДИЗАЙН
   ============================================================ */

.ch, .ch *, .ch :before, .ch :after {
  box-sizing: border-box !important;
}

.ch {
  padding: 30px 20px !important;
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%) !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
  max-width: 500px !important;
  margin: 0 auto !important;
}

.ch .ch-headline {
  margin-bottom: 30px !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-align: center !important;
  color: #2c3e50 !important;
  letter-spacing: -0.5px !important;
}

.ch .ch-form {
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
  max-width: 400px !important;
}

.ch .ch-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
  margin-bottom: 10px !important;
}

.ch .ch-col {
  margin-bottom: 20px !important;
  flex: 1 !important;
  min-width: 120px !important;
}

.ch .ch-width-col,
.ch .ch-length-col,
.ch .ch-height-col {
  flex: 1 !important;
  min-width: 100px !important;
}

.ch .ch-wat-col {
  width: 100% !important;
}

.ch .ch-field {
  position: relative !important;
}

.ch .ch-field__label {
  display: block !important;
  margin-bottom: 8px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: #495057 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.ch .ch-field__input {
  padding: 0 15px !important;
  width: 100% !important;
  height: 48px !important;
  border: 2px solid #dee2e6 !important;
  border-radius: 6px !important;
  background-color: #ffffff !important;
  color: #212529 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  outline: none !important;
  transition: all 0.3s ease !important;
}

.ch .ch-field__input:focus {
  border-color: #3bb54a !important;
  box-shadow: 0 0 0 3px rgba(59, 181, 74, 0.15) !important;
  background-color: #fafbfc !important;
}

.ch .ch-field__input:hover {
  border-color: #adb5bd !important;
}

.ch .ch-btn-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  margin-top: 30px !important;
}

.ch .ch-btn {
  display: inline-block !important;
  padding: 18px 50px !important;
  border: none !important;
  border-radius: 6px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  text-align: center !important;
  background: linear-gradient(135deg, #3bb54a 0%, #2d9a3e 100%) !important;
  color: #ffffff !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 4px 12px rgba(59, 181, 74, 0.3) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.ch .ch-btn:hover {
  background: linear-gradient(135deg, #2d9a3e 0%, #238a33 100%) !important;
  box-shadow: 0 6px 16px rgba(59, 181, 74, 0.4) !important;
  transform: translateY(-2px) !important;
}

.ch .ch-btn:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 8px rgba(59, 181, 74, 0.3) !important;
}

.ch .ch-result {
  margin-top: 30px !important;
  padding: 25px 20px !important;
  text-align: center !important;
  background: linear-gradient(135deg, #e8f5e9 0%, #f1f8e9 100%) !important;
  border-radius: 8px !important;
  border-left: 4px solid #3bb54a !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: #2c3e50 !important;
  box-shadow: 0 2px 12px rgba(59, 181, 74, 0.1) !important;
  animation: fadeIn 0.5s ease !important;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ============================================================
   КАЛЬКУЛЯТОР ЭЛЕКТРОЭНЕРГИИ (.ce) - СОВРЕМЕННЫЙ ДИЗАЙН
   ============================================================ */

.ce, .ce *, .ce :before, .ce :after {
  box-sizing: border-box !important;
}

.ce {
  padding: 30px 20px !important;
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%) !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
  max-width: 900px !important;
  margin: 0 auto !important;
}

.ce .ce-headline {
  margin-bottom: 30px !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-align: center !important;
  color: #2c3e50 !important;
  letter-spacing: -0.5px !important;
}

.ce .ce-h3 {
  margin: 30px 0 20px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-align: center !important;
  color: #2c3e50 !important;
}

.ce .ce-h4 {
  margin-bottom: 15px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: #495057 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.3px !important;
}

/* Сетка из 3 колонок */
.ce .ce-gridbox3 {
  display: grid !important;
  grid-gap: 20px !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  margin-bottom: 20px !important;
}

/* Блоки с параметрами - вместо пунктирной рамки современный стиль */
.ce .ce-promenna {
  padding: 20px !important;
  border: none !important;
  background: #ffffff !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  border-top: 3px solid #3bb54a !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.ce .ce-promenna:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1) !important;
}

/* Поля ввода и селекты */
.ce input,
.ce select {
  margin: 0 0 12px !important;
  padding: 0 15px !important;
  width: auto !important;
  height: 48px !important;
  border: 2px solid #dee2e6 !important;
  border-radius: 6px !important;
  background-color: #ffffff !important;
  color: #212529 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  outline: none !important;
  box-shadow: none !important;
  transition: all 0.3s ease !important;
}

.ce input:focus,
.ce select:focus {
  border-color: #3bb54a !important;
  box-shadow: 0 0 0 3px rgba(59, 181, 74, 0.15) !important;
  background-color: #fafbfc !important;
}

.ce input:hover,
.ce select:hover {
  border-color: #adb5bd !important;
}

/* Специфичные поля */
.ce .ce-promenna input[type=tel] {
  width: 100px !important;
}

.ce .ce-desMista {
  width: 70px !important;
  text-align: center !important;
  font-weight: 600 !important;
}

/* Чекбокс */
.ce input[type=checkbox] {
  margin: 0 10px 0 0 !important;
  width: 20px !important;
  height: 20px !important;
  cursor: pointer !important;
  accent-color: #3bb54a !important;
}

/* Блок с ценой */
.ce .ce-prombox {
  margin-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

.ce .ce-prombox > * {
  display: inline-block !important;
  vertical-align: middle !important;
}

/* Ошибка */
.ce .ce-error {
  color: #d32f2f !important;
  font-weight: 600 !important;
  padding: 10px 15px !important;
  background: #ffebee !important;
  border-radius: 6px !important;
  border-left: 3px solid #d32f2f !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* Кнопки */
.ce .ce-tlacitka {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 15px !important;
  margin: 30px 0 !important;
  flex-wrap: wrap !important;
}

.ce .ce-tlacitka button {
  display: inline-block !important;
  padding: 18px 40px !important;
  border: none !important;
  border-radius: 6px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  font-weight: 700 !important;
  text-align: center !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.ce .ce-tlacitka button:first-child {
  margin-right: 0 !important;
  background: linear-gradient(135deg, #3bb54a 0%, #2d9a3e 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(59, 181, 74, 0.3) !important;
}

.ce .ce-tlacitka button:first-child:hover {
  background: linear-gradient(135deg, #2d9a3e 0%, #238a33 100%) !important;
  box-shadow: 0 6px 16px rgba(59, 181, 74, 0.4) !important;
  transform: translateY(-2px) !important;
}

.ce .ce-tlacitka button:first-child:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 8px rgba(59, 181, 74, 0.3) !important;
}

.ce .ce-tlacitka button:last-child {
  background: linear-gradient(135deg, #43454B 0%, #2c2e33 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(67, 69, 75, 0.3) !important;
}

.ce .ce-tlacitka button:last-child:hover {
  background: linear-gradient(135deg, #2c2e33 0%, #1a1b1e 100%) !important;
  box-shadow: 0 6px 16px rgba(67, 69, 75, 0.4) !important;
  transform: translateY(-2px) !important;
}

.ce .ce-tlacitka button:last-child:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 8px rgba(67, 69, 75, 0.3) !important;
}

/* Таблица результатов */
.ce .ce-obectab {
  margin: 20px auto !important;
  width: 100% !important;
  max-width: 700px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border: none !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
  text-align: center !important;
  background: #ffffff !important;
}

.ce .ce-obectab thead tr,
.ce .ce-obectab tr:first-child {
  background: linear-gradient(135deg, #3bb54a 0%, #2d9a3e 100%) !important;
}

.ce .ce-obectab tr:first-child td {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  padding: 15px 10px !important;
  border: none !important;
}

.ce .ce-obectab tbody tr:nth-child(even) {
  background-color: #f8f9fa !important;
}

.ce .ce-obectab tbody tr:hover {
  background-color: #e8f5e9 !important;
  transition: background-color 0.3s ease !important;
}

.ce .ce-obectab tbody td {
  padding: 15px 10px !important;
  border: none !important;
  border-bottom: 1px solid #e9ecef !important;
  text-align: center !important;
  font-size: 15px !important;
  color: #2c3e50 !important;
  font-weight: 500 !important;
}

.ce .ce-obectab tbody td:first-child {
  vertical-align: middle !important;
  font-weight: 600 !important;
  color: #495057 !important;
}

.ce .ce-obectab td > div {
  font-size: 12px !important;
  color: #6c757d !important;
  margin-top: 3px !important;
  font-weight: 400 !important;
}

/* Специфичные селекты */
.ce #co-sel0 {
  width: 80px !important;
}

.ce #ce-sel20 {
  padding-left: 15px !important;
  width: 130px !important;
  height: 48px !important;
  font-weight: 600 !important;
  color: #3bb54a !important;
}

/* Скрытые элементы - ВАЖНО не трогать! */
.ce .ce-none {
  display: none !important;
}

/* Рекламные блоки (если есть) */
.ce .ce-rekl,
.ce .ce-reklM {
  margin: 15px 0 !important;
}

/* Помощь (скрытые поля) */
.ce .ce-pomoc {
  display: none !important;
}


/* ============================================================
   АДАПТИВНОСТЬ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ============================================================ */

@media (max-width: 768px) {
  .ce .ce-gridbox3 {
    grid-template-columns: 1fr !important;
    grid-gap: 15px !important;
  }
  
  .ce .ce-headline {
    font-size: 26px !important;
  }
  
  .ce .ce-h3 {
    font-size: 20px !important;
  }
  
  .ce .ce-tlacitka {
    flex-direction: column !important;
    gap: 10px !important;
  }
  
  .ce .ce-tlacitka button {
    width: 100% !important;
    padding: 16px 30px !important;
  }
  
  .ce .ce-obectab {
    font-size: 14px !important;
  }
  
  .ce .ce-obectab tbody td {
    padding: 12px 8px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 480px) {
  .ch {
    padding: 20px 15px !important;
  }
  
  .ce {
    padding: 20px 15px !important;
  }
  
  .ch .ch-headline,
  .ce .ce-headline {
    font-size: 24px !important;
    margin-bottom: 20px !important;
  }
  
  .ch .ch-row {
    flex-direction: column !important;
    gap: 0 !important;
  }
  
  .ch .ch-col {
    min-width: 100% !important;
  }
  
  .ch .ch-btn,
  .ce .ce-tlacitka button {
    padding: 16px 30px !important;
    font-size: 15px !important;
    width: 100% !important;
  }
  
  .ch .ch-result {
    padding: 20px 15px !important;
    font-size: 15px !important;
  }
  
  .ce .ce-prombox {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  
  .ce input,
  .ce select {
    width: 100% !important;
    height: 44px !important;
  }
  
  .ce .ce-promenna input[type=tel],
  .ce .ce-desMista {
    width: 100% !important;
  }
  
  .ce .ce-obectab {
    font-size: 13px !important;
  }
  
  .ce .ce-obectab tbody td {
    padding: 10px 6px !important;
    font-size: 13px !important;
  }
  
  .ce .ce-obectab td > div {
    font-size: 11px !important;
  }
}