/*-------------------------------------------------------------- */
/*		Reset */
/*  -------------------------------------------------------------- */
.side-menu,
.side-menu * {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
  outline: none;
  text-decoration: none;
  line-height: 1;
}

/*-------------------------------------------------------------- */
/*		Root */
/*  -------------------------------------------------------------- */
.side-menu {
  --sm-z-index: 9999;
  --sm-offset: 0px;
  --sm-color: #ffffff;
  --sm-icon-color: #ffffff;
  --sm-extra-text-color: #ffffff;
  --sm-background: #128be0;
  --sm-hover-background: #128be0;
  --sm-item-height: 40px;
  --sm-icon-width: 40px;
  --sm-icon-size: 24px;
  --sm-label-size: 16px;
  --sm-label-font: inherit;
  --sm-label-font-style: normal;
  --sm-label-font-weight: normal;
  --sm-border-width: 0px;
  --sm-border-color: rgba(0, 0, 0, 0.75);
  --sm-radius-top: 0px;
  --sm-radius-bottom: 0px;
  --sm-button-space: 2px;
  --sm-extra-text-width: 270px;
  --sm-extra-fontsize: 16px;
}

/*-------------------------------------------------------------- */
/*		Main */
/*  -------------------------------------------------------------- */
.side-menu {
  position: fixed;
  z-index: var(--sm-z-index);
}
@media print {
  .side-menu {
    display: none;
  }
}
.side-menu.is-hidden.is-left {
  right: calc((var(--sm-icon-width) + 10px) * -1);
}
.side-menu.is-hidden.is-right {
  left: calc((var(--sm-icon-width) + 10px) * -1);
}
.side-menu .sm-list {
  display: flex;
  flex-direction: column;
  gap: var(--sm-button-space);
}
.side-menu .sm-item {
  position: relative;
  transition: transform 0.4s, opacity 0.4s linear;
}
.side-menu .sm-item:has(> .sm-link:focus) > .sm-link, .side-menu .sm-item:hover > .sm-link {
  background-color: var(--sm-hover-background);
}
.side-menu .sm-link {
  display: flex;
  height: var(--sm-item-height);
  align-items: center;
  color: var(--sm-color);
  background-color: var(--sm-background);
  cursor: pointer;
  transition: background-color 0.2s linear;
}
.side-menu .sm-icon {
  width: var(--sm-icon-width);
  color: var(--sm-icon-color);
  font-size: var(--sm-icon-size);
  text-align: center;
}
.side-menu .sm-icon img {
  width: var(--sm-icon-size);
}
.side-menu .sm-icon.is-hidden {
  display: none;
}
.side-menu .sm-label {
  padding: 0 10px;
  font-size: var(--sm-label-size);
  font-family: var(--sm-label-font);
  font-style: var(--sm-label-font-style);
  font-weight: var(--sm-label-font-weight);
}
.side-menu .sm-input {
  box-sizing: border-box;
  background-color: #fff;
  height: calc(var(--sm-item-height) - 2px);
  padding-right: 5px;
  padding-left: 5px;
}
.side-menu .sm-input::-webkit-search-decoration, .side-menu .sm-input::-webkit-search-cancel-button, .side-menu .sm-input::-webkit-search-results-button, .side-menu .sm-input::-webkit-search-results-decoration {
  display: none;
}

/*-------------------------------------------------------------- */
/*		Appearance */
/*  -------------------------------------------------------------- */
.side-menu.sm-connected .sm-list {
  border-width: var(--sm-border-width) 0 var(--sm-border-width) var(--sm-border-width);
  border-style: solid;
  border-color: var(--sm-border-color);
}
.side-menu.sm-connected.has-shadow .sm-list {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
}
.side-menu:not(.sm-connected) .sm-list .sm-item .sm-link {
  border-width: var(--sm-border-width) 0 var(--sm-border-width) var(--sm-border-width);
  border-style: solid;
  border-color: var(--sm-border-color);
}
.side-menu:not(.sm-connected).has-shadow .sm-list .sm-item .sm-link {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
}

/*-------------------------------------------------------------- */
/*		Position Left */
/*  -------------------------------------------------------------- */
.side-menu.is-left {
  right: 0;
  transform: translateX(100%) translateX(var(--sm-icon-width));
  transition: right 0.4s ease-in-out;
  /* Default */
  /* Connected */
}
.side-menu.is-left.-top {
  top: 0;
  margin-top: var(--sm-offset);
}
.side-menu.is-left.-center {
  top: 50%;
  margin-top: var(--sm-offset);
  transform: translateY(-50%) translateX(100%) translateX(var(--sm-icon-width));
}
.side-menu.is-left.-bottom {
  bottom: 0;
  margin-bottom: var(--sm-offset);
}
.side-menu.is-left:not(.sm-connected) .sm-item {
  align-self: end;
}
.side-menu.is-left:not(.sm-connected) .sm-item .sm-link {
  flex-direction: row-reverse;
  border-top-left-radius: var(--sm-radius-top);
  border-bottom-left-radius: var(--sm-radius-bottom);
}
.side-menu.is-left:not(.sm-connected) .sm-item.sm-open, .side-menu.is-left:not(.sm-connected) .sm-item:has(.sm-link:focus), .side-menu.is-left:not(.sm-connected) .sm-item:hover {
  transform: translateX(-100%) translateX(calc(-1*(var(--sm-icon-width) * -1)));
}
.side-menu.is-left:not(.sm-connected) .sm-item.sm-open .sm-icon.is-hidden, .side-menu.is-left:not(.sm-connected) .sm-item:has(.sm-link:focus) .sm-icon.is-hidden, .side-menu.is-left:not(.sm-connected) .sm-item:hover .sm-icon.is-hidden {
  display: block;
}
.side-menu.is-left:not(.sm-connected) .sm-item.sm-open .sm-icon.is-visible, .side-menu.is-left:not(.sm-connected) .sm-item:has(.sm-link:focus) .sm-icon.is-visible, .side-menu.is-left:not(.sm-connected) .sm-item:hover .sm-icon.is-visible {
  display: none;
}
.side-menu.is-left.sm-connected {
  transition: transform 0.4s linear;
}
.side-menu.is-left.sm-connected > .sm-list {
  border-top-left-radius: var(--sm-radius-top);
  border-bottom-left-radius: var(--sm-radius-bottom);
}
.side-menu.is-left.sm-connected > .sm-list > .sm-item:first-child .sm-link {
  border-top-left-radius: var(--sm-radius-top);
}
.side-menu.is-left.sm-connected > .sm-list > .sm-item:last-child .sm-link {
  border-bottom-left-radius: var(--sm-radius-bottom);
}
.side-menu.is-left.sm-connected > .sm-list > .sm-item > .sm-link {
  flex-direction: row-reverse;
}
.side-menu.is-left.sm-connected.sm-open, .side-menu.is-left.sm-connected:has(.sm-link:focus), .side-menu.is-left.sm-connected:hover {
  transform: translateY(-50%) translateX(0);
}
.side-menu.is-left.sm-connected.sm-open .sm-icon.is-hidden, .side-menu.is-left.sm-connected:has(.sm-link:focus) .sm-icon.is-hidden, .side-menu.is-left.sm-connected:hover .sm-icon.is-hidden {
  display: block;
}
.side-menu.is-left.sm-connected.sm-open .sm-icon.is-visible, .side-menu.is-left.sm-connected:has(.sm-link:focus) .sm-icon.is-visible, .side-menu.is-left.sm-connected:hover .sm-icon.is-visible {
  display: none;
}

/*-------------------------------------------------------------- */
/*		Position Right */
/*  -------------------------------------------------------------- */
.side-menu.is-right {
  left: 0;
  margin-top: var(--sm-offset);
  transform: translateX(-100%) translateX(calc(-1*(var(--sm-icon-width) * -1)));
  transition: left 0.4s ease-in-out;
  /* Default */
  /* Connected */
}
.side-menu.is-right.-top {
  top: 0;
}
.side-menu.is-right.-center {
  top: 50%;
  margin-top: var(--sm-offset);
  transform: translateY(-50%) translateX(-100%) translateX(calc(-1*(var(--sm-icon-width) * -1)));
}
.side-menu.is-right.-bottom {
  bottom: 0;
  margin-bottom: var(--sm-offset);
}
.side-menu.is-right:not(.sm-connected) .sm-item {
  align-self: start;
}
.side-menu.is-right:not(.sm-connected) .sm-item .sm-link {
  border-width: var(--sm-border-width) var(--sm-border-width) var(--sm-border-width) 0;
  border-top-right-radius: var(--sm-radius-top);
  border-bottom-right-radius: var(--sm-radius-bottom);
}
.side-menu.is-right:not(.sm-connected) .sm-item.sm-open, .side-menu.is-right:not(.sm-connected) .sm-item:has(.sm-link:focus), .side-menu.is-right:not(.sm-connected) .sm-item:hover {
  transform: translateX(100%) translateX(calc(-1*(var(--sm-icon-width))));
}
.side-menu.is-right.sm-connected {
  transition: transform 0.4s linear;
}
.side-menu.is-right.sm-connected > .sm-list {
  border-width: var(--sm-border-width) var(--sm-border-width) var(--sm-border-width) 0;
  border-top-right-radius: var(--sm-radius-top);
  border-bottom-right-radius: var(--sm-radius-bottom);
}
.side-menu.is-right.sm-connected > .sm-list > .sm-item:first-child .sm-link {
  border-top-right-radius: var(--sm-radius-top);
}
.side-menu.is-right.sm-connected > .sm-list > .sm-item:last-child .sm-link {
  border-bottom-right-radius: var(--sm-radius-bottom);
}
.side-menu.is-right.sm-connected.sm-open, .side-menu.is-right.sm-connected:has(.sm-link:focus), .side-menu.is-right.sm-connected:hover {
  transform: translateY(-50%) translateX(0);
}

/*-------------------------------------------------------------- */
/*		Extra Text */
/*  -------------------------------------------------------------- */
.sm-item.has-text:focus, .sm-item.has-text:hover {
  z-index: 9;
}

.sm-extra-text * {
  color: var(--sm-color);
}

.sm-extra-text {
  box-sizing: border-box;
  position: absolute;
  top: var(--sm-item-height);
  width: var(--sm-extra-text-width);
  padding: 15px;
  font-size: var(--sm-extra-fontsize);
  background-color: var(--sm-hover-background);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s, visibility 0.4s linear;
}
.sm-extra-text p + p {
  margin-top: 15px;
}
.sm-extra-text ul {
  list-style: disc;
  padding-right: 10px;
  margin: 15px 15px 15px 0;
}
.sm-extra-text ul li {
  list-style: disc;
}
.sm-extra-text a {
  color: inherit;
  text-decoration: underline;
}

.sm-extra-text + .sm-link {
  width: var(--sm-extra-text-width);
}

.sm-item.sm-open,
.sm-item:has(.sm-link:focus),
.sm-item:focus {
  z-index: 11;
}
.sm-item.sm-open .sm-extra-text,
.sm-item:has(.sm-link:focus) .sm-extra-text,
.sm-item:focus .sm-extra-text {
  opacity: 1;
  visibility: visible;
}

/*-------------------------------------------------------------- */
/*		Sub Menu */
/*  -------------------------------------------------------------- */
.side-menu .sm-has-submenu {
  position: relative;
}
.side-menu .sm-has-submenu.sm-open, .side-menu .sm-has-submenu:has(.sm-link:focus), .side-menu .sm-has-submenu:hover {
  z-index: 9;
}
.side-menu .sm-has-submenu.sm-open .sm-sub-menu, .side-menu .sm-has-submenu:has(.sm-link:focus) .sm-sub-menu, .side-menu .sm-has-submenu:hover .sm-sub-menu {
  visibility: visible;
  opacity: 1;
}
.side-menu.has-shadow .sm-has-submenu .sm-sub-link {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
}
.side-menu:not(.sm-connected) .sm-sub-menu {
  padding-top: var(--sm-button-space);
}
.side-menu.sm-connected .sm-sub-menu {
  top: 0;
}
.side-menu .sm-sub-menu {
  display: flex;
  gap: var(--sm-button-space);
  flex-direction: column;
  position: absolute;
  visibility: hidden;
  opacity: 0;
  width: -moz-max-content;
  width: max-content;
  transition: visibility 0.3s, opacity 0.3s linear;
}
.side-menu .sm-sub-menu .sm-item {
  transform: none !important;
}
.side-menu .sm-sub-menu .sm-item:focus, .side-menu .sm-sub-menu .sm-item:hover {
  transform: none !important;
}

/*-------------------------------------------------------------- */
/*		Sub Menu position */
/*  -------------------------------------------------------------- */
.side-menu.is-left .sm-sub-label {
  right: -999999px;
}
.side-menu.is-left .sm-sub-link:focus .sm-sub-label,
.side-menu.is-left .sm-sub-link:hover .sm-sub-label {
  right: var(--sm-icon-width);
}
.side-menu.is-left:not(.sm-connected) .sm-sub-menu {
  left: 0;
}
.side-menu.is-left.sm-connected .sm-sub-menu {
  right: calc(100% + var(--sm-border-width));
  padding-right: var(--sm-button-space);
}

.side-menu.is-right .sm-sub-label {
  left: -999999px;
}
.side-menu.is-right .sm-sub-link:focus .sm-sub-label,
.side-menu.is-right .sm-sub-link:hover .sm-sub-label {
  left: var(--sm-icon-width);
}
.side-menu.is-right:not(.sm-connected) .sm-sub-menu {
  right: 0;
}
.side-menu.is-right.sm-connected .sm-sub-menu {
  left: calc(100% + var(--sm-border-width));
  padding-left: var(--sm-button-space);
}