/* flex */
.flx-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flx-justify-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.flx-align-center {
  display: flex;
  align-items: center;
}

/* clearfix */
.clearfix::after {
  display: block;
  height: 0;
  overflow: hidden;
  clear: both;
  content: '';
}

/* 文字单行省略号 */
.sle {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 文字多行省略号 */
.mle {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* 文字多了自動換行 */
.break-word {
  word-break: break-all;
  word-wrap: break-word;
}

/* fade-transform */
.fade-transform-leave-active,
.fade-transform-enter-active {
  transition: all 0.2s;
}

.fade-transform-enter-from {
  opacity: 0;
  transition: all 0.2s;
  transform: translateX(-30px);
}

.fade-transform-leave-to {
  opacity: 0;
  transition: all 0.2s;
  transform: translateX(30px);
}

/* Breadcrumb */
.breadcrumb-enter-active {
  transition: all 0.2s;
}

.breadcrumb-enter-from,
.breadcrumb-leave-active {
  opacity: 0;
  transform: translateX(10px);
}

/* scroll bar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-thumb {
  background-color: #d3d3d3;
  border-radius: 20px;
  box-shadow: inset 0 0 0 white;
}

.hover {
  cursor: pointer;
}

.hand {
  cursor: pointer;
}

/* vue3-context-menu */
:root {
  --mx-menu-backgroud: #fff;
  --mx-menu-hover-backgroud: #f1f1f1;
  --mx-menu-active-backgroud: #dfdfdf;
  --mx-menu-open-backgroud: #f1f1f1;
  --mx-menu-open-hover-backgroud: #f1f1f1;
  --mx-menu-divider: #f0f0f0;
  --mx-menu-text: #2e2e2e;
  --mx-menu-hover-text: #2e2e2e;
  --mx-menu-active-text: #2e2e2e;
  --mx-menu-open-text: #2e2e2e;
  --mx-menu-open-hover-text: #2e2e2e;
  --mx-menu-disabled-text: #c9c8c8;
  --mx-menu-icon-size: 16px;
  --mx-menu-shadow-color: rgb(0 0 0 / 10%);
  --mx-menu-backgroud-radius: 1px;
  --mx-menu-shortcut-backgroud: #ebebeb;
  --mx-menu-shortcut-backgroud-hover: #ebebeb;
  --mx-menu-shortcut-backgroud-active: #ebebeb;
  --mx-menu-shortcut-backgroud-open: #ebebeb;
  --mx-menu-shortcut-backgroud-disabled: #fdfdfd;
  --mx-menu-shortcut-text: #424242;
  --mx-menu-shortcut-text-hover: #424242;
  --mx-menu-shortcut-text-active: #424242;
  --mx-menu-shortcut-text-open: #424242;
  --mx-menu-shortcut-text-disabled: #a5a5a5;
  --mx-menu-focus-color: #0085f1;
  --mx-menu-placeholder-width: 24px;
}

.mx-context-menu {
  position: absolute;
  display: inline-block;
  padding: 6px 0;
  margin-left: 4px;
  overflow: visible;
  pointer-events: all;
  background-color: var(--mx-menu-backgroud);
  border-radius: var(--mx-menu-backgroud-radius);
  box-shadow: 0 0 6px 1px var(--mx-menu-shadow-color);
  opacity: 1;
  transition: opacity 0.2s ease-in-out;
}

.mx-context-menu-items {
  position: relative;
  overflow: visible;
}

.mx-context-menu-scroll {
  position: absolute;
  inset: 0 0 1px;
  pointer-events: none;
}

.mx-context-menu-updown {
  position: absolute;
  right: 0;
  left: 0;
  height: 15px;
  pointer-events: all;
  cursor: pointer;
  user-select: none;
  background-color: var(--mx-menu-backgroud);
  border-radius: 10px;
}

.mx-context-menu-updown:hover {
  background-color: var(--mx-menu-hover-backgroud);
}

.mx-context-menu-updown:active {
  background-color: var(--mx-menu-active-backgroud);
}

.mx-context-menu-updown.up {
  top: 0;
}

.mx-context-menu-updown.up .mx-right-arrow {
  transform: translateX(-50%) rotate(270deg);
}

.mx-context-menu-updown.down {
  bottom: -1px;
}

.mx-context-menu-updown.down .mx-right-arrow {
  transform: translateX(-50%) rotate(90deg);
}

.mx-context-menu-updown .mx-right-arrow {
  position: absolute;
  top: 0;
  left: 50%;
  display: inline-block;
  height: 12px;
  padding: 0;
}

.mx-context-menu-item {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 4px 15px;
  overflow: visible;
  color: var(--mx-menu-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  user-select: none;
}

.mx-context-menu-item .mx-checked-mark,
.mx-context-menu-item .mx-right-arrow {
  fill: var(--mx-menu-text);
}

.mx-context-menu-item:hover {
  color: var(--mx-menu-hover-text);
  background-color: var(--mx-menu-hover-backgroud);
}

.mx-context-menu-item:hover .mx-checked-mark,
.mx-context-menu-item:hover .mx-right-arrow {
  fill: var(--mx-menu-hover-text);
}

.mx-context-menu-item:hover .mx-shortcut {
  color: var(--mx-menu-shortcut-text-hover);
  background-color: var(--mx-menu-shortcut-backgroud-hover);
}

.mx-context-menu-item:active {
  color: var(--mx-menu-active-text);
  background-color: var(--mx-menu-active-backgroud);
}

.mx-context-menu-item:active .mx-checked-mark,
.mx-context-menu-item:active .mx-right-arrow {
  fill: var(--mx-menu-active-text);
}

.mx-context-menu-item:active .mx-shortcut {
  color: var(--mx-menu-shortcut-text-active);
  background-color: var(--mx-menu-shortcut-backgroud-active);
}

.mx-context-menu-item.open {
  color: var(--mx-menu-open-text);
  background-color: var(--mx-menu-open-backgroud);
}

.mx-context-menu-item.open:hover {
  color: var(--mx-menu-open-hover-text);
  background-color: var(--mx-menu-open-hover-backgroud);
}

.mx-context-menu-item.open .mx-checked-mark,
.mx-context-menu-item.open .mx-right-arrow {
  fill: var(--mx-menu-open-text);
}

.mx-context-menu-item.open .mx-shortcut {
  color: var(--mx-menu-shortcut-text-open);
  background-color: var(--mx-menu-shortcut-backgroud-open);
}

.mx-context-menu-item.keyboard-focus {
  background-color: var(--mx-menu-active-backgroud);
  outline: 2px solid var(--mx-menu-focus-color);
}

.mx-context-menu-item.disabled {
  color: var(--mx-menu-disabled-text);
  cursor: not-allowed;
}

.mx-context-menu-item.disabled:active,
.mx-context-menu-item.disabled:hover {
  background-color: transparent;
}

.mx-context-menu-item.disabled .mx-checked-mark,
.mx-context-menu-item.disabled .mx-right-arrow {
  fill: var(--mx-menu-disabled-text);
}

.mx-context-menu-item.disabled .mx-shortcut {
  color: var(--mx-menu-shortcut-text-second);
  background-color: var(--mx-menu-shortcut-backgroud-disabled);
}

.mx-context-menu-item .mx-item-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  max-width: 100%;
}

.mx-context-menu-item .mx-icon-placeholder {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  height: auto;
  overflow: hidden;
}

.mx-context-menu-item .mx-icon-placeholder.preserve-width {
  width: var(--mx-menu-placeholder-width);
}

.mx-context-menu-item .icon {
  display: inline-block;
  font-size: var(--mx-menu-icon-size);
}

.mx-context-menu-item .icon.svg {
  width: var(--mx-menu-icon-size);
  height: var(--mx-menu-icon-size);
}

.mx-context-menu-item .label {
  padding-right: 16px;
  overflow: hidden;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mx-context-menu-item-wrapper {
  position: relative;
}

.mx-context-menu-item-sperator {
  display: block;
  padding: 4px 0;
  background-color: var(--mx-menu-backgroud);
}

.mx-context-menu-item-sperator::after {
  display: block;
  height: 1px;
  content: '';
  background-color: var(--mx-menu-divider);
}

.mx-right-arrow {
  width: 14px;
  height: 14px;
}

.mx-checked-mark {
  width: var(--mx-menu-icon-size);
  height: var(--mx-menu-icon-size);
}

.mx-shortcut {
  position: relative;
  justify-self: flex-end;
  padding: 2px 4px;
  font-size: 11.5px;
  color: var(--mx-menu-shortcut-text);
  background-color: var(--mx-menu-shortcut-backgroud);
}

.mx-context-menu.dark,
.mx-menu-bar.dark {
  --mx-menu-backgroud: #303031;
  --mx-menu-hover-backgroud: #636363;
  --mx-menu-active-backgroud: #555;
  --mx-menu-open-backgroud: #636363;
  --mx-menu-open-hover-backgroud: #636363;
  --mx-menu-divider: #464646;
  --mx-menu-text: #fff;
  --mx-menu-hover-text: #fff;
  --mx-menu-active-text: #fff;
  --mx-menu-open-text: #fff;
  --mx-menu-open-hover-text: #fff;
  --mx-menu-disabled-text: #9c9c9c;
  --mx-menu-shadow-color: rgb(51 51 51 / 20%);
  --mx-menu-shortcut-backgroud: #505050;
  --mx-menu-shortcut-backgroud-hover: #505050;
  --mx-menu-shortcut-backgroud-active: #505050;
  --mx-menu-shortcut-backgroud-open: #505050;
  --mx-menu-shortcut-backgroud-disabled: #444;
  --mx-menu-shortcut-text: #f1f1f1;
  --mx-menu-shortcut-text-hover: #fff;
  --mx-menu-shortcut-text-active: #fff;
  --mx-menu-shortcut-text-open: #fff;
  --mx-menu-shortcut-text-disabled: #9d9d9d;
}

.mx-context-menu.flat,
.mx-menu-bar.flat {
  padding: 7px 0;
  border-radius: 0;
  box-shadow: 0 1px 2px 1px var(--mx-menu-shadow-color);
}

.mx-context-menu.flat .mx-context-menu-item,
.mx-menu-bar.flat .mx-context-menu-item {
  padding: 3px 12px;
}

.mx-context-menu.win10,
.mx-menu-bar.win10 {
  padding: 8px 0;
  border: 1px solid var(--mx-menu-border-color);
  border-radius: 0;
  box-shadow: 2px 2px 1px 0 var(--mx-menu-shadow-color);

  --mx-menu-backgroud: #eee;
  --mx-menu-hover-backgroud: #d8d8d8;
  --mx-menu-active-backgroud: #dfdfdf;
  --mx-menu-open-backgroud: #f1f1f1;
  --mx-menu-open-hover-backgroud: #d8d8d8;
  --mx-menu-divider: #aaa;
  --mx-menu-border-color: #b1b1b1;
  --mx-menu-shortcut-backgroud: transparent;
  --mx-menu-shortcut-backgroud-hover: transparent;
  --mx-menu-shortcut-backgroud-active: transparent;
  --mx-menu-shortcut-backgroud-open: transparent;
  --mx-menu-shortcut-backgroud-disabled: transparent;
  --mx-menu-shortcut-text: #272727;
  --mx-menu-shortcut-text-hover: #272727;
  --mx-menu-shortcut-text-active: #272727;
  --mx-menu-shortcut-text-open: #272727;
  --mx-menu-shortcut-text-disabled: #6b6b6b;
}

.mx-context-menu.win10 .mx-context-menu-item,
.mx-menu-bar.win10 .mx-context-menu-item {
  padding: 2px 4px;
  margin: 0 4px;
}

.mx-context-menu.win10 .mx-context-menu-item-sperator,
.mx-menu-bar.win10 .mx-context-menu-item-sperator {
  margin: 0 4px;
}

.mx-context-menu.win10.dark,
.mx-menu-bar.win10.dark {
  --mx-menu-backgroud: #303031;
  --mx-menu-hover-backgroud: #636363;
  --mx-menu-active-backgroud: #555;
  --mx-menu-open-backgroud: #636363;
  --mx-menu-open-hover-backgroud: #636363;
  --mx-menu-divider: grey;
  --mx-menu-border-color: #656565;
  --mx-menu-shortcut-backgroud: #505050;
  --mx-menu-shortcut-backgroud-hover: #505050;
  --mx-menu-shortcut-backgroud-active: #505050;
  --mx-menu-shortcut-backgroud-open: #505050;
  --mx-menu-shortcut-backgroud-disabled: #444;
  --mx-menu-shortcut-text: #f1f1f1;
  --mx-menu-shortcut-text-hover: #fff;
  --mx-menu-shortcut-text-active: #fff;
  --mx-menu-shortcut-text-open: #fff;
  --mx-menu-shortcut-text-disabled: #9d9d9d;

  padding: 8px 0;
}

.mx-context-menu.win10.dark .mx-context-menu-item,
.mx-menu-bar.win10.dark .mx-context-menu-item {
  padding: 6px 12px;
  margin: 0;
}

.mx-context-menu.win10.dark .mx-context-menu-item-sperator,
.mx-menu-bar.win10.dark .mx-context-menu-item-sperator {
  margin: 0 7px;
}

.mx-context-menu.mac,
.mx-menu-bar.mac {
  padding: 8px 0;
  border: 1px solid var(--mx-menu-border-color);
  box-shadow: 0 5px 7px 1px var(--mx-menu-shadow-color);

  --mx-menu-backgroud: #ececec;
  --mx-menu-hover-backgroud: #0165e1;
  --mx-menu-active-backgroud: #0165e1;
  --mx-menu-open-backgroud: #858585;
  --mx-menu-open-hover-backgroud: #0165e1;
  --mx-menu-divider: #d2d2d2;
  --mx-menu-text: #232323;
  --mx-menu-hover-text: #fff;
  --mx-menu-active-text: #fff;
  --mx-menu-open-text: #fff;
  --mx-menu-open-hover-text: #fff;
  --mx-menu-disabled-text: #bbb;
  --mx-menu-shadow-color: rgb(0 0 0 / 10%);
  --mx-menu-backgroud-radius: 1px;
  --mx-menu-shortcut-backgroud: transparent;
  --mx-menu-shortcut-backgroud-hover: transparent;
  --mx-menu-shortcut-backgroud-active: transparent;
  --mx-menu-shortcut-backgroud-open: transparent;
  --mx-menu-shortcut-backgroud-disabled: transparent;
  --mx-menu-shortcut-text: #424242;
  --mx-menu-shortcut-text-hover: #fff;
  --mx-menu-shortcut-text-active: #fff;
  --mx-menu-shortcut-text-open: #fff;
  --mx-menu-shortcut-text-disabled: #a5a5a5;
  --mx-menu-focus-color: transparent;
  --mx-menu-border-color: #bbb;
}

.mx-context-menu.mac.dark,
.mx-menu-bar.mac.dark {
  --mx-menu-backgroud: #333;
  --mx-menu-hover-backgroud: #0153d2;
  --mx-menu-active-backgroud: #0153d2;
  --mx-menu-open-hover-backgroud: #0153d2;
  --mx-menu-open-backgroud: #414346;
  --mx-menu-divider: #575757;
  --mx-menu-text: #dcdcdc;
  --mx-menu-hover-text: #fff;
  --mx-menu-active-text: #fff;
  --mx-menu-open-text: #fff;
  --mx-menu-open-hover-text: #fff;
  --mx-menu-disabled-text: #6a6a6a;
  --mx-menu-shadow-color: rgb(0 0 0 / 10%);
  --mx-menu-backgroud-radius: 1px;
  --mx-menu-shortcut-backgroud: transparent;
  --mx-menu-shortcut-backgroud-hover: transparent;
  --mx-menu-shortcut-backgroud-active: transparent;
  --mx-menu-shortcut-backgroud-open: transparent;
  --mx-menu-shortcut-backgroud-disabled: transparent;
  --mx-menu-shortcut-text: #dadada;
  --mx-menu-shortcut-text-hover: #fff;
  --mx-menu-shortcut-text-active: #fff;
  --mx-menu-shortcut-text-open: #fff;
  --mx-menu-shortcut-text-disabled: #6a6a6a;
  --mx-menu-focus-color: transparent;
  --mx-menu-border-color: #222;
}

.mx-context-menu.mac .mx-context-menu-item,
.mx-menu-bar.mac .mx-context-menu-item {
  padding: 3px 6px;
  margin: 0 6px;
  border-radius: 5px;
}

.mx-context-menu.mac .mx-context-menu-item.keyboard-focus,
.mx-menu-bar.mac .mx-context-menu-item.keyboard-focus {
  color: var(--mx-menu-active-text);
  background-color: var(--mx-menu-active-backgroud);
  outline: none;
}

.mx-context-menu.mac .mx-context-menu-item.keyboard-focus .mx-checked-mark,
.mx-context-menu.mac .mx-context-menu-item.keyboard-focus .mx-right-arrow,
.mx-menu-bar.mac .mx-context-menu-item.keyboard-focus .mx-checked-mark,
.mx-menu-bar.mac .mx-context-menu-item.keyboard-focus .mx-right-arrow {
  fill: var(--mx-menu-active-text);
}

.mx-context-menu.mac .mx-context-menu-item.keyboard-focus .mx-shortcut,
.mx-menu-bar.mac .mx-context-menu-item.keyboard-focus .mx-shortcut {
  color: var(--mx-menu-shortcut-text-active);
  background-color: var(--mx-menu-shortcut-backgroud-active);
}

.mx-context-menu.mac .mx-context-menu-item-sperator,
.mx-menu-bar.mac .mx-context-menu-item-sperator {
  margin: 0 12px;
}

.mx-menu-ghost-host {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.mx-menu-ghost-host.fullscreen {
  position: fixed;
}

.mx-menu-bar {
  display: flex;
  flex: 1;
  flex-direction: row;
  align-items: center;
  padding: 5px 0;
  background-color: var(--mx-menu-backgroud);
}

.mx-menu-bar.mini {
  flex-grow: 0;
}

.mx-menu-bar .mx-menu-bar-content {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.mx-menu-bar .mx-menu-bar-item {
  padding: 2px 8px;
  color: var(--mx-menu-text);
  user-select: none;
  background-color: var(--mx-menu-backgroud);
  border-radius: 5px;
}

.mx-menu-bar .mx-menu-bar-item:hover {
  color: var(--mx-menu-hover-text);
  background-color: var(--mx-menu-hover-backgroud);
}

.mx-menu-bar .mx-menu-bar-item:hover .mx-menu-bar-icon-menu {
  fill: var(--mx-menu-hover-text);
}

.mx-menu-bar .mx-menu-bar-item.active,
.mx-menu-bar .mx-menu-bar-item:active {
  color: var(--mx-menu-active-text);
  background-color: var(--mx-menu-active-backgroud);
}

.mx-menu-bar .mx-menu-bar-item.active .mx-menu-bar-icon-menu,
.mx-menu-bar .mx-menu-bar-item:active .mx-menu-bar-icon-menu {
  fill: var(--mx-menu-active-text);
}

.mx-menu-bar .mx-menu-bar-icon-menu {
  width: var(--mx-menu-icon-size);
  height: var(--mx-menu-icon-size);
  fill: var(--mx-menu-text);
}

.mx-menu-bar.flat .mx-menu-bar-item {
  border-radius: 0;
}
