* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-size-adjust: none;
  -webkit-text-size-adjust: none;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--pv-font-family, inherit);
}

/**
 * Typography variants.
 */
.t-h1 {
  font-weight: var(--pv-text-h1-weight);
  font-size: var(--pv-text-h1-size);
  line-height: var(--pv-text-h1-height);
  letter-spacing: var(--pv-text-h1-spacing);
}

.t-h2 {
  font-weight: var(--pv-text-h2-weight);
  font-size: var(--pv-text-h2-size);
  line-height: var(--pv-text-h2-height);
  letter-spacing: var(--pv-text-h2-spacing);
}

.t-h3 {
  font-weight: var(--pv-text-h3-weight);
  font-size: var(--pv-text-h3-size);
  line-height: var(--pv-text-h3-height);
  letter-spacing: var(--pv-text-h3-spacing);
}

.t-h4 {
  font-weight: var(--pv-text-h4-weight);
  font-size: var(--pv-text-h4-size);
  line-height: var(--pv-text-h4-height);
  letter-spacing: var(--pv-text-h4-spacing);
}

.t-h5 {
  font-weight: var(--pv-text-h5-weight);
  font-size: var(--pv-text-h5-size);
  line-height: var(--pv-text-h5-height);
  letter-spacing: var(--pv-text-h5-spacing);
}

.t-s1 {
  font-weight: var(--pv-text-s1-weight);
  font-size: var(--pv-text-s1-size);
  line-height: var(--pv-text-s1-height);
  letter-spacing: var(--pv-text-s1-spacing);
}

.t-s2 {
  font-weight: var(--pv-text-s2-weight);
  font-size: var(--pv-text-s2-size);
  line-height: var(--pv-text-s2-height);
  letter-spacing: var(--pv-text-s2-spacing);
}

.t-b1 {
  font-weight: var(--pv-text-b1-weight);
  font-size: var(--pv-text-b1-size);
  line-height: var(--pv-text-b1-height);
  letter-spacing: var(--pv-text-b1-spacing);
}

.t-b2 {
  font-weight: var(--pv-text-b2-weight);
  font-size: var(--pv-text-b2-size);
  line-height: var(--pv-text-b2-height);
  letter-spacing: var(--pv-text-b2-spacing);
}

.t-b3 {
  font-weight: var(--pv-text-b3-weight);
  font-size: var(--pv-text-b3-size);
  line-height: var(--pv-text-b3-height);
  letter-spacing: var(--pv-text-b3-spacing);
}

.t-btn1 {
  font-weight: var(--pv-text-btn1-weight);
  font-size: var(--pv-text-btn1-size);
  line-height: var(--pv-text-btn1-height);
  letter-spacing: var(--pv-text-btn1-spacing);
}

.t-btn2 {
  font-weight: var(--pv-text-btn2-weight);
  font-size: var(--pv-text-btn2-size);
  line-height: var(--pv-text-btn2-height);
  letter-spacing: var(--pv-text-btn2-spacing);
}

.t-c1 {
  font-weight: var(--pv-text-c1-weight);
  font-size: var(--pv-text-c1-size);
  line-height: var(--pv-text-c1-height);
  letter-spacing: var(--pv-text-c1-spacing);
}

.t-c2 {
  font-weight: var(--pv-text-c2-weight);
  font-size: var(--pv-text-c2-size);
  line-height: var(--pv-text-c2-height);
  letter-spacing: var(--pv-text-c2-spacing);
}

/**
 *
 */
/**
 * Color variants.
 */
.c-primary-tint-5 {
  --pv-color-base: var(--pv-color-primary-tint-5);
}

.c-primary-tint-4 {
  --pv-color-base: var(--pv-color-primary-tint-4);
}

.c-primary-tint-3 {
  --pv-color-base: var(--pv-color-primary-tint-3);
}

.c-primary-tint-2 {
  --pv-color-base: var(--pv-color-primary-tint-2);
}

.c-primary-tint-1 {
  --pv-color-base: var(--pv-color-primary-tint-1);
}

.c-primary {
  --pv-color-base: var(--pv-color-primary);
}

.c-primary-shade-1 {
  --pv-color-base: var(--pv-color-primary-shade-1);
}

.c-primary-shade-2 {
  --pv-color-base: var(--pv-color-primary-shade-2);
}

.c-primary-shade-3 {
  --pv-color-base: var(--pv-color-primary-shade-3);
}

.c-primary-shade-4 {
  --pv-color-base: var(--pv-color-primary-shade-4);
}

.c-primary-shade-5 {
  --pv-color-base: var(--pv-color-primary-shade-5);
}

.c-primary-contrast {
  --pv-color-base: var(--pv-color-primary-contrast);
}

.c-secondary-tint-5 {
  --pv-color-base: var(--pv-color-secondary-tint-5);
}

.c-secondary-tint-4 {
  --pv-color-base: var(--pv-color-secondary-tint-4);
}

.c-secondary-tint-3 {
  --pv-color-base: var(--pv-color-secondary-tint-3);
}

.c-secondary-tint-2 {
  --pv-color-base: var(--pv-color-secondary-tint-2);
}

.c-secondary-tint-1 {
  --pv-color-base: var(--pv-color-secondary-tint-1);
}

.c-secondary {
  --pv-color-base: var(--pv-color-secondary);
}

.c-secondary-shade-1 {
  --pv-color-base: var(--pv-color-secondary-shade-1);
}

.c-secondary-shade-2 {
  --pv-color-base: var(--pv-color-secondary-shade-2);
}

.c-secondary-shade-3 {
  --pv-color-base: var(--pv-color-secondary-shade-3);
}

.c-secondary-shade-4 {
  --pv-color-base: var(--pv-color-secondary-shade-4);
}

.c-secondary-shade-5 {
  --pv-color-base: var(--pv-color-secondary-shade-5);
}

.c-secondary-contrast {
  --pv-color-base: var(--pv-color-secondary-contrast);
}

.c-wrong-tint-5 {
  --pv-color-base: var(--pv-color-wrong-tint-5);
}

.c-wrong-tint-4 {
  --pv-color-base: var(--pv-color-wrong-tint-4);
}

.c-wrong-tint-3 {
  --pv-color-base: var(--pv-color-wrong-tint-3);
}

.c-wrong-tint-2 {
  --pv-color-base: var(--pv-color-wrong-tint-2);
}

.c-wrong-tint-1 {
  --pv-color-base: var(--pv-color-wrong-tint-1);
}

.c-wrong {
  --pv-color-base: var(--pv-color-wrong);
}

.c-wrong-shade-1 {
  --pv-color-base: var(--pv-color-wrong-shade-1);
}

.c-wrong-shade-2 {
  --pv-color-base: var(--pv-color-wrong-shade-2);
}

.c-wrong-shade-3 {
  --pv-color-base: var(--pv-color-wrong-shade-3);
}

.c-wrong-shade-4 {
  --pv-color-base: var(--pv-color-wrong-shade-4);
}

.c-wrong-shade-5 {
  --pv-color-base: var(--pv-color-wrong-shade-5);
}

.c-wrong-contrast {
  --pv-color-base: var(--pv-color-wrong-contrast);
}

.c-attention-tint-5 {
  --pv-color-base: var(--pv-color-attention-tint-5);
}

.c-attention-tint-4 {
  --pv-color-base: var(--pv-color-attention-tint-4);
}

.c-attention-tint-3 {
  --pv-color-base: var(--pv-color-attention-tint-3);
}

.c-attention-tint-2 {
  --pv-color-base: var(--pv-color-attention-tint-2);
}

.c-attention-tint-1 {
  --pv-color-base: var(--pv-color-attention-tint-1);
}

.c-attention {
  --pv-color-base: var(--pv-color-attention);
}

.c-attention-shade-1 {
  --pv-color-base: var(--pv-color-attention-shade-1);
}

.c-attention-shade-2 {
  --pv-color-base: var(--pv-color-attention-shade-2);
}

.c-attention-shade-3 {
  --pv-color-base: var(--pv-color-attention-shade-3);
}

.c-attention-shade-4 {
  --pv-color-base: var(--pv-color-attention-shade-4);
}

.c-attention-shade-5 {
  --pv-color-base: var(--pv-color-attention-shade-5);
}

.c-success-tint-5 {
  --pv-color-base: var(--pv-color-success-tint-5);
}

.c-success-tint-4 {
  --pv-color-base: var(--pv-color-success-tint-4);
}

.c-success-tint-3 {
  --pv-color-base: var(--pv-color-success-tint-3);
}

.c-success-tint-2 {
  --pv-color-base: var(--pv-color-success-tint-2);
}

.c-success-tint-1 {
  --pv-color-base: var(--pv-color-success-tint-1);
}

.c-success {
  --pv-color-base: var(--pv-color-success);
}

.c-success-shade-1 {
  --pv-color-base: var(--pv-color-success-shade-1);
}

.c-success-shade-2 {
  --pv-color-base: var(--pv-color-success-shade-2);
}

.c-success-shade-3 {
  --pv-color-base: var(--pv-color-success-shade-3);
}

.c-success-shade-4 {
  --pv-color-base: var(--pv-color-success-shade-4);
}

.c-success-shade-5 {
  --pv-color-base: var(--pv-color-success-shade-5);
}

.c-black {
  --pv-color-base: var(--pv-color-black);
}

.c-gray-10 {
  --pv-color-base: var(--pv-color-gray-10);
}

.c-gray-9 {
  --pv-color-base: var(--pv-color-gray-9);
}

.c-gray-8 {
  --pv-color-base: var(--pv-color-gray-8);
}

.c-gray-7 {
  --pv-color-base: var(--pv-color-gray-7);
}

.c-gray-6 {
  --pv-color-base: var(--pv-color-gray-6);
}

.c-gray-5 {
  --pv-color-base: var(--pv-color-gray-5);
}

.c-gray-4 {
  --pv-color-base: var(--pv-color-gray-4);
}

.c-gray-3 {
  --pv-color-base: var(--pv-color-gray-3);
}

.c-gray-2 {
  --pv-color-base: var(--pv-color-gray-2);
}

.c-gray-1 {
  --pv-color-base: var(--pv-color-gray-1);
}

.c-white {
  --pv-color-base: var(--pv-color-white);
}

.c-extra-1 {
  --pv-color-base: var(--pv-color-extra-1);
}

.c-extra-2 {
  --pv-color-base: var(--pv-color-extra-2);
}

/**
 *
 */
.typography {
  color: var(--pv-color-base);
}

.button {
  display: inline-flex;
  cursor: pointer;
  background: transparent;
  border: none;
  user-select: none;
  white-space: nowrap;
  text-decoration: none;
  outline: none;
  font-family: inherit;
  border-radius: 4px;
  height: calc(var(--pv-size-base) * 6);
  min-width: calc(var(--pv-size-base) * 6);
  padding: 0 calc(var(--pv-size-base) * 2);
  transition: background-color 200ms ease 0s;
  align-items: center;
  justify-content: center;
  gap: calc(var(--pv-size-base) * 2);
  font-size: 0;
}
.button.m_no_padding {
  padding: 0;
}
.button:hover {
  background-color: var(--pv-color-gray-3);
}
.button:focus {
  background-color: var(--pv-color-gray-4);
}
.button:active {
  background-color: var(--pv-color-gray-5);
}

:host {
  display: block;
  width: 100%;
}

.textarea {
  min-height: 300px;
  width: 100%;
  border-radius: 4px;
  border: 1px solid var(--pv-color-gray-5);
  padding: 14px;
  font-family: monospace;
  resize: vertical;
}

.controls {
  margin-top: calc(var(--pv-size-base) * 2);
  display: flex;
  flex-direction: column;
  gap: calc(var(--pv-size-base) * 2);
  margin-bottom: calc(var(--pv-size-base) * 12);
}

.control_row {
  display: flex;
  align-items: center;
  gap: var(--pv-size-base);
}