/**
 * Модуль «Опросы» для CMS «ГИРВАС» — блок опроса на сайте.
 *
 * Цвета берутся из переменных шаблона сайта (--primary-color-*),
 * с запасными значениями для сторонних шаблонов. Переопределить
 * оформление можно переменными --poll-* в стилях своего шаблона.
 */

.polls-widget {
  --poll-accent: var(--primary-color-2, #320000);
  --poll-text: var(--primary-color-1, #160000);
  --poll-muted: var(--primary-color-5, #6f5d5d);
  --poll-border: var(--primary-color-3, #e7d8d8);
  --poll-surface: var(--primary-color-4, #ffffff);
  --poll-track: var(--primary-color-3, #e7d8d8);
  --poll-error: var(--common-secondary-color-6, #932929);
}

.polls-widget .sidebar__block-content {
  gap: 18px;
}

.poll {
  display: grid;
  gap: 10px;
  color: var(--poll-text);
  min-width: 0;
}

.poll + .poll {
  border-top: 1px solid var(--poll-border);
  padding-top: 16px;
}

.poll__question {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.poll__description {
  margin: 0;
  color: var(--poll-muted);
  line-height: 1.45;
}

.poll__form {
  display: grid;
  gap: 10px;
}

.poll__options {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

.poll__legend {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.poll__option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 8px;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  line-height: 1.35;
  transition: background-color .15s ease, border-color .15s ease;
}

.poll__option:hover {
  background-color: color-mix(in srgb, var(--poll-accent) 6%, transparent);
}

.poll__option:has(.poll__input:checked) {
  border-color: color-mix(in srgb, var(--poll-accent) 35%, transparent);
  background-color: color-mix(in srgb, var(--poll-accent) 8%, transparent);
}

.poll__option:has(.poll__input:disabled) {
  cursor: not-allowed;
  opacity: .55;
}

.poll__input {
  flex: none;
  margin: 2px 0 0;
  accent-color: var(--poll-accent);
}

.poll__option-title {
  overflow-wrap: anywhere;
}

.poll__hint,
.poll__note,
.poll__total {
  margin: 0;
  color: var(--poll-muted);
  font-size: 13px;
}

.poll__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
}

.poll__submit {
  padding: 8px 16px;
  border: 0;
  border-radius: 6px;
  background-color: var(--poll-accent);
  color: var(--poll-surface);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s ease;
}

.poll__submit:hover {
  opacity: .88;
}

.poll__submit:disabled {
  opacity: .5;
  cursor: progress;
}

.poll__link {
  padding: 0;
  border: 0;
  background: none;
  color: var(--poll-accent);
  font: inherit;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.poll__submit:focus-visible,
.poll__link:focus-visible,
.poll__input:focus-visible {
  outline: 2px solid var(--poll-accent);
  outline-offset: 2px;
}

.poll__message {
  margin: 0;
  font-size: 13px;
  color: var(--poll-muted);
}

.poll__message:empty {
  display: none;
}

.poll__message_error {
  color: var(--poll-error);
}

/* Результаты */

.poll__results {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.poll__result {
  display: grid;
  gap: 4px;
}

.poll__result-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  line-height: 1.35;
}

.poll__result-title {
  overflow-wrap: anywhere;
}

.poll__result-value {
  flex: none;
  color: var(--poll-muted);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.poll__result_leader .poll__result-title {
  font-weight: 700;
}

.poll__bar {
  display: block;
  width: 100%;
  height: 8px;
  border: 0;
  border-radius: 4px;
  overflow: hidden;
  background-color: var(--poll-track);
  appearance: none;
  -webkit-appearance: none;
}

.poll__bar::-webkit-progress-bar {
  background-color: var(--poll-track);
  border-radius: 4px;
}

.poll__bar::-webkit-progress-value {
  background-color: var(--poll-muted);
  border-radius: 4px;
  transition: width .4s ease;
}

.poll__bar::-moz-progress-bar {
  background-color: var(--poll-muted);
  border-radius: 4px;
}

.poll__result_leader .poll__bar::-webkit-progress-value {
  background-color: var(--poll-accent);
}

.poll__result_leader .poll__bar::-moz-progress-bar {
  background-color: var(--poll-accent);
}

.poll_updated {
  animation: poll-appear .25s ease;
}

@keyframes poll-appear {
  from { opacity: .4; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .poll_updated { animation: none; }
  .poll__bar::-webkit-progress-value { transition: none; }
}
