:root {  
  --app-fg-color: var(--pp-lapel);
  --app-fg-hover-color: var(--pp-black);

  --app-bg-color: var(--pp-white);
  --app-bg-hover-color: var(--pp-dove);

  --app-bd-color: var(--pp-dove);
  --app-bd-hover-color: var(--pp-black);

  --app-sec-fg-color: var(--pp-charcoal);

  --app-sec-bg-color: var(--pp-gallery);
  --app-sec-bg-hover-color: var(--pp-alto);

  --app-bg-selected-color: var(--pp-b-medium);
  --app-bd-selected-color: var(--pp-b-dark);

  --app-box-shadow: 0 0 24px 8px rgba(0,0,0, 0.05);

  --app-bd-radius: 8px;

  --editor-tool-panel-w: 0px;
  --editor-header-h: 0px;
}

.container-wrapper {
  height: calc( 100vh - var(--editor-header-h) );
  width: calc( 100vw - var(--editor-tool-panel-w) );
}

.editor {
  display: flex;
}

.previw-mobile,
.previw-tablet {
  .container-wrapper {
    background-color: #ddd;
  }

  .container {
    border-radius: calc( var(--app-bd-radius) * 3);
    box-shadow: var(--app-box-shadow);
  }
}

.previw-mobile {
  .container-wrapper{
    display: grid;
    padding: 0 calc(50vw - (var(--editor-tool-panel-w) + 390px) / 2);

    .container {
      height: 800px;
    }
  }

}

.previw-tablet {

  .container {
    transform: scale(0.96);
    height: calc(100dvh - var(--editor-header-h));
    width: calc((768 / 1024) * (100dvh - var(--editor-header-h)));
  }

}

.tool-hide {
  --editor-tool-panel-w: 300px;
  --editor-header-h: 56px;

  .editor-container {
    height: 100dvh;
    overflow: hidden;
  }

  .settings {
    padding: 8px;
    overflow: initial;
    opacity: 1;
    z-index: var(--z-level-10000);
  }

}

.settings {
  background: var(--app-sec-bg-color);
  opacity: 0;
  height: calc(100dvh - var(--editor-header-h));
  padding: 0;
  transition: background-color .3s ease-in;
  width: var(--editor-tool-panel-w);
  overflow: hidden;
  z-index: -1;
}

.popup-content {
  border-radius: var(--app-bd-radius);
  height: 100%;
  overflow: hidden;
	padding: 8px;
  z-index: calc( var(--z-level-10000) + 3 );
}

.setting-title {
  color: var(--app-fg-color);
  font-family: var(--app-font);
  font-size: 24px;
}

.setting-content-wrapper {
  height: 100%;
  min-height: 320px;
  overflow: auto;
  padding: 0 8px 24px;
}

.setting-content {
  display: flex;
  flex-direction: column;
  font-family: var(--app-font);
  font-size: 12px;
  gap: 8px;
  padding: 16px 0;
}

.list-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;

  li {
    align-items: center;
    display: flex;
    justify-content: center;
  }
}

.setting-label {
  color: var(--app-fg-color);
  font-size: 12px;
  font-weight: 700;
  text-align: left;
}

.setting-button {
  display: grid;
  place-content: center;

  border: 1px solid var(--app-bd-color);
  border-radius: var(--app-bd-radius);
  background-color: var(--app-bg-color);
  cursor: pointer;
  padding: 8px;
  text-align: center;
	text-decoration: none;
	transition: all 0.2s ease-out;
  min-width: 32px;

  &.shape {
    border-radius: 0;
    background-color: var(--app-bg-color);

    &.square {
      height: 60px;
      width: 60px;
    }

    &.portrait {
      height: 60px;
      width: 40px;
    }

    &.tall {
      height: 60px;
      width: 34px;
    }

    &.landscape {
      height: 48px;
      width: 64px;
    }
  }

  &.color {
    background-color: var(--color-1);
    color: var(--color-2);

    &:hover {
      background-color: var(--color-3);
    }

    &.selected {
      background-color: var(--color-1);
      outline: var(--app-bd-selected-color) 2px solid;
    }

  }

  &:hover {
    background-color: var(--app-sec-bg-hover-color);
    cursor: pointer;
  }

  &.selected {
    background-color: var(--app-bg-selected-color);
    /* outline: var(--app-bd-selected-color) 2px solid; */
  }
}

.guide-toggle {
  bottom: 0;
  position: fixed;
  left: 0;
  z-index: 100;
  
  &.guide-on{
    font-weight: bold;
  }
  &.guide-off{
    font-weight: normal;
  }
}

.action-tool-top {
  height: var(--editor-header-h);
  opacity: 0;
  background-color: var(--app-bg-color);
  box-shadow: var(--app-box-shadow);
  transition: opacity .3s ease-in;
  width: 100%;;
  z-index: -1;
}

.tool-hide {
  .action-tool-top {
    box-shadow: 0 1px 12px 6px rgba(51,51,51,0.1);
    opacity: 1;
    padding: 8px;
    position: relative;
    z-index: calc(var(--z-level-10000) + 5);
  }
}

.action-tool-top-menus {
  align-items: center;
  display: flex;
  flex-direction: row-reverse;
  gap: 12px;
  height: 100%;
  padding: 4px;
}

.top-select-wrapper {
  background-color: var(--app-bg-color);
  border-radius: var(--app-bd-radius);
  display: flex;
  justify-content: flex-end;
  padding: 8px 4px;

  &:hover {
    background-color: var(--app-sec-bg-hover-color);
    cursor: pointer;
  }
}

.top-menu-label {
  color: var(--app-sec-fg-color);
  font-size: 14px;
  font-weight: 500;
  padding-left: 12px;
  border-left: 1px solid var(--app-bd-color);
}

.top-select {
  border: none;
  outline: none;
  color: var(--app-fg-color);
  background-color: transparent;

  &:hover {
    cursor: pointer;
  }
}

.sidebar,
.modal {
  color: var(--app-fg-color);

  .cancel {
    display: grid;
    place-content: center;

    border-radius: var(--app-bd-radius);
    font-family: var(--app-font);
    font-size: 40px;
    font-weight: 100;
    position: absolute;
    right: 8px;
    top: 8px;
    height: 32px;
    width: 32px;

    &:hover {
      background-color: var(--app-bg-hover-color);
      cursor: pointer;
    }
  }

}

.sidebar {
  border-radius: var(--app-bd-radius);
  font-family: var(--app-font);
  
  background-color: rgba(255, 255, 255, .8);
  backdrop-filter: blur(1);
  box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2);
  max-height: calc(100dvh - 128px);
  overflow-y: auto;
  position: fixed;
  right: 16px;
  top: 72px;
  transition: all .4s;
  z-index: var(--z-level-10000);
  
  &.hidden {
    display: none;
  }

  &:hover {
    background-color: var(--app-sec-bg-color);
  }

  .content-container {
    padding: 16px;
  }

}

.content-container:is(.spacing-control-content) {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 40px 8px 16px;
  width: 160px;

  * {
    color: var(--app-fg-color);
  }

  .content-title {
    font-size: 16px;
  }

 .size-controls {
  align-items: flex-start;
  background-color: var(--app-bg-color);
  border-radius: var(--app-bd-radius);
  color: var(--app-fg-color);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  width: 100%;
 }

 .size-name {
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
 }

 .slider-group {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
 }

 .input-container {
  display: flex;
  flex-wrap: wrap;
 }

 .input-label {
  color: var(--app-sec-fg-color);
  font-size: 14px;
  font-weight: 500;
 }

 .input-range {
  width: 100%;
 }

 .input-number,
 .select-unit {
  border: 1px solid var(--app-bd-color);
  color: var(--app-fg-color);
  font-size: 14px;
  padding: 4px;
 }

 .input-number {
  width: 64px;
 }

 .show-css-btn {
  background-color: var(--app-bg-color);
  border: 1px solid var(--app-bd-color);
  border-radius: var(--app-bd-radius);
  color: var(--app-fg-color);
  margin: 8px 0 0;
  padding: 8px 4px;
  transition: all .3s ease-in-out;

  &:hover {
    background-color: var(--app-bg-hover-color);
    border-color: var(--app-bd-hover-color);
    color: var(--app-fg-hover-color);
    cursor: pointer;
  }
 }

}

.modal {
  border-radius: var(--app-bd-radius);
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: white;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.6);
  z-index: 10000;
  width: 300px;
  padding: 20px;

  &.hidden {
    display: none;
  }

}

.overlay {
  background: rgba(0,0,0,0.5);
  inset: 0;
	opacity: 0;
	position: fixed;
	transition: opacity 200ms;
  visibility: hidden;
  width: 0;
  z-index: calc( var(--z-level-10000) + 2 ) ;

	&.light {
    background: none;
  }

  .cancel {
    height: 100%;
    inset: 0;
    position: absolute;
    width: 100%;
  }

  &:target {
    visibility: visible;
    opacity: 1;
    width: 100%;
  }
  
}
