* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  width: 100%;
  overflow: hidden;
  font-family: monospace;
  display: flex;
  flex-direction: column;
}

body {
    display: flex;
    flex-direction: column;
}

.main-container {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.icon {
  font-size: 16px;
}

.left-sidebar {
  width: 80px;
  background: #fef4f9;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.left-sidebar button {
  width: 100%;
  margin: 5px 0;
  padding: 5px;
  border: 1px solid gray;
  background: #ffffff;
  cursor: pointer;
  font-size: 11px;
  box-shadow: 0 6px 12px rgb(66, 0, 38);
}

.left-sidebar button:hover {
  width: 100%;
  margin: 5px 0;
  padding: 5px;
  border: 1px solid gray;
  background: #ffb9e7;
  cursor: pointer;
}

.right-sidebar {
  width: 250px;
  background: transparent;
  padding: 20px;
  display: none;
}

.content {
    flex: 1;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

textarea,
pre {
  width: 100%;
  max-width: 100%;
  height: 100%;
  resize: none;
  font-family: monospace;
  font-size: medium;
  overflow: auto;
  border: rgb(176, 0, 100) solid 1px;
  padding: 5px;
  outline: none;
  margin: 0;
  box-sizing: border-box;
}

pre {
  background: #dcdbdc;
  padding: 10px;
  border-radius: 0px;
  overflow: auto;
}

.error {
  color: red;
}

.bottom-ad-space {
  width: 100%;
  height: 150px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 1024px) {
  .right-sidebar {
    display: block;
  }
}

/* fill with 100% space and 100% height: 100%; */
#div-input,
#div-validate,
#div-debug,
#div-format {
  display: flex;
  flex-direction: column;
  flex: 1;
  height: 100%;
  width: 100%;
  border-radius: 0;
}

.row {
  display: flex;
  flex-direction: row;
  flex: 1;
  height: 100%;
  width: 100%;
}

.tree-view {
  display: none !important;
  width: 100%;
  max-width: 100%;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  border: 1px solid #d1d1d1;
  padding-left: 10px;
  padding-top: 0;
  padding-bottom: 20px;
  font-family: monospace;
  font-size: 14px;
  flex-direction: column;
}

.tree-view.show {
  display: flex !important;
  flex-direction: column;
}

.table-view {
  overflow-y: auto;
}

.left-sidebar button.active {
  background: #4CAF50;
  color: white;
}

.col-80 {
  flex: 0 0 80%;
  min-height: 0;
}

.col-100 {
  flex: 0 0 100%;
  min-height: 0;
}

.col-20 {
  flex: 0 0 20%;
  min-height: 0;
}

.col-40 {
  flex: 0 0 40%;
  min-height: 0;
}

.col-50 {
  flex: 0 0 50%;
  min-height: 0;
}

.col-60 {
  flex: 0 0 60%;
  min-height: 0;
}

#treeTableContainer {
  display: none;
  margin-top: -2px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

#treeTableContainer.show {
  display: flex;
}

.table-view {
  overflow-y: auto;
}

.col-90 {
  flex: 0 0 90%;
  height: 100%;
  width: 100%;
}

.col-10 {
  flex: 0 0 10%;
  height: 100%;
  width: 100%;
}

#resizer {
  flex: 0 0 0.2%;
  width: 1px;
  height: 100%;
  background: linear-gradient(to bottom,
      transparent,
      rgb(176, 0, 100),
      transparent);
  cursor: col-resize;
}

.headline {
  padding-left: 10px;
  padding-top: 5px;
  padding-bottom: 5px;
  color: #181717;
}

.overlay-input {
  position: relative;
  top: -50%;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #aaa;
  pointer-events: none;
  font-size: 1.2em;
}

.logo {
  margin-top: -10px;
  padding-top: 15px;
  margin-bottom: 15x;
  width: 80px;
  height: 60px;
  text-align: center;
  color: #f4f4f4;
  font-size: 19px;
  background-color: rgb(255, 0, 195);
  cursor: default;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transform: translateY(-5px);
  transition: transform 0.2s ease;
}

.logo:hover {
  transform: translateY(-8px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
}

.output-row {
  flex: 0 0 auto;
  width: 100%;
  background-color: red;
  color: white;
  white-space: pre-wrap;
  word-wrap: break-word;
  font-family: monospace;
  font-size: 12px;
  display: none;
  padding: 5px;
  height: 0;
  overflow: hidden;
  padding: 5px;
}

.output-row.show {
  display: block;
  height: auto;
}

.copyable-input {
  width: 100%;
  padding: 5px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #f9f9f9;
  font-family: monospace;
  font-size: 14px;
  color: #333;
}

.copyable-input {
  outline: none;
  border-color: #7c7c7c;
  background-color: #fff;
  /* remove corner radius */
  border-radius: 0;
  border-top: 0;
  border-left: 0;
  border-right: 0;
}

#keyColumn {
  border-right: 0;
  border-bottom: 1px solid #d1d1d1;
  border-top: 1px solid #d1d1d1;
}

#valueColumn {
  border-top: 1px solid #d1d1d1;
  border-left: 1px solid #d1d1d1;
  border-bottom: 1px solid #d1d1d1;
  border-right: 1px solid #d1d1d1;
}

.hidden {
  display: none;
}

.table-header {
  background-color: #f1f1f1;
  font-weight: bold;
  text-align: left;
  padding: 5px;
  width: 100%;
  border-bottom: 1px solid #d1d1d1;
}