/**
 * Стили для кастомного блока "Видео"
 */

/* Стили для контейнера блока */

.components-button[aria-label="Видео"] {
  display: none !important;
}

.wp-block-inscale-video-block {
  margin: 0;
  padding: 0;
  max-width: 100%;
}

/* Обертка для iframe с сохранением соотношения сторон */
.inscale-video-container {
  position: relative;
  padding-bottom: 56.25%;
  /* Соотношение 16:9 */
  height: 0;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

/* Стили для соотношения 4:3 */
.inscale-video-container[data-aspect-ratio="4:3"] {
  padding-bottom: 75%;
  /* Соотношение 4:3 */
}

/* Стили для iframe */
.inscale-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Стили для заглушки в редакторе.
 * В целях безопасности в админке iframe не рендерится — показываем стилизованную
 * заглушку с очертанием 16:9, кнопкой play и бейджем провайдера, чтобы автор
 * понимал, где и какого размера будет видео на фронте. */
.inscale-video-placeholder-editor {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  background-image: linear-gradient(135deg, #2a2f3a 0%, #1a1f28 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--white, #fff);
  overflow: hidden;
  border-radius: 10px;
}

/* Цветовой акцент по провайдеру — пока превью с провайдера не приехало */
.inscale-video-placeholder-editor[data-provider="vk"]:not([data-has-thumb]) {
  background-image: linear-gradient(135deg, #2e4a72 0%, #1a2a44 100%);
}

.inscale-video-placeholder-editor[data-provider="rutube"]:not([data-has-thumb]) {
  background-image: linear-gradient(135deg, #6a1f24 0%, #2a0f12 100%);
}

/* Реальное превью с провайдера (если получили через REST-прокси).
 * background-image ставится inline-ом из JS. Тут — позиционирование и затемнение,
 * чтобы белый текст-бейдж оставался читаемым на любой картинке.
 * NB: position здесь НЕ переопределяем — базовое absolute (строка ~49)
 * нужно сохранить, иначе плейсхолдер схлопывается до высоты бейджа. */
.inscale-video-placeholder-editor[data-has-thumb] {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.inscale-video-placeholder-editor[data-has-thumb]::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.45) 100%);
  pointer-events: none;
  border-radius: inherit;
}

/* Бейдж провайдера должен лежать поверх затемнения */
.inscale-video-placeholder-editor .inscale-video-preview-info {
  position: relative;
  z-index: 1;
}

/* Кнопка play намеренно скрыта в редакторе — в админке видео не воспроизводится,
 * показывать «play» означало бы вводить автора в заблуждение. */
.inscale-video-placeholder-editor .inscale-video-play-button {
  display: none;
}

/* Бейдж провайдера в заглушке */
.inscale-video-placeholder-editor .inscale-video-preview-info {
  font-size: 13px;
  font-weight: 600;
  padding: 5px 12px;
  background-color: rgba(0, 0, 0, 0.35);
  border-radius: 20px;
  margin-top: 0;
  letter-spacing: 0.02em;
}

/* Стили для превью видео */
.inscale-video-preview {
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  overflow: hidden;
  background-image: linear-gradient(45deg, #2a2a2a, #1a1a1a);
  color: #fff;
  display: none;
}

/* Кнопка воспроизведения */
.inscale-video-play-button {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.2);
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  margin-bottom: 20px;
  display: none;
}

.inscale-video-play-button:before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 0 15px 25px;
  border-color: transparent transparent transparent #333;
  margin-left: 5px;
}

/* Информация о провайдере */
.inscale-video-preview-info {
  font-size: 14px;
  font-weight: 600;
  padding: 6px 14px;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 20px;
  margin-top: 5px;
}

/* Оформление для разных провайдеров */
.inscale-video-preview[data-provider="vk"] {
  background-image: linear-gradient(45deg, #4a76a8, #2e5a88);
}

.inscale-video-preview[data-provider="rutube"] {
  background-image: linear-gradient(45deg, #c62c31, #a51f24);
}

/* Стили для плейсхолдера видео */
.inscale-video-placeholder {
  background-color: #f0f0f0;
  padding: 20px;
  border-radius: 5px;
  text-align: center;
  border: 1px dashed #ccc;
}

.inscale-video-placeholder p {
  margin: 0 0 10px 0;
  color: #666;
}

/* Стили для ошибки */
.inscale-video-error {
  background-color: #ffebee;
  padding: 10px;
  border-radius: 5px;
  color: #c62828;
  border: 1px solid #ef9a9a;
  margin-top: 10px;
}

/* Стили поля ввода URL */
.inscale-url-input {
  width: 100%;
  max-width: 100%;
  margin-bottom: 0;
}

/* Контейнер для поля ввода и кнопки */
.inscale-input-with-button {
  display: flex;
  width: 100%;
}

/* Стили для блока видео */
[data-type="inscale/video-block"] .components-placeholder__instructions {
  flex-basis: 100%;
}

[data-type="inscale/video-block"] .inscale-url-input {
  max-width: 456px;
}

[data-type="inscale/video-block"] .components-placeholder__fieldset {}

[data-type="inscale/video-block"] .components-base-control__field {
  margin: 0;
}

.inscale-input-with-button {
  gap: 10px;
  display: flex;
  align-items: center;
}

/* Стили для ошибок при загрузке видео */
.inscale-video-container .inscale-video-error {
  background: #f8d7da;
  color: #721c24;
  padding: 20px;
  text-align: center;
  border-radius: 4px;
  border: 1px solid #f5c6cb;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Заголовки превью для разных провайдеров */
.inscale-video-preview[data-provider="vk"] .inscale-video-preview-info {
  background-color: rgba(74, 118, 168, 0.7);
}

.inscale-video-preview[data-provider="rutube"] .inscale-video-preview-info {
  background-color: rgba(198, 44, 49, 0.7);
}

/* Кнопка воспроизведения для разных провайдеров */
.inscale-video-preview[data-provider="vk"] .inscale-video-play-button {
  box-shadow: 0 0 20px rgba(74, 118, 168, 0.6);
}

.inscale-video-preview[data-provider="rutube"] .inscale-video-play-button {
  box-shadow: 0 0 20px rgba(198, 44, 49, 0.6);
}

/* Анимация при наведении для кнопки воспроизведения */
.inscale-video-play-button:hover {
  box-shadow: 0 0 30px rgba(255, 255, 255, 0.4);
}