.theme-preset-item,
.theme-custom-item {
  position: relative;
}

.theme-preset-tile,
.theme-custom-tile {
  position: relative;
  width: var(--theme-preview-size);
  height: var(--theme-preview-size);
}

.theme-preset-button,
.theme-custom-button {
  padding: 0;
  border-radius: var(--theme-radius);
  width: 100%;
  height: 100%;
  line-height: 1.6;
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  z-index: 2;
  transition: height var(--layout-transition-extra-fast), box-shadow var(--layout-transition-extra-fast), border-radius var(--layout-transition-extra-fast);
}

.is-theme-custom-edit .theme-custom-button {
  border-radius: var(--theme-radius) var(--theme-radius) 0 0;
  height: calc(100% - var(--theme-custom-edit-height));
  box-shadow: var(--theme-shadow-bottom-medium);
}

.is-theme-custom-edit .theme-custom-button:hover {
  box-shadow: var(--form-ring-hover);
}

.is-theme-custom-edit .theme-custom-button:focus,
.is-theme-custom-edit .theme-custom-button:active {
  box-shadow: var(--form-ring-accent);
}

.theme-custom-control-wrap {
  background-color: rgb(var(--button-background));
  border-radius: var(--theme-radius);
  width: 100%;
  height: 100%;
  position: absolute;
  bottom: 0;
  overflow: hidden;
  z-index: 1;
  transition: background-color var(--layout-transition-extra-fast), border-radius var(--layout-transition-extra-fast);
}

.theme-custom-control {
  width: 100%;
  position: absolute;
  bottom: calc(-1 * var(--theme-custom-edit-height));
  display: flex;
  align-items: flex-end;
  transition: bottom var(--layout-transition-extra-fast);
}

.is-theme-custom-edit .theme-custom-control {
  bottom: 0;
  transition: bottom var(--layout-duration-04) var(--layout-timing-bounce) var(--layout-duration-01);
}

.theme-custom-control .theme-custom-control-item {
  border-radius: 0;
  padding: 0;
  flex-grow: 1;
}

.theme-custom-control-item .button-icon {
  font-size: 1em;
  position: relative;
  transition: bottom var(--layout-transition-extra-fast), left var(--layout-transition-extra-fast), right var(--layout-transition-extra-fast);
}

.theme-custom-control-item:first-child .button-icon {
  bottom: calc(var(--theme-radius) / 16);
  left: calc(var(--theme-radius) / 8);
}

.theme-custom-control-item:last-child .button-icon {
  bottom: calc(var(--theme-radius) / 16);
  right: calc(var(--theme-radius) / 8);
}

.theme-preset-preview,
.theme-custom-preview {
  border-radius: var(--theme-radius);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  transition: border-radius var(--layout-transition-extra-fast);
}

.is-theme-custom-edit .theme-custom-preview {
  border-radius: var(--theme-radius) var(--theme-radius) 0 0;
}

.theme-preset-background-01,
.theme-preset-background-02,
.theme-preset-background-03,
.theme-preset-background-04,
.theme-preset-accent,
.theme-custom-background-01,
.theme-custom-background-02,
.theme-custom-background-03,
.theme-custom-background-04,
.theme-custom-accent {
  width: var(--theme-preview-size);
  height: var(--theme-preview-size);
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  transition: clip-path var(--layout-transition-extra-fast);
}

.theme-preset-background-01,
.theme-custom-background-01 {
  z-index: 1;
}

.theme-preset-background-01 {
  background-color: rgb(var(--theme-preset-background-01));
}

.theme-custom-background-01 {
  background-color: rgb(var(--theme-custom-background-01));
}

.theme-preset-background-02,
.theme-custom-background-02 {
  z-index: 2;
  clip-path: polygon(70% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 70%);
  transition-delay: var(--layout-duration-03);
}

.theme-preset-background-02 {
  background-color: rgb(var(--theme-preset-background-02));
}

.theme-custom-background-02 {
  background-color: rgb(var(--theme-custom-background-02));
}

.theme-preset-background-03,
.theme-custom-background-03 {
  z-index: 3;
  clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 100%);
  transition-delay: var(--layout-duration-02);
}

.theme-preset-background-03 {
  background-color: rgb(var(--theme-preset-background-03));
}

.theme-custom-background-03 {
  background-color: rgb(var(--theme-custom-background-03));
}

.theme-preset-background-04,
.theme-custom-background-04 {
  z-index: 4;
  clip-path: polygon(100% 30%, 100% 100%, 30% 100%);
  transition-delay: var(--layout-duration-01);
}

.theme-preset-background-04 {
  background-color: rgb(var(--theme-preset-background-04));
}

.theme-custom-background-04 {
  background-color: rgb(var(--theme-custom-background-04));
}

.theme-preset-accent,
.theme-custom-accent {
  z-index: 5;
  clip-path: circle(30% at calc(100% - calc(var(--theme-radius) / 12)) calc(100% - calc(var(--theme-radius) / 12)));
}

.theme-preset-accent {
  background-color: rgb(var(--theme-preset-accent));
}

.theme-custom-accent {
  background-color: rgb(var(--theme-custom-accent));
}

.is-theme-custom-edit .theme-custom-accent {
  clip-path: circle(30% at calc(100% - calc(var(--theme-radius) / 12)) calc(60% - calc(var(--theme-radius) / 12)));
}

.theme-preset-name,
.theme-custom-name {
  color: rgb(var(--theme-style-text));
  font-style: normal;
  font-size: 0.75em;
  text-align: left;
  display: block;
  max-width: calc(100% - 1.5em - calc(var(--theme-radius) / 3));
  max-height: calc(100% - 1.5em - calc(var(--theme-radius) / 3));
  position: absolute;
  top: calc(0.75em + calc(var(--theme-radius) / 6));
  left: calc(0.75em + calc(var(--theme-radius) / 6));
  z-index: 6;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: initial;
  transform: scale(1);
  transition: color var(--layout-transition-extra-fast), transform var(--layout-transition-extra-fast), max-width var(--layout-transition-extra-fast), max-height var(--layout-transition-extra-fast), top var(--layout-transition-extra-fast), left var(--layout-transition-extra-fast);
}

.theme-preset-button:focus .theme-preset-background-02,
.theme-preset-button:hover .theme-preset-background-02,
.theme-custom-button:focus .theme-custom-background-02,
.theme-custom-button:hover .theme-custom-background-02 {
  clip-path: polygon(60% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 60%);
}

.theme-preset-button:focus .theme-preset-background-03,
.theme-preset-button:hover .theme-preset-background-03,
.theme-custom-button:focus .theme-custom-background-03,
.theme-custom-button:hover .theme-custom-background-03 {
  clip-path: polygon(90% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 90%);
}

.theme-preset-button:focus .theme-preset-background-04,
.theme-preset-button:hover .theme-preset-background-04,
.theme-custom-button:focus .theme-custom-background-04,
.theme-custom-button:hover .theme-custom-background-04 {
  clip-path: polygon(100% 20%, 100% 100%, 20% 100%);
}

.theme-preset-button:focus .theme-preset-accent,
.theme-preset-button:hover .theme-preset-accent,
.theme-custom-button:focus .theme-custom-accent,
.theme-custom-button:hover .theme-custom-accent {
  clip-path: circle(40% at calc(100% - calc(var(--theme-radius) / 12)) calc(100% - calc(var(--theme-radius) / 12)));
}

.is-theme-custom-edit .theme-custom-button:focus .theme-custom-accent,
.is-theme-custom-edit .theme-custom-button:hover .theme-custom-accent {
  clip-path: circle(40% at calc(100% - calc(var(--theme-radius) / 12)) calc(60% - calc(var(--theme-radius) / 12)));
}

.theme-color-box {
  width: 100%;
  height: 100%;
}

.theme-color-negative-10 {
  background-color: rgb(var(--theme-color-01));
}

.theme-color-negative-09 {
  background-color: rgb(var(--theme-color-02));
}

.theme-color-negative-08 {
  background-color: rgb(var(--theme-color-03));
}

.theme-color-negative-07 {
  background-color: rgb(var(--theme-color-04));
}

.theme-color-negative-06 {
  background-color: rgb(var(--theme-color-05));
}

.theme-color-negative-05 {
  background-color: rgb(var(--theme-color-06));
}

.theme-color-negative-04 {
  background-color: rgb(var(--theme-color-07));
}

.theme-color-negative-03 {
  background-color: rgb(var(--theme-color-08));
}

.theme-color-negative-02 {
  background-color: rgb(var(--theme-color-09));
}

.theme-color-negative-01 {
  background-color: rgb(var(--theme-color-10));
}

.theme-color {
  background-color: rgb(var(--theme-color));
}

.theme-color-positive-01 {
  background-color: rgb(var(--theme-color-11));
}

.theme-color-positive-02 {
  background-color: rgb(var(--theme-color-12));
}

.theme-color-positive-03 {
  background-color: rgb(var(--theme-color-13));
}

.theme-color-positive-04 {
  background-color: rgb(var(--theme-color-14));
}

.theme-color-positive-05 {
  background-color: rgb(var(--theme-color-15));
}

.theme-color-positive-06 {
  background-color: rgb(var(--theme-color-16));
}

.theme-color-positive-07 {
  background-color: rgb(var(--theme-color-17));
}

.theme-color-positive-08 {
  background-color: rgb(var(--theme-color-18));
}

.theme-color-positive-09 {
  background-color: rgb(var(--theme-color-19));
}

.theme-color-positive-10 {
  background-color: rgb(var(--theme-color-20));
}

.theme-accent-preset {
  display: grid;
  grid-gap: calc(var(--form-wrap-space) / 2);
  grid-template-rows: repeat(7, auto);
  grid-auto-flow: column;
  justify-items: center;
}

.theme-accent-preset-item {
  background-color: hsl(var(--theme-accent-preset-item-color-h), calc(var(--theme-accent-preset-item-color-s) * 1%), calc(var(--theme-accent-preset-item-color-l) * 1%));
  padding: 0;
  width: 1.5em;
  height: 1.5em;
  min-width: initial;
  min-height: initial;
}

.theme-accent-preset-type-grey {
  display: block;
}

.theme-accent-preset-type-primary {
  display: block;
}

.theme-accent-preset-type-secondary {
  display: none;
}

.theme-accent-preset-item:focus,
.theme-accent-preset-item:hover,
.theme-accent-preset-item:active {
  background-color: hsl(var(--theme-accent-preset-item-color-h), calc(var(--theme-accent-preset-item-color-s) * 1%), calc(var(--theme-accent-preset-item-color-l) * 1%));
}

@media (min-width: 550px) {
  .theme-accent-preset-item {
    width: 1.25em;
    height: 1.25em;
  }

  .theme-accent-preset-type-secondary {
    display: block;
  }
}

@media (min-width: 700px) {
  .theme-accent-preset-item {
    width: 1.5em;
    height: 1.5em;
  }

  .theme-accent-preset-type-secondary {
    display: none;
  }
}

@media (min-width: 900px) {
  .theme-accent-preset-item {
    width: 1.25em;
    height: 1.25em;
  }

  .theme-accent-preset-type-secondary {
    display: block;
  }
}

@media (min-width: 1100px) {
  .theme-accent-preset-item {
    width: 1.5em;
    height: 1.5em;
  }

  .theme-accent-preset-type-secondary {
    display: block;
  }
}
