@font-face {
  font-family: "Graal Tempus Bold";
  font-style: normal;
  font-weight: 400;
  src: url("../public/assets/fonts/graal-tempus-bold.ttf?revision=f79dadc2")
    format("truetype");
}

:root {
  color-scheme: light;
  font-family: "MS Sans Serif", Tahoma, sans-serif;
  font-size: 13px;
  --button-face: #d4d0c8;
  --button-highlight: #ffffff;
  --button-light: #e3e3e3;
  --button-shadow: #808080;
  --button-dark-shadow: #404040;
  --scrollbar-face: #d4d0c8;
  --scrollbar-light: #e3e3e3;
  --scrollbar-shadow: #808080;
  --scrollbar-dark-shadow: #404040;
  --active-caption: #0a246a;
  --active-caption-end: #a6caf0;
  --active-caption-text: #ffffff;
  --classic-control-height: 24px;
  --classic-table-row-height: 20px;
  --classic-table-header-height: 22px;
  --classic-table-cell-inset: 6px;
  --classic-table-button-size: 16px;
  --classic-table-end-padding: 3px;
  --classic-table-grid-color: #c0c0c0;
  --inactive-caption: #808080;
  --inactive-caption-end: #c0c0c0;
  --inactive-caption-text: #d4d0c8;
  --text-highlight: #316ac5;
  --text-highlight-text: #ffffff;
  --toolbar-group-gap: 15px;
  --workbench-rail-size: 5px;
  --workbench-tab-strip-size: 28px;
  --tool-icon-fill: #7f787f;
  --tool-icon-ink: #000000;
  --window: #ffffff;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  overscroll-behavior: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

body {
  color: #000;
  background: var(--button-face);
  user-select: none;
  -webkit-user-select: none;
}

button,
input,
output,
select,
textarea {
  font: inherit;
}

button {
  color: #000;
}

input[type="text"],
input[type="search"],
input[type="number"],
textarea {
  user-select: text;
  -webkit-user-select: text;
}

img {
  -webkit-user-drag: none;
}

::selection {
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.editor {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 222px;
  grid-template-rows: 33px var(--workbench-tab-strip-size) minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  background: var(--button-face);
}

.toolbar {
  position: relative;
  display: flex;
  align-items: center;
  grid-column: 1 / 3;
  grid-row: 1;
  min-width: 0;
  padding: 2px 27px 2px 1px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  background: var(--button-face);
}

.toolbar-gripper {
  position: relative;
  flex: 0 0 7px;
  align-self: stretch;
  width: 7px;
  margin-right: 4px;
  pointer-events: none;
}

.toolbar-gripper::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 2px;
  width: 3px;
  border-right: 1px solid var(--button-shadow);
  border-left: 1px solid var(--button-highlight);
  background: var(--button-face);
  content: "";
}

.toolbar-button-group,
.toolbar-actions {
  display: flex;
  flex: 0 0 auto;
}

.toolbar-button-group {
  gap: 2px;
}

.toolbar-file-group,
.toolbar-history-group,
.toolbar-clipboard-group,
.toolbar-level-group,
.toolbar-view-group {
  margin-left: var(--toolbar-group-gap);
}

.toolbar-actions {
  align-self: flex-start;
  gap: var(--toolbar-group-gap);
  margin-left: auto;
}

.toolbar-actions .speed-button {
  margin-top: 1px;
}

.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="left"] {
  grid-template-columns: var(--tool-palette-width, 55px) minmax(0, 1fr) 222px;
}

.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="right"] {
  grid-template-columns: minmax(0, 1fr) var(--tool-palette-width, 55px) 222px;
}

.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="left"] > .toolbar,
.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="right"] > .toolbar {
  grid-column: 1 / 4;
}

.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="left"] > .document-tabs,
.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="left"] > .board-region {
  grid-column: 2;
}

.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="left"] > .side-panel,
.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="right"] > .side-panel {
  grid-column: 3;
}

.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="right"] > .document-tabs,
.editor:not([data-toolbox-visible="false"]):not(.source-mode):not(.map-mode)[data-tool-palette-dock="right"] > .board-region {
  grid-column: 1;
}

.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="top"],
.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="bottom"] {
  grid-template-rows: 33px 33px var(--workbench-tab-strip-size) minmax(0, 1fr);
}

.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="top"] > .toolbar {
  grid-row: 2;
}

.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="bottom"] > .toolbar {
  grid-row: 1;
}

.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="top"] > .document-tabs,
.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="bottom"] > .document-tabs {
  grid-row: 3;
}

.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="top"] > .board-region,
.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="bottom"] > .board-region {
  grid-row: 4;
}

.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="top"] > .side-panel,
.editor:not([data-toolbox-visible="false"])[data-tool-palette-dock="bottom"] > .side-panel {
  grid-row: 3 / 5;
}

.speed-button {
  display: grid;
  flex: 0 0 auto;
  width: 25px;
  height: 25px;
  padding: 0;
  place-items: center;
  border: 1px solid transparent;
  background: transparent;
}

.toolbar-split-button {
  display: flex;
  flex: 0 0 40px;
  width: 40px;
  height: 25px;
  border: 1px solid transparent;
  background: transparent;
}

.toolbar-split-button:has(> :where(button:hover:not(:disabled))),
.toolbar-split-button:has(> button:focus-visible:not(:disabled)),
.toolbar-split-button[data-open] {
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
}

.toolbar-split-button > button {
  display: grid;
  height: 23px;
  padding: 0;
  place-items: center;
  border: 0;
  background: transparent;
}

.split-button-primary {
  flex: 0 0 24px;
  width: 24px;
}

.split-button-menu-button {
  position: relative;
  flex: 0 0 14px;
  width: 14px;
  border-left: 1px solid transparent !important;
}

.toolbar-split-button:has(> :where(button:hover:not(:disabled))) > .split-button-menu-button,
.toolbar-split-button:has(> button:focus-visible:not(:disabled)) > .split-button-menu-button,
.toolbar-split-button:has(> .split-button-primary[data-primary-press]) > .split-button-menu-button,
.toolbar-split-button[data-open] > .split-button-menu-button {
  border-left-color: var(--button-shadow) !important;
  box-shadow: inset 1px 0 var(--button-highlight);
}

.toolbar-split-button > .split-button-menu-button[data-primary-press],
.toolbar-split-button[data-open]:not(:has(> .split-button-primary[data-primary-press])) > .split-button-menu-button {
  flex-basis: 15px;
  width: 15px;
  height: 25px;
  margin-top: -1px;
  margin-right: -1px;
  margin-bottom: -1px;
  border: 1px solid !important;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow) !important;
  box-shadow: none;
  background: var(--button-face);
}

.split-button-menu-button > span {
  display: block;
  width: 0;
  height: 0;
  margin-top: 1px;
  border-top: 4px solid var(--button-dark-shadow);
  border-right: 3px solid transparent;
  border-left: 3px solid transparent;
}

.toolbar-split-button > button:focus-visible {
  outline: 1px dotted var(--button-dark-shadow);
  outline-offset: -3px;
}

.toolbar-split-button:has(> .split-button-primary[data-primary-press]) > button > *,
.split-button-menu-button[data-primary-press] > *,
.toolbar-split-button[data-open] > .split-button-menu-button > * {
  transform: translate(1px, 1px);
}

.toolbar-split-button button:disabled > * {
  filter: grayscale(1) opacity(0.55) drop-shadow(1px 1px var(--button-highlight));
}

.speed-button[hidden] {
  display: none;
}

.speed-button:hover:not(:disabled),
.speed-button:focus-visible {
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  outline: 0;
}

.toolbar-split-button:has(> .split-button-primary[data-primary-press]),
.speed-button:active:where([data-primary-press]):not(:disabled) {
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.speed-button[aria-pressed="true"] {
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  background: var(--button-light);
}

.speed-button:active:where([data-primary-press]):not(:disabled) img {
  transform: translate(1px, 1px);
}

.toolbar button img {
  pointer-events: none;
  user-select: none;
}

.speed-button img {
  display: block;
  width: auto;
  height: auto;
  image-rendering: pixelated;
}

.speed-button img.redo-icon {
  transform: scaleX(-1);
}

.speed-button:active:where([data-primary-press]):not(:disabled) img.redo-icon {
  transform: translate(1px, 1px) scaleX(-1);
}

.speed-button:disabled img,
.play-button:disabled img,
.classic-push-button:disabled img,
.workbench-tool:disabled::before {
  filter: grayscale(1) opacity(0.55) drop-shadow(1px 1px var(--button-highlight));
}

#close-file:disabled img {
  filter: none;
  opacity: 1;
}

.play-button {
  position: relative;
  top: 0;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 88px;
  height: 27px;
  padding: 2px 10px;
  border: 2px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  background: var(--button-face);
}

.play-button::before {
  position: absolute;
  inset: 0;
  border: 1px solid;
  border-color: var(--button-light) var(--button-shadow) var(--button-shadow) var(--button-light);
  content: "";
  pointer-events: none;
}

.play-button:active:where([data-primary-press]):not(:disabled) {
  padding: 3px 9px 1px 11px;
  border-color: var(--button-dark-shadow) var(--button-highlight) var(--button-highlight) var(--button-dark-shadow);
}

.play-button img {
  width: auto;
  height: auto;
  image-rendering: pixelated;
}

.play-button:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.document-tabs {
  grid-column: 1;
  grid-row: 2;
  position: relative;
  padding: 0;
  border: 0;
  background: var(--button-face);
  overflow: hidden;
}

.document-tab-track {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;
  padding-left: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}

.document-tabs.has-overflow .document-tab-track {
  right: 18px;
  left: 18px;
  padding-left: 0;
}

.document-tab-track::-webkit-scrollbar {
  display: none;
}

.document-tabs::before,
.level-view-footer::after {
  box-sizing: border-box;
}

.document-tabs::before {
  position: absolute;
  inset: 23px 0 0;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  box-shadow:
    inset 1px 1px var(--button-light),
    inset -1px -1px var(--button-shadow);
  content: "";
}

.document-tab {
  position: relative;
  z-index: 1;
  /* Tabs divide the strip evenly, and max-content stops any of them taking
     more than its own name needs: with room to spare each one is as wide as
     its name, and crowded they are all cut to the same width rather than
     keeping the ratios their names happened to have. A name shorter than that
     share is left at its own width instead of padding out to fill it. The
     icon, close button, padding and border cannot compress, so they stop the
     shrink and the track overflows from there onto its scroll buttons. */
  display: flex;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  max-width: max-content;
  height: 25px;
  margin: 0;
  /* Even top and bottom padding. A button centres its label in the content box
     but the icon centres in the padding box, so uneven padding parts the two:
     the label lands (top - bottom) / 2 above the icon. */
  padding: 2px 4px 2px 8px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-face) var(--button-highlight);
  border-radius: 4px 4px 0 0;
  box-shadow:
    inset 1px 1px var(--button-light),
    inset -1px 0 var(--button-shadow);
  background: var(--button-face);
  cursor: default;
  overflow: hidden;
  touch-action: none;
  white-space: nowrap;
}

.document-tab-label {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000;
  cursor: default;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
  white-space: nowrap;
}

/* A background tab gives its whole width to the name until the close button is
   actually needed. The button overlays the end on hover, as browser tabs do,
   instead of reserving an empty gutter in every inactive tab. */
.document-tab-close {
  position: absolute;
  right: 4px;
  visibility: hidden;
  width: 15px;
  height: 15px;
  margin: 0;
  padding: 0 0 1px;
  border: 0;
  border-radius: 0;
  background: var(--button-face);
  color: #000;
  font: 700 15px/14px Arial, sans-serif;
  cursor: default;
}

.document-tab[data-selected="true"] .document-tab-close,
.document-tab[data-compact="false"]:hover .document-tab-close,
.document-tab:focus-within .document-tab-close {
  visibility: visible;
}

/* The active tab always owns room for its persistent close button. Keyboard
   focus gets the same guarantee; an inactive pointer hover deliberately does
   not resize the label and simply replaces its trailing text with the X. */
.document-tab[data-selected="true"] .document-tab-label,
.document-tab:focus-within .document-tab-label {
  padding-right: 20px;
}

.document-tab-close:hover {
  box-shadow:
    inset 1px 1px var(--button-highlight),
    inset -1px -1px var(--button-dark-shadow);
}

.document-tab-close:active:where([data-primary-press]) {
  padding-top: 1px;
  padding-bottom: 0;
  box-shadow:
    inset 1px 1px var(--button-dark-shadow),
    inset -1px -1px var(--button-highlight);
}

.document-tab-close:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -2px;
}

/* The file icon says at a glance whether a tab holds a map or a level. It is a
   background inside the tab's left padding, so it never enters the text and
   cannot disturb the ellipsis. */
.document-tab[data-kind] {
  padding-left: 28px;
  background-repeat: no-repeat;
  background-position: 6px center;
}

/* The selected tab is inset two pixels either side, so its padding carries the
   same two pixels to keep the icon in place. Two attributes outweigh the
   selected rule's own padding-left. */
.document-tab[data-kind][data-selected="true"] {
  padding-left: 30px;
  background-position: 8px center;
}

.document-tab[data-kind="map"] {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAALHRFWHRDcmVhdGlvbiBUaW1lAFN1biAxOSBPY3QgMjAwMyAwODozNzozOSAtMDYwMOIQaFQAAAAHdElNRQfTChMNLTa3KnjUAAAACXBIWXMAAArwAAAK8AFCrDSYAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFzWXdAKcAALcAYWFhAL8AAAAAgEAAkEgAsFgAoFAAz2AA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAclECZwAAAAF0Uk5TAEDm2GYAAABlSURBVHjaXc5RDsAgCANQUERk97/vWlwWN5LG9n0psq93+dy4rvHbH6l9yLNfGZlZO8ezI4KUsQWwFilWSUeZk7QOcBJC6XaCEcymO8gnKqE1c1QErUAbKqMEEbxNVSv7q/oexg17NgSNv0F+owAAAABJRU5ErkJggg==");
}

.document-tab[data-kind="level"] {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH1AUCFRwfVgCCUQAAAN9JREFUeJyVk8sRwyAMRHc9qcblkBKcm9tJbk4L7oCUYcrZHGwJG0jiMMOM0OcJCUFBICicXIK4P1/coN8MkiCoPeTScmpm3hJIApkh3Zng0iblsruPEeUNYshlbDCC+giYxlpWDFneSnJA6/qWdQjBdSabf1c6f7vJXuf+ggBA0wgB61YMflYMMrti8G32qgeWcbjr8HTDvT0nDrg9aqN3u+jPc57dP/egnMTXtXm24GVZVrj9BQOQxDQeO19mloSUEvq+r0d5G1UAcwWw4P2qAEdIrQeAlJLr+O93LtcbGaKKi17KrfQAAAAASUVORK5CYII=");
}

.document-tab[data-pinned="true"] {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAABFNRROAAAADFBMVEX////AwMAAAAD////2Tv+rAAAABHRSTlP///8AQCqp9AAAAAlwSFlzAAALEwAACxMBAJqcGAAAButpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDEwLjAtYzAwMCA3OS5kMjBlNDY2MzAsIDIwMjUvMTIvMDktMDI6MTE6MjMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNy45IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjYtMDgtMTdUMDM6NTA6MjUrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI2LTA4LTE4VDE5OjAzOjI2KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI2LTA4LTE4VDE5OjAzOjI2KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphZWM1NTE4OC1mOGYyLWE0NGQtYTQ5NC0wNGRjMjY5YzZhMGEiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmZGMzYmVmZC1jZGYyLTI1NGMtOGU0YS0wNjBjNzliZGMxNTMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2ZmZkNjUwYi0zYjNmLTJmNDEtYWNhYy05ZDgxYzI4NmY5M2QiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjZmZmQ2NTBiLTNiM2YtMmY0MS1hY2FjLTlkODFjMjg2ZjkzZCIgc3RFdnQ6d2hlbj0iMjAyNi0wOC0xN1QwMzo1MDoyNSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI3LjkgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gaW1hZ2UvYm1wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWUzYzI1ZTktMjI5Yy0zZjQ3LWI1NzgtNDZlZjc1MjY5Y2IwIiBzdEV2dDp3aGVuPSIyMDI2LTA4LTE4VDEzOjQyOjU5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmFlYzU1MTg4LWY4ZjItYTQ0ZC1hNDk0LTA0ZGMyNjljNmEwYSIgc3RFdnQ6d2hlbj0iMjAyNi0wOC0xOFQxOTowMzoyNiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI3LjkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiRuvIQAAAA6SURBVAgdBcEBAQAACMOgefp3FmIDkNUAWt0AWrcGyHY1IOxqG4Jd1Qjs6kZg1w2B3W0I2BgBYAKAPYtgAZXM4EGQAAAAAElFTkSuQmCC");
}

.document-tab[data-selected="true"] {
  z-index: 7;
  margin-right: -2px;
  margin-left: -2px;
  padding-right: 6px;
  padding-left: 10px;
}

.document-tab:first-child[data-selected="true"] {
  margin-left: 0;
  padding-left: 8px;
}

.document-tab:first-child[data-kind][data-selected="true"] {
  padding-left: 28px;
  background-position: 6px center;
}

.document-tab[data-selected="false"] {
  height: 21px;
  margin-top: 2px;
}

/* The hovered tab's level is a separate Win9x-style raised popup. Keeping a
   complete border between it and the strip preserves the selected tab as the
   one and only tab that visually joins the document area. */
#tab-preview {
  position: fixed;
  z-index: 10;
  width: max-content;
  padding: 3px 3px 4px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  box-shadow:
    inset 1px 1px var(--button-light),
    inset -1px -1px var(--button-shadow);
  background: var(--button-face);
  pointer-events: none;
}

#tab-preview.is-moving {
  transition: left 120ms ease-out;
}

#tab-preview[hidden] {
  display: none;
}

/* Opaque popups over the retained WebGL surface need their own compositing
   layer, just like open dialogs and context menus. Otherwise hover/movement
   repaints can leave ghost blocks elsewhere on the oversized board. Restrict
   promotion to visible UI; scene canvases with difference blending must stay
   in the board's existing blend group. */
#tab-preview:not([hidden]),
.classic-select-popup:not([hidden]),
.object-list-popup:not([hidden]),
.tool-palette[data-dock="floating"]:not([hidden]),
.eyedropper-preview:not([hidden]) {
  will-change: filter;
}

/* No frame of its own. The board's viewport has none either -- what bounds a
   level there is the checkered backdrop the renderer draws around it, and the
   preview is now standing back far enough to show the same thing. */
#tab-preview-canvas {
  display: block;
  margin: 0 auto;
}

/* display: block above would otherwise outrank the hidden attribute. */
#tab-preview-canvas[hidden] {
  display: none;
}

/* The strip cuts a tab's label down to fit, so the preview carries the name in
   full. It wraps rather than widening the panel past the level it describes,
   and a Graal name is one long word that has to be broken to wrap at all. */
#tab-preview-name,
#tab-preview-map {
  margin-top: 4px;
  line-height: 14px;
  overflow-wrap: anywhere;
  text-align: center;
}

/* The map a level belongs to, under the level's own name. Italic tells the two
   apart without brackets around one of them. */
#tab-preview-map {
  margin-top: 1px;
  font-style: italic;
}

#tab-preview-map[hidden] {
  display: none;
}

.document-tab.is-dragging {
  z-index: 4;
  cursor: grabbing;
  filter: drop-shadow(2px 2px 1px rgb(0 0 0 / 35%));
  will-change: transform;
}

.document-tab-track.is-reordering {
  cursor: grabbing;
}

.classic-scrollbar.document-tab-scroll {
  position: absolute;
  z-index: 2;
  inset: 0;
  height: auto;
  background: transparent;
  pointer-events: none;
}

.classic-scrollbar.document-tab-scroll[hidden] {
  display: none;
}

.classic-scrollbar.horizontal.document-tab-scroll button {
  position: absolute;
  top: 2px;
  width: 18px;
  height: 21px;
  flex-basis: 18px;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-face) var(--button-highlight);
  border-radius: 4px 4px 0 0;
  box-shadow:
    inset 1px 1px var(--button-light),
    inset -1px 0 var(--button-shadow);
  pointer-events: auto;
}

#tab-scroll-left {
  left: 0;
}

#tab-scroll-right {
  right: 0;
}

.document-tab-scroll #tab-scroll-left::after {
  top: 7px;
  left: 5px;
}

.document-tab-scroll #tab-scroll-right::after {
  top: 7px;
  left: 5px;
}

.document-tab-scroll button.is-pressed::after {
  transform: translate(1px, 1px);
}

.classic-context-menu {
  position: fixed;
  z-index: 20;
  width: max-content;
  padding: 2px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  box-shadow:
    inset 1px 1px var(--button-light),
    inset -1px -1px var(--button-shadow);
  background: var(--button-face);
}

.classic-context-menu[hidden] {
  display: none;
}

/* Like dialogs, menu hover repaints must be isolated from the oversized WebGL
   surface beneath them, otherwise Chromium can leave stale strips elsewhere
   in the viewport. Keep submenu overflow visible and promote only open menus. */
.classic-context-menu:not([hidden]) {
  will-change: filter;
}

.classic-context-menu button {
  display: block;
  width: 100%;
  height: 21px;
  padding: 2px 8px 2px 22px;
  overflow: hidden;
  border: 0;
  background: transparent;
  text-align: left;
  white-space: nowrap;
}

/* Labels need breathing room; submenu arrows keep the smaller edge inset. */
.classic-context-menu button[aria-haspopup="menu"] {
  padding-right: 4px;
}

.classic-context-menu button[hidden] {
  display: none;
}

.classic-context-menu button:hover:not(:disabled),
.classic-context-menu button:focus-visible,
.classic-context-menu button[aria-haspopup="menu"][aria-expanded="true"]:not(:disabled) {
  outline: 0;
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.classic-context-menu button:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.classic-context-menu-separator {
  height: 2px;
  margin: 3px 2px;
  border-top: 1px solid var(--button-shadow);
  border-bottom: 1px solid var(--button-highlight);
}

.toolbar-context-menu [role="menuitemcheckbox"] {
  position: relative;
}

.toolbar-context-menu [role="menuitemcheckbox"][aria-checked="true"]::before {
  position: absolute;
  top: 3px;
  left: 9px;
  width: 5px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  content: "";
}

.classic-context-submenu {
  position: relative;
}

.classic-context-submenu > button > span {
  float: right;
  margin-left: 12px;
  font-size: 9px;
  line-height: 16px;
}

.classic-context-submenu-panel {
  position: absolute;
  top: -3px;
  left: calc(100% - 1px);
}

.classic-context-submenu-panel.opens-left {
  right: calc(100% - 1px);
  left: auto;
}

.board-region {
  display: grid;
  grid-column: 1;
  grid-row: 3;
  grid-template-columns: var(--workbench-rail-size) minmax(0, 1fr) 18px var(--workbench-rail-size);
  grid-template-rows: minmax(0, 1fr) 18px var(--workbench-tab-strip-size);
  min-width: 0;
  min-height: 0;
}

.board-left-rail,
.board-right-rail {
  position: relative;
  z-index: 6;
  grid-row: 1 / 3;
  border-right: 1px solid var(--button-dark-shadow);
  border-left: 1px solid var(--button-highlight);
  box-shadow:
    inset 1px 0 var(--button-light),
    inset -1px 0 var(--button-shadow);
  background: var(--button-face);
  pointer-events: none;
}

.board-left-rail {
  grid-column: 1;
}

.board-right-rail {
  grid-column: 4;
}

.board-left-rail::before,
.board-left-rail::after,
.board-right-rail::before,
.board-right-rail::after {
  position: absolute;
  z-index: 1;
  left: -1px;
  width: var(--workbench-rail-size);
  height: var(--workbench-rail-size);
  content: "";
  pointer-events: none;
}

.board-left-rail::before,
.board-right-rail::before {
  top: calc(0px - var(--workbench-rail-size));
}

.board-left-rail::after,
.board-right-rail::after {
  bottom: calc(0px - var(--workbench-rail-size));
}

.board-left-rail::before {
  background:
    linear-gradient(to right, var(--button-highlight) 0 100%) 0 0 / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 100%) 0 1px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 100%) 0 2px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 100%) 0 3px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 4px / 100% 1px no-repeat;
}

.board-right-rail::before {
  background:
    linear-gradient(to right, var(--button-highlight) 0 4px, var(--button-dark-shadow) 4px 5px) 0 0 / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-light) 0 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 1px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-face) 0 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 2px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-shadow) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 3px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 4px / 100% 1px no-repeat;
}

.board-left-rail::after {
  background:
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 0 / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-light) 4px 5px) 0 1px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 100%) 0 2px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-shadow) 2px 100%) 0 3px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-dark-shadow) 1px 100%) 0 4px / 100% 1px no-repeat;
}

.board-right-rail::after {
  background:
    linear-gradient(to right, var(--button-highlight) 0 1px, var(--button-light) 1px 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 0 / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-light) 0 2px, var(--button-face) 2px 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 1px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-face) 0 3px, var(--button-shadow) 3px 4px, var(--button-dark-shadow) 4px 5px) 0 2px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-shadow) 0 4px, var(--button-dark-shadow) 4px 5px) 0 3px / 100% 1px no-repeat,
    linear-gradient(to right, var(--button-dark-shadow) 0 100%) 0 4px / 100% 1px no-repeat;
}

.board-viewport {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  isolation: isolate;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  contain: strict;
  background: #000;
}

.board-scene {
  position: absolute;
  top: 0;
  left: 0;
  contain: strict;
  will-change: transform;
}

/* The initial level is already painted with its real tile before WebGL starts.
   The canvas replaces these pixels only after its first complete frame. */
.editor[data-startup="loading"] .board-viewport {
  background: repeating-conic-gradient(#222 0% 25%, #1e1e1e 0% 50%)
    var(--initial-left, 0px) var(--initial-top, 0px) /
    calc(var(--initial-tile-size, 16px) * 2) calc(var(--initial-tile-size, 16px) * 2);
}

.editor[data-startup="loading"] .board-viewport::before {
  content: "";
  position: absolute;
  top: var(--initial-top, 0px);
  left: var(--initial-left, 0px);
  width: var(--initial-size, 1024px);
  height: var(--initial-size, 1024px);
  background-image: var(--initial-level);
  background-size: var(--initial-tile-size, 16px) var(--initial-tile-size, 16px);
  image-rendering: pixelated;
  pointer-events: none;
}

.editor[data-startup="loading"] .board-scene {
  visibility: hidden;
}

.editor[data-startup="loading"] #tileset {
  background: var(--initial-palette) top left / 200px 512px no-repeat;
}

.editor[data-startup="loading"] #object-preview {
  background: var(--initial-object) top center / 32px 32px no-repeat;
}

.editor[data-startup="loading"] #selected-tile-preview {
  background: var(--initial-level) center / 16px 16px no-repeat;
}

.editor[data-startup="loading"] *,
.editor[data-startup="loading"] *::before,
.editor[data-startup="loading"] *::after {
  transition: none !important;
  animation: none !important;
}

.level-source-view {
  grid-column: 2 / 4;
  grid-row: 1 / 3;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: var(--window);
}

.level-source-view[hidden] {
  display: none;
}

.map-grid-view {
  display: grid;
  grid-column: 2 / 4;
  grid-row: 1 / 3;
  grid-template-rows: 31px minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--window);
}

.map-grid-view[hidden] {
  display: none;
}

.map-grid-toolbar {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(80px, 1fr) auto auto;
  align-items: center;
  gap: 5px;
  padding: 4px 6px;
  background: var(--button-face);
}

#map-load-state {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-grid-preparing .map-grid-overview {
  visibility: hidden;
}

.map-grid-toolbar::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  border-top: 1px solid var(--button-shadow);
  border-bottom: 1px solid var(--button-highlight);
  box-sizing: border-box;
  content: "";
  pointer-events: none;
}

.map-grid-toolbar input {
  box-sizing: border-box;
  min-width: 0;
  height: 21px;
  padding: 2px 4px;
  border: 1px solid;
  border-color: var(--button-dark-shadow) var(--button-highlight) var(--button-highlight) var(--button-dark-shadow);
  border-radius: 0;
  box-shadow: inset 1px 1px var(--button-shadow);
  background: #fff;
  color: #000;
  font: inherit;
}

.map-grid-toolbar output {
  min-width: 32px;
  text-align: right;
}

.map-grid-frame {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: minmax(0, 1fr) 18px;
  min-width: 0;
  min-height: 0;
}

.map-grid-frame::before,
.map-grid-frame::after {
  position: absolute;
  z-index: 1;
  box-sizing: border-box;
  background: var(--button-face);
  content: "";
  pointer-events: none;
}

/* Continue the spreadsheet header rails through unused viewport space without
   inventing additional map cells or labels. */
.map-grid-frame::before {
  top: 0;
  right: 18px;
  left: 0;
  height: 22px;
  border-bottom: 1px solid var(--button-shadow);
  box-shadow: inset 1px 1px var(--button-highlight);
}

.map-grid-frame::after {
  top: 0;
  bottom: 18px;
  left: 0;
  width: 22px;
  border-right: 1px solid var(--button-shadow);
  box-shadow: inset 1px 1px var(--button-highlight);
}

.map-grid-scroll {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background-color: #1e1e1e;
  background-image: conic-gradient(
    #1e1e1e 25%,
    #222 0 50%,
    #1e1e1e 0 75%,
    #222 0
  );
  background-size: 32px 32px;
}

.map-grid-frame > .classic-scrollbar.vertical {
  grid-column: 2;
  grid-row: 1;
}

.map-grid-frame > .classic-scrollbar.horizontal {
  grid-column: 1;
  grid-row: 2;
}

.map-grid {
  --map-column-count: 1;
  --map-cell-size: 56px;
  position: relative;
  z-index: 2;
  isolation: isolate;
  display: grid;
  grid-template-columns: 22px repeat(var(--map-column-count), var(--map-cell-size));
  grid-template-rows: 22px;
  grid-auto-rows: var(--map-cell-size);
  width: max-content;
  min-width: 100%;
  outline: 0;
}

.map-grid-header,
.map-grid-cell {
  box-sizing: border-box;
  min-width: 0;
  margin: 0;
  border: 0;
  border-right: 1px solid var(--button-shadow);
  border-bottom: 1px solid var(--button-shadow);
  border-radius: 0;
  font: inherit;
}

.map-grid-header {
  position: sticky;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--button-face);
  box-shadow: inset 1px 1px var(--button-highlight);
  color: #000;
  font-weight: bold;
  user-select: none;
}

.map-grid-overview {
  position: absolute;
  z-index: 0;
  top: 22px;
  left: 22px;
  display: block;
  pointer-events: none;
  image-rendering: auto;
}

.map-grid-selection {
  position: absolute;
  z-index: 3;
  top: 20px;
  left: 20px;
  display: block;
  pointer-events: none;
  mix-blend-mode: difference;
}

.map-grid-columnheader,
.map-grid-corner {
  top: 0;
}

.map-grid-columnheader {
  font-size: min(1em, calc(var(--map-cell-size) * 0.65));
  overflow: hidden;
}

.map-grid-rowheader,
.map-grid-corner {
  left: 0;
}

.map-grid-corner {
  z-index: 5;
}

.map-grid-rowheader.selected,
.map-grid-columnheader.selected {
  background: var(--button-shadow);
  box-shadow:
    inset 1px 1px var(--button-dark-shadow),
    inset -1px -1px var(--button-highlight);
  color: var(--button-highlight);
}

.map-grid-cell {
  position: relative;
  z-index: 1;
  overflow: visible;
  padding: 0;
  background: transparent;
  color: #000;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  outline: 0;
}

.map-grid-cell-empty,
.map-grid-cell-missing,
.map-grid-cell-invalid {
  background-color: #1e1e1e;
  background-image: conic-gradient(
    #1e1e1e 25%,
    #222 0 50%,
    #1e1e1e 0 75%,
    #222 0
  );
  background-position:
    var(--map-cell-background-x)
    var(--map-cell-background-y);
  background-size: 32px 32px;
}

.map-grid-cell.selected {
  z-index: 2;
  background-color: transparent;
}

.map-grid-cell-ground {
  background: transparent;
}

.map-grid-cell:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -4px;
}

.level-source-frame {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 0;
  background: var(--window);
}

.code-editor-host {
  position: absolute;
  inset: 0 18px 18px 0;
  overflow: hidden;
  border: 0;
  background: var(--window);
}

.code-editor-host > .cm-editor {
  width: 100%;
  height: 100%;
}

.code-editor-host .cm-scroller {
  scrollbar-width: none;
}

.code-editor-host .cm-scroller::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.board-region.source-mode > :not(.level-source-view):not(.level-view-footer):not(.board-left-rail):not(.board-right-rail) {
  display: none;
}

.board-region.map-mode > :not(.map-grid-view):not(.level-view-footer):not(.board-left-rail):not(.board-right-rail) {
  display: none;
}

.level-view-footer {
  position: relative;
  z-index: auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  grid-column: 1 / 5;
  grid-row: 3;
  width: auto;
  height: var(--workbench-tab-strip-size);
  padding: 0 calc(18px + var(--workbench-rail-size)) 0 0;
  background: var(--button-face);
}

.level-view-footer::after {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  box-shadow:
    inset 1px 1px var(--button-light),
    inset -1px -1px var(--button-shadow);
  content: "";
  pointer-events: none;
}

.level-view-tabs {
  position: relative;
  z-index: auto;
  display: flex;
  align-items: flex-start;
}

.level-view-tab {
  position: relative;
  z-index: 1;
  /* Wide enough for the widest label rather than a fixed 55px, or "Map Source"
     wraps and its second line is cut off by the tab's height. */
  flex: 0 0 auto;
  min-width: 55px;
  height: 21px;
  white-space: nowrap;
  margin: 5px 0 0;
  padding: 0 7px 1px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  border-radius: 0 0 4px 4px;
  box-shadow:
    inset 1px 0 var(--button-light),
    inset -1px -1px var(--button-shadow);
  background: var(--button-face);
  line-height: 17px;
  outline: 0;
}

.level-view-tab + .level-view-tab {
  margin-left: -1px;
}

.level-view-tab[aria-selected="true"] {
  z-index: 7;
  height: 25px;
  margin-top: 3px;
  padding-bottom: 0;
  border-top-color: var(--button-face);
}

.level-view-tab:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -4px;
}

.level-view-tab:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.zoom-controls {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  height: 25px;
  margin-top: 3px;
}

.zoom-step,
.zoom-readout {
  position: relative;
  height: 25px;
  margin: 0;
  padding: 0 0 1px;
  border: 1px solid;
  border-color: var(--button-face) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  border-radius: 0 0 4px 4px;
  box-shadow:
    inset 1px 0 var(--button-light),
    inset -1px -1px var(--button-shadow);
  background: var(--button-face);
  color: #000;
  font: inherit;
  line-height: 20px;
}

.zoom-step {
  width: 23px;
  font-size: 14px;
  font-weight: bold;
}

.zoom-readout {
  width: 48px;
  font-size: 11px;
  white-space: nowrap;
}

.zoom-controls > * + * {
  margin-left: -1px;
}

.zoom-step:active:where([data-primary-press]):not(:disabled),
.zoom-readout:active:where([data-primary-press]):not(:disabled) {
  padding: 1px 0 0 1px;
  border-color: var(--button-dark-shadow) var(--button-highlight) var(--button-highlight) var(--button-dark-shadow);
  box-shadow: inset 1px 1px var(--button-shadow);
}

.zoom-readout:focus-visible,
.zoom-step:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -4px;
}

.zoom-step:disabled,
.zoom-readout:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.board-region > .classic-scrollbar.horizontal {
  z-index: 5;
  grid-column: 2;
  height: 18px;
}

.board-region > .classic-scrollbar.vertical {
  grid-column: 3;
}

.board-region > .scrollbar-corner {
  z-index: 5;
  grid-column: 3;
  height: 18px;
}

.editor.source-mode {
  overflow: hidden;
}

.editor.source-mode .board-region {
  grid-column: 1 / 3;
}

.editor.source-mode .document-tabs {
  grid-column: 1 / 3;
}

.editor.source-mode .tool-palette:not([data-dock="top"]):not([data-dock="bottom"]),
.editor.source-mode .side-panel {
  pointer-events: none;
  opacity: 0;
  transform: translateX(100%);
}

.editor.map-mode .tool-palette:not([data-dock="top"]):not([data-dock="bottom"]),
.editor.map-mode .side-panel {
  pointer-events: none;
  opacity: 0;
  transform: translateX(100%);
}

.editor.map-mode {
  overflow: hidden;
}

.editor.map-mode .board-region,
.editor.map-mode .document-tabs {
  grid-column: 1 / 4;
}

#board {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  cursor: default;
  touch-action: none;
}

#npc-layer,
#light-layer,
#level-object-overlay-layer,
#npc-selection-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  image-rendering: pixelated;
}

.board-scene > canvas[hidden] {
  display: none;
}

.eyedropper-preview {
  position: absolute;
  z-index: 12;
  box-sizing: content-box;
  width: 48px;
  height: 48px;
  border: 2px solid #fff;
  outline: 1px solid #000;
  background: #000;
  box-shadow: 2px 2px 0 rgb(0 0 0 / 55%);
  pointer-events: none;
  image-rendering: pixelated;
}

.eyedropper-preview[hidden] {
  display: none;
}

.tool-action-feedback {
  position: absolute;
  inset: 0;
  z-index: 13;
  width: 100%;
  height: 100%;
  pointer-events: none;
  image-rendering: pixelated;
}

.tool-action-feedback[hidden] {
  display: none;
}

.tool-action-feedback-border {
  z-index: 14;
  mix-blend-mode: difference;
}

.speed-button .editor-toolbar-icon {
  width: 16px;
  height: 16px;
}

.renderer-notice {
  position: absolute;
  z-index: 20;
  inset: 24px;
  box-sizing: border-box;
  max-width: 520px;
  height: max-content;
  margin: auto;
  padding: 16px 18px;
  border: 2px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  background: var(--button-face);
  color: #000;
  box-shadow: 2px 2px 0 #000;
}

.renderer-notice strong {
  font-size: 14px;
}

.renderer-notice p {
  margin: 10px 0;
}

.renderer-notice ul {
  margin: 0;
  padding-left: 22px;
}

#light-layer {
  image-rendering: auto;
}

#npc-selection-layer {
  mix-blend-mode: difference;
}

#pointer-brush-preview-layer,
#pointer-brush-outline-layer {
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  pointer-events: none;
  image-rendering: pixelated;
  will-change: transform;
}

#pointer-brush-outline-layer {
  z-index: 11;
  mix-blend-mode: difference;
}

#pointer-brush-preview-layer[hidden],
#pointer-brush-outline-layer[hidden] {
  display: none;
}

.board-autoscroll-marker {
  position: fixed;
  z-index: 200;
  width: 28px;
  height: 28px;
  pointer-events: none;
  transform: translate(-50%, -50%);
  filter: drop-shadow(1px 1px 1px rgb(0 0 0 / 0.55));
}

.board-autoscroll-marker[hidden] {
  display: none;
}

.board-autoscroll-marker svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.board-autoscroll-marker circle:first-child {
  fill: rgb(238 238 238 / 0.92);
  stroke: #222;
  stroke-width: 1;
}

.board-autoscroll-marker path,
.board-autoscroll-marker-dot {
  fill: #111;
}

.screenshot-capture-effect {
  position: absolute;
  z-index: 10;
  box-sizing: border-box;
  pointer-events: none;
  image-rendering: pixelated;
  border: 2px solid rgb(255 255 255 / 0.92);
  border-radius: 5px;
  background: #000;
  box-shadow:
    0 2px 5px rgb(0 0 0 / 0.48),
    0 0 0 1px rgb(0 0 0 / 0.35);
  transform-origin: center;
}

.screenshot-capture-flash {
  position: absolute;
  z-index: 9;
  inset: 0;
  pointer-events: none;
  background: #fff;
  opacity: 0;
}

#board[data-cursor="move"] {
  cursor: move;
}

#board[data-cursor="entity"] {
  cursor: all-scroll;
}

#board[data-cursor="entity-add"] {
  cursor: copy;
}

.autoscroll-cursor-overlay {
  position: fixed;
  z-index: 199;
  inset: 0;
}

.autoscroll-cursor-overlay[hidden] { display: none; }
.autoscroll-cursor-overlay[data-autoscroll-direction="idle"] { cursor: all-scroll; }
.autoscroll-cursor-overlay[data-autoscroll-direction="n"] { cursor: n-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="ne"] { cursor: ne-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="e"] { cursor: e-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="se"] { cursor: se-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="s"] { cursor: s-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="sw"] { cursor: sw-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="w"] { cursor: w-resize; }
.autoscroll-cursor-overlay[data-autoscroll-direction="nw"] { cursor: nw-resize; }

.classic-scrollbar {
  display: flex;
  background: var(--button-face);
}

.classic-scrollbar.vertical {
  grid-column: 2;
  grid-row: 1;
  flex-direction: column;
}

.classic-scrollbar.horizontal {
  grid-column: 1;
  grid-row: 2;
}

.classic-scrollbar button {
  position: relative;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid;
  border-color: var(--button-highlight) var(--scrollbar-dark-shadow) var(--scrollbar-dark-shadow) var(--button-highlight);
  box-shadow:
    inset 1px 1px var(--scrollbar-light),
    inset -1px -1px var(--scrollbar-shadow);
  background: var(--scrollbar-face);
  color: transparent;
  line-height: 16px;
  outline: 0;
}

.classic-scrollbar.horizontal button {
  flex-basis: 18px;
  width: 18px;
  height: 18px;
}

.classic-scrollbar button:active:where([data-primary-press]):not(:disabled) {
  border-color: var(--scrollbar-dark-shadow) var(--button-highlight) var(--button-highlight) var(--scrollbar-dark-shadow);
  box-shadow: inset 1px 1px var(--scrollbar-shadow);
}

.classic-scrollbar button:active:where([data-primary-press]):not(:disabled)::after {
  transform: translate(1px, 1px);
}

.classic-scrollbar button::after {
  position: absolute;
  width: 0;
  height: 0;
  content: "";
}

.classic-scrollbar button:disabled::after {
  filter: drop-shadow(1px 1px 0 var(--button-highlight));
}

#board-scroll-up::after,
#palette-scroll-up::after,
#object-list-scroll-up::after,
.classic-scroll-up::after {
  top: 5px;
  left: 5px;
  border-right: 3px solid transparent;
  border-bottom: 5px solid #000;
  border-left: 3px solid transparent;
}

#board-scroll-up:disabled::after,
#palette-scroll-up:disabled::after,
#object-list-scroll-up:disabled::after,
.classic-scroll-up:disabled::after {
  border-bottom-color: var(--button-shadow);
}

#board-scroll-down::after,
#palette-scroll-down::after,
#object-list-scroll-down::after,
.classic-scroll-down::after {
  top: 6px;
  left: 5px;
  border-top: 5px solid #000;
  border-right: 3px solid transparent;
  border-left: 3px solid transparent;
}

#board-scroll-down:disabled::after,
#palette-scroll-down:disabled::after,
#object-list-scroll-down:disabled::after,
.classic-scroll-down:disabled::after {
  border-top-color: var(--button-shadow);
}

#board-scroll-left::after,
#palette-scroll-left::after,
#tab-scroll-left::after,
.classic-scroll-left::after {
  top: 5px;
  left: 5px;
  border-top: 3px solid transparent;
  border-right: 5px solid #000;
  border-bottom: 3px solid transparent;
}

#board-scroll-left:disabled::after,
#palette-scroll-left:disabled::after,
#tab-scroll-left:disabled::after,
.classic-scroll-left:disabled::after {
  border-right-color: var(--button-shadow);
}

#board-scroll-right::after,
#palette-scroll-right::after,
#tab-scroll-right::after,
.classic-scroll-right::after {
  top: 5px;
  left: 6px;
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-left: 5px solid #000;
}

#board-scroll-right:disabled::after,
#palette-scroll-right:disabled::after,
#tab-scroll-right:disabled::after,
.classic-scroll-right:disabled::after {
  border-left-color: var(--button-shadow);
}

.scroll-track {
  position: relative;
  flex: 1;
  min-width: 0;
  min-height: 0;
  background-color: var(--scrollbar-face);
  background-image: conic-gradient(
    var(--button-highlight) 25%,
    var(--scrollbar-face) 0 50%,
    var(--button-highlight) 0 75%,
    var(--scrollbar-face) 0
  );
  background-size: 2px 2px;
}

.scroll-thumb {
  position: absolute;
  display: block;
  will-change: transform;
  border: 1px solid;
  border-color: var(--button-highlight) var(--scrollbar-dark-shadow) var(--scrollbar-dark-shadow) var(--button-highlight);
  box-shadow:
    inset 1px 1px var(--scrollbar-light),
    inset -1px -1px var(--scrollbar-shadow);
  background: var(--scrollbar-face);
  touch-action: none;
}

.scroll-thumb[hidden] {
  display: none;
}

.vertical-track .scroll-thumb {
  top: 0;
  right: 0;
  left: 0;
  min-height: 16px;
}

.horizontal-track .scroll-thumb {
  top: 0;
  bottom: 0;
  left: 0;
  min-width: 16px;
}

.scrollbar-corner {
  grid-column: 2;
  grid-row: 2;
  background: var(--button-face);
}

.menu-scroll-frame {
  position: relative;
  overflow: hidden;
}

.menu-scroll-field {
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  background: var(--window);
}

.menu-scroll-content {
  position: absolute;
  inset: 0;
  overflow: auto;
  scrollbar-width: none;
}

.menu-scroll-content::-webkit-scrollbar {
  display: none;
}

.menu-scroll-frame[data-scrollbars="both"] > .menu-scroll-content {
  right: 18px;
  bottom: 18px;
}

.menu-scroll-frame[data-scrollbars="vertical-auto"].has-vertical-scroll > .menu-scroll-content {
  right: 18px;
}

.menu-scroll-vertical,
.menu-scroll-horizontal,
.menu-scroll-corner {
  position: absolute;
}

.menu-scroll-vertical {
  top: 0;
  right: 0;
  bottom: 18px;
  width: 18px;
}

.menu-scroll-frame[data-scrollbars="vertical-auto"] > .menu-scroll-vertical {
  bottom: 0;
  display: none;
}

.menu-scroll-frame[data-scrollbars="vertical-auto"].has-vertical-scroll > .menu-scroll-vertical {
  display: flex;
}

.menu-scroll-horizontal {
  right: 18px;
  bottom: 0;
  left: 0;
  height: 18px;
}

.menu-scroll-corner {
  right: 0;
  bottom: 0;
  width: 18px;
  height: 18px;
  background: var(--button-face);
}

.menu-scroll-frame[data-scrollbars="both-auto"] > .menu-scroll-vertical,
.menu-scroll-frame[data-scrollbars="both-auto"] > .menu-scroll-horizontal,
.menu-scroll-frame[data-scrollbars="both-auto"] > .menu-scroll-corner {
  display: none;
}
.menu-scroll-frame[data-scrollbars="both-auto"].has-vertical-scroll > .menu-scroll-content { right: 18px; }
.menu-scroll-frame[data-scrollbars="both-auto"].has-horizontal-scroll > .menu-scroll-content { bottom: 18px; }
.menu-scroll-frame[data-scrollbars="both-auto"].has-vertical-scroll > .menu-scroll-vertical { display: flex; bottom: 0; }
.menu-scroll-frame[data-scrollbars="both-auto"].has-horizontal-scroll > .menu-scroll-horizontal { display: flex; right: 0; }
.menu-scroll-frame[data-scrollbars="both-auto"].has-horizontal-scroll > .menu-scroll-vertical { bottom: 18px; }
.menu-scroll-frame[data-scrollbars="both-auto"].has-vertical-scroll > .menu-scroll-horizontal { right: 18px; }
.menu-scroll-frame[data-scrollbars="both-auto"].has-vertical-scroll.has-horizontal-scroll > .menu-scroll-corner { display: block; }

.side-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 2 / 4;
  width: 222px;
  min-height: 0;
  padding-bottom: 30px;
  overflow: hidden;
  background: var(--button-face);
  transform: translateX(0);
}

.mode-options {
  display: grid;
  align-content: start;
  flex-shrink: 0;
  gap: 3px;
  height: 96px;
  margin: 0;
  padding: 7px 10px 4px 16px;
  border: 0;
}

.mode-options label {
  display: flex;
  align-items: center;
  min-height: 17px;
  white-space: nowrap;
}

.mode-options.is-restoring {
  visibility: hidden;
}

.editor:not([data-editor-mode="object"]) > .side-panel > #object-controls,
.editor:not([data-editor-mode="object"]) > .side-panel > #object-preview-region,
.editor:not([data-editor-mode="entities"]) > .side-panel > #entity-palette,
.editor:not([data-editor-mode="npcs"]) > .side-panel > #entity-controls,
.editor:not([data-editor-mode="tile"]) > .side-panel > #palette-region {
  display: none;
}

.entity-controls {
  --npc-preview-gap: 28px;
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  min-height: 0;
  width: 210px;
  padding: calc(33px + var(--npc-preview-gap)) 0 8px;
  margin: 0 auto;
}

.entity-controls.is-restoring,
.entity-palette.is-restoring {
  visibility: hidden;
}

.entity-controls[hidden] {
  display: none;
}

.entity-palette {
  position: relative;
  flex: 0 0 230px;
  width: 176px;
  height: 230px;
  margin: 0 auto;
}

.entity-palette[hidden] {
  display: none;
}

.sidebar-views {
  flex: 0 0 auto;
  margin-top: auto;
  padding: 12px 0 8px;
}

.entity-view-options {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 12px;
  row-gap: 4px;
  flex: 0 0 auto;
  width: 200px;
  min-width: 0;
  margin: 0 auto;
}

.entity-view-options label {
  display: flex;
  align-items: center;
  min-width: 0;
  height: 17px;
  white-space: nowrap;
}

.entity-view-options label > input {
  flex: none;
}

.entity-view-options label > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.entity-view-options label[hidden] {
  display: none;
}

.entity-view-options label:has(> input:disabled) {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.entity-palette > img {
  display: block;
  width: auto;
  height: auto;
  max-width: none;
  image-rendering: pixelated;
  pointer-events: none;
}

.entity-palette[data-world-baddies="true"] > img {
  clip-path: inset(171px 0 0);
}

.entity-palette[data-world-baddies="true"] {
  flex-basis: 230px;
  height: 230px;
}

.entity-palette-choice {
  position: absolute;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  cursor: default;
}

.baddy-0 { top: 0; left: 0; width: 44px; height: 66px; }
.baddy-1 { top: 0; left: 44px; width: 44px; height: 66px; }
.baddy-2 { top: 0; left: 88px; width: 44px; height: 64px; }
.baddy-3 { top: 0; left: 132px; width: 44px; height: 50px; }
.baddy-4 { top: 66px; left: 0; width: 52px; height: 58px; }
.baddy-5 { top: 66px; left: 52px; width: 24px; height: 26px; }
.baddy-6 { top: 92px; left: 52px; width: 32px; height: 34px; }
.baddy-7 { top: 64px; left: 84px; width: 44px; height: 66px; }
.baddy-8 { top: 50px; left: 132px; width: 44px; height: 65px; }
.baddy-9 { top: 115px; left: 132px; width: 44px; height: 56px; }
.world-baddy-strip {
  position: absolute;
  z-index: 1;
  top: -8px;
  left: 0;
  width: 176px;
  height: 175px;
  overflow: hidden;
}

.world-baddy-strip[hidden] {
  display: none;
}

.world-baddy-choice {
  display: grid;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  place-items: center;
}

.world-baddy-choice :is(canvas, img) {
  display: block;
  image-rendering: pixelated;
  pointer-events: none;
}

.world-baddy-choice[hidden] { display: none; }
.entity-palette:has(> .world-baddy-strip[data-world="kingdoms"]:not([hidden])) {
  width: 200px;
  flex: 0 1 calc(var(--world-baddy-content-height, 167px) + 63px);
  min-height: 63px;
  max-height: 593px;
  height: auto;
}
.entity-palette:has(> .world-baddy-strip[data-world="kingdoms"]:not([hidden])) > img {
  position: absolute;
  left: 12px;
  bottom: 0;
}
.entity-palette:has(> .world-baddy-strip[data-world="kingdoms"]:not([hidden])) > .entity-npc {
  left: 12px;
  top: auto;
  bottom: 0;
}
.entity-palette:has(> .world-baddy-strip[data-world="kingdoms"]:not([hidden])) > .entity-character {
  left: 61px;
  top: auto;
  bottom: 4px;
}
.entity-palette:has(> .world-baddy-strip[data-world="kingdoms"]:not([hidden])) > .entity-chest {
  left: 125px;
  top: auto;
  bottom: 10px;
}
.world-baddy-strip[data-world="kingdoms"] {
  width: 100%;
  top: 0;
  bottom: 63px;
  height: auto;
}
.world-baddy-strip[data-world="kingdoms"].has-vertical-scroll {
  left: -9px;
  width: calc(100% + 18px);
}
.world-baddy-strip[data-world="kingdoms"] .world-baddy-content {
  display: block;
}
.world-baddy-strip[data-world="kingdoms"] .world-baddy-choice {
  padding: 1px;
  font: 10px/12px Arial, sans-serif;
  overflow: hidden;
}
.world-baddy-strip[data-world="kingdoms"] .world-baddy-choice :is(canvas, img) {
  max-width: none;
  max-height: none;
}

.world-baddy-choice[data-world-baddy="rebel-soldier"],
.world-baddy-choice[data-world-baddy="pyrat"],
.world-baddy-choice[data-world-baddy="bandit"] {
  align-items: end;
}

.entity-npc { top: 182px; left: 0; width: 45px; height: 48px; }
.entity-character {
  z-index: 2;
  top: 182px;
  left: 49px;
  width: 32px;
  height: 44px;
  background: var(--button-face);
}

.entity-character :is(canvas, img) {
  position: absolute;
  left: 50%;
  bottom: -6px;
  max-width: none;
  image-rendering: pixelated;
  pointer-events: none;
  transform: translateX(-50%);
}
.entity-chest { top: 188px; left: 113px; width: 32px; height: 32px; }
.entity-chest:disabled {
  background: var(--button-face);
}
.entity-chest:disabled::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAADmCAMAAABCvv+GAAADAFBMVEUAAAAAACkAAFoAAGMAAP8AQiEAYykAnCkICHMQEBAQEIQQGCEYjBghISEhMVopAAApKSkpKYQpKYwxISExczE5AAA5OQA5OZxCQqVCnEJKSkpKSq1Ka7VKc85KlDFKnEpaAABaWlpanABaziljAABjY2NzCAhzc3N7ECF7e4SEAACEhCGMKSGMKSmMjISMjIyUKTmcOTmcQgCcjBicnCmcnJyczs6lQhClQkKlpaWtSkqtra21KSm1Yym1lP+1tQC9ayG9aym9jCHGAADAwMDOAADWAAD39/f/AAD/ewj/rWP/rWv/1jn/9wD//wD//5z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8pO4ZbAAAARXRSTlP//////////////////////////////////////////////////////////////////////////////////////////wCy7rE4AAAWtUlE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") -113px -188px;
  filter: grayscale(1) opacity(0.55) drop-shadow(1px 1px var(--button-highlight));
}

.entity-character[data-world="kingdoms"] :is(canvas, img) {
  transform: translateX(calc(-50% - 2px));
}

.entity-control-tool {
  position: absolute;
  top: 5px;
  left: 8px;
  width: 32px;
  height: 32px;
  image-rendering: pixelated;
  cursor: default;
}

.entity-template {
  top: 9px;
  left: 48px;
  width: 137px;
}

.entity-template-preview-region {
  flex: 0 1 auto;
  min-height: 0;
  width: 200px;
  margin: 0 auto;
  overflow: hidden;
}

.entity-template-preview {
  display: block;
  width: 200px;
  height: auto;
  background: var(--button-face);
  image-rendering: pixelated;
  cursor: default;
}

.entity-property-grid {
  position: relative;
  flex: 0 0 auto;
  margin: var(--npc-preview-gap) auto 0;
  display: grid;
  grid-template-columns: 82px 82px;
  grid-auto-rows: 16px;
  width: 168px;
  padding: 0;
  overflow: hidden;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  background: var(--window);
  font-size: 11px;
}

.entity-property-grid:not(:has(> .entity-property-value:not([hidden]))) {
  display: none;
}

.entity-property-name,
.entity-property-value {
  min-width: 0;
  height: 16px;
  margin: 0;
  padding: 1px 4px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--window);
  color: #000;
  font: inherit;
  line-height: 13px;
  white-space: nowrap;
}

.entity-property-value {
  border-left: 1px solid var(--button-shadow);
}

.entity-property-name:nth-child(n + 3),
.entity-property-value:nth-child(n + 3) {
  border-top: 1px solid var(--button-shadow);
}

.entity-property-value:disabled {
  color: #000;
  opacity: 1;
}

.entity-property-value:focus {
  outline: 0;
}

.control-npc-label {
  position: absolute;
  top: 256px;
  left: 24px;
  width: 115px;
  height: 16px;
}

.control-npc {
  top: 274px;
  left: 16px;
  width: 145px;
}

.object-controls {
  position: relative;
  flex: 0 0 88px;
  width: 210px;
  height: 88px;
  margin: 0 auto;
}

.object-controls[hidden] {
  display: none;
}

.object-set-label,
.classic-select,
.classic-combobox,
.object-speed-button {
  position: absolute;
}

.object-set-label {
  top: 13px;
  left: 8px;
  height: 16px;
  line-height: 16px;
}

.classic-select {
  appearance: none;
  height: var(--classic-control-height);
  padding: 1px 22px 1px 4px;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background-color: var(--window);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='20' viewBox='0 0 18 20'%3E%3Cpath fill='%23c0c0c0' d='M0 0h18v20H0z'/%3E%3Cpath fill='%23fff' d='M0 0h18v1H1v19H0z'/%3E%3Cpath fill='%23000' d='M17 0h1v20H0v-1h17z'/%3E%3Cpath fill='%23000' d='m5 8 4 5 4-5z'/%3E%3C/svg%3E");
  background-position: right top;
  background-repeat: no-repeat;
  background-size: 18px 20px;
  color: #000;
}

.classic-select-native {
  display: none !important;
}

.object-set {
  top: 9px;
  left: 40px;
  width: 121px;
}

.classic-combobox {
  height: var(--classic-control-height);
  padding: 1px 19px 0 1px;
  overflow: hidden;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background: var(--window);
  color: #000;
  text-align: left;
  white-space: nowrap;
}

.classic-combobox-value {
  display: block;
  height: 100%;
  padding: 1px 1px 0;
  line-height: calc(var(--classic-control-height) - 6px);
}

.classic-combobox::before {
  position: absolute;
  top: 0;
  right: 0;
  width: 18px;
  height: 20px;
  border: 0;
  background: var(--button-face);
  box-shadow:
    inset -1px -1px var(--button-dark-shadow),
    inset 1px 1px var(--button-highlight),
    inset -2px -2px var(--button-shadow),
    inset 2px 2px var(--button-light);
  content: "";
}

.classic-combobox::after {
  position: absolute;
  top: 8px;
  right: 5px;
  width: 0;
  height: 0;
  border-top: 5px solid #000;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  content: "";
}

.classic-combobox:focus {
  outline: 0;
}

.classic-combobox:focus:not(:disabled):not([aria-expanded="true"]) .classic-combobox-value {
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.classic-combobox:active:where([data-primary-press]):not(:disabled)::before {
  box-shadow:
    inset -1px -1px var(--button-highlight),
    inset 1px 1px var(--button-dark-shadow),
    inset -2px -2px var(--button-light),
    inset 2px 2px var(--button-shadow);
}

.classic-combobox:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.classic-combobox:disabled::after {
  border-top-color: var(--button-shadow);
  filter: drop-shadow(1px 1px 0 var(--button-highlight));
}

.object-list-popup {
  position: absolute;
  z-index: 4;
  top: calc(36px + var(--classic-control-height));
  left: 30px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: minmax(0, 1fr);
  width: 156px;
  max-height: 148px;
  padding: 1px;
  overflow: hidden;
  border: 1px solid #000;
  background: var(--window);
}

.object-list-popup[data-scrollable="false"] {
  grid-template-columns: minmax(0, 1fr);
}

.object-list-popup[hidden] {
  display: none;
}

.object-list-options {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.object-list-scrollbar {
  grid-column: 2;
  grid-row: 1;
}

.object-list-scrollbar[hidden] {
  display: none;
}

.object-list-option {
  display: block;
  width: 100%;
  height: 18px;
  padding: 1px 3px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--window);
  color: #000;
  text-align: left;
  text-overflow: clip;
  white-space: nowrap;
}

.object-list-option[data-highlighted] {
  outline: 0;
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.object-list {
  top: 36px;
  left: 30px;
  width: 156px;
}

.object-adaptive-indicator {
  position: absolute;
  top: 65px;
  left: 30px;
  width: 156px;
  overflow: hidden;
  color: #000080;
  font-size: 11px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.object-adaptive-indicator[hidden] {
  display: none;
}

.object-speed-button {
  display: grid;
  width: 25px;
  height: 25px;
  padding: 0;
  place-items: center;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  background: var(--button-face);
}

.object-speed-button.flat {
  border-color: transparent;
  background: transparent;
}

.object-speed-button.flat:hover:not(:disabled),
.object-speed-button.flat:focus-visible {
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  outline: 0;
}

.object-speed-button:active:where([data-primary-press]):not(:disabled) {
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.object-speed-button:active:where([data-primary-press]):not(:disabled) img {
  transform: translate(1px, 1px);
}

.object-speed-button:disabled img {
  filter: grayscale(1) opacity(0.55) drop-shadow(1px 1px var(--button-highlight));
}

.object-speed-button img {
  display: block;
  image-rendering: pixelated;
}

#new-object-set {
  top: 8px;
  left: 160px;
}

#save-objects {
  top: 8px;
  left: 185px;
}

#add-object {
  top: 36px;
  left: 6px;
}

#delete-object {
  top: 35px;
  left: 185px;
}

input[type="checkbox"] {
  appearance: none;
  flex: 0 0 13px;
  width: 13px;
  height: 13px;
  margin: 0 5px 0 0;
  padding: 0;
  border: 1px solid var(--button-shadow);
  border-radius: 0;
  background: var(--window);
  box-shadow: inset 1px 1px var(--button-dark-shadow), inset -1px -1px var(--button-highlight);
}

input[type="checkbox"]:focus-visible {
  outline: 1px dotted #000;
  outline-offset: 2px;
}

input[type="radio"] {
  appearance: none;
  flex: 0 0 12px;
  width: 12px;
  height: 12px;
  margin: 0 5px 0 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' shape-rendering='crispEdges'%3E%3Cpath fill='%23808080' d='M4 0h4v1H4zM2 1h2v1H2zM8 1h2v1H8zM1 2h1v2H1zM0 4h1v4H0zM1 8h1v2H1z'/%3E%3Cpath fill='%23404040' d='M4 1h4v1H4zM2 2h2v1H2zM8 2h2v1H8zM2 3h1v1H2zM1 4h1v4H1zM2 8h1v1H2z'/%3E%3Cpath fill='%23fff' d='M4 2h4v1h1v1h1v4H9v1H8v1H4V9H3V8H2V4h1V3h1zM10 2h1v2h-1zM11 4h1v4h-1zM10 8h1v2h-1zM2 10h2v1H2zM8 10h2v1H8zM4 11h4v1H4z'/%3E%3Cpath fill='%23dfdfdf' d='M9 3h1v1H9zM10 4h1v4h-1zM9 8h1v1H9zM2 9h2v1H2zM8 9h2v1H8zM4 10h4v1H4z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: none;
}

input[type="radio"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' shape-rendering='crispEdges'%3E%3Cpath fill='%23808080' d='M4 0h4v1H4zM2 1h2v1H2zM8 1h2v1H8zM1 2h1v2H1zM0 4h1v4H0zM1 8h1v2H1z'/%3E%3Cpath fill='%23404040' d='M4 1h4v1H4zM2 2h2v1H2zM8 2h2v1H8zM2 3h1v1H2zM1 4h1v4H1zM2 8h1v1H2z'/%3E%3Cpath fill='%23fff' d='M4 2h4v1h1v1h1v4H9v1H8v1H4V9H3V8H2V4h1V3h1zM10 2h1v2h-1zM11 4h1v4h-1zM10 8h1v2h-1zM2 10h2v1H2zM8 10h2v1H8zM4 11h4v1H4z'/%3E%3Cpath fill='%23dfdfdf' d='M9 3h1v1H9zM10 4h1v4h-1zM9 8h1v1H9zM2 9h2v1H2zM8 9h2v1H8zM4 10h4v1H4z'/%3E%3Cpath fill='%23000' d='M5 4h2v1H5zM4 5h4v2H4zM5 7h2v1H5z'/%3E%3C/svg%3E");
}

input[type="checkbox"]:checked {
  background-color: var(--window);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9'%3E%3Cpath d='M1 4.5 3.4 7 8 1' fill='none' stroke='%23000' stroke-width='1.7'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

input[type="checkbox"]:disabled {
  background-color: var(--button-face);
  box-shadow: inset 1px 1px var(--button-shadow), inset -1px -1px var(--button-highlight);
}

input[type="checkbox"]:disabled:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9'%3E%3Cpath d='M1 4.5 3.4 7 8 1' fill='none' stroke='%23808080' stroke-width='1.7'/%3E%3C/svg%3E");
}

.palette-region {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: minmax(0, 1fr) 18px;
  flex: 1 1 530px;
  max-height: 530px;
  min-width: 0;
  min-height: 0;
  margin: 0 11px;
  background: #000;
}

.classic-select-popup {
  position: fixed;
  z-index: 1000;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: minmax(0, 1fr);
  inset: auto;
  margin: 0;
  padding: 1px;
  overflow: hidden;
  border: 1px solid #000;
  border-radius: 0;
  background: var(--window);
  color: #000;
}

.classic-select-popup[data-scrollable="false"] {
  grid-template-columns: minmax(0, 1fr);
}

.classic-select-options {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
}

.classic-select-options::-webkit-scrollbar {
  display: none;
}

.classic-select-scrollbar {
  min-height: 0;
}

.classic-select-scrollbar[hidden] {
  display: none;
}

.classic-select-popup[hidden] {
  display: none;
}

.classic-select-popup:not([hidden]),
.object-list-popup:not([hidden]) {
  animation: classic-select-unfold 120ms linear;
}

.classic-select-popup[data-opens-above="true"] {
  align-content: end;
}

@keyframes classic-select-unfold {
  /* The grid keeps its final row height; only its containing frame grows. */
  from { height: 4px; }
}

.classic-select-option {
  display: block;
  width: 100%;
  height: 18px;
  padding: 1px 3px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--window);
  color: #000;
  line-height: 16px;
  text-align: left;
  text-overflow: clip;
  white-space: nowrap;
}

.classic-select-option[data-highlighted] {
  outline: 0;
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.classic-select-option:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.palette-region[hidden] {
  display: none;
}

.object-preview-region {
  flex: 1 1 530px;
  max-height: 530px;
  min-width: 0;
  min-height: 0;
  margin: 0 11px;
  overflow: hidden;
  background: var(--button-face);
}

.object-preview-region[hidden] {
  display: none;
}

#object-preview {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  cursor: default;
  touch-action: none;
}

.palette-viewport {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #000;
}

.palette-vertical {
  grid-column: 2;
  grid-row: 1;
}

.palette-horizontal {
  grid-column: 1;
  grid-row: 2;
}

.palette-corner {
  grid-column: 2;
  grid-row: 2;
  display: grid;
  place-items: end;
  background: var(--button-face);
}

#selected-tile-preview {
  display: block;
  width: 16px;
  height: 16px;
  image-rendering: pixelated;
}

#tileset {
  display: block;
  transform: translate(0, 0);
  transform-origin: top left;
  width: 2048px;
  height: 512px;
  image-rendering: pixelated;
  cursor: default;
  touch-action: none;
}

#tile-locator {
  position: absolute;
  inset: 0;
  display: block;
  width: 2048px;
  height: 512px;
  transform: translate(0, 0);
  transform-origin: top left;
  mix-blend-mode: difference;
  pointer-events: none;
}

.performance-debug-panel {
  position: absolute;
  right: 6px;
  bottom: 36px;
  z-index: 20;
  width: 208px;
  padding: 5px 6px 6px;
  border: 2px solid;
  border-color: var(--button-dark-shadow) var(--button-highlight) var(--button-highlight) var(--button-dark-shadow);
  box-shadow:
    inset 1px 1px var(--button-shadow),
    inset -1px -1px var(--button-light);
  background: var(--button-face);
  color: #000;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  line-height: 16px;
  pointer-events: none;
}

.editor.map-mode .performance-debug-panel {
  bottom: 6px;
}

.editor.source-mode .performance-debug-panel {
  display: none;
}
.performance-debug-title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 2px;
  border-bottom: 1px solid var(--button-shadow);
  color: #000;
  font-weight: 700;
}

.performance-debug-title output {
  font-weight: 400;
}

.performance-debug-grid {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  column-gap: 6px;
}

.performance-debug-grid output {
  min-width: 0;
  overflow: hidden;
  text-align: right;
  text-overflow: clip;
  white-space: nowrap;
}

.status-panel {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 30px;
  display: flex;
  flex: 0 0 30px;
  align-items: center;
  margin-top: auto;
  padding: 5px 6px 1px 8px;
  background: var(--button-face);
}

#status {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  height: 23px;
  padding: 3px 5px;
  overflow: hidden;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  background: var(--button-face);
  white-space: nowrap;
}

.build-name {
  flex: 0 0 auto;
  margin-left: 6px;
  color: #404040;
  font-size: 11px;
  white-space: nowrap;
}

.classic-dialog {
  box-sizing: border-box;
  margin: auto;
  padding: 3px;
  overflow: hidden;
  border: 0;
  background: var(--button-face);
  color: #000;
  box-shadow:
    inset -1px -1px var(--button-dark-shadow),
    inset 1px 1px var(--button-light),
    inset -2px -2px var(--button-shadow),
    inset 2px 2px var(--button-highlight);
  user-select: none;
  -webkit-user-select: none;
}

/* Chromium can incorrectly exclude the area behind a native non-modal dialog
   when it composites the oversized WebGL level surface. The next pan then
   exposes that excluded area as a stale or black strip beside the dialog.
   Isolate visible dialogs in their own filter-capable layer so the WebGL
   surface is always presented intact. Scope the hint to open windows only. */
.classic-dialog[open] {
  will-change: filter;
}

.classic-dialog * {
  user-select: none;
  -webkit-user-select: none;
}

.classic-dialog input[type="text"],
.classic-dialog input[type="search"],
.classic-dialog input[type="number"] {
  box-sizing: border-box;
  height: var(--classic-control-height);
  user-select: text;
  -webkit-user-select: text;
}

.classic-dialog textarea {
  user-select: text;
  -webkit-user-select: text;
}

.classic-dialog :is(input[type="text"], input[type="search"], input[type="number"], textarea):focus {
  outline: 0;
}

.classic-context-menu,
.classic-context-menu *,
.classic-select-popup,
.classic-select-popup * {
  user-select: none;
  -webkit-user-select: none;
}

.classic-dialog::backdrop {
  background: transparent;
}

.dialog-titlebar {
  display: flex;
  align-items: center;
  /* The icon and the title sit together at the left and the close button is
     pushed to the far end by its own margin. Spacing them apart instead would
     put a title with an icon beside it in the middle of the bar. */
  justify-content: flex-start;
  /* Twenty pixels of blue: between the twenty-two this had and the eighteen
     Windows 9x draws. Two pixels of padding leave sixteen inside, which is
     exactly an icon, and centre the close button on a whole pixel within
     them. */
  height: 20px;
  padding: 2px 2px 2px 4px;
  background: linear-gradient(to right, var(--active-caption), var(--active-caption-end));
  color: var(--active-caption-text);
  /* The caption font is the system's and the same on every window. Left to
     inherit, it followed whatever a dialog had set for its own contents -- the
     signs and links windows size theirs at 14px -- and a caption a pixel
     larger than its neighbour's sits on a lower baseline within the same line,
     which is a title bar that looks slightly out of true beside another. */
  font-size: 13px;
  font-weight: 700;
  line-height: 18px;
  touch-action: none;
  cursor: default;
}

/* Only the window containing keyboard focus owns the active caption. This
   also gives an owned modal the Win9x relationship with its still-visible,
   inert parent without requiring each dialog controller to manage classes. */
.classic-dialog[open]:not(:focus-within) .dialog-titlebar {
  background: linear-gradient(
    to right,
    var(--inactive-caption),
    var(--inactive-caption-end)
  );
  color: var(--inactive-caption-text);
}

.classic-dialog.dialog-moving {
  /* Keep the open-dialog isolation while the transform is changing. Replacing
     it with transform alone lets the WebGL surface leak through the dialog's
     previous positions as it moves. */
  will-change: transform, filter;
}

.dialog-titlebar button {
  cursor: default;
}

/* The caption must land on a whole pixel: glyphs are laid on the baseline, and
   a baseline between two pixels is a caption the renderer has to round. This
   font stands fifteen pixels from ascender to descender, so a line height of
   the same parity splits its leading evenly, and starting the caption at the
   top of the bar's padding rather than centring it in what is left keeps that
   start whole as well -- the baseline lands on 15. Its capitals are ten pixels,
   an even number, so their middle lands whole too: on the bar's tenth pixel,
   which is its middle. The icon and the close button keep their own centring. */
.dialog-titlebar > span {
  align-self: flex-start;
  line-height: 17px;
}

/* The window's icon, as the classic editor's title bars carry. Held to the
   line's height, and only ever scaled down -- the icons drawn at that size
   already are left untouched at it. The margin is the tab strip's: a tab sets
   its icon six pixels clear of its label, and a title bar reads as the same
   kind of thing. It sits on the icon rather than being a gap between every
   pair, so that a bar with no icon keeps the spacing it always had. */
.dialog-icon {
  flex: 0 0 auto;
  width: auto;
  height: auto;
  max-width: 16px;
  max-height: 16px;
  margin-right: 6px;
  object-fit: contain;
}

.dialog-close {
  position: relative;
  margin-left: auto;
  width: 16px;
  height: 14px;
  flex: 0 0 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  appearance: none;
  background: var(--button-face);
  box-shadow:
    inset -1px -1px var(--button-dark-shadow),
    inset 1px 1px var(--button-highlight),
    inset -2px -2px var(--button-shadow),
    inset 2px 2px var(--button-light);
  color: transparent;
  font-size: 0;
}

.dialog-close::before {
  position: absolute;
  top: 3px;
  left: 4px;
  width: 1px;
  height: 1px;
  background: #000;
  box-shadow:
    6px 0 #000,
    1px 1px #000,
    5px 1px #000,
    2px 2px #000,
    4px 2px #000,
    3px 3px #000,
    2px 4px #000,
    4px 4px #000,
    1px 5px #000,
    5px 5px #000,
    0 6px #000,
    6px 6px #000;
  content: "";
}

.dialog-close:focus-visible {
  outline: 0;
}

.dialog-close:active:where([data-primary-press]) {
  box-shadow:
    inset -1px -1px var(--button-highlight),
    inset 1px 1px var(--button-dark-shadow),
    inset -2px -2px var(--button-light),
    inset 2px 2px var(--button-shadow);
}

.dialog-close:active:where([data-primary-press])::before {
  transform: translate(1px, 1px);
}

.dialog-client {
  position: relative;
  width: 100%;
  height: calc(100% - 20px);
  margin: 0;
  padding: 0;
}

.classic-push-button {
  position: absolute;
  height: var(--classic-control-height);
  padding: 2px 10px;
  border: 0;
  border-radius: 0;
  appearance: none;
  background: var(--button-face);
  box-shadow:
    inset -1px -1px var(--button-dark-shadow),
    inset 1px 1px var(--button-highlight),
    inset -2px -2px var(--button-shadow),
    inset 2px 2px var(--button-light);
}

.classic-push-button:active:where([data-primary-press]):not(:disabled) {
  padding: 3px 9px 1px 11px;
  box-shadow:
    inset -1px -1px var(--button-highlight),
    inset 1px 1px var(--button-dark-shadow),
    inset -2px -2px var(--button-light),
    inset 2px 2px var(--button-shadow);
}

.classic-push-button:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.classic-push-button:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -5px;
}

.world-dialog {
  width: min(650px, calc(100vw - 20px));
  height: fit-content;
  min-height: 0;
  max-height: calc(100vh - 20px);
  font-size: 14px;
}

.tiledefs-dialog {
  width: min(760px, calc(100vw - 20px));
  height: min(560px, calc(100vh - 20px));
  font-size: 13px;
}

.import-worlds-dialog {
  width: min(470px, calc(100vw - 20px));
}

.graal-folder-dialog {
  width: min(470px, calc(100vw - 20px));
  height: fit-content;
  min-height: 0;
  max-height: calc(100vh - 20px);
  font-size: 13px;
}

.compact-alert-dialog {
  height: fit-content;
  min-height: 0;
  max-height: calc(100vh - 20px);
  font-size: 14px;
}

.compact-alert-dialog .dialog-client {
  box-sizing: border-box;
  min-height: 0;
  height: auto;
}

.gmap-dependencies-dialog,
.level-folder-dialog {
  width: min(470px, calc(100vw - 20px));
}

.gmap-level-load-dialog,
.message-popup-dialog,
.graal-folder-reconnect-dialog {
  width: min(390px, calc(100vw - 20px));
}

.gmap-level-load-dialog.map-validation-alert-dialog {
  width: min(390px, calc(100vw - 20px));
}

.map-validation-alert-dialog .question-alert-message {
  max-height: min(250px, calc(100vh - 110px));
  overflow: auto;
  white-space: pre-line;
}

.question-alert-client {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 14px;
  padding: 12px 14px 13px;
}

.map-validation-alert-dialog .gmap-level-load-actions,
.message-popup-dialog .message-popup-actions {
  justify-content: center;
}

.folder-alert-client {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 8px;
  row-gap: 16px;
  padding: 10px 12px;
}

.folder-alert-copy {
  position: static;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.tool-palette {
  position: absolute;
  z-index: 12;
  top: var(--tool-palette-top, 69px);
  left: var(--tool-palette-left, 8px);
  width: var(--tool-palette-width, 55px);
  min-width: 45px;
  max-width: 103px;
  padding: 3px;
  overflow: hidden;
  border: 0;
  box-shadow:
    inset -1px -1px var(--button-dark-shadow),
    inset 1px 1px var(--button-light),
    inset -2px -2px var(--button-shadow),
    inset 2px 2px var(--button-highlight),
    2px 2px 0 rgb(0 0 0 / 30%);
  background: var(--button-face);
  container-name: tool-palette;
  container-type: inline-size;
  user-select: none;
  touch-action: none;
}

.tool-palette.is-restoring {
  visibility: hidden;
}

.tool-palette[hidden] {
  display: none !important;
}

.tool-palette-titlebar {
  display: flex;
  align-items: center;
  height: 18px;
  margin: 0 0 2px;
  padding: 0 3px;
  overflow: hidden;
  background: linear-gradient(to right, var(--active-caption), var(--active-caption-end));
  color: var(--active-caption-text);
  font-size: 11px;
  font-weight: 700;
  line-height: 16px;
  white-space: nowrap;
  cursor: default;
}

.tool-palette-titlebar::before {
  content: "Tools";
}

.tool-palette-titlebar:focus-visible {
  outline: 1px dotted var(--button-highlight);
  outline-offset: -3px;
}

.tool-palette-client {
  display: grid;
  gap: 2px;
  width: 100%;
}

.tool-palette-grid {
  width: 100%;
  min-width: 0;
}

.tool-palette-group,
.tool-option-buttons {
  display: grid;
  grid-template-columns: 24px;
  grid-auto-rows: 24px;
  gap: 0;
  justify-self: center;
  width: 25px;
  padding: 0 0 1px;
  overflow: visible;
  background: transparent;
}

@container tool-palette (min-width: 49px) {
  .tool-palette-group,
  .tool-option-buttons {
    grid-template-columns: repeat(2, 24px);
    width: 49px;
  }
}

@container tool-palette (min-width: 73px) {
  .tool-palette-group,
  .tool-option-buttons {
    grid-template-columns: repeat(3, 24px);
    width: 73px;
  }
}

@container tool-palette (min-width: 97px) {
  .tool-palette-group,
  .tool-option-buttons {
    grid-template-columns: repeat(4, 24px);
    width: 97px;
  }
}

.workbench-tool,
.tool-option-buttons button {
  position: relative;
  display: grid;
  width: 25px;
  height: 25px;
  margin: 0;
  padding: 2px;
  place-items: center;
  border: 1px solid #000;
  border-radius: 0;
  box-shadow:
    inset 1px 1px var(--button-highlight),
    inset -1px -1px var(--button-shadow);
  background: var(--button-face);
}

.workbench-tool svg {
  display: none;
}

.workbench-tool::before, .hotkey-tool-icon::before {
  display: block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAAQCAYAAADeWHeIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGNGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgMTAuMC1jMDAwIDc5LmQyMGU0NjYzMCwgMjAyNS8xMi8wOS0wMjoxMToyMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI3LjkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNi0wOC0xM1QxMjowNjo1NSswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjYtMDgtMTNUMTI6MTM6MDIrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjYtMDgtMTNUMTI6MTM6MDIrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFmMWU0MTMxLWNkMTAtZWY0NS1iYzE5LWVmZjc1OTA2YzBjYyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmRjYjQzNWY5LTE3MDktMTk0NC1iNzJlLWE2MTY4OTAxNmI5MiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmUyZjI2ZDAwLTQ4NmMtZDQ0Zi1hMDc2LWU1NWNkMjlkYWU0ZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZTJmMjZkMDAtNDg2Yy1kNDRmLWEwNzYtZTU1Y2QyOWRhZTRlIiBzdEV2dDp3aGVuPSIyMDI2LTA4LTEzVDEyOjA2OjU1KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWYxZTQxMzEtY2QxMC1lZjQ1LWJjMTktZWZmNzU5MDZjMGNjIiBzdEV2dDp3aGVuPSIyMDI2LTA4LTEzVDEyOjEzOjAyKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8++56y0gAAAZ5JREFUaN7NmVkOwyAMRLn/pelXJUrxMp4xSSWkKoox2A8vZMw5hzfGGHMd0fuWLCJXHcxavfm61vgGu6UWvP6yiyLlqo7604nMt76/zqdyyA7oab79WUbnaT5P189zxIlZR37lNuUh9VUQTutkgN2BOvy/AkAWuuqaUgBUNm85JJLfTh/t/Aq0WQAQW3gjsEEq8rQAwIRAFICdejT8KQA47dn6n4loGQiAQzfb6hF1Dmfk1RGg4qgMAIJ0iNpNWouERWA19zPVbLUGUABgFX/enEBKSxeljt1dCKi6pOP0n+gHZQaTBpAw7eV+JrVYNgzSoAewCYG0BmBOv5Hn0vmvClDUBhYc1eJ8Joo9BgATincQmHnRfng1TiX0VgFQOt/SK72XULR+FQNWI0vn7Ru7dqLwhXRKbzsV16lRr4v0wU9BwOZ+pm5CW1lVCggBYDZg1QNsa/kGCIxCle6YEH2tNQDb82dqgButZQcE0elnr4qz+hRtoFcEqumVAcCGvIw8ehqVN3UZmKKIIPsYxH7oUOX/2wOFtuuT8Y29fgAfpScP7326BQAAAABJRU5ErkJggg==");
  background-repeat: no-repeat;
  content: "";
  image-rendering: pixelated;
}

/* Paint Shop Pro placeholder strip supplied for the customizable workbench.
   It has nine exact 16px cells; the final cell is the dedicated line tool. */
.workbench-tool::before, .hotkey-tool-icon::before {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAQCAMAAADOKAZSAAAALVBMVEV/eH+/uL//+P8AAP8AAH8AeH8A+P+DkAC7xQD/+AD/AAB/AAD///8AAAD///+8InfzAAAAD3RSTlP//////////////////wDU3JihAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGNGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgMTAuMC1jMDAwIDc5LmQyMGU0NjYzMCwgMjAyNS8xMi8wOS0wMjoxMToyMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI3LjkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNi0wOC0xM1QxMjowNjo1NSswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjYtMDgtMTNUMTI6MzI6NDkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjYtMDgtMTNUMTI6MzI6NDkrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxODQ4Y2Q4LTdjYmItZmQ0Yy1iMWIyLTFiMTQ1YjAwMTIzMSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjk2Y2EyYjgxLTlhOWMtZWI0OC1iNDczLTU3MDlkMmNlMDVmYiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjM5NTJmNTU2LTIyZTMtYjE0My05MjY1LTJkYTRhOWEzZjIyNCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Mzk1MmY1NTYtMjJlMy1iMTQzLTkyNjUtMmRhNGE5YTNmMjI0IiBzdEV2dDp3aGVuPSIyMDI2LTA4LTEzVDEyOjA2OjU1KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NzE4NDhjZDgtN2NiYi1mZDRjLWIxYjItMWIxNDViMDAxMjMxIiBzdEV2dDp3aGVuPSIyMDI2LTA4LTEzVDEyOjMyOjQ5KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Tl0XBwAAAbxJREFUSMe91tuuozAMQFHbBQ5psv3/nzsPuZALnEHzMBZSBWrJiu0kFc8BPgTzg/8VUsY/fwYAKaVRFOrl7gIg0wR8nUKMUfxhxrdhTyASsIhC8eR3DyNgiuk0ZrRvjPUL+wuQfZ5BaUxRCO5o8ZTfCF1+MmhMW/w2EPZCZB95Dcrv1BBC52jDo5hhRp+jb/y2knFgRxHl4rZr8rzvIayUpHvMZc0g61IUv3Sew5pIZLhGzxNoWWUIiof3IDRGOk8TjROfPQXEeS4pYvKAuIe3INSEWH977FWED33WbqongzjPXgRAgitLxRPcQ1NIAcENCDW5Xid7Fu3stKIM207zFFCJrqOBq6+7/OTFJe4ieXqogtWoReo87lJEOwf3Jbs8N6C8wmrQebo0i4jmITHTGcSxX56tirLnrmSdp4BSt8wZY/FcGyNNNIIGj28lR8VzU7LeU0GatIFKxWrNsOWcKEdHFsmVnwoaPEcR8bQPDZ4KkiQDqPZQAjOdPNPe0IkUcefot4xt2/Ic2k4970OftctJkkQHUKofyqNnFSGyHKPb3w5XWe6YVtnQQvqLpzaloDVBepT4178ffwA4WWnhmYCe3wAAAABJRU5ErkJggg==");
}

.workbench-tool[data-workbench-tool="pen"]::before, .hotkey-tool-icon[data-workbench-tool="pen"]::before { background-position: 0 0; }
.workbench-tool[data-workbench-tool="stamp"]::before, .hotkey-tool-icon[data-workbench-tool="stamp"]::before { background-position: -16px 0; }
.workbench-tool[data-workbench-tool="line"]::before, .hotkey-tool-icon[data-workbench-tool="line"]::before { background-position: -128px 0; }
.workbench-tool[data-workbench-tool="zoom"]::before, .hotkey-tool-icon[data-workbench-tool="zoom"]::before { background-position: -48px 0; }
.workbench-tool[data-workbench-tool="move"]::before, .hotkey-tool-icon[data-workbench-tool="move"]::before { background-position: -64px 0; }
.workbench-tool[data-workbench-tool="eyedropper"]::before, .hotkey-tool-icon[data-workbench-tool="eyedropper"]::before { background-position: -80px 0; }
.workbench-tool[data-workbench-tool="fill"]::before, .hotkey-tool-icon[data-workbench-tool="fill"]::before { background-position: -96px 0; }
.workbench-tool[data-workbench-tool="marquee"]::before, .hotkey-tool-icon[data-workbench-tool="marquee"]::before { background-position: -112px 0; }

/* Updated nine-cell placeholder strip supplied for the workbench. */
.workbench-tool::before, .hotkey-tool-icon::before {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAQCAMAAADOKAZSAAAAM1BMVEV/eH+/uL//+P8AAP8AAH8AeH8A+P86bzJajlGGvkqDkAC7xQD/AAB/AAD///8AAAD////0Di7uAAAAEXRSTlP/////////////////////ACWtmWIAAAAJcEhZcwAACxMAAAsTAQCanBgAAAY0aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSAxMC4wLWMwMDAgNzkuZDIwZTQ2NjMwLCAyMDI1LzEyLzA5LTAyOjExOjIzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI2LTA4LTEzVDEyOjA2OjU1KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNi0wOC0xM1QxMzozNzo0MCswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNi0wOC0xM1QxMzozNzo0MCswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZGYwOWQ3ZWUtNTgxMy01MTQ0LWIxNDctYWQwZTNhYWIxN2E2IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YWE3MjE5M2MtNWFmMS1lYzQzLThlN2YtYmVjYzVlODc2ZDY0IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjgzMjNhOTctOGFiNi1mMzRhLWIzYmMtMDM5M2JmMTdkZDExIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmODMyM2E5Ny04YWI2LWYzNGEtYjNiYy0wMzkzYmYxN2RkMTEiIHN0RXZ0OndoZW49IjIwMjYtMDgtMTNUMTI6MDY6NTUrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNy45IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkZjA5ZDdlZS01ODEzLTUxNDQtYjE0Ny1hZDBlM2FhYjE3YTYiIHN0RXZ0OndoZW49IjIwMjYtMDgtMTNUMTM6Mzc6NDArMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNy45IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6uf0m+AAABxElEQVRIx63W267jIAxAUcMkAZ8ENv//tfMApIYQnWo0VqUqLYKFzSVSakAZgvmH/x1v3Uv7+/wZWpBzfhcJgEwTKM8ppJSkvM141bF/A5EBKxILqH0PI+Ad3k2DJH+l1BvsX4D8n3dQHlOE6v3UaYIhVtCYtnTdIPwsYuWRr0ACElRDy5I8ZAWH93iPzdGVrrtkHPhjFLH2fLOG0ICqKkEZe7pb+AbyJkXpwngOP4lYe95AZpcJqkFVNagiX4NwKWE8s4i1p4E4z0eK7tGCxhYa+BaE80JqleXYu+gRk6eCOE8rAiD35kQTBtSTBQsQzsunO9mraDcrm2V+OmjQknPOUL+KQIwxxBhijCBFKEVKEamLGufA9+hFMp5SpIl2DtYl+3gWoLrDekCMw6duLhFxdUi8dzOIY/94ti4aPAPIeBoom20+F/kBug9GbtEIGjxlazkaPRZkPR3ksrtBrWKtZgKhr6DQTr52dVSRfPLTQYPnaCLezqHB00GSZQD1NZQppZPCfH89RQ4phcPeKtu21Tm8ntSDx4DcAMq2jFKLJ88rexIh8rhGt98uV3nc9tOZsDomXl8iWgldT5A7Wvzra8lfVgF5FthXCccAAAAASUVORK5CYII=");
}

/* Exact current tools3.png strip. */
.workbench-tool::before, .hotkey-tool-icon::before {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAQCAMAAADOKAZSAAAAM1BMVEV/eH+/uL//+P8AAP8AAH8AeH8A+P86bzJajlGGvkqDkAC7xQD/AAB/AAD///8AAAD////0Di7uAAAAEXRSTlP/////////////////////ACWtmWIAAAAJcEhZcwAACxMAAAsTAQCanBgAAAY0aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSAxMC4wLWMwMDAgNzkuZDIwZTQ2NjMwLCAyMDI1LzEyLzA5LTAyOjExOjIzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjcuOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI2LTA4LTEzVDEyOjA2OjU1KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNi0wOC0xM1QxNDowOToxMSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNi0wOC0xM1QxNDowOToxMSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzgyNTQwMGUtM2ZiNy0yNDQ4LThiMTMtZTQ3M2JjMDk0M2Q5IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NWQwMDQwNGUtZTFhMi03NDQ5LTliMDktYzNmZTM1M2VmYmUwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NjBhZWUwMjktZTBmYy0zMjQ4LTlmZWYtZTI0NzdjMGQ4MTU3Ij4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MGFlZTAyOS1lMGZjLTMyNDgtOWZlZi1lMjQ3N2MwZDgxNTciIHN0RXZ0OndoZW49IjIwMjYtMDgtMTNUMTI6MDY6NTUrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNy45IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozODI1NDAwZS0zZmI3LTI0NDgtOGIxMy1lNDczYmMwOTQzZDkiIHN0RXZ0OndoZW49IjIwMjYtMDgtMTNUMTQ6MDk6MTErMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNy45IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6EBC40AAABwklEQVRIx53V0ZarIAxA0ZBRgWnh5P+/9j4IGhRnOjerL7You0kkYnuA+eBy/WuA/e2Wp8XSfn59+xXUWoc7BMRf+EszMzSg4bpJKUVs/o/nIH0AUYFBRM6Mjx42oIFGZtF3KX3F+gFIvx5B1aVIQGLOsWWpbyrnDQRUUWXMUXkfIPQqYuaRj0DkSM45EzPecaYDbSB1KXqX91EyNnQbRcw9H/SQkHPMOeeYM+IfxI+g8sZ5Nr2ImHseQP4tI+bUIkc+BhFKwXmuIuaeBuL1uqbo3C25mIBgBiKoUFpp2dYuusXFs4N4vZwIgNpXC6SUYkoxpQRHC0kDEQJojw4i6LESZN1Fq+tspvnpIK+l1lqB1tekNHwEMzETaU2NariBvMdMmmhlY16y03MH7W9YD24gQ8xEJPQdUQ0XENt6epYuGjwDyHkaqJ7v+bXEArF3UAQ5D8aWUTnz00CDx5aWo9HjQd7TQaGGDmoVO2p2kGI/iNvomIjCDho8WxPxdA4Nng6SKh7Ue6hyCq7jyyYiRMzY/FhZlmVf83hSDx4HCh5UfRV/GPFdFHqCwm2MLr8NV7lN+/FMmJ0SjyK5fbW1sP+Mf9aKeRYi09BwAAAAAElFTkSuQmCC");
}

.workbench-tool:hover:not(:disabled),
.workbench-tool:focus-visible,
.tool-option-buttons button:hover:not(:disabled),
.tool-option-buttons button:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -4px;
}

.workbench-tool[aria-pressed="true"],
.tool-option-buttons button[aria-pressed="true"] {
  box-shadow:
    inset 1px 1px var(--button-shadow),
    inset -1px -1px var(--button-highlight);
  background-color: #fff;
  background-image:
    linear-gradient(45deg, var(--button-face) 25%, transparent 25%),
    linear-gradient(-45deg, var(--button-face) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, var(--button-face) 75%),
    linear-gradient(-45deg, transparent 75%, var(--button-face) 75%);
  background-position: 0 0, 0 1px, 1px -1px, -1px 0;
  background-size: 2px 2px;
}

.workbench-tool[aria-pressed="true"]::before {
  transform: translate(1px, 1px);
}

.workbench-tool[aria-pressed="true"]:hover:not(:disabled),
.tool-option-buttons button[aria-pressed="true"]:hover:not(:disabled) {
  outline: 0;
}

.workbench-tool.is-temporary::after {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 6px;
  height: 6px;
  border: 1px solid #000;
  border-radius: 50%;
  background: #fff;
  content: "";
}

.tool-palette-details {
  display: grid;
  gap: 2px;
  width: 100%;
  padding-top: 3px;
  border-top: 1px solid var(--button-shadow);
  box-shadow: inset 0 1px var(--button-highlight);
}

.tool-options {
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 3px 0 0;
  border: 0;
  border-top: 1px solid var(--button-shadow);
  box-shadow: inset 0 1px var(--button-highlight);
  font-size: 10px;
}

.tool-options:not(:has(section:not([hidden]))) {
  display: none;
}

.tool-options section {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.tool-options section[hidden] {
  display: none;
}

.tool-options label {
  display: flex;
  align-items: center;
  gap: 1px;
  min-width: 0;
  white-space: nowrap;
}

.tool-option-buttons {
  justify-self: center;
}

.tool-option-buttons button {
  min-width: 0;
  font-size: 10px;
}

.tool-option-buttons button[data-marquee-mode],
.tool-option-buttons button[data-brush-spacing],
.tool-option-buttons button[data-fill-mode] {
  font-size: 0;
}

.tool-option-buttons button[data-marquee-mode]::before,
.tool-option-buttons button[data-marquee-mode]::after,
.tool-option-buttons button[data-brush-spacing]::before,
.tool-option-buttons button[data-brush-spacing]::after,
.tool-option-buttons button[data-fill-mode]::before,
.tool-option-buttons button[data-fill-mode]::after {
  position: absolute;
  display: block;
  box-sizing: border-box;
  content: "";
  pointer-events: none;
}

.tool-option-buttons button[data-marquee-mode="replace"]::before {
  top: 7px;
  left: 7px;
  width: 10px;
  height: 10px;
  border: 1px solid var(--tool-icon-ink);
  background: var(--tool-icon-fill);
}

.tool-option-buttons button[data-marquee-mode="subtract"]::before {
  top: 5px;
  left: 5px;
  width: 9px;
  height: 9px;
  border: 1px solid var(--tool-icon-ink);
  background: var(--tool-icon-fill);
}

.tool-option-buttons button[data-marquee-mode="add"]::before {
  top: 5px;
  left: 5px;
  width: 9px;
  height: 9px;
  background: var(--tool-icon-ink);
  box-shadow: 5px 5px 0 var(--tool-icon-ink);
}

.tool-option-buttons button[data-marquee-mode="add"]::after {
  top: 6px;
  left: 6px;
  width: 12px;
  height: 12px;
  background:
    linear-gradient(var(--tool-icon-fill), var(--tool-icon-fill)) 0 0 / 7px 7px no-repeat,
    linear-gradient(var(--tool-icon-fill), var(--tool-icon-fill)) 5px 5px / 7px 7px no-repeat,
    linear-gradient(var(--tool-icon-fill), var(--tool-icon-fill)) 4px 4px / 4px 4px no-repeat;
}

.tool-option-buttons button[data-marquee-mode="subtract"]::after {
  top: 9px;
  left: 9px;
  width: 10px;
  height: 10px;
  border: 1px solid var(--tool-icon-ink);
  background: var(--button-face);
}

.tool-option-buttons button[data-marquee-mode][aria-pressed="true"]::before,
.tool-option-buttons button[data-marquee-mode][aria-pressed="true"]::after {
  transform: translate(1px, 1px);
}

.tool-option-buttons button[data-marquee-mode]:disabled::before,
.tool-option-buttons button[data-marquee-mode]:disabled::after {
  border-color: var(--button-shadow);
  background-color: var(--button-shadow);
  box-shadow: 1px 1px var(--button-highlight);
}

.tool-option-buttons button[data-marquee-mode="subtract"]:disabled::after {
  background-color: var(--button-face);
}

.tool-option-buttons button[data-marquee-mode="add"]:disabled::before {
  background: var(--button-shadow);
  box-shadow:
    5px 5px 0 var(--button-shadow),
    1px 1px 0 var(--button-highlight),
    6px 6px 0 var(--button-highlight);
}

.tool-option-buttons button[data-marquee-mode="add"]:disabled::after {
  background:
    linear-gradient(var(--button-shadow), var(--button-shadow)) 0 0 / 7px 7px no-repeat,
    linear-gradient(var(--button-shadow), var(--button-shadow)) 5px 5px / 7px 7px no-repeat,
    linear-gradient(var(--button-shadow), var(--button-shadow)) 4px 4px / 4px 4px no-repeat;
  box-shadow: none;
}

.tool-option-buttons button[data-brush-spacing],
.tool-option-buttons button[data-fill-mode] {
  --option-icon-ink: var(--tool-icon-ink);
  --option-icon-fill: var(--tool-icon-fill);
}

.tool-option-buttons button[data-brush-spacing="pattern"]::before {
  top: 8px;
  left: 3px;
  width: 7px;
  height: 7px;
  background: var(--option-icon-ink);
  box-shadow: 11px 0 0 var(--option-icon-ink);
}

.tool-option-buttons button[data-brush-spacing="pattern"]::after {
  top: 9px;
  left: 4px;
  width: 5px;
  height: 5px;
  background: var(--option-icon-fill);
  box-shadow: 11px 0 0 var(--option-icon-fill);
}

.tool-option-buttons button[data-brush-spacing="tile"]::before {
  top: 9px;
  left: 2px;
  width: 5px;
  height: 5px;
  background: var(--option-icon-ink);
  box-shadow:
    5px 0 0 var(--option-icon-ink),
    10px 0 0 var(--option-icon-ink),
    15px 0 0 var(--option-icon-ink);
}

.tool-option-buttons button[data-brush-spacing="tile"]::after {
  top: 10px;
  left: 3px;
  width: 3px;
  height: 3px;
  background: var(--option-icon-fill);
  box-shadow:
    5px 0 0 var(--option-icon-fill),
    10px 0 0 var(--option-icon-fill),
    15px 0 0 var(--option-icon-fill);
}

.tool-option-buttons button[data-fill-mode="area"]::before {
  top: 5px;
  left: 5px;
  width: 15px;
  height: 15px;
  background: var(--option-icon-ink);
}

.tool-option-buttons button[data-fill-mode="area"]::after {
  top: 6px;
  left: 6px;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(to right, transparent 6px, var(--option-icon-ink) 6px 7px, transparent 7px),
    linear-gradient(to bottom, transparent 6px, var(--option-icon-ink) 6px 7px, transparent 7px),
    var(--option-icon-fill);
}

.tool-option-buttons button[data-fill-mode="tile"]::before {
  top: 4px;
  left: 4px;
  width: 6px;
  height: 6px;
  background: var(--option-icon-ink);
  box-shadow:
    11px 0 0 var(--option-icon-ink),
    0 11px 0 var(--option-icon-ink),
    11px 11px 0 var(--option-icon-ink);
}

.tool-option-buttons button[data-fill-mode="tile"]::after {
  top: 5px;
  left: 5px;
  width: 4px;
  height: 4px;
  background: var(--option-icon-fill);
  box-shadow:
    11px 0 0 var(--option-icon-fill),
    0 11px 0 var(--option-icon-fill),
    11px 11px 0 var(--option-icon-fill);
}

.tool-option-buttons button[data-brush-spacing][aria-pressed="true"]::before,
.tool-option-buttons button[data-brush-spacing][aria-pressed="true"]::after,
.tool-option-buttons button[data-fill-mode][aria-pressed="true"]::before,
.tool-option-buttons button[data-fill-mode][aria-pressed="true"]::after {
  transform: translate(1px, 1px);
}

.tool-option-buttons button[data-brush-spacing]:disabled,
.tool-option-buttons button[data-fill-mode]:disabled {
  --option-icon-ink: var(--button-shadow);
  --option-icon-fill: var(--button-light);
}

:is(#tool-marquee-include-tiles, #tool-marquee-include-npcs) img {
  display: block;
  width: 16px;
  height: 16px;
  image-rendering: pixelated;
  pointer-events: none;
}

:is(#tool-marquee-include-tiles, #tool-marquee-include-npcs)[aria-pressed="true"] img {
  transform: translate(1px, 1px);
}

:is(#tool-marquee-include-tiles, #tool-marquee-include-npcs):disabled img {
  filter: grayscale(1) opacity(0.55) drop-shadow(1px 1px var(--button-highlight));
}

.tool-option-buttons button:disabled,
.tool-options label:has(input:disabled) {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

@container tool-palette (max-width: 39px) {
  .tool-options label {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: stretch;
    gap: 0;
    text-align: center;
  }

  .tool-options label > span {
    min-width: 0;
    overflow: hidden;
  }

  .tool-options label > input[type="checkbox"] {
    justify-self: center;
  }
}

.tool-palette-resize {
  position: absolute;
  z-index: 2;
  touch-action: none;
}

.tool-palette-resize-left,
.tool-palette-resize-right {
  top: 7px;
  bottom: 7px;
  width: 4px;
  cursor: ew-resize;
}

.tool-palette-resize-left {
  left: 0;
}

.tool-palette-resize-right {
  right: 0;
}

.tool-palette-resize-top-left,
.tool-palette-resize-top-right,
.tool-palette-resize-bottom-left,
.tool-palette-resize-bottom-right {
  width: 7px;
  height: 7px;
}

.tool-palette-resize-top-left {
  top: 0;
  left: 0;
  cursor: nwse-resize;
}

.tool-palette[data-dock="left"],
.tool-palette[data-dock="right"],
.tool-palette[data-dock="top"],
.tool-palette[data-dock="bottom"] {
  position: relative;
  inset: auto;
  max-width: none;
  height: 100%;
  box-shadow:
    inset -1px -1px var(--button-shadow),
    inset 1px 1px var(--button-highlight);
}

.editor:not(.source-mode):not(.map-mode) > .tool-palette[data-dock="left"] {
  grid-column: 1;
  grid-row: 2 / 4;
}

.editor:not(.source-mode):not(.map-mode) > .tool-palette[data-dock="right"] {
  grid-column: 2;
  grid-row: 2 / 4;
}

.editor > .tool-palette[data-dock="top"] {
  grid-column: 1 / 3;
  grid-row: 1;
}

.editor > .tool-palette[data-dock="bottom"] {
  grid-column: 1 / 3;
  grid-row: 2;
}

.tool-palette[data-dock="left"] .tool-palette-titlebar,
.tool-palette[data-dock="right"] .tool-palette-titlebar {
  position: relative;
  display: block;
  height: 7px;
  margin-bottom: 2px;
  padding: 0;
  background: transparent;
}

.tool-palette[data-dock="left"] .tool-palette-titlebar::before,
.tool-palette[data-dock="right"] .tool-palette-titlebar::before {
  position: absolute;
  top: 2px;
  right: 2px;
  left: 2px;
  height: 3px;
  border-top: 1px solid var(--button-highlight);
  border-bottom: 1px solid var(--button-shadow);
  background: var(--button-face);
  content: "";
}

.tool-palette[data-dock="top"],
.tool-palette[data-dock="bottom"] {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  column-gap: 4px;
  width: auto;
  padding: 2px 3px 2px 1px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  box-shadow: none;
}

.tool-palette[data-dock="top"] .tool-palette-titlebar,
.tool-palette[data-dock="bottom"] .tool-palette-titlebar {
  position: relative;
  display: block;
  width: 7px;
  height: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}

.tool-palette[data-dock="top"] .tool-palette-titlebar::before,
.tool-palette[data-dock="bottom"] .tool-palette-titlebar::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 2px;
  width: 3px;
  border-right: 1px solid var(--button-shadow);
  border-left: 1px solid var(--button-highlight);
  background: var(--button-face);
  content: "";
}

.tool-palette[data-dock="top"] .tool-palette-client,
.tool-palette[data-dock="bottom"] .tool-palette-client {
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 0;
}

.tool-palette[data-dock="top"] .tool-palette-grid,
.tool-palette[data-dock="bottom"] .tool-palette-grid {
  flex: 0 0 auto;
  width: auto;
}

.tool-palette[data-dock="top"] .tool-palette-group,
.tool-palette[data-dock="bottom"] .tool-palette-group {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: 25px;
  grid-auto-rows: 25px;
  column-gap: 2px;
  width: max-content;
  height: 25px;
  padding: 0;
}

.tool-palette[data-dock="top"] .workbench-tool,
.tool-palette[data-dock="bottom"] .workbench-tool,
.tool-palette[data-dock="top"] .tool-option-buttons button,
.tool-palette[data-dock="bottom"] .tool-option-buttons button {
  border-color: transparent;
  box-shadow: none;
  background: transparent;
}

.tool-palette[data-dock="top"] .workbench-tool:hover:not(:disabled),
.tool-palette[data-dock="bottom"] .workbench-tool:hover:not(:disabled),
.tool-palette[data-dock="top"] .workbench-tool:focus-visible,
.tool-palette[data-dock="bottom"] .workbench-tool:focus-visible,
.tool-palette[data-dock="top"] .tool-option-buttons button:hover:not(:disabled),
.tool-palette[data-dock="bottom"] .tool-option-buttons button:hover:not(:disabled),
.tool-palette[data-dock="top"] .tool-option-buttons button:focus-visible,
.tool-palette[data-dock="bottom"] .tool-option-buttons button:focus-visible {
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  outline: 0;
}

.tool-palette[data-dock="top"] .workbench-tool:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"]),
.tool-palette[data-dock="bottom"] .workbench-tool:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"]),
.tool-palette[data-dock="top"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"]),
.tool-palette[data-dock="bottom"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"]) {
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.tool-palette[data-dock="top"] .workbench-tool:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"])::before,
.tool-palette[data-dock="bottom"] .workbench-tool:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"])::before,
.tool-palette[data-dock="top"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"])::before,
.tool-palette[data-dock="bottom"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"])::before,
.tool-palette[data-dock="top"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"])::after,
.tool-palette[data-dock="bottom"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"])::after,
.tool-palette[data-dock="top"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"]) img,
.tool-palette[data-dock="bottom"] .tool-option-buttons button:active:where([data-primary-press]):not(:disabled):not([aria-pressed="true"]) img {
  transform: translate(1px, 1px);
}

.tool-palette[data-dock="top"] .workbench-tool[aria-pressed="true"],
.tool-palette[data-dock="bottom"] .workbench-tool[aria-pressed="true"],
.tool-palette[data-dock="top"] .tool-option-buttons button[aria-pressed="true"],
.tool-palette[data-dock="bottom"] .tool-option-buttons button[aria-pressed="true"] {
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  box-shadow: none;
  background: var(--button-light);
}

.tool-palette[data-dock="top"] .workbench-tool[aria-pressed="true"]:hover:not(:disabled),
.tool-palette[data-dock="bottom"] .workbench-tool[aria-pressed="true"]:hover:not(:disabled),
.tool-palette[data-dock="top"] .tool-option-buttons button[aria-pressed="true"]:hover:not(:disabled),
.tool-palette[data-dock="bottom"] .tool-option-buttons button[aria-pressed="true"]:hover:not(:disabled) {
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  box-shadow: none;
  background: var(--button-light);
}

.tool-palette[data-dock="top"] .tool-palette-details,
.tool-palette[data-dock="bottom"] .tool-palette-details {
  display: flex;
  align-items: center;
  gap: var(--toolbar-group-gap);
  width: auto;
  height: 100%;
  padding: 0 0 0 var(--toolbar-group-gap);
  border-top: 0;
  border-left: 0;
  box-shadow: none;
}

.tool-palette[data-dock="top"] .tool-options,
.tool-palette[data-dock="bottom"] .tool-options {
  width: auto;
  padding: 0;
  border-top: 0;
  border-left: 0;
  box-shadow: none;
}

.tool-palette[data-dock="top"] .tool-option-buttons,
.tool-palette[data-dock="bottom"] .tool-option-buttons {
  grid-auto-rows: 25px;
  column-gap: 2px;
  height: 25px;
  padding: 0;
}

.tool-palette[data-dock="top"] .tool-options section[data-tool-options="marquee"] .tool-option-buttons,
.tool-palette[data-dock="bottom"] .tool-options section[data-tool-options="marquee"] .tool-option-buttons {
  display: flex;
  width: max-content;
}

.tool-palette[data-dock="top"] #tool-marquee-include-tiles,
.tool-palette[data-dock="bottom"] #tool-marquee-include-tiles {
  margin-left: calc(var(--toolbar-group-gap) - 2px);
}

.tool-palette[data-dock="top"] .tool-options section:not([data-tool-options="marquee"]) .tool-option-buttons,
.tool-palette[data-dock="bottom"] .tool-options section:not([data-tool-options="marquee"]) .tool-option-buttons {
  grid-template-columns: repeat(2, 25px);
  width: 52px;
}

.tool-palette:not([data-dock="floating"]) .tool-palette-resize {
  display: none;
}

.tool-palette-resize-top-right {
  top: 0;
  right: 0;
  cursor: nesw-resize;
}

.tool-palette-resize-bottom-left {
  bottom: 0;
  left: 0;
  cursor: nesw-resize;
}

.tool-palette-resize-bottom-right {
  right: 0;
  bottom: 0;
  cursor: nwse-resize;
}

#board[data-workbench-tool="move"] {
  cursor: grab;
}

#board[data-workbench-tool="move"][data-dragging="true"] {
  cursor: grabbing;
}

#board[data-workbench-tool="eyedropper"] {
  cursor: copy;
}

#board[data-workbench-tool="marquee"][data-marquee-mode="add"][data-cursor="default"] {
  cursor: copy;
}

#board[data-workbench-tool="marquee"][data-marquee-mode="subtract"][data-cursor="default"] {
  cursor: default;
}

#board[data-workbench-tool="fill"] {
  cursor: cell;
}

#board[data-workbench-tool="pen"],
#board[data-workbench-tool="stamp"],
#board[data-workbench-tool="line"] {
  cursor: crosshair;
}

#board[data-brush-anchor="true"] {
  cursor: crosshair;
}

#board[data-cursor="adaptive-add"] {
  cursor: copy;
}

#board[data-workbench-tool="zoom"] {
  cursor: zoom-in;
}

@media (prefers-reduced-motion: reduce) {
  .tool-palette {
    transition: none;
  }
  .classic-select-popup:not([hidden]),
  .object-list-popup:not([hidden]) {
    animation: none;
  }
}

.folder-alert-copy p {
  margin: 0;
  line-height: 18px;
  overflow-wrap: anywhere;
}

.folder-alert-icon {
  position: static;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  width: 80px;
  height: 50px;
  image-rendering: pixelated;
}

.folder-alert-privacy {
  margin-top: 10px !important;
  color: #333;
}

.folder-alert-actions,
.question-alert-actions {
  display: flex;
  grid-column: 1 / 3;
  grid-row: 2;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  min-height: 24px;
}

.folder-alert-actions .classic-push-button,
.question-alert-actions .classic-push-button {
  position: static;
  box-sizing: border-box;
  flex: 0 0 auto;
}

#level-folder-choose,
#gmap-dependencies-select-files {
  width: 128px;
}

#level-folder-not-now,
#gmap-dependencies-open-partial {
  width: 84px;
}

.question-alert-icon {
  position: static;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  width: 32px;
  height: 32px;
  image-rendering: pixelated;
}

.question-alert-message {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  margin: 0;
  padding-top: 2px;
  line-height: 18px;
  overflow-wrap: anywhere;
}

#gmap-level-load-yes {
  width: 75px;
}

#gmap-level-load-folder {
  width: 120px;
}

#gmap-level-load-no {
  width: 75px;
}

#gmap-level-load-ok,
#message-popup-ok {
  width: 75px;
}

#graal-folder-reconnect,
#graal-folder-reconnect-not-now {
  min-width: 88px;
  width: auto;
}

.world-dialog-client {
  display: grid;
  height: auto;
  padding: 12px;
  row-gap: 10px;
}

.world-preset-row {
  display: grid;
  grid-template-columns: 52px minmax(180px, 1fr) auto;
  align-items: center;
  gap: 6px;
}

.world-preset-actions {
  display: flex;
  gap: 2px;
}

.world-preset-actions .object-speed-button,
.tiledefs-panel-tools .classic-push-button,
.world-tiledefs-setting .classic-push-button,
.tiledefs-dialog-actions .classic-push-button,
.import-worlds-actions .classic-push-button {
  position: static;
}

.world-preset-actions .object-speed-button {
  width: var(--classic-control-height);
  height: var(--classic-control-height);
}

.graal-folder-dialog-client {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: auto;
  padding: 12px;
}

.editor-settings-pages {
  display: grid;
}

.classic-tab-panel.editor-settings-pages {
  /* Match the reference property-sheet gap after the legend lifts its border. */
  padding-top: 7px;
  padding-bottom: 14px;
}

.editor-settings-page {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  /* Include the sheet border so each visible fieldset gap matches its top inset. */
  gap: 9px;
}

.editor-settings-page[aria-hidden="true"] {
  visibility: hidden;
  pointer-events: none;
}

.backup-settings-page fieldset { margin: 0; padding: 10px; min-width: 0; }
.backup-settings-page p { margin: 0 0 10px; line-height: 1.4; overflow-wrap: anywhere; }
.backup-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.backup-settings-page .classic-push-button { position: static; width: auto; padding: 2px 10px; }

.hotkey-settings-page { min-width: 0; gap: 12px; padding-top: 3px; }
.hotkey-settings-page .classic-push-button { position: static; }
.hotkey-category-row { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: 6px; }
.hotkey-category { position: relative; width: 100%; min-width: 0; }
.hotkey-list-heading, .hotkey-command {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 0;
  align-items: center;
}
.hotkey-list-heading { position: sticky; top: 0; z-index: 2; height: var(--classic-table-header-height); align-items: stretch; background: var(--button-face); }
.hotkey-list-frame { height: 0; min-height: 140px; flex: 1; }
.hotkey-list { height: 100%; }
.hotkey-command {
  width: 100%; height: var(--classic-table-row-height); padding: 0;
  border: 0; box-shadow: none; border-radius: 0; text-align: left;
  background: var(--window); color: var(--window-text); white-space: nowrap;
}
.hotkey-command[hidden] { display: none; }
.hotkey-command > span { min-width: 0; height: var(--classic-table-row-height); overflow: hidden; text-overflow: ellipsis; padding: 1px var(--classic-table-cell-inset) 2px; border-bottom: 1px solid var(--classic-table-grid-color); line-height: 16px; }
.hotkey-command > .hotkey-command-name { display: flex; align-items: center; gap: 6px; border-right: 1px solid var(--classic-table-grid-color); }
.hotkey-command-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.hotkey-command-icon { display: grid; place-items: center; flex: none; width: 16px; height: 16px; }
.hotkey-command-icon img { width: 16px; height: 16px; object-fit: scale-down; image-rendering: pixelated; }
.hotkey-redo-icon { transform: scaleX(-1); }
.hotkey-command[aria-selected="true"]:focus-within { background: var(--text-highlight); color: var(--text-highlight-text); }
.hotkey-command:focus-visible { outline: 0; }
.hotkey-command > .hotkey-shortcuts { display: flex; align-items: center; gap: 0; padding: 0 calc(2px + var(--classic-table-end-padding)) 0 calc(var(--classic-table-cell-inset) - 3px); border-right: 0; }
.hotkey-shortcuts > button { height: 100%; }
.hotkey-binding {
  position: static; height: var(--classic-table-row-height); min-width: 0; padding: 1px 3px;
  border: 0; border-radius: 0; box-shadow: none; background: transparent;
  color: inherit; white-space: nowrap; font: inherit; text-align: left;
}
.hotkey-binding { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.hotkey-binding:hover { outline: 1px solid currentColor; outline-offset: -1px; }
.hotkey-binding:focus-visible { outline: 1px dotted currentColor; outline-offset: -1px; }
.hotkey-binding[data-recording="true"] { background: var(--window); color: #000; outline: 1px dotted #000; }
.hotkey-binding[data-conflict="true"] { color: #a00000; outline: 1px solid #a00000; }
.hotkey-tooltip { position: fixed; inset: auto; max-width: min(290px, calc(100vw - 12px)); margin: 0; padding: 4px 6px; border: 1px solid #000; background: #ffffe1; color: #000; font: 12px/16px Tahoma, sans-serif; pointer-events: none; }
.hotkey-tooltip:not([hidden]) { will-change: filter; }
.hotkey-tooltip[hidden] { display: none; }
.hotkey-shortcut-menu { inset: auto; margin: 0; }
.hotkey-reset-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 0; }

.display-effects-group,
.display-toolbars-group {
  margin: 0;
  padding: 6px 10px 10px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.display-effects-group legend,
.display-toolbars-group legend {
  margin-left: 4px;
  padding: 0 3px;
}

.editor-setting-row {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 20px;
}

.editor-setting-row input {
  margin: 0;
}

.world-preset-label {
  display: block;
}

#world-preset,
[data-classic-select-for="world-preset"] {
  box-sizing: border-box;
  position: relative;
  width: 100%;
}

.world-dialog-body {
  display: grid;
  grid-template-columns: 426px minmax(0, 1fr);
  align-items: stretch;
  gap: 10px;
}

.world-preview-group,
.world-preview-settings-group {
  margin: 0;
}

.entity-view-options,
.world-preview-group,
.world-preview-settings-group {
  padding: 8px 10px 10px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.world-preview-group {
  display: grid;
  align-content: start;
}

.entity-view-options legend,
.world-preview-group legend,
.world-preview-settings-group legend,
.world-preview-level-group legend {
  margin-left: 4px;
  padding: 0 3px;
}

.world-dialog-side {
  display: grid;
  grid-template-rows: 1fr;
}

.world-preview-screen {
  position: relative;
  overflow: hidden;
  width: fit-content;
  padding: 2px;
  background: #000;
  box-shadow:
    inset 1px 1px var(--button-dark-shadow),
    inset -1px -1px var(--button-highlight),
    inset 2px 2px var(--button-shadow),
    inset -2px -2px var(--button-light);
}

#world-preview-canvas {
  display: block;
  width: 400px;
  height: 320px;
  image-rendering: pixelated;
}

#world-preview-status {
  position: absolute;
  inset: 50% 16px auto;
  margin: 0;
  color: #fff;
  text-align: center;
  text-shadow: 1px 1px #000;
  transform: translateY(-50%);
}

#world-preview-status:empty {
  display: none;
}

.world-preview-settings-group {
  display: grid;
  align-content: start;
  row-gap: 7px;
}

.world-preview-settings-group > p {
  margin: 0 0 3px;
  font-size: 12px;
  line-height: 15px;
}

.world-preview-setting-row {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: center;
  gap: 4px;
  min-height: 18px;
  color: #000;
  text-shadow: none;
}

.world-preview-setting-row input {
  margin: 0;
}

.world-preview-setting-row span {
  min-width: 0;
}

.world-preview-setting-row:has(input:disabled) span {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.world-image-setting input[type="text"] {
  box-sizing: border-box;
  width: 100%;
  height: var(--classic-control-height);
}

.world-settings-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  height: auto;
  margin: 2px 0 0;
  padding: 8px 10px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  column-gap: 12px;
  row-gap: 4px;
}

.world-settings-group legend {
  margin-left: 4px;
  padding: 0 3px;
}

.world-settings-group > .world-resource-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) 78px;
  grid-template-rows: 20px 24px;
  align-items: center;
  min-width: 0;
  min-height: 48px;
  column-gap: 6px;
}

.world-settings-group .world-resource-row > input[type="checkbox"] {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
}

.world-settings-group .world-resource-row > label {
  grid-column: 2 / 4;
  grid-row: 1;
  line-height: 18px;
}

.world-settings-group .world-resource-row > [data-world-summary] {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  overflow: hidden;
  color: #555;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.classic-combobox-value em,
.classic-select-option em {
  font-style: italic;
}

.world-settings-group .world-summary-setting > [data-world-summary] {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}

.world-settings-group .world-resource-row .classic-push-button {
  grid-column: 3;
  grid-row: 2;
  position: static;
  width: 78px;
}

.world-settings-group .world-image-setting input[type="text"] {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
}

.world-settings-group > .world-summary-setting {
  grid-template-rows: 22px;
  min-height: 22px;
}

.world-settings-group .world-resource-row:has(input[data-world-setting]:disabled) {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.world-settings-group .world-resource-row:has(input[data-world-setting]:disabled) [data-world-summary] {
  color: var(--button-shadow);
}

.graal-folder-information,
.local-folders-group {
  margin: 0;
  padding: 6px 10px 10px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.graal-folder-information legend,
.local-folders-group legend {
  margin-left: 4px;
  padding: 0 3px;
}

.graal-folder-information p,
.local-folders-group p {
  margin: 0 0 8px;
  color: #333;
  line-height: 17px;
}

.graal-folder-information .graal-folder-guidance {
  margin-bottom: 0;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.local-folder-list-row {
  display: grid;
  gap: 10px;
}

.graal-folder-list-frame {
  position: relative;
  width: 100%;
  height: 102px;
}

.graal-folder-list {
  display: flex;
  flex-direction: column;
  padding: 1px;
}

.graal-folder-list-item {
  display: flex;
  flex: 0 0 20px;
  align-items: center;
  width: 100%;
  min-width: 0;
  height: 20px;
  margin: 0;
  padding: 1px 3px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: var(--window);
  color: #000;
  font: inherit;
  line-height: 18px;
  text-align: left;
  white-space: nowrap;
}

.graal-folder-list-item[aria-selected="true"] {
  outline: 1px dotted var(--text-highlight-text);
  outline-offset: -2px;
  background: var(--text-highlight);
  color: var(--text-highlight-text);
  text-shadow: none;
}

.graal-folder-list-item[data-reload-flash="true"][aria-selected="true"] {
  animation: graal-folder-reload-flash 320ms steps(1, end) 1;
}

@keyframes graal-folder-reload-flash {
  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

.graal-folder-list-item[data-disconnected="true"]:not([aria-selected="true"]) {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.graal-folder-list-item[data-disconnected="true"] {
  font-style: italic;
}

.graal-folder-list-icon {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin-right: 4px;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAIVBMVEX/71L/3lL/1lL/zlL/xlJzSgD/vVL/tVL///+tra3///8q+aJhAAAAC3RSTlP/////////////AEpPAfIAAAAJcEhZcwAACxMAAAsTAQCanBgAAAYhaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSAxMC4wLWMwMDAgNzkuZDIwZTQ2NjMwLCAyMDI1LzEyLzA5LTAyOjExOjIzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjcuMTAgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNi0wOC0xN1QwMzozMjozNCswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjYtMDktMDJUMTQ6MDk6MTIrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjYtMDktMDJUMTQ6MDk6MTIrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmQ3OTk4NGQ1LTk4NzEtNjk0Ni05YzdmLTQ5YTYzZTU3ZTdlYSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmQzODhlMDIxLWVjMDMtZDA0YS1hNWEwLWE2NzI5MmYyYWQ1NSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmU2MzY2ZTE3LTdkOTYtODM0Ni1iODlhLWRkZGZhYWNiZDA4MCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZTYzNjZlMTctN2Q5Ni04MzQ2LWI4OWEtZGRkZmFhY2JkMDgwIiBzdEV2dDp3aGVuPSIyMDI2LTA4LTE3VDAzOjMyOjM0KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuMTAgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gaW1hZ2UvYm1wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDc5OTg0ZDUtOTg3MS02OTQ2LTljN2YtNDlhNjNlNTdlN2VhIiBzdEV2dDp3aGVuPSIyMDI2LTA5LTAyVDE0OjA5OjEyKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjcuMTAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtQh+sUAAABcSURBVCjPrdHLDsAgCERR+qAd/P8PLgkdJE1IN56lXmNQGT9kSWDqrCyaq4GK07I/ANgMNAI3zwcGG0VhIHuDnRjkXYjgoC44qQsu6oKbmmBo+s6J5qlzTqz4rAfWjxFQM3b5+AAAAABJRU5ErkJggg==");
  background-position: 0 0;
  background-repeat: no-repeat;
  image-rendering: pixelated;
}

.graal-folder-list-item[data-disconnected="true"] .graal-folder-list-icon {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAElBMVEX/AACAAAD///9/f38AAAD///+yQQOLAAAABnRSTlP//////wCzv6S/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGIWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgMTAuMC1jMDAwIDc5LmQyMGU0NjYzMCwgMjAyNS8xMi8wOS0wMjoxMToyMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI3LjEwIChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjYtMDgtMTdUMDM6MzI6MzQrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDI2LTA5LTAyVDEyOjAzOjUwKzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI2LTA5LTAyVDEyOjAzOjUwKzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NzkxMjdhZS05N2E2LWMwNGYtODMxYy1lYTA1ZDFkNDU2NDUiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo5ZTA0ODI0ZS0wMTgyLTFhNDYtYjY1MS1kZDY1ZDIwMTNhZjQiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxZTRjNDIzMC0zMWEwLWE5NDMtODBiNi03ODViNjFiMTcwYjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNGM0MjMwLTMxYTAtYTk0My04MGI2LTc4NWI2MWIxNzBiMSIgc3RFdnQ6d2hlbj0iMjAyNi0wOC0xN1QwMzozMjozNCswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI3LjEwIChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL2JtcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjY3OTEyN2FlLTk3YTYtYzA0Zi04MzFjLWVhMDVkMWQ0NTY0NSIgc3RFdnQ6d2hlbj0iMjAyNi0wOS0wMlQxMjowMzo1MCswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI3LjEwIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4rbgJLAAAAlUlEQVQoFQXBgRHAMAgEIPzU/Qf2YgrVMNAALARUMwBtGktYYvMx9NbLGLBybV5ZbgytlG6wcq2VB0EDBsh1QMFZDdTAWet4AD7gnvs1wAFy4QMiAAAcCBCBGUA8sAIoAEAcrJs22LcYLQr2gCcYSjEArL0sJ5rxPEMjlnhn16OaAWhgCctzVMNAA7gFj0M1AAC4cOAHVK5GKS0VRD0AAAAASUVORK5CYII=");
}

.graal-folder-list-name {
  flex: 1 1 auto;
  min-width: 0;
  padding-inline-end: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.graal-folder-list-empty {
  padding: 2px 4px;
  color: var(--button-shadow);
}

.local-folder-actions {
  display: flex;
  justify-content: space-between;
}

.local-folder-actions .classic-push-button {
  position: static;
  width: 116px;
  height: 24px;
}

.local-folders-group .local-folders-unsupported {
  margin-top: 6px;
  color: #7c1d1d;
}

#world-description {
  width: 268px;
  min-height: 30px;
  margin: 8px 0 0;
  color: #333;
  font-size: 11px;
  line-height: 14px;
}

.world-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2px;
}

.world-dialog-actions .classic-push-button {
  position: static;
}

.world-dialog-confirm-actions {
  display: flex;
  gap: 7px;
}

.world-dialog-confirm-actions .classic-push-button {
  width: 82px;
}

.world-edit-icon {
  display: block;
  width: 16px;
  height: 16px;
  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAMAAABA3o1rAAAAFVBMVEUA/////wD/AAD///9/f38AAAD///9z6bFvAAAAB3RSTlP///////8AGksDRgAAAAlwSFlzAAALEwAACxMBAJqcGAAABiFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDEwLjAtYzAwMCA3OS5kMjBlNDY2MzAsIDIwMjUvMTIvMDktMDI6MTE6MjMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCAyNy4xMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI2LTA4LTE3VDAzOjMyOjM0KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNi0wOC0zMVQxMzowMDo0NyswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNi0wOC0zMVQxMzowMDo0NyswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzMzNGQyNzAtZGE4Zi0xYTQ5LTlmZjAtYWJhN2M0NDc1ZjhhIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NTQ5OTZjNjQtNTdiZS0zMTRjLTkwNTUtM2UzYTFlZjdhZDA2IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6M2FkYjkwODAtYzBhNS0zNTQxLWE1MjctODE2ZWFjMTZhYzJiIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozYWRiOTA4MC1jMGE1LTM1NDEtYTUyNy04MTZlYWMxNmFjMmIiIHN0RXZ0OndoZW49IjIwMjYtMDgtMTdUMDM6MzI6MzQrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNy4xMCAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBpbWFnZS9ibXAgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3MzM0ZDI3MC1kYThmLTFhNDktOWZmMC1hYmE3YzQ0NzVmOGEiIHN0RXZ0OndoZW49IjIwMjYtMDgtMzFUMTM6MDA6NDcrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNy4xMCAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1GtBlAAAAKZJREFUKM9NkUGSAyAMw2Bl6/9P7iEpXTPDcBBOnBy12pGqRjNSj/avFoAhkhgAEj1qbxdgCBL24XEIaClLGMzcx0fAayNGIUmO0+EQ45AkRhVy2l5uX5UkwhCJOaeXDQnQZKyTqXJOuXu6gE656Dqsx+0XmEGZAd7//gBhpvHPYSf1HESmyV4uL+ZsQNYop3UjdGNOCMnEnAXuf6ggBBThAU+78acPDe4Imvh/w2gAAAAASUVORK5CYII=") 0 0 no-repeat;
  image-rendering: pixelated;
}

#world-edit:active:where([data-primary-press]):not(:disabled) .world-edit-icon {
  transform: translate(1px, 1px);
}

#world-edit:disabled .world-edit-icon {
  filter: grayscale(1) opacity(0.55) drop-shadow(1px 1px var(--button-highlight));
}

.world-edit-dialog {
  width: min(650px, calc(100vw - 20px));
  max-height: calc(100vh - 20px);
  font-size: 14px;
}

.world-edit-dialog-client {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.world-edit-name-row {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
}

.world-edit-name-row input {
  box-sizing: border-box;
  width: 100%;
  height: var(--classic-control-height);
}

.world-preview-level-group {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) repeat(3, 84px);
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 8px 10px 9px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.world-preview-level-group > input[type="text"] {
  box-sizing: border-box;
  width: 100%;
  height: var(--classic-control-height);
}

.world-preview-level-group .classic-push-button {
  position: static;
  width: 100%;
  padding-inline: 4px;
}

.world-preview-position-dialog {
  width: min(430px, calc(100vw - 20px));
}

.world-preview-position-dialog-client {
  display: grid;
  gap: 8px;
  padding: 12px;
}

.world-edit-preview-screen {
  position: relative;
  overflow: hidden;
  width: 400px;
  height: 320px;
  padding: 2px;
  background: #000;
  box-shadow:
    inset 1px 1px var(--button-dark-shadow),
    inset -1px -1px var(--button-highlight),
    inset 2px 2px var(--button-shadow),
    inset -2px -2px var(--button-light);
}

#world-edit-preview-canvas {
  display: block;
  width: 400px;
  height: 320px;
  cursor: grab;
  image-rendering: pixelated;
  touch-action: none;
}

#world-edit-preview-canvas:focus {
  outline: 1px dotted #fff;
  outline-offset: -4px;
}

#world-edit-preview-canvas.is-dragging {
  cursor: grabbing;
}

#world-edit-preview-canvas[aria-disabled="true"] {
  cursor: default;
}

#world-edit-preview-status {
  position: absolute;
  inset: 50% 16px auto;
  margin: 0;
  color: #fff;
  text-align: center;
  text-shadow: 1px 1px #000;
  pointer-events: none;
  transform: translateY(-50%);
}

#world-edit-preview-status:empty {
  display: none;
}

.world-preview-position-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.world-preview-position-info > p {
  margin: 0;
  color: #555;
  font-size: 11px;
  line-height: 14px;
}

#world-edit-preview-position-value {
  flex: 0 0 auto;
  min-width: 94px;
  padding: 2px 5px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  background: #fff;
  font-family: "Courier New", monospace;
  font-size: 12px;
  line-height: 15px;
  text-align: right;
}

.world-preview-position-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.world-preview-position-actions .classic-push-button {
  position: static;
  width: 76px;
}

.world-edit-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.world-edit-actions .classic-push-button {
  position: static;
  width: 76px;
}

.graal-folder-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 7px;
}

.graal-folder-dialog-actions .classic-push-button {
  position: static;
  width: 76px;
}

.save-changes-dialog {
  width: min(350px, calc(100vw - 20px));
}

.save-format-dialog {
  width: 330px;
  height: 205px;
}

.save-format-group {
  position: absolute;
  top: 10px;
  left: 12px;
  width: 302px;
  height: 119px;
  margin: 0;
  padding: 18px 16px 10px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.save-format-group legend {
  margin-left: 4px;
  padding: 0 3px;
}

.save-format-group label {
  display: block;
  height: 27px;
  white-space: nowrap;
}

.save-format-group input {
  margin: 0 7px 0 0;
  vertical-align: -2px;
}

.save-format-save,
.save-format-cancel {
  top: 143px;
  width: 82px;
}

.save-format-save {
  left: 145px;
}

.save-format-cancel {
  left: 233px;
}

.object-name-dialog {
  width: 365px;
  height: 206px;
}

.classic-field {
  padding: 2px 3px;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background: var(--window);
  color: #000;
}

.classic-list-view {
  position: absolute;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  background: var(--window);
}

.classic-list-view table {
  width: 100%;
  border-collapse: collapse;
  font: inherit;
}

.classic-list-header {
  flex: 0 0 21px;
  overflow: hidden;
}

.classic-list-body {
  min-height: 0;
  flex: 1 1 auto;
}

.classic-list-scroll {
  min-height: 0;
  overflow: auto;
}

.classic-list-view tr {
  display: grid;
  width: 100%;
}

.classic-list-view th {
  height: 21px;
  padding: 1px 4px;
  overflow: hidden;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  background: var(--button-face);
  font-weight: 400;
  text-align: left;
  white-space: nowrap;
}

.classic-list-view td {
  height: 18px;
  padding: 1px 4px;
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

.classic-list-view tr[aria-selected="true"] td {
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.edit-signs-dialog,
.sign-preview-dialog,
.link-list-dialog,
.link-options-dialog,
.entity-edit-dialog {
  /* Layout centering keeps classic borders crisp; translating half an odd
     window size composites the entire dialog between pixels. */
  position: fixed;
  inset: 0;
  margin: auto;
}

.edit-signs-dialog {
  width: 518px;
  height: 337px;
  z-index: 100;
  font-size: 14px;
}

.edit-signs-select-label,
.edit-signs-codes-label,
.edit-signs-x-label,
.edit-signs-y-label,
.link-list-label,
.link-file-label {
  position: absolute;
  height: 16px;
  line-height: 16px;
}

.edit-signs-select-label {
  top: 16px;
  left: 0;
  width: 305px;
  text-align: center;
}

.edit-signs-list-frame {
  top: 40px;
  left: 8px;
  width: 297px;
  height: 113px;
}

.edit-signs-list-frame tr {
  grid-template-columns: 70px minmax(0, 1fr);
}

.edit-signs-new,
.edit-signs-delete {
  top: 160px;
  width: 65px;
  height: 24px;
}

.edit-signs-new { left: 8px; }
.edit-signs-delete { left: 80px; }
.edit-signs-x-label { top: 164px; left: 160px; }
.edit-signs-y-label { top: 164px; left: 240px; }

.edit-signs-x,
.edit-signs-y {
  position: absolute;
  top: 160px;
  width: 49px;
  height: 24px;
}

.edit-signs-x { left: 176px; }
.edit-signs-y { left: 256px; }

.edit-signs-text-frame {
  position: absolute;
  top: 192px;
  left: 8px;
  width: 297px;
  height: 76px;
}

.edit-signs-text,
.edit-signs-codes {
  width: auto;
  height: auto;
  margin: 0;
  padding: 2px 3px;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: var(--window);
  color: #000;
  resize: none;
  font: inherit;
}

.edit-signs-codes-label {
  top: 20px;
  left: 320px;
}

.edit-signs-codes-frame {
  position: absolute;
  top: 44px;
  left: 312px;
  width: 193px;
  height: 224px;
}

.edit-signs-preview,
.edit-signs-close {
  top: 276px;
  width: 83px;
}

.edit-signs-dialog .edit-signs-preview {
  left: 307px;
  width: 97px;
  gap: 6px;
}

.edit-signs-close {
  left: 413px;
}

.sign-preview-dialog {
  width: 404px;
  height: 224px;
  z-index: 110;
  font-size: 14px;
}

.sign-preview-canvas {
  position: absolute;
  top: 8px;
  left: 8px;
  display: block;
  width: 384px;
  height: 144px;
  image-rendering: pixelated;
}

.sign-preview-pager {
  position: absolute;
  top: 160px;
  left: 8px;
  display: flex;
  width: 282px;
  height: 28px;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.sign-preview-pager[hidden] {
  display: none;
}

.sign-preview-pager .classic-push-button {
  position: static;
  height: 24px;
}

.sign-preview-previous,
.sign-preview-next {
  width: 76px;
}

.sign-preview-pager .classic-push-button:disabled {
  color: var(--button-shadow);
  text-shadow: 1px 1px var(--button-highlight);
}

.sign-preview-pager .classic-push-button:disabled:active:where([data-primary-press]) {
  border-color:
    var(--button-highlight)
    var(--button-dark-shadow)
    var(--button-dark-shadow)
    var(--button-highlight);
  padding: 1px 6px;
}

.sign-preview-page {
  width: 112px;
  text-align: center;
}

.sign-preview-close {
  top: 160px;
  left: 309px;
  width: 83px;
  height: 24px;
}

.link-list-dialog {
  width: 436px;
  height: 292px;
  z-index: 100;
  font-size: 14px;
}

.link-list-label {
  top: 16px;
  left: 0;
  width: 432px;
  text-align: center;
}

.link-list-frame {
  top: 40px;
  left: 8px;
  width: 417px;
  height: 185px;
}

.link-list-frame tr {
  grid-template-columns: 133px repeat(4, 35px) 70px minmax(0, 1fr);
}

.link-list-edit,
.link-list-load,
.link-list-delete,
.link-list-close {
  top: 232px;
}

.link-list-edit { left: 72px; width: 83px; }
.link-list-load { left: 160px; width: 89px; }
.link-list-delete { left: 256px; width: 91px; }
.link-list-close { left: 352px; width: 75px; }

.link-options-dialog {
  width: 357px;
  height: fit-content;
  z-index: 101;
  font-size: 13px;
}

.link-options-description {
  margin: 0;
  line-height: 16px;
}

.entity-properties-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: auto;
  padding: 12px;
}

.edit-baddy-dialog .entity-properties-form,
.edit-chest-dialog .entity-properties-form,
.edit-npc-dialog .entity-properties-form {
  /* Account for the legend above the group border, as in Editor Settings. */
  padding-top: 7px;
}

.classic-dialog .entity-properties-form > fieldset {
  position: relative;
  min-width: 0;
  margin: 0;
  padding: 8px 10px 10px;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.entity-properties-form > fieldset > legend {
  margin-left: 4px;
  padding: 0 3px;
}

.entity-properties-form label,
.entity-properties-form input,
.entity-properties-form .classic-select,
.entity-properties-form .classic-combobox,
.entity-properties-form .classic-push-button {
  position: static;
  min-width: 0;
}

.entity-properties-form .classic-combobox {
  position: relative;
}

.entity-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.entity-dialog-actions .classic-push-button {
  min-width: 75px;
}

.link-warp-field,
.link-destination-field {
  display: grid;
  align-items: center;
  gap: 8px;
}

.link-warp-field {
  grid-template-columns: repeat(4, max-content minmax(0, 1fr));
}

.link-file-row {
  display: grid;
  grid-template-columns: 15px max-content minmax(0, 1fr);
  align-items: center;
  gap: 6px;
}

.link-file-icon {
  width: 15px;
  height: 13px;
  image-rendering: pixelated;
}

.link-options-dialog input {
  width: 100%;
}

.link-destination-field {
  grid-template-columns: max-content minmax(0, 1fr);
}

.object-specification {
  position: absolute;
  top: 8px;
  left: 8px;
  width: 345px;
  height: 129px;
  margin: 0;
  padding: 0;
  border: 1px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
}

.object-specification legend {
  margin-left: 8px;
  padding: 0 3px;
}

.object-specification p {
  position: absolute;
  top: 11px;
  left: 23px;
  width: 289px;
  height: 49px;
  margin: 0;
}

.object-specification label {
  position: absolute;
  top: 70px;
  left: 23px;
  height: 16px;
  line-height: 16px;
}

#object-name-input {
  position: absolute;
  top: 67px;
  left: 103px;
  width: 217px;
  height: 24px;
  padding: 2px 3px;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background: var(--window);
  color: #000;
}

.object-name-ok,
.object-name-cancel {
  top: 144px;
  width: 75px;
}

.object-name-ok {
  left: 192px;
}

.object-name-cancel {
  left: 272px;
}

.save-changes-yes,
.save-changes-no,
.save-changes-cancel {
  width: 75px;
}

.edit-npc-dialog {
  position: fixed;
  top: 0;
  left: 0;
  width: 525px;
  height: 395px;
  min-width: 400px;
  border-width: 4px;
  min-height: 300px;
  max-width: calc(100vw - 16px);
  max-height: calc(100vh - 16px);
  margin: 0;
  resize: none;
  transform: none;
  z-index: 100;
  font-size: 13px;
}

.edit-npc-dialog::backdrop {
  background: transparent;
}

/* Height and padding are the standard bar's: this window is dragged by its
   title bar, which is all this rule is left for. */
.edit-npc-dialog .dialog-titlebar {
  cursor: default;
}

.edit-npc-group {
  display: flex;
  flex: 1;
  min-height: 0;
}

.edit-npc-dialog .entity-properties-form {
  height: calc(100% - 20px);
}

.text-search-dialog {
  width: min(480px, calc(100vw - 20px));
  height: fit-content;
}

.text-search-client {
  height: auto;
  padding: 12px;
}

.text-search-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px;
  min-height: calc(var(--classic-control-height) * 4 + 52px);
  gap: 10px 12px;
  padding: 14px 12px 10px;
}

.text-search-panel > :not(.text-search-actions) {
  grid-column: 1;
}

.text-search-row {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.text-search-row[hidden] {
  display: grid;
  visibility: hidden;
}

.text-search-actions button[hidden] {
  display: none;
}

.text-search-row input {
  width: 100%;
  min-width: 0;
  padding: 2px 4px;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background: var(--window);
}

.text-search-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.text-search-options label {
  display: flex;
  align-items: center;
}

.text-search-status {
  min-height: 16px;
  line-height: 16px;
}

.text-search-actions {
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 1 / span 4;
  gap: 8px;
}

.text-search-actions .classic-push-button {
  position: static;
  min-width: 80px;
}

.edit-npc-workspace {
  position: relative;
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, min(var(--edit-npc-left), calc(100% - 166px))) 8px minmax(158px, 1fr);
  min-width: 0;
  min-height: 0;
  z-index: 1;
}

.edit-npc-source,
.edit-npc-reference {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  min-height: 0;
}

.edit-npc-splitter {
  width: 8px;
  height: 100%;
  background: var(--button-face);
  cursor: ew-resize;
  touch-action: none;
}

.edit-npc-image-row {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) 75px;
  align-items: center;
  gap: 8px;
}

.edit-npc-image-label {
  line-height: 16px;
}

.edit-npc-image,
.edit-npc-status,
.edit-npc-script-frame,
.edit-npc-commands-frame {
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background: var(--window);
  color: #000;
}

.edit-npc-image {
  width: 100%;
  height: var(--classic-control-height);
  padding: 2px 3px;
}

.edit-npc-browse {
  width: 75px;
  height: var(--classic-control-height);
}

.edit-npc-image:focus,
.edit-npc-script:focus,
.edit-npc-status:focus,
.edit-npc-commands:focus {
  outline: 0;
}

.edit-npc-script-frame,
.edit-npc-commands-frame {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.edit-npc-script,
.edit-npc-commands {
  position: absolute;
  inset: 0 18px 18px 0;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: var(--window);
  color: #000;
  overflow: hidden;
}

.edit-npc-script {
  inset: 0 18px 18px 0;
}

.world-import-graal {
  width: 82px;
}

.tiledefs-dialog-client {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 7px;
  padding: 8px 10px 10px;
}

.tiledefs-workbook {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
}

.classic-tabs {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 1px;
  height: 20px;
  align-items: flex-end;
  padding-left: 2px;
}

.classic-tab {
  position: relative;
  z-index: 1;
  min-width: 80px;
  height: 19px;
  margin: 0;
  padding: 2px 10px 1px;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-face) var(--button-highlight);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 1px 1px var(--button-light), inset -1px 0 var(--button-shadow);
  background: var(--button-face);
  outline: 0;
}

.classic-tab[aria-selected="true"] {
  z-index: 3;
  /* Expand the Win9x selected edge without shifting labels or adjacent tabs.
     The extra width/padding cancels the two negative side margins. */
  min-width: 84px;
  height: 22px;
  margin-right: -2px;
  margin-bottom: -2px;
  margin-left: -2px;
  padding-top: 3px;
  padding-right: 12px;
  padding-left: 12px;
  border-bottom-color: var(--button-face);
  background: var(--button-face);
}

.classic-tab:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -6px;
}

.tiledefs-tab-count {
  font: inherit;
}

.classic-tab-panel {
  position: relative;
  z-index: 1;
  padding: 10px;
  padding-left: 11px;
  border: 2px solid;
  border-left-width: 1px;
  border-color: var(--button-highlight) var(--button-dark-shadow) var(--button-dark-shadow) var(--button-highlight);
  box-shadow: inset 1px 0 var(--button-light);
  background: var(--button-face);
}

.classic-tab:first-child[aria-selected="true"]::before {
  position: absolute;
  bottom: -1px;
  left: -1px;
  width: 2px;
  height: 2px;
  background: linear-gradient(
    to right,
    var(--button-highlight) 0 1px,
    var(--button-light) 1px 2px
  );
  content: "";
}

.tiledefs-panel {
  display: grid;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  grid-template-rows: 24px minmax(0, 1fr);
  gap: 6px;
}

.tiledefs-panel[hidden] {
  display: none;
}

.tiledefs-panel-tools {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}

.tiledefs-panel-tools .classic-push-button {
  position: static;
  flex: 0 0 76px;
  width: 76px;
  height: 23px;
}

.tiledefs-panel-tools span {
  overflow: hidden;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiledefs-grid-frame {
  position: relative;
  min-width: 0;
  min-height: 120px;
}

.tiledefs-grid-scroll {
  background: var(--window);
}

.tiledefs-grid {
  --classic-control-height: calc(var(--classic-table-row-height) - 1px);
  width: 100%;
  min-width: 0;
  border-spacing: 0;
  border-collapse: collapse;
  table-layout: fixed;
  user-select: none;
}

.hotkey-list-heading > span,
.tiledefs-grid thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  height: var(--classic-table-header-height);
  padding: 0;
  overflow: hidden;
  border: 0;
  box-shadow:
    inset 1px 1px var(--button-highlight),
    inset -1px -1px var(--button-shadow);
  background: var(--button-face);
  font-weight: 400;
  text-align: left;
  white-space: nowrap;
}

.hotkey-list-heading > span { padding: 2px var(--classic-table-cell-inset); }

.tiledefs-heading {
  position: relative;
  display: block;
  width: 100%;
  height: calc(var(--classic-table-header-height) - 1px);
  margin: 0;
  padding: 1px 15px 1px var(--classic-table-cell-inset);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #000;
  line-height: 19px;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  outline: 0;
}

.tiledefs-heading:active:where([data-primary-press]) {
  padding: 2px 14px 0 calc(var(--classic-table-cell-inset) + 1px);
}

.tiledefs-heading:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -3px;
}

.tiledefs-heading.is-sorted::after {
  position: absolute;
  right: 5px;
  width: 0;
  height: 0;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  content: "";
}

.tiledefs-heading.is-sorted[data-sort-direction="ascending"]::after {
  top: 6px;
  border-bottom: 5px solid #000;
}

.tiledefs-heading.is-sorted[data-sort-direction="descending"]::after {
  top: 8px;
  border-top: 5px solid #000;
}

.tiledefs-grid td {
  height: var(--classic-table-row-height);
  padding: 0;
  border: 1px solid var(--classic-table-grid-color);
  background: var(--window);
}

.tiledefs-grid thead th:first-child {
  width: 34px;
}

.tiledefs-grid thead th:nth-child(2) {
  width: 52px;
  text-align: center;
}

.tiledefs-addtiledef-grid thead th:nth-child(3),
.tiledefs-addtiledef2-grid thead th:nth-child(3) {
  width: 40%;
}

.tiledefs-addtiledef-grid thead th:nth-child(5) {
  width: calc(48px + var(--classic-table-end-padding));
}

.tiledefs-addtiledef2-grid thead th:nth-child(5) {
  width: 48px;
}

.tiledefs-addtiledef2-grid thead th:nth-child(6) {
  width: calc(48px + var(--classic-table-end-padding));
}

.tiledefs-enable-cell {
  text-align: center;
  vertical-align: middle;
}

.tiledefs-enable-cell input {
  display: block;
  width: 14px;
  height: 14px;
  margin: 0 auto;
}

.tiledefs-row-header {
  height: var(--classic-table-row-height);
  padding: 0;
  overflow: hidden;
  border: 1px solid;
  border-color: var(--button-highlight) var(--button-shadow) var(--button-shadow) var(--button-highlight);
  background: var(--button-face);
  font-weight: 400;
  text-align: right;
}

.tiledefs-row-number {
  display: block;
  width: 100%;
  height: calc(var(--classic-table-row-height) - 1px);
  margin: 0;
  padding: 1px var(--classic-table-cell-inset) 2px 2px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #000;
  line-height: 16px;
  text-align: right;
  text-overflow: clip;
  white-space: nowrap;
  outline: 0;
}

.tiledefs-row-number:focus-visible {
  outline: 1px dotted #000;
  outline-offset: -3px;
}

.tiledefs-cell-input {
  display: block;
  width: 100%;
  height: calc(var(--classic-table-row-height) - 1px);
  min-width: 0;
  margin: 0;
  padding: 1px var(--classic-table-cell-inset) 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #000;
  line-height: 16px;
  outline: 0;
}

.tiledefs-cell-input:focus {
  box-shadow: inset 0 0 0 1px var(--text-highlight);
  background: #fff;
}

.tiledefs-cell-input[aria-invalid="true"] {
  box-shadow: inset 0 0 0 2px #c00000;
}

.tiledefs-cell-input[type="number"] {
  appearance: textfield;
}

.tiledefs-cell-input[type="number"]::-webkit-inner-spin-button,
.tiledefs-cell-input[type="number"]::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.tiledefs-type-button.classic-combobox {
  position: relative;
  display: block;
  top: auto;
  left: auto;
  width: 100%;
  height: calc(var(--classic-table-row-height) - 1px);
  margin: 0;
  padding: 1px 20px 2px var(--classic-table-cell-inset);
  border: 0;
}

.tiledefs-type-button.classic-combobox::before {
  top: 1px;
  right: 1px;
  width: var(--classic-table-button-size);
  height: var(--classic-table-button-size);
}

.tiledefs-type-button.classic-combobox::after {
  top: 6px;
  right: 5px;
}

.tiledefs-type-button .classic-combobox-value {
  height: 16px;
  padding: 0;
  line-height: 16px;
}

.tiledefs-type-popup .classic-select-options {
  overflow: hidden;
}

.tiledefs-grid tr.is-disabled td {
  background: #efefef;
}

.tiledefs-grid tr.is-disabled .tiledefs-cell-input {
  color: var(--button-shadow);
}

.tiledefs-grid tr.is-disabled .tiledefs-type-button {
  color: var(--button-shadow);
}

.tiledefs-grid tr.is-selected td,
.tiledefs-grid tr.is-selected .tiledefs-row-header {
  background: var(--text-highlight);
}

.tiledefs-grid tr.is-selected .tiledefs-row-number,
.tiledefs-grid tr.is-selected .tiledefs-cell-input,
.tiledefs-grid tr.is-selected .tiledefs-type-button {
  color: var(--text-highlight-text);
}

.tiledefs-grid tr.is-selected .tiledefs-type-button {
  background: var(--text-highlight);
}

.tiledefs-grid tr.is-selected .tiledefs-type-button .classic-combobox-value {
  background: var(--text-highlight);
  color: var(--text-highlight-text);
}

.tiledefs-grid tr.is-selected .tiledefs-cell-input:focus {
  background: #fff;
  color: #000;
}

.tiledefs-grid tr.is-selected .tiledefs-row-header {
  border-color: var(--text-highlight);
}

.tiledefs-row-menu {
  inset: auto;
  min-width: 112px;
  margin: 0;
}

.tiledefs-row-menu button {
  padding: 2px 10px;
}

.tiledefs-grid .tiledefs-grid-empty {
  padding: 1px var(--classic-table-cell-inset) 2px;
  line-height: 16px;
  color: #666;
}

/* Breathing room belongs to the final cell so row borders and selection stay continuous. */
.tiledefs-grid td:last-child {
  padding-right: var(--classic-table-end-padding);
  border-right: 0;
}

.hotkey-list-heading > span:last-child,
.tiledefs-grid thead th:last-child {
  box-shadow:
    inset 1px 1px var(--button-highlight),
    inset 0 -1px var(--button-shadow);
}

.tiledefs-dialog-actions {
  display: grid;
  grid-template-columns: 104px 1fr 76px 76px;
  gap: 7px;
}

.import-worlds-dialog-client {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 10px;
  padding: 14px 14px 12px;
}

.import-worlds-dialog-client > img {
  width: 32px;
  height: 32px;
}

.import-worlds-dialog-client p {
  margin: 2px 0 8px;
  line-height: 18px;
}

.import-worlds-actions {
  display: flex;
  grid-column: 2;
  justify-content: end;
  gap: 7px;
}

.edit-npc-commands {
  padding: 6px 8px;
  font: 12px/14px "Times New Roman", serif;
  user-select: text;
  -webkit-user-select: text;
}

.rich-edit-scrollbar {
  position: absolute;
}

.rich-edit-vertical {
  top: 0;
  right: 0;
  bottom: 18px;
  width: 18px;
}

.rich-edit-horizontal {
  right: 18px;
  bottom: 0;
  left: 0;
  height: 18px;
}

.rich-edit-corner {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 18px;
  height: 18px;
  background: var(--button-face);
}

.npc-command-reference {
  width: max-content;
  min-width: 100%;
  white-space: nowrap;
}

.npc-reference-heading {
  margin: 10px 0 4px;
  font: inherit;
}

.npc-reference-heading:first-child {
  margin-top: 0;
}

.npc-reference-list {
  display: table;
  margin: 0 0 8px;
  border-collapse: collapse;
}

.npc-reference-entry {
  display: table-row;
}

.npc-reference-entry > dt,
.npc-reference-entry > dd {
  display: table-cell;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

.npc-reference-entry > dt {
  padding-right: 12px;
}

.npc-reference-note {
  margin: 0;
}

.rtf-bold {
  font-weight: 700;
}

.rtf-italic {
  font-style: italic;
}

.rtf-blue {
  color: #0000ff;
}

.rtf-fs-20 {
  font-size: 13.333px;
}

.rtf-symbol {
  font-family: Symbol, serif;
}

.edit-npc-actions {
  display: grid;
  grid-template-columns: repeat(2, 75px);
  gap: 8px;
}

.edit-npc-actions .classic-push-button {
  width: 75px;
  height: var(--classic-control-height);
}

.edit-npc-find {
  grid-column: 1 / -1;
}

.edit-npc-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 97px;
  align-items: center;
  gap: 12px;
}

.edit-npc-status {
  width: 100%;
  height: var(--classic-control-height);
  padding: 2px 3px;
  background: #ffff00;
}

.edit-npc-close {
  width: 97px;
}

.entity-edit-dialog {
  border-width: 4px;
  z-index: 100;
  font-size: 13px;
}

/* The height the standard bar leaves. These windows always wore the standard
   bar; the nineteen here was the other window's number, and it left their
   clients three pixels longer than the space under it. */
.entity-edit-dialog .dialog-client {
  position: relative;
  height: calc(100% - 20px);
}

.entity-edit-dialog fieldset {
  position: absolute;
  margin: 0;
  padding: 0;
}

.entity-edit-dialog fieldset p {
  position: absolute;
  margin: 0;
  line-height: 16px;
}

.entity-edit-dialog input {
  position: absolute;
  height: var(--classic-control-height);
  padding: 2px 3px;
  border: 2px solid;
  border-color: var(--button-shadow) var(--button-highlight) var(--button-highlight) var(--button-shadow);
  border-radius: 0;
  background: var(--window);
  color: #000;
  font: inherit;
}

.entity-edit-dialog label {
  position: absolute;
  height: 16px;
  line-height: 16px;
  white-space: nowrap;
}

.edit-baddy-dialog {
  width: 397px;
  height: fit-content;
}

.edit-baddy-dialog .dialog-client {
  height: auto;
}

.edit-baddy-dialog .entity-properties-form fieldset {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.edit-baddy-dialog fieldset p {
  position: static;
  grid-column: 1 / -1;
  margin: 0 0 4px;
}

.edit-baddy-dialog label,
.edit-baddy-dialog input {
  position: static;
}

.edit-baddy-dialog input,
.edit-baddy-dialog .classic-combobox {
  width: 100%;
}

.backup-actions .classic-push-button,
.world-import-graal,
.edit-npc-actions .classic-push-button,
.edit-signs-preview,
.entity-edit-dialog .entity-dialog-delete:not([hidden]),
.chest-signs-button:not([hidden]) {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.edit-baddy-dialog .entity-dialog-delete {
  width: 129px;
}

.backup-actions .classic-push-button img,
.world-import-graal img,
.edit-npc-actions .classic-push-button img,
.edit-signs-preview img,
.entity-edit-dialog .entity-dialog-delete img,
.chest-signs-button img {
  flex: none;
  image-rendering: pixelated;
}

.edit-baddy-dialog .entity-dialog-close {
  width: 75px;
}

.edit-chest-dialog {
  width: 424px;
  height: fit-content;
}

.edit-chest-dialog .dialog-client {
  height: auto;
}

.edit-chest-dialog .entity-properties-form fieldset {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) 97px;
  align-items: center;
  gap: 8px;
}

.edit-chest-dialog fieldset p {
  position: static;
  grid-column: 1 / -1;
  margin: 0 0 4px;
}

.edit-chest-dialog label,
.edit-chest-dialog input {
  position: static;
}

.edit-chest-dialog input,
.edit-chest-dialog .classic-combobox {
  width: 100%;
}

.chest-item-input,
.chest-sign-text-input,
.chest-custom-item-input {
  grid-column: 2 / -1;
}

.chest-signs-button {
  width: 97px;
}

.edit-chest-dialog .entity-dialog-delete {
  width: 123px;
}

.edit-chest-dialog .entity-dialog-close {
  width: 75px;
}

.dialog-resize-handle {
  position: absolute;
  z-index: 20;
  touch-action: none;
}

.resize-n,
.resize-s {
  right: 5px;
  left: 5px;
  height: 5px;
  cursor: ns-resize;
}

.resize-e,
.resize-w {
  top: 5px;
  bottom: 5px;
  width: 5px;
  cursor: ew-resize;
}

.resize-n {
  top: 0;
}

.resize-e {
  right: 0;
}

.resize-s {
  bottom: 0;
}

.resize-w {
  left: 0;
}

.resize-ne,
.resize-se,
.resize-sw,
.resize-nw {
  width: 8px;
  height: 8px;
}

.resize-ne {
  top: 0;
  right: 0;
  cursor: nesw-resize;
}

.resize-se {
  right: 0;
  bottom: 0;
  cursor: nwse-resize;
  background:
    linear-gradient(135deg, transparent 0 3px, var(--button-highlight) 3px 4px, transparent 4px),
    linear-gradient(135deg, transparent 0 5px, var(--button-dark-shadow) 5px 6px, transparent 6px);
}

.resize-sw {
  bottom: 0;
  left: 0;
  cursor: nesw-resize;
}

.resize-nw {
  top: 0;
  left: 0;
  cursor: nwse-resize;
}

.map-grid-overview[hidden] { display: none; }
.workbench-tool[hidden],
.tool-palette[data-terrain="true"] [data-workbench-placeholder] { display: none; }
.workbench-tool.terrain-tool::before { display: none; }
.workbench-tool.terrain-tool svg {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
}
.tool-options .terrain-brush-setting { display: grid; gap: 1px; }
.terrain-brush-setting input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 20px;
  padding: 1px;
  font: inherit;
}
.tool-options .terrain-brush-soft { font-size: 10px; }
.terrain-brush-soft input { width: 12px; height: 12px; margin: 1px; }
.tool-palette:is([data-dock="top"], [data-dock="bottom"])[data-terrain="true"] .tool-palette-grid {
  flex-basis: 322px;
  width: 322px;
}
.tool-palette:is([data-dock="top"], [data-dock="bottom"])[data-terrain="true"] .tool-palette-group {
  grid-template-columns: repeat(12, 25px);
  width: 322px;
}
.tool-palette:is([data-dock="top"], [data-dock="bottom"]) [data-tool-options="terrain"]:not([hidden]) {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tool-palette:is([data-dock="top"], [data-dock="bottom"]) .terrain-brush-setting {
  display: flex;
  gap: 4px;
}
.tool-palette:is([data-dock="top"], [data-dock="bottom"]) .terrain-brush-setting input { width: 42px; }
.terrain-brush-outline[hidden] { display: none; }
.terrain-brush-outline { position: absolute; inset: 0; pointer-events: none; z-index: 10; }
.terrain-brush-help { font-size: 9px; line-height: 1.4; overflow-wrap: anywhere; }
.tool-options [data-terrain-flatten][hidden] { display: none; }

/* A source-context label belongs to the level view, not the coordinate bar. */
.terrain-context-note {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 3;
  padding: 3px 6px;
  color: #000;
  background: #ffffe1;
  border: 1px solid #808080;
  pointer-events: none;
}
