/* Дополнительная обратная связь при обязательном выборе сотрудников в графике. */
.period-fios-options.is-invalid {
  border-color: #d51f32;
  background: #fff2f3;
  box-shadow: 0 0 0 3px rgba(213, 31, 50, 0.16);
}

.period-fios-options.is-invalid summary,
.period-fios-options.is-invalid[open] summary {
  border-bottom-color: #ef9aa4;
  background: #ffe4e7;
  color: #a70f20;
}

.period-fios-options.is-invalid .period-fios-count {
  color: #bd1427;
  font-weight: 700;
}

.period-fios-options.is-attention {
  animation: period-fios-attention 420ms ease-in-out;
}

@keyframes period-fios-attention {
  0%, 100% { transform: translateX(0); }
  18% { transform: translateX(-6px); }
  36% { transform: translateX(6px); }
  54% { transform: translateX(-4px); }
  72% { transform: translateX(4px); }
}

@media (prefers-reduced-motion: reduce) {
  .period-fios-options.is-attention { animation: none; }
}

/* Редактор одной ячейки всегда остаётся целиком внутри видимой области. */
.code-picker {
  box-sizing: border-box;
  max-width: calc(100vw - 16px);
  max-height: calc(100dvh - 16px);
  overflow: auto;
  overscroll-behavior: contain;
}

.schedule-hours-editor {
  box-sizing: border-box;
  width: min(280px, calc(100vw - 52px));
  max-width: 100%;
}

.schedule-hours-actions .btn { min-width: 0; }
