#mapLayout,
#toolbarDrawer {
  transition: visibility 0s linear, opacity 120ms ease;
}

html:not([data-app-shell-ready="1"]) #mapLayout,
html:not([data-app-shell-ready="1"]) #toolbarDrawer {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.ui-rail {
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-2);
  padding: var(--ui-pad-2);
  background: var(--ui-panel-bg);
  color: var(--ui-text);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-4);
  box-shadow: var(--shadow-float);
}

#toolbarDrawer.ui-rail {
  padding: var(--ui-toolbar-pad-y) var(--ui-toolbar-pad-x);
  border-radius: var(--ui-toolbar-radius);
  position: relative;
  overflow: hidden;
  background: var(--ui-panel-bg);
}

#toolbarDrawer.ui-rail::before {
  content: none;
}

#toolbarDrawer.ui-rail > .toolbarInner {
  position: relative;
  z-index: 1;
}


.ui-iconbtn {
  display: inline-grid;
  place-items: center;
  width: var(--ui-control-size-2);
  height: var(--ui-control-size-2);
  border-radius: var(--ui-radius-3);
  border: var(--ui-border-width) solid var(--ui-iconbtn-border);
  background: var(--ui-iconbtn-bg);
  color: var(--ui-iconbtn-color);
  padding: var(--ui-pad-0);
  cursor: var(--ui-cursor-button);
}

.ui-iconbtn:not(:disabled):not(.is-disabled):hover {
  background: linear-gradient(var(--ui-iconbtn-hover-overlay), var(--ui-iconbtn-hover-overlay)), var(--ui-iconbtn-bg);
  color: var(--ui-text-primary);
}

.ui-iconbtn:not(:disabled):not(.is-disabled):active {
  background: linear-gradient(var(--ui-iconbtn-active-overlay), var(--ui-iconbtn-active-overlay)), var(--ui-iconbtn-bg);
  color: var(--ui-text-primary);
}

.ui-iconbtn.is-selected {
  background: linear-gradient(var(--ui-iconbtn-selected-overlay), var(--ui-iconbtn-selected-overlay)), var(--ui-iconbtn-bg);
  border-color: var(--ui-iconbtn-selected-border);
  outline-color: var(--ui-iconbtn-selected-border);
  outline-style: solid;
  outline-width: var(--ui-border-width);
}

.ui-iconbtn.is-selected:hover,
.ui-iconbtn.is-selected:active {
  background: linear-gradient(var(--ui-iconbtn-selected-overlay), var(--ui-iconbtn-selected-overlay)), var(--ui-iconbtn-bg);
  border-color: var(--ui-iconbtn-selected-border);
  outline-color: var(--ui-iconbtn-selected-border);
  outline-style: solid;
  outline-width: var(--ui-border-width);
}

.ui-iconbtn:disabled,
.ui-iconbtn.is-disabled {
  background: var(--ui-iconbtn-disabled-bg);
  color: var(--ui-text-disabled);
  opacity: var(--ui-disabled-opacity);
  cursor: var(--ui-cursor-disabled);
}

.ui-iconbtn:focus-visible {
  box-shadow: var(--ui-focus-ring-shadow);
  outline: none;
}

.ui-paneHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-gap-3);
  padding: var(--ui-pane-header-pad-y) var(--ui-pane-header-pad-x);
  border-bottom: var(--ui-border-width) solid var(--ui-pane-header-border);
  background: var(--ui-pane-header-bg);
}

.ui-paneTitle {
  font-size: var(--ui-pane-header-font-size);
  font-weight: var(--ui-pane-header-font-weight);
  color: var(--ui-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ui-paneHeaderActions {
  display: flex;
  align-items: center;
  gap: var(--ui-gap-2);
}

.ui-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ui-gap-2);
  padding: var(--ui-pad-3) var(--ui-pad-4);
  border-radius: var(--ui-radius-3);
  border: var(--ui-border-width) solid var(--ui-border);
  background: var(--ui-control-bg);
  color: var(--ui-text);
  cursor: var(--ui-cursor-button);
}

.ui-btn.is-pill {
  width: max-content;
  max-width: 100%;
  min-width: 0;
  justify-self: start;
  border-radius: var(--ui-radius-pill);
  white-space: nowrap;
}

.ui-btn:not(:disabled):not(.is-disabled):hover {
  background: var(--ui-control-bg-hover);
}

.ui-btn:not(:disabled):not(.is-disabled):active {
  background: var(--ui-control-bg-active);
}

.ui-btn.is-primary {
  background: var(--ui-accent);
  border-color: var(--ui-accent);
  color: var(--ui-text);
}

.ui-btn.is-ghost {
  background: var(--ui-bg-0);
  border-color: var(--ui-border-soft);
  color: var(--ui-text);
}

.ui-btn:disabled,
.ui-btn.is-disabled {
  background: var(--ui-control-bg-disabled);
  color: var(--ui-text-disabled);
  opacity: var(--ui-disabled-opacity);
  cursor: var(--ui-cursor-disabled);
}

.ui-btn:focus-visible {
  box-shadow: var(--ui-focus-ring-shadow);
  outline: none;
}

.ui-input {
  display: inline-flex;
  align-items: center;
  gap: var(--ui-gap-2);
  padding: var(--ui-pad-3) var(--ui-pad-4);
  border-radius: var(--ui-radius-3);
  border: var(--ui-border-width) solid var(--ui-border);
  background: var(--ui-bg-1);
  color: var(--ui-text);
}

.ui-input::placeholder {
  color: var(--ui-text-muted);
}

.ui-input:focus-visible {
  box-shadow: var(--ui-focus-ring-shadow);
  outline: none;
}

.ui-input:disabled,
.ui-input.is-disabled {
  background: var(--ui-control-bg-disabled);
  color: var(--ui-text-disabled);
  opacity: var(--ui-disabled-opacity);
  cursor: var(--ui-cursor-disabled);
}

.ui-popover {
  background: var(--ui-popover-bg);
  color: var(--ui-text);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-4);
  box-shadow: var(--shadow-overlay);
  padding: var(--ui-pad-4);
}

.ui-tooltip {
  background: var(--ui-popover-bg);
  color: var(--ui-text-muted);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-2);
  box-shadow: var(--shadow-float);
  padding: var(--ui-pad-2) var(--ui-pad-3);
  font-size: var(--fs-12);
}

.ui-tooltip.is-floating {
  position: fixed;
  pointer-events: none;
  white-space: nowrap;
}

.uiSelectionHighlight,
.uiDottedHighlight {
  border-radius: var(--ui-radius-2);
  background: var(--ui-selection-highlight-bg);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
}

.toolIcon {
  width: var(--tool-icon-size, var(--ui-icon-size-2));
  height: var(--tool-icon-size, var(--ui-icon-size-2));
  border-radius: var(--ui-radius-2);
  display: grid;
  place-items: center;
  border: var(--ui-border-width) solid var(--ui-border-soft);
  color: currentColor;
  font-size: 0;
  --tool-icon-size: var(--ui-icon-size-2);
}

.toolIcon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: var(--ui-icon-stroke-width);
}

.ui-rail .ui-toolgroup {
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-2);
}

.ui-rail .ui-sep {
  align-self: stretch;
  border-top: var(--ui-border-width) solid var(--ui-border-soft);
  margin-block: var(--ui-gap-2);
}

.ui-popover .row,
.ui-popover .ui-row {
  min-height: var(--row-md);
  align-items: center;
}

.ui-popover input[type="text"],
.ui-popover input[type="number"],
.ui-popover input[type="search"],
.ui-popover select {
  min-height: var(--input-h-md);
}

.uiPulldown {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  min-height: var(--input-h-md);
  height: var(--input-h-md);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-2);
  background-color: var(--ui-bg-inset);
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.1;
  padding: 0 calc(var(--space-2) + 14px) 0 var(--space-2);
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position:
    calc(100% - 11px) 50%,
    calc(100% - 7px) 50%;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
}

.uiPulldown:focus-visible {
  outline: none;
  box-shadow: var(--ui-focus-ring-shadow);
}

.uiPulldown:disabled {
  opacity: 0.7;
  cursor: default;
}

.uiPulldownCompact {
  min-height: 22px;
  height: 22px;
  font-size: var(--fs-11);
  padding-left: 8px;
  padding-right: 20px;
}

.wildsLauncherBackgroundHost {
  position: relative;
  isolation: isolate;
  background: var(--ui-bg-0);
}

.wildsLauncherBackgroundHost > .home-shell {
  position: relative;
  z-index: 1;
}

.wildsLauncherBackgroundHost > .uiAuxiliaryWindow[data-window-chrome="home"] {
  position: relative;
  z-index: 1;
}

.wildsLauncherBackground {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background: var(--ui-bg-0);
}

.wildsLauncherBackground::after {
  position: absolute;
  inset: 0;
  content: "";
  background: color-mix(in srgb, var(--ui-bg-0) var(--ui-launcher-background-overlay-opacity), transparent);
}

.wildsLauncherBackgroundVideo,
.wildsLauncherBackgroundImage {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  object-position: center center;
}

.wildsLauncherBackgroundVideo {
  opacity: var(--ui-launcher-background-video-opacity);
  transition: opacity var(--ui-launcher-background-loop-fade-duration) linear;
  will-change: opacity;
}

.wildsLauncherBackgroundImage {
  display: none;
  opacity: var(--ui-launcher-background-image-opacity);
}

.wildsLauncherBackground[data-background-mode="image"] .wildsLauncherBackgroundVideo {
  display: none;
}

.wildsLauncherBackground[data-background-mode="image"] .wildsLauncherBackgroundImage {
  display: block;
}

.wildsLauncherBackgroundHost.portal-shell {
  background: transparent;
}

@media (prefers-reduced-motion: reduce) {
  .wildsLauncherBackgroundVideo { display: none; }
}

.uiAuxiliaryWindow {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100vh;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--ui-bg-0);
  color: var(--ui-text);
  font-family: var(--font-ui);
}

.uiAuxiliaryWindow[data-window-chrome="home"] {
  background: transparent;
}

.uiAuxiliaryWindow[data-window-chrome="home"] > .uiAuxiliaryWindowHeader {
  background: color-mix(in srgb, var(--ui-bg-0) 92%, transparent);
}

.uiAuxiliaryWindowBody-home {
  min-height: 0;
}

.uiAuxiliaryWindowBody-home.home-shell {
  height: 100%;
  min-height: 0;
}

.uiAuxiliaryWindowBody-home.auth-page {
  height: 100%;
  min-height: 0;
}

.uiAuxiliaryWindowBody-home .home-rail {
  height: 100%;
}

.uiAuxiliaryWindowHeader {
  display: flex;
  align-items: center;
  flex: 0 0 var(--ui-control-size-2);
  gap: var(--space-3);
  min-width: 0;
  padding: 0 var(--space-2) 0 var(--space-4);
  border-bottom: var(--ui-border-width) solid var(--ui-border);
  box-shadow: var(--ui-divider-shadow);
  background: var(--ui-bg-0);
  -webkit-app-region: drag;
}

.uiAuxiliaryWindowDragRegion {
  display: none;
}

.uiAuxiliaryWindow[data-window-chrome-mode="overlay"] > .uiAuxiliaryWindowDragRegion {
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  display: block;
  height: var(--ui-control-size-2);
  -webkit-app-region: drag;
}

.uiAuxiliaryWindow[data-window-chrome-mode="overlay"] > .uiAuxiliaryWindowActions {
  position: absolute;
  top: var(--space-1);
  right: var(--space-1);
  z-index: 3;
  align-self: auto;
  height: var(--ui-control-size-2);
  margin-left: var(--space-0);
  -webkit-app-region: no-drag;
}

.uiAuxiliaryWindowIcon {
  flex: 0 0 var(--ui-control-size-1);
  width: var(--ui-control-size-1);
  height: var(--ui-control-size-1);
  object-fit: contain;
  border-radius: var(--ui-radius-1);
  pointer-events: none;
  user-select: none;
}

.uiAuxiliaryWindowTitle {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.uiAuxiliaryWindowActions {
  display: flex;
  align-items: stretch;
  align-self: stretch;
  flex: 0 0 auto;
  margin-left: auto;
  -webkit-app-region: no-drag;
}

.uiAuxiliaryWindowControl {
  display: grid;
  place-items: center;
  width: var(--ui-control-size-2);
  min-width: var(--ui-control-size-2);
  min-height: var(--ui-control-size-2);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ui-text-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  font-weight: var(--fw-regular);
  line-height: 1;
  cursor: var(--ui-cursor-button);
  -webkit-app-region: no-drag;
}

.uiAuxiliaryWindowControl:hover,
.uiAuxiliaryWindowControl:focus-visible {
  background: var(--ui-control-bg-hover);
  color: var(--ui-text-primary);
}

.uiAuxiliaryWindowControl-close:hover,
.uiAuxiliaryWindowControl-close:focus-visible {
  background: var(--ui-danger-bg, var(--ui-control-bg-hover));
  color: var(--ui-danger-text, var(--ui-text-primary));
}

.uiAuxiliaryWindowBody {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: auto;
}

.ui-scrollbar {
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--ui-border) 72%, transparent) var(--ui-bg-inset);
}

@supports selector(::-webkit-scrollbar) {
  .ui-scrollbar::-webkit-scrollbar { width: var(--space-2); height: var(--space-2); }
  .ui-scrollbar::-webkit-scrollbar-track { background: var(--ui-bg-inset); }
  .ui-scrollbar::-webkit-scrollbar-thumb {
    border: calc(var(--ui-border-width) * 2) solid var(--ui-bg-inset);
    border-radius: var(--ui-radius-pill);
    background: color-mix(in srgb, var(--ui-border) 72%, transparent);
  }
  .ui-scrollbar::-webkit-scrollbar-thumb:hover { background: var(--ui-text-muted); }
}

.uiOptionsMenu {
  min-width: 300px;
  max-width: min(520px, calc(100vw - (var(--space-6) * 2)));
  background: var(--ui-bg-2);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-3);
  box-shadow: var(--ui-shadow-2);
  padding: var(--space-3);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.uiOptionsMenuHeader {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.uiOptionsMenuTitle {
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-primary);
}

.uiOptionsMenuColumns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-3);
}

.uiOptionsMenuColumn {
  min-width: 0;
  display: grid;
  gap: var(--space-2);
}

.uiOptionsMenuColumnTitle {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-secondary);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding-bottom: var(--space-1);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
}

.uiOptionsMenuRows {
  display: grid;
  gap: var(--space-1);
  width: 100%;
}

.uiOptionsMenuRow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: var(--row-md);
  padding: 0 var(--space-1);
  border-radius: var(--ui-radius-2);
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
}

.uiOptionsMenuRow:hover {
  background: color-mix(in srgb, var(--ui-bg-inset) 65%, transparent);
}

.uiOptionsMenuRow > span {
  order: 1;
  display: inline-flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.uiOptionsMenuRow > input[type="checkbox"] {
  order: 2;
  align-self: center;
  flex: 0 0 auto;
  margin: 0;
}

.uiOptionsMenuModalRoot {
  position: fixed;
  inset: var(--space-0);
  z-index: var(--ui-z-modal);
  display: grid;
  place-items: center;
  padding: var(--space-4);
  box-sizing: border-box;
  pointer-events: auto;
}

.uiOptionsMenuModalRoot[hidden] {
  display: none;
}

.uiOptionsMenuBackdrop {
  position: absolute;
  inset: var(--space-0);
  background: color-mix(in srgb, var(--ui-bg-0) 72%, transparent);
}

.uiOptionsMenuPrimitivePanel.uiOptionsMenu {
  position: relative;
  width: fit-content;
  min-width: min(var(--ui-options-menu-min-width), calc(100vw - (var(--space-4) * 2)));
  max-width: var(--ui-options-menu-max-width);
  max-height: var(--ui-options-menu-max-height);
  overflow: hidden;
  box-shadow: var(--shadow-overlay);
}

.uiOptionsMenuPrimitivePanel[data-options-menu-columns="2"],
.uiOptionsMenuPrimitivePanel[data-options-menu-columns="3"],
.uiOptionsMenuPrimitivePanel[data-options-menu-columns="4"] {
  max-width: var(--ui-options-menu-wide-max-width);
}

.uiOptionsMenuPrimitivePanel .uiOptionsMenuTitle {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--fs-11);
  color: var(--ui-text-secondary);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.uiOptionsMenuClose {
  flex: 0 0 auto;
  margin-left: auto;
}

.uiOptionsMenuCloseGlyph {
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
}

.uiOptionsMenuBody {
  display: grid;
  flex: 1 1 auto;
  gap: var(--space-3);
  min-width: 0;
  min-height: 0;
}

.uiOptionsMenuScroller {
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--ui-border) 72%, transparent) color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
  padding-inline-end: var(--space-1);
}

@supports selector(::-webkit-scrollbar) {
  .uiOptionsMenuScroller::-webkit-scrollbar {
    width: var(--space-2);
    height: var(--space-2);
  }

  .uiOptionsMenuScroller::-webkit-scrollbar-track {
    border-radius: var(--ui-radius-pill);
    background: color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
  }

  .uiOptionsMenuScroller::-webkit-scrollbar-thumb {
    border-radius: var(--ui-radius-pill);
    background: color-mix(in srgb, var(--ui-border) 72%, transparent);
  }

  .uiOptionsMenuScroller::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--ui-text-muted) 48%, var(--ui-border));
  }
}

.uiOptionsMenuPrimitivePanel .uiOptionsMenuColumnTitle {
  font-size: var(--fs-12);
  color: var(--ui-text-primary);
  letter-spacing: normal;
  text-transform: none;
  padding-bottom: var(--space-1);
  border-bottom: 0;
  box-shadow: var(--ui-divider-shadow);
}

.uiOptionsMenuSwitchRow {
  cursor: var(--ui-cursor-button);
}

.uiOptionsMenuSwitchRow.is-disabled {
  cursor: var(--ui-cursor-disabled);
  opacity: var(--ui-disabled-opacity);
}

.uiOptionsMenuSwitchRow > .uiOptionsMenuRowText {
  order: 1;
  display: grid;
  flex: 1 1 auto;
  gap: var(--space-1);
  min-width: 0;
  white-space: normal;
}

.uiOptionsMenuRowLabel,
.uiOptionsMenuRowHint {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.uiOptionsMenuRowLabel {
  color: var(--ui-text-primary);
}

.uiOptionsMenuRowHint {
  color: var(--ui-text-muted);
  font-size: var(--fs-10);
  line-height: var(--lh-normal);
}

.uiOptionsMenuSwitchRow > .uiOptionsMenuSwitchInput {
  order: 2;
  flex: 0 0 auto;
  position: absolute;
  inline-size: var(--space-1);
  block-size: var(--space-1);
  opacity: 0;
  pointer-events: none;
}

.uiOptionsMenuSwitchRow > .uiOptionsMenuSwitchTrack {
  order: 3;
  position: relative;
  display: block;
  flex: 0 0 auto;
  inline-size: var(--ui-options-menu-switch-width);
  block-size: var(--ui-options-menu-switch-height);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-pill);
  background: var(--ui-control-bg);
  transition: background var(--motion-fast), border-color var(--motion-fast);
}

.uiOptionsMenuSwitchThumb {
  position: absolute;
  inset-block-start: var(--space-0);
  inset-block-end: var(--space-0);
  inset-inline-start: var(--space-1);
  margin-block: auto;
  inline-size: var(--ui-options-menu-switch-thumb-size);
  block-size: var(--ui-options-menu-switch-thumb-size);
  border-radius: var(--ui-radius-pill);
  background: var(--ui-text-secondary);
  transition: transform var(--motion-fast), background var(--motion-fast);
}

.uiOptionsMenuSwitchInput:checked + .uiOptionsMenuSwitchTrack {
  border-color: var(--ui-selected-outline);
  background: linear-gradient(var(--ui-selected-bg), var(--ui-selected-bg)), var(--ui-control-bg);
}

.uiOptionsMenuSwitchInput:checked + .uiOptionsMenuSwitchTrack .uiOptionsMenuSwitchThumb {
  transform: translateX(var(--ui-options-menu-switch-thumb-travel));
  background: var(--ui-selected-outline);
}

.uiOptionsMenuSwitchInput:focus-visible + .uiOptionsMenuSwitchTrack {
  box-shadow: var(--ui-focus-ring-shadow);
}

.uiOptionsMenuActionRow {
  justify-content: flex-start;
  border: var(--ui-border-width) solid transparent;
  background: transparent;
  text-align: left;
  cursor: var(--ui-cursor-button);
}

.uiOptionsMenuActionRow:hover,
.uiOptionsMenuActionRow:focus-visible {
  background: var(--ui-hover-bg);
  color: var(--ui-text-primary);
  outline: none;
}

.uiOptionsMenuSectionRow {
  display: grid;
  gap: var(--space-1);
  padding-block: var(--space-2) var(--space-1);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
  box-shadow: var(--ui-divider-shadow);
}

.uiOptionsMenuSectionRow:first-child {
  padding-block-start: var(--space-0);
}

.uiOptionsMenuSectionLabel,
.uiOptionsMenuSectionHint {
  min-width: 0;
}

.uiOptionsMenuSectionLabel {
  font-family: var(--font-ui);
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-primary);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.uiOptionsMenuSectionHint {
  font-family: var(--font-ui);
  font-size: var(--fs-10);
  line-height: var(--lh-normal);
  color: var(--ui-text-muted);
}

.uiOptionsMenuActions,
.uiOptionsMenuFooter {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.uiOptionsMenuActions {
  justify-content: flex-start;
}

.uiOptionsMenuFooter {
  justify-content: flex-end;
  padding-top: var(--space-2);
  border-top: var(--ui-border-width) solid var(--ui-border-soft);
}

.uiContextMenu {
  --ui-context-menu-min-width: 220px;
  --ui-context-menu-max-width: min(360px, calc(100vw - (var(--space-4) * 2)));
  --ui-context-menu-max-height: min(75vh, 520px);
  --ui-context-menu-backdrop-blur: 8px;
  --ui-context-menu-control-pad-y: var(--space-1);
  --ui-context-menu-control-pad-x: calc(var(--space-2) + var(--space-1));
  --ui-context-menu-section-gap: var(--space-2);
  --ui-context-menu-section-pad: var(--space-2);
  --ui-context-menu-danger-text: var(--ui-danger-text, var(--ui-text-primary));
  --ui-context-menu-danger-border: color-mix(in srgb, var(--ui-danger, #d64b4b) 55%, var(--ui-border));
  position: fixed;
  left: -9999px;
  top: -9999px;
  min-width: var(--ui-context-menu-min-width);
  max-width: var(--ui-context-menu-max-width);
  max-height: var(--ui-context-menu-max-height);
  overflow: auto;
  display: grid;
  gap: var(--space-2);
  padding: var(--space-2);
  font-family: var(--font-ui);
  background: color-mix(in srgb, var(--ui-popover-bg) 96%, transparent);
  color: var(--ui-text-primary);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-4, var(--radius-md));
  box-shadow: var(--shadow-overlay, var(--ui-shadow-2));
  backdrop-filter: blur(var(--ui-context-menu-backdrop-blur));
}

.uiContextMenuTitle,
.uiContextMenuHint,
.uiContextMenuLabel,
.uiContextMenuLocked {
  color: var(--ui-text-muted);
}

.uiContextMenuTitle {
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  line-height: 1.3;
  letter-spacing: normal;
  text-transform: none;
}

.uiContextMenuHint,
.uiContextMenuLabel,
.uiContextMenuLocked {
  font-size: var(--fs-11);
  line-height: 1.3;
  letter-spacing: normal;
  text-transform: none;
}

.uiMapPinContextMenuTitle {
  font-family: var(--font-title);
  font-size: var(--fs-16);
  font-weight: var(--fw-semibold);
  line-height: 1.1;
  color: var(--ui-text-primary);
}

.uiContextMenuActions {
  display: grid;
  gap: var(--space-1);
}

.uiContextMenuButton {
  width: 100%;
  min-height: var(--row-md);
  padding: var(--ui-context-menu-control-pad-y) var(--ui-context-menu-control-pad-x);
  text-align: left;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.25;
  color: var(--ui-text-primary);
  background: var(--ui-control-bg);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-2);
  letter-spacing: normal;
  text-transform: none;
  transition: background var(--motion-fast) ease, border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}

.uiContextMenuButton:hover {
  background: var(--ui-control-bg-hover);
}

.uiContextMenuButton:active {
  background: var(--ui-control-bg-active);
}

.uiContextMenuButton:focus-visible,
.uiContextMenuField:focus-visible,
.uiContextMenuSelect:focus-visible {
  outline: none;
  box-shadow: var(--ui-focus-ring-shadow);
}

.uiContextMenuButton.danger {
  color: var(--ui-context-menu-danger-text);
  border-color: var(--ui-context-menu-danger-border);
}

.uiContextMenuSeparator {
  width: 100%;
  margin: 0;
  border: 0;
  border-top: var(--ui-border-width) solid var(--ui-border-soft);
}

.uiContextMenuSection {
  display: grid;
  gap: var(--ui-context-menu-section-gap);
  padding: var(--ui-context-menu-section-pad);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-3);
  background: color-mix(in srgb, var(--ui-bg-1) 72%, transparent);
}

.uiMenuFieldGrid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
}

.uiContextMenuField,
.uiContextMenuSelect {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.2;
  color: var(--ui-text-primary);
  background: var(--ui-bg-inset);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-2);
  padding: var(--ui-context-menu-control-pad-y) var(--ui-context-menu-control-pad-x);
}

.uiContextMenuSelect.uiPulldown {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  min-height: var(--row-md);
  height: var(--row-md);
  line-height: 1.1;
  padding:
    0
    calc(var(--ui-context-menu-control-pad-x) + 14px)
    0
    var(--ui-context-menu-control-pad-x);
  background-color: var(--ui-bg-inset);
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position:
    calc(100% - 11px) 50%,
    calc(100% - 7px) 50%;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
}

.uiContextMenuSelect.uiPulldown option {
  background: var(--ui-popover-bg);
  color: var(--ui-text-primary);
}

.token-mini-menu,
[data-token-context-menu="1"],
.uiTokenContextMenu.uiContextMenu {
  --ui-context-menu-min-width: 240px;
  --ui-context-menu-max-width: min(380px, calc(100vw - (var(--space-4) * 2)));
  --ui-context-menu-section-pad: calc(var(--space-2) + 1px);
  background: color-mix(in srgb, var(--ui-popover-bg) 90%, var(--ui-bg-1));
  border-color: color-mix(in srgb, var(--ui-border) 92%, transparent);
  box-shadow: var(--shadow-overlay, var(--ui-shadow-2));
}

.token-mini-menu,
[data-token-context-menu="1"] {
  --ui-context-menu-min-width: 240px;
}

.uiTokenContextMenu.uiContextMenu .uiContextMenuTitle,
.token-mini-menu .uiContextMenuTitle,
[data-token-context-menu="1"] .uiContextMenuTitle {
  font-size: var(--fs-12);
  padding-bottom: var(--space-1);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
}

.uiTokenContextMenu.uiContextMenu .uiContextMenuActions,
.token-mini-menu .uiContextMenuActions,
[data-token-context-menu="1"] .uiContextMenuActions {
  align-content: start;
}

.uiTokenContextMenu.uiContextMenu .uiContextMenuButton,
.uiTokenContextMenu.uiContextMenu .token-mini-menu-action,
.token-mini-menu .token-mini-menu-action,
[data-token-context-menu="1"] .token-mini-menu-action {
  justify-self: stretch;
  background: color-mix(in srgb, var(--ui-control-bg) 88%, transparent);
}

.uiTokenContextMenu.uiContextMenu .uiContextMenuButton:hover,
.uiTokenContextMenu.uiContextMenu .token-mini-menu-action:hover,
.token-mini-menu .token-mini-menu-action:hover,
[data-token-context-menu="1"] .token-mini-menu-action:hover {
  background: color-mix(in srgb, var(--ui-control-bg-hover) 92%, transparent);
}

.uiTokenContextMenu.uiContextMenu .uiContextMenuSection,
.token-mini-menu .token-owner-row,
[data-token-context-menu="1"] .token-owner-row,
.token-mini-menu .uiContextMenuSection,
[data-token-context-menu="1"] .uiContextMenuSection {
  background: color-mix(in srgb, var(--ui-bg-1) 76%, transparent);
}

.uiTokenContextMenu.uiContextMenu .token-owner-row,
[data-token-context-menu="1"] .token-owner-row,
.token-mini-menu .token-owner-row,
[data-token-context-menu="1"] .token-owner-row {
  align-items: stretch;
}

.uiTokenContextMenu.uiContextMenu .token-owner-label,
.uiTokenContextMenu.uiContextMenu .token-owner-locked,
.token-mini-menu .token-owner-label,
.token-mini-menu .token-owner-locked,
[data-token-context-menu="1"] .token-owner-label,
[data-token-context-menu="1"] .token-owner-locked {
  font-weight: var(--fw-semibold);
}

.uiTokenContextMenu.uiContextMenu .token-owner-select,
.token-mini-menu .token-owner-select,
[data-token-context-menu="1"] .token-owner-select {
  min-height: var(--row-md);
}

.uiOverflowMenuTrigger {
  margin-left: auto;
  flex: 0 0 auto;
  min-height: 22px;
  height: 22px;
  padding: 0 6px;
  line-height: 1;
  font-size: var(--fs-10);
}

.uiOverflowMenuTriggerCompact {
  margin-left: 0;
  min-width: 22px;
  padding-left: var(--space-1);
  padding-right: var(--space-1);
  font-size: var(--fs-10);
}

.uiOverflowMenu {
  --ui-overflow-menu-min-width: 180px;
  --ui-overflow-menu-max-width: min(70vw, 280px);
  --ui-overflow-menu-max-height: min(65vh, 420px);
  --ui-overflow-menu-action-gap: 2px;
  --ui-overflow-menu-action-pad-y: calc(var(--space-1) + 2px);
  --ui-overflow-menu-action-pad-x: calc(var(--space-2) + var(--space-1));
  position: fixed;
  left: -9999px;
  top: -9999px;
  width: max-content;
  min-width: var(--ui-overflow-menu-min-width);
  max-width: var(--ui-overflow-menu-max-width);
  max-height: min(var(--ui-overflow-menu-max-height), var(--ui-overflow-available-height, 100vh));
  overflow-y: auto;
  padding: var(--space-1);
  display: grid;
  gap: var(--ui-overflow-menu-action-gap);
  background: color-mix(in srgb, var(--ui-popover-bg) 92%, var(--ui-bg-1));
  color: var(--ui-text-primary);
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 88%, transparent);
  border-radius: var(--ui-radius-4, var(--radius-md));
  box-shadow: var(--shadow-overlay, var(--ui-shadow-2));
  transition: opacity 140ms ease, transform 160ms ease, box-shadow 160ms ease;
  transform-origin: top right;
}

.uiOverflowMenuAction {
  width: 100%;
  display: block;
  min-height: var(--row-md);
  padding: var(--ui-overflow-menu-action-pad-y) var(--ui-overflow-menu-action-pad-x);
  text-align: left;
  white-space: nowrap;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.25;
  color: var(--ui-text-primary);
  background: transparent;
  border: var(--ui-border-width) solid transparent;
  border-radius: var(--ui-radius-3, var(--radius-sm));
  transition: background 120ms ease, color 120ms ease, box-shadow 140ms ease, border-color 120ms ease;
}

.uiOverflowMenuAction:hover,
.uiOverflowMenuAction.is-hover {
  background: color-mix(in srgb, var(--ui-bg-inset) 72%, transparent);
}

.uiOverflowMenuAction:active,
.uiOverflowMenuAction.is-active {
  background: color-mix(in srgb, var(--ui-active-bg) 70%, var(--ui-bg-inset));
}

.uiOverflowMenuAction:focus-visible {
  outline: none;
  box-shadow: var(--ui-focus-ring-shadow);
  border-color: color-mix(in srgb, var(--ui-border) 75%, transparent);
}

.uiOverflowMenuAction:disabled {
  color: var(--ui-text-muted);
  background: transparent;
  cursor: default;
}

.uiOverflowMenuHostRow {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  position: relative;
  margin-top: var(--space-1);
}

.uiOverflowMenuSection {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-1);
}

.uiMenuCompactSelect {
  width: 100%;
  font-size: var(--fs-10);
  min-height: 0;
  padding-top: var(--space-1);
  padding-bottom: var(--space-1);
}

.uiPopover {
  --ui-popover-min-width: 220px;
  --ui-popover-max-width: min(360px, calc(100vw - (var(--space-4) * 2)));
  --ui-popover-backdrop-blur: 8px;
  position: fixed;
  left: -9999px;
  top: -9999px;
  min-width: var(--ui-popover-min-width);
  max-width: var(--ui-popover-max-width);
  padding: var(--space-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  background: color-mix(in srgb, var(--ui-popover-bg) 94%, var(--ui-bg-1));
  color: var(--ui-text-primary);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-4, var(--radius-md));
  box-shadow: var(--shadow-overlay, var(--ui-shadow-2));
  backdrop-filter: blur(var(--ui-popover-backdrop-blur));
}

.uiPopoverComposer {
  --ui-popover-min-width: 260px;
  width: var(--ui-popover-min-width);
  overflow: visible;
}

.uiMenuInlineEditor {
  min-height: var(--row-md);
  white-space: pre-wrap;
  overflow: hidden;
  padding: var(--space-1) var(--space-2);
}

.u-mt-1 { margin-top: var(--space-1); }
.u-mt-2 { margin-top: var(--space-2); }
.u-mt-3 { margin-top: var(--space-3); }

.uiToast {
  --ui-toast-hidden-offset-y: 6px;
  --ui-toast-visible-offset-y: 0px;
  --ui-toast-translate-x: 0px;
  --ui-toast-bg: color-mix(in srgb, var(--ui-popover-bg) 94%, var(--ui-bg-1));
  --ui-toast-border: color-mix(in srgb, var(--ui-border) 88%, transparent);
  --ui-toast-color: var(--ui-text-primary);
  max-width: min(calc(100vw - (var(--space-4) * 2)), calc(var(--space-1) * 120));
  max-height: calc(100vh - (var(--space-4) * 2));
  min-height: var(--row-md);
  display: flex;
  width: max-content;
  height: auto;
  flex: 0 0 auto;
  align-self: flex-start;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.35;
  color: var(--ui-toast-color);
  overflow-wrap: anywhere;
  overflow-y: auto;
  background: var(--ui-toast-bg);
  border: var(--ui-border-width) solid var(--ui-toast-border);
  border-radius: var(--ui-radius-4, var(--radius-md));
  box-shadow: var(--shadow-overlay, var(--ui-shadow-2));
  backdrop-filter: blur(8px);
  opacity: 0;
  transform: translate(var(--ui-toast-translate-x), var(--ui-toast-hidden-offset-y));
  transition: opacity 140ms ease, transform 160ms ease, border-color 140ms ease, background 140ms ease;
  pointer-events: none;
}

.uiToast.is-visible {
  opacity: 1;
  transform: translate(var(--ui-toast-translate-x), var(--ui-toast-visible-offset-y));
}

.uiToast.is-info {
  --ui-toast-bg: color-mix(in srgb, var(--ui-info-bg, #22466c) 56%, var(--ui-popover-bg));
  --ui-toast-border: color-mix(in srgb, var(--ui-info, #8cbcff) 64%, var(--ui-border));
}

.uiToast.is-warning {
  --ui-toast-bg: color-mix(in srgb, var(--ui-warning-bg, #5f4715) 44%, var(--ui-popover-bg));
  --ui-toast-border: color-mix(in srgb, var(--ui-warning, #f0c36b) 66%, var(--ui-border));
}

.uiToast.is-success {
  --ui-toast-bg: color-mix(in srgb, var(--ui-success-bg, #214b31) 42%, var(--ui-popover-bg));
  --ui-toast-border: color-mix(in srgb, var(--ui-success, #78d59b) 66%, var(--ui-border));
}

.uiToast.is-error {
  --ui-toast-bg: color-mix(in srgb, var(--ui-danger-bg, #6b1f1f) 58%, var(--ui-popover-bg));
  --ui-toast-border: color-mix(in srgb, var(--ui-danger, #d64b4b) 72%, var(--ui-border));
}

.uiToastDockBottomCenter {
  --ui-toast-translate-x: -50%;
  position: fixed;
  left: 50%;
  right: auto;
  top: auto;
  bottom: var(--ui-toast-bottom, 16px);
  z-index: var(--ui-toast-z, var(--ui-z-toast, 6200));
}

.uiInlineToast {
  --ui-toast-translate-x: -50%;
  position: fixed;
  left: 50%;
  right: auto;
  top: auto;
  bottom: var(--ui-toast-bottom, 16px);
  z-index: var(--ui-toast-z, var(--ui-z-toast, 6200));
  max-width: min(calc(100vw - (var(--space-4) * 2)), calc(var(--space-1) * 120));
  width: fit-content;
  box-shadow: none;
  backdrop-filter: none;
  align-self: auto;
}

.uiInlineToast:not(.is-visible) {
  display: none;
}

.uiInlineToastCompact {
  min-height: 0;
  padding: var(--space-1) var(--space-2);
  border-radius: var(--ui-radius-3);
  font-size: var(--fs-12);
}

/* Legacy toast class names still exist in feature code and index.html, but theme primitives
   are the source of truth for their presentation. */
.mapLayout .mapToast.uiToast,
.mapLayout .codexPanel .codexToast.uiToast,
.combatToast.uiToast,
#dlg #modalBody .assetPickerStatus.uiToast {
  color: var(--ui-toast-color);
  background: var(--ui-toast-bg);
  border-color: var(--ui-toast-border);
  border-radius: var(--ui-radius-4, var(--radius-md));
  font-family: var(--font-ui);
  box-sizing: border-box;
}

.mapLayout .mapToast.uiToast {
  top: auto;
  bottom: var(--ui-toast-bottom, 16px);
}

.mapLayout .mapToast.uiToast.is-toast-log {
  width: min(calc(100vw - (var(--space-4) * 2)), 448px);
  max-height: min(42vh, 320px);
  min-height: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-1);
  padding: var(--space-2);
  overflow-y: auto;
  pointer-events: auto;
  overscroll-behavior: contain;
}

.mapLayout .mapToast.uiToast.is-toast-log:not(.is-visible) {
  pointer-events: none;
}

.uiToastLogEntry {
  flex: 0 0 auto;
  padding: var(--space-1) var(--space-2);
  color: var(--ui-toast-color);
  overflow-wrap: anywhere;
  background: color-mix(in srgb, var(--ui-control-bg) 62%, transparent);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-left-width: 3px;
  border-radius: var(--ui-radius-3);
}

.uiToastLogEntry.is-info {
  border-left-color: var(--ui-info, #8cbcff);
}

.uiToastLogEntry.is-warning {
  border-left-color: var(--ui-warning, #f0c36b);
}

.uiToastLogEntry.is-success {
  border-left-color: var(--ui-success, #78d59b);
}

.uiToastLogEntry.is-error {
  border-left-color: var(--ui-danger, #d64b4b);
}

.mapLayout .codexPanel .codexToast.uiToast {
  opacity: 1;
}

.mapLayout .codexPanel {
  --codex-left-pane-width: calc((var(--row-lg) * 6) + var(--space-4));
  --codex-left-pane-min: calc((var(--row-lg) * 4) + var(--space-4));
  --codex-left-pane-max: calc((var(--row-lg) * 9) + var(--space-4));
  --codex-right-pane-min: calc((var(--row-lg) * 8) + var(--space-4));
  position: absolute;
  z-index: var(--ui-z-pane);
  top: calc((var(--row-lg) * 2) + var(--space-3));
  right: calc((var(--row-lg) * 2) + var(--space-4));
  width: calc(var(--space-1) * 175);
  height: min(calc((var(--row-lg) * 14) + (var(--space-6) * 2)), calc(100vh - (var(--space-6) * 2)));
  max-width: calc(100vw - (var(--space-6) * 2));
  max-height: calc(100vh - (var(--space-6) * 2));
  background: var(--ui-bg-0);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-overlay);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-3);
}

.mapLayout .codexPanel .codexHeader {
  border-radius: var(--radius-md);
}

.mapLayout .codexPanel .codexHeaderActions .ui-btn {
  min-height: var(--row-sm);
  padding: var(--space-1) var(--space-2);
  font-size: var(--fs-12);
}

.mapLayout .codexPanel .codexSearchRow {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexSearchInput {
  width: 100%;
  min-height: var(--input-h-md);
  background: var(--ui-bg-inset);
  color: var(--ui-text-primary);
}

.mapLayout .codexPanel .codexBody {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.mapLayout .codexPanel .codexPaneHeader {
  display: none;
}

.mapLayout .codexPanel .codexPaneTitle {
  color: var(--ui-text-primary);
  font-weight: var(--fw-semibold);
}

.mapLayout .codexPanel .codexListPane {
  display: flex;
  flex-direction: column;
  flex: 0 0 var(--codex-left-pane-width);
  width: var(--codex-left-pane-width);
  min-width: var(--codex-left-pane-min);
  max-width: var(--codex-left-pane-max);
  min-height: 0;
  background: var(--ui-bg-1);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.mapLayout .codexPanel .codexTreeSearchRow {
  padding: var(--space-2);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
}

.mapLayout .codexPanel .codexTreeScroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.mapLayout .codexPanel .codexList {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-2);
  min-height: 0;
}

.mapLayout .codexPanel .codexSplitDivider {
  position: relative;
  flex: 0 0 calc(var(--space-2) + var(--ui-border-width));
  width: calc(var(--space-2) + var(--ui-border-width));
  min-width: calc(var(--space-2) + var(--ui-border-width));
  cursor: col-resize;
  touch-action: none;
}

.mapLayout .codexPanel .codexSplitDivider::before {
  content: "";
  position: absolute;
  left: calc(var(--space-1) - (var(--ui-border-width) / 2));
  top: 0;
  bottom: 0;
  width: var(--ui-border-width);
  background: var(--ui-border);
}

.mapLayout .codexPanel.is-split-dragging {
  user-select: none;
  cursor: col-resize;
}

.mapLayout .codexPanel.is-split-dragging * {
  cursor: col-resize;
}

.mapLayout .codexPanel .codexListGroup {
  width: 100%;
  text-align: left;
  border: var(--ui-border-width) solid transparent;
  border-radius: var(--radius-md);
  padding: var(--space-1) var(--space-2);
  background: var(--ui-bg-1);
  color: var(--ui-text-secondary);
  cursor: var(--ui-cursor-button);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: var(--space-2);
  align-items: center;
  min-height: var(--row-md);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
}

.mapLayout .codexPanel .codexListGroup:hover {
  background: var(--ui-hover-bg);
  color: var(--ui-text-primary);
}

.mapLayout .codexPanel .codexListGroup:focus-visible {
  box-shadow: var(--ui-focus-ring-shadow);
  outline: none;
}

.mapLayout .codexPanel .codexListGroupCaret {
  color: var(--ui-text-muted);
  font-size: var(--fs-12);
  width: var(--space-2);
  text-align: center;
}

.mapLayout .codexPanel .codexListGroupLabel {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mapLayout .codexPanel .codexListGroupCount {
  color: var(--ui-text-muted);
  font-size: var(--fs-10);
}

.mapLayout .codexPanel .codexListBranch {
  margin-left: calc(var(--space-2) + var(--space-1));
  padding-left: var(--space-2);
  border-left: var(--ui-border-width) solid var(--ui-border);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.mapLayout .codexPanel .codexListEmpty {
  padding: var(--space-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.mapLayout .codexPanel .codexListEmptyTitle {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-primary);
}

.mapLayout .codexPanel .codexListEmptyHint {
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
}

.mapLayout .codexPanel .codexListItem {
  width: 100%;
  text-align: left;
  border: var(--ui-border-width) solid transparent;
  border-radius: var(--radius-md);
  padding: var(--space-1) var(--space-2);
  background: var(--ui-bg-1);
  color: var(--ui-text-primary);
  cursor: var(--ui-cursor-button);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-2);
  min-height: var(--row-md);
}

.mapLayout .codexPanel .codexListItem:hover {
  background: var(--ui-hover-bg);
}

.mapLayout .codexPanel .codexListItem:active {
  background: var(--ui-active-bg);
}

.mapLayout .codexPanel .codexListItem:focus-visible {
  box-shadow: var(--ui-focus-ring-shadow);
  outline: none;
}

.mapLayout .codexPanel .codexListItem.is-selected {
  background: var(--ui-selected-bg);
  border-color: var(--ui-selected-outline);
  outline: var(--ui-border-width) solid var(--ui-selected-outline);
  outline-offset: 0;
}

.mapLayout .codexPanel .codexListTitle {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-primary);
}

.mapLayout .codexPanel .codexListBranchStub {
  width: var(--space-2);
  min-width: var(--space-2);
  height: var(--ui-border-width);
  background: var(--ui-border);
}

.mapLayout .codexPanel .codexListItemBody {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.mapLayout .codexPanel .codexListMetaRow {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex-wrap: wrap;
}

.mapLayout .codexPanel .codexListMeta {
  font-size: var(--fs-10);
  color: var(--ui-text-muted);
}

.mapLayout .codexPanel .codexListHiddenTag {
  font-size: var(--fs-10);
  color: var(--ui-text-muted);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-pill);
  padding: 0 var(--space-1);
}

.mapLayout .codexPanel .codexDetailPane {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: var(--codex-right-pane-min);
  min-height: 0;
  background: var(--ui-bg-1);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.mapLayout .codexPanel .codexDetailHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexDetailHeaderActions .ui-btn {
  min-height: var(--row-sm);
  padding: var(--space-1) var(--space-2);
  font-size: var(--fs-12);
}

.mapLayout .codexPanel .codexDetail {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3);
  overflow-y: auto;
  min-height: 0;
}

.mapLayout .codexPanel .codexDetailEmptyState {
  margin: 0;
  padding: var(--space-3);
  border: var(--ui-border-width) dashed var(--ui-border);
  border-radius: var(--radius-md);
  color: var(--ui-text-muted);
  font-size: var(--fs-12);
}

.mapLayout .codexPanel .codexTitleField .ui-input {
  min-height: calc(var(--input-h-md) + var(--space-1));
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  font-family: var(--font-title);
  line-height: var(--lh-tight);
}

.mapLayout .codexPanel .codexMetaRow {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexField {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.mapLayout .codexPanel .codexField label {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-secondary);
}

.mapLayout .codexPanel .codexDetail .ui-input {
  min-height: var(--input-h-md);
  background: var(--ui-bg-inset);
}

.mapLayout .codexPanel .codexDetail textarea.ui-input {
  min-height: calc(var(--row-md) * 2);
  resize: vertical;
}

.mapLayout .codexPanel .codexBlurbSection .ui-input {
  font-style: italic;
}

.mapLayout .codexPanel .codexDmNotesSection .ui-input {
  background: var(--ui-bg-2);
}

.mapLayout .codexPanel .codexImageRow {
  display: grid;
  grid-template-columns: calc((var(--row-lg) * 3) + var(--space-2)) minmax(0, 1fr);
  gap: var(--space-2);
  align-items: center;
}

.mapLayout .codexPanel .codexImagePreview {
  width: calc((var(--row-lg) * 3) + var(--space-2));
  height: calc((var(--row-lg) * 2) + var(--space-1));
  border-radius: var(--radius-md);
  border: var(--ui-border-width) solid var(--ui-border);
  background: var(--ui-bg-inset);
  object-fit: cover;
}

.mapLayout .codexPanel .codexImagePlaceholder {
  width: calc((var(--row-lg) * 3) + var(--space-2));
  height: calc((var(--row-lg) * 2) + var(--space-1));
  border-radius: var(--radius-md);
  border: var(--ui-border-width) dashed var(--ui-border-soft);
  display: grid;
  place-items: center;
  font-size: var(--fs-10);
  color: var(--ui-text-muted);
}

.mapLayout .codexPanel .codexImageActions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
}

.mapLayout .codexPanel .codexRevealControls {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexRevealSection .codexRevealStatus {
  font-weight: var(--fw-semibold);
}

.mapLayout .codexPanel .codexRevealStatus {
  font-size: var(--fs-12);
  color: var(--ui-text-secondary);
}

.mapLayout .codexPanel .codexBtnRow {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  margin-top: 0;
}

.mapLayout .codexPanel .codexBtnRow .ui-btn {
  min-height: var(--row-sm);
  padding: var(--space-1) var(--space-2);
  font-size: var(--fs-12);
}

.mapLayout .codexPanel .codexSection {
  padding-top: var(--space-2);
  border-top: var(--ui-border-width) solid var(--ui-border-soft);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexSectionHeader {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
}

.mapLayout .codexPanel .codexSectionBody {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexAppearancesSection,
.mapLayout .codexPanel .codexPrivateSection {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexAppearancesHeader {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-secondary);
  text-transform: uppercase;
}

.mapLayout .codexPanel .codexAppearancesBody {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  max-height: calc(var(--row-lg) * 6);
  overflow-y: auto;
  padding-right: var(--space-1);
}

.mapLayout .codexPanel .codexAppearancesLoading,
.mapLayout .codexPanel .codexAppearancesEmpty,
.mapLayout .codexPanel .codexAppearancesError,
.mapLayout .codexPanel .codexPrivateError,
.mapLayout .codexPanel .codexPrivateStatus {
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
}

.mapLayout .codexPanel .codexAppearancesSummary {
  display: flex;
  gap: var(--space-3);
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
}

.mapLayout .codexPanel .codexAppearancesList {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.mapLayout .codexPanel .codexAppearanceGroup {
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-md);
  padding: var(--space-2);
  background: var(--ui-bg-1);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.mapLayout .codexPanel .codexAppearanceGroupHeader {
  font-size: var(--fs-10);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-secondary);
}

.mapLayout .codexPanel .codexAppearanceRow {
  font-size: var(--fs-12);
  color: var(--ui-text-secondary);
  padding: var(--space-1);
  border-radius: var(--radius-sm);
  cursor: var(--ui-cursor-button);
}

.mapLayout .codexPanel .codexAppearanceRow:hover {
  background: var(--ui-hover-bg);
  color: var(--ui-text-primary);
}

.mapLayout .codexPanel .codexToast {
  margin-top: var(--space-2);
}

.mapLayout .codexPrimitivePanel {
  --codex-primitive-left-pane-width: 280px;
  --codex-primitive-divider-width: 10px;
  --codex-primitive-tree-line: var(--ui-text-primary);
  position: absolute;
  z-index: var(--ui-z-pane);
  left: 56px;
  top: 56px;
  width: 1000px;
  height: 900px;
  max-width: calc(100vw - (var(--space-4) * 2));
  max-height: calc(100vh - (var(--space-4) * 2));
  background: var(--ui-bg-0);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-overlay);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeader {
  border-radius: 0;
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
  box-shadow: none;
  background: color-mix(in srgb, var(--ui-bg-1) 88%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveBody {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  position: relative;
  display: block;
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWindowBg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-position: left top;
  background-repeat: no-repeat;
  background-size: 2048px auto;
  opacity: 0.30;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWindowBg[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesOverlay {
  position: absolute;
  inset: 0;
  z-index: 24;
  display: grid;
  place-items: center;
  padding: var(--space-4);
  background: color-mix(in srgb, var(--ui-scrim) 52%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesOverlay[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsOverlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--ui-bg-0) 34%, transparent);
  z-index: 7;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsOverlay[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSettingsOverlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--ui-bg-0) 34%, transparent);
  z-index: 8;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSettingsOverlay[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameOverlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--ui-bg-0) 38%, transparent);
  z-index: 12;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameOverlay[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsPanel {
  min-width: 320px;
  max-width: min(420px, calc(100% - (var(--space-5) * 2)));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSettingsPanel {
  min-width: 320px;
  max-width: min(420px, calc(100% - (var(--space-5) * 2)));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNamePanel {
  min-width: 320px;
  max-width: min(420px, calc(100% - (var(--space-5) * 2)));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsClose {
  margin-left: auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSettingsClose {
  margin-left: auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameClose {
  margin-left: auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameBody {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameLabel {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameLabel > span {
  font-size: var(--fs-11);
  color: var(--ui-text-secondary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateNameActions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  padding-top: var(--space-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsBody .uiOptionsMenuRows {
  width: 100%;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSettingsBody .uiOptionsMenuRows {
  width: 100%;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsBody .uiOptionsMenuRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--space-2);
  width: 100%;
  margin: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsBody .uiOptionsMenuRow > span {
  grid-column: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntryOptionsBody .uiOptionsMenuRow > input[type="checkbox"] {
  grid-column: 2;
  justify-self: end;
  align-self: center;
  margin: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSettingsBody .uiOptionsMenuRow {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--space-2);
  width: 100%;
  margin: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgRow {
  grid-template-columns: minmax(0, 1fr) auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgActions {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgActions .ui-btn {
  min-height: 24px;
  padding: 0 var(--space-2);
  font-size: var(--fs-12);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgValue {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--fs-11);
  color: var(--ui-text-muted);
  padding: 0 var(--space-1) var(--space-1);
  min-height: 28px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgPreview {
  width: 56px;
  height: 32px;
  border-radius: var(--ui-radius-2);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  overflow: hidden;
  background: var(--ui-bg-1);
  flex: 0 0 auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgPreview[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgPreviewImg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveGlobalBgPreviewLabel {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesDialog {
  width: min(460px, calc(100% - (var(--space-4) * 2)));
  max-height: calc(100% - (var(--space-4) * 2));
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-3);
  padding: var(--ui-pad-4);
  border-radius: var(--ui-radius-4);
  border: var(--ui-border-width) solid var(--ui-border);
  background: var(--ui-popover-bg);
  box-shadow: var(--shadow-overlay);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesHeader {
  font-family: var(--font-title);
  font-size: var(--fs-18);
  line-height: var(--lh-tight);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesBody {
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-3);
  min-height: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesField {
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-1);
  color: var(--ui-text-secondary);
  font-size: var(--fs-12);
  font-family: var(--font-ui);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesCreateStatCardField {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesField .ui-input {
  width: 100%;
  min-height: var(--input-h-md);
  background: var(--ui-bg-inset);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesCreateRow {
  display: flex;
  align-items: center;
  gap: var(--ui-gap-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesCreateInput.ui-input {
  flex: 1 1 auto;
  min-width: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesCreate.ui-btn {
  flex: 0 0 auto;
  min-height: var(--input-h-md);
  padding-inline: var(--space-3);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesDivider {
  width: 100%;
  height: 1px;
  background: color-mix(in srgb, var(--ui-border-soft) 78%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesUsage {
  color: var(--ui-text-secondary);
  font-size: var(--fs-12);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesMessage {
  min-height: 1.1em;
  color: var(--ui-text-muted);
  font-size: var(--fs-12);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesMessage.is-error {
  color: var(--ui-accent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesMessage[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesActions {
  display: flex;
  justify-content: flex-end;
  gap: var(--ui-gap-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveManageTypesDelete.ui-btn.is-primary {
  background: color-mix(in srgb, var(--ui-accent) 84%, var(--ui-bg-0) 16%);
  border-color: color-mix(in srgb, var(--ui-accent) 72%, var(--ui-border) 28%);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveSplit {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 100%;
  min-height: 0;
  background: color-mix(in srgb, var(--ui-bg-0) 46%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitivePane {
  min-height: 0;
  overflow: auto;
  color: var(--ui-text-primary);
  font-size: var(--fs-12);
  padding: var(--space-3);
  transition:
    flex-basis 180ms ease,
    width 180ms ease,
    min-width 180ms ease,
    padding 180ms ease,
    opacity 160ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneLeft {
  flex: 0 0 var(--codex-primitive-left-pane-width);
  width: var(--codex-primitive-left-pane-width);
  min-width: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: transparent;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneRight {
  flex: 0 0 calc(100% - var(--codex-primitive-left-pane-width) - var(--codex-primitive-divider-width));
  width: calc(100% - var(--codex-primitive-left-pane-width) - var(--codex-primitive-divider-width));
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveRightScroll {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  height: 100%;
  min-height: 0;
  overflow: auto;
  padding: var(--space-3);
  padding-bottom: calc(var(--space-3) * 2);
  box-sizing: border-box;
  scrollbar-gutter: stable both-edges;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--ui-border) 72%, transparent) color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
  background: transparent;
}

@supports selector(::-webkit-scrollbar) {
  .mapLayout .codexPrimitivePanel .codexPrimitiveRightScroll::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }

  .mapLayout .codexPrimitivePanel .codexPrimitiveRightScroll::-webkit-scrollbar-track {
    background: color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
    border-radius: 999px;
  }

  .mapLayout .codexPrimitivePanel .codexPrimitiveRightScroll::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--ui-border) 72%, transparent);
    border-radius: 999px;
    border: 2px solid color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
  }
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell {
  position: relative;
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0;
  border-radius: var(--ui-radius-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleContent {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-left: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-reorder-enabled {
  transition: background-color 120ms ease, box-shadow 120ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-reorder-enabled::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: min(120px, 24%);
  border-radius: var(--ui-radius-2);
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--ui-selection-highlight-bg-color) 20%, transparent) 0%,
    color-mix(in srgb, var(--ui-selection-highlight-bg-color) 6%, transparent) 70%,
    transparent 100%
  );
  pointer-events: none;
  opacity: 0;
  transition: opacity 120ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-reorder-enabled.is-gutter-hover::before,
.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-reorder-enabled.is-armed::before {
  opacity: 1;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-reorder-enabled.is-gutter-hover {
  cursor: grab;
  box-shadow: inset 2px 0 0 0 color-mix(in srgb, var(--ui-selection-highlight-ring-color) 72%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-reorder-enabled.is-armed {
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
  user-select: none;
  cursor: grab;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-dragging {
  opacity: 0.62;
  cursor: grabbing;
  user-select: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-drop-target-before {
  box-shadow: inset 0 2px 0 0 var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-drop-target-after {
  box-shadow: inset 0 -2px 0 0 var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleDropPlaceholder {
  height: 10px;
  border-radius: var(--ui-radius-2);
  border: 1px dashed color-mix(in srgb, var(--ui-selection-highlight-ring-color) 72%, transparent);
  background: color-mix(in srgb, var(--ui-selection-highlight-bg-color) 28%, transparent);
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveModuleShell.is-drag-preview {
  width: min(680px, 78vw);
  max-width: 78vw;
  opacity: 0.86;
  background: color-mix(in srgb, var(--ui-bg-1) 88%, transparent);
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 84%, transparent);
  box-shadow: var(--ui-shadow-2);
}


.mapLayout .codexPrimitivePanel .codexPrimitiveHeroBtn {
  position: relative;
  z-index: 1;
  width: auto;
  max-width: 100%;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  color: var(--ui-text-muted);
  display: inline-block;
  overflow: visible;
  cursor: zoom-in;
  min-height: 0;
  box-shadow: none;
  flex: 0 0 auto;
  align-self: flex-start;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroWrap {
  position: relative;
  width: min(100%, 1024px);
  max-width: 100%;
  margin-inline: 0;
  flex: 0 0 auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia {
  position: relative;
  display: block;
  width: 100%;
  max-height: 600px;
  max-width: 100%;
  overflow: visible;
  background: transparent;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-height-animating {
  transition: height 140ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-empty {
  min-height: min(32vh, 300px);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-3);
  background:
    radial-gradient(
      120% 90% at 50% -15%,
      color-mix(in srgb, var(--ui-text-primary) 7%, transparent) 0%,
      transparent 62%
    ),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--ui-bg-inset) 55%, var(--ui-bg-0)) 0%,
      var(--ui-bg-0) 100%
    );
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--ui-text-primary) 8%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--ui-border-soft) 72%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroDropOverlay {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 6;
  outline: 1px dashed color-mix(in srgb, var(--ui-accent) 72%, var(--ui-border));
  outline-offset: -1px;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--ui-accent-soft, var(--ui-accent)) 24%, transparent) 0%,
      color-mix(in srgb, var(--ui-accent-soft, var(--ui-accent)) 12%, transparent) 100%
    );
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroDropOverlayText {
  font-family: var(--font-ui);
  font-size: clamp(24px, 3.2vw, 40px);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--ui-text-primary) 26%, transparent);
  text-align: center;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.18);
  padding: var(--ui-pad-4);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroBtn:disabled {
  cursor: default;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroImg {
  position: relative;
  z-index: 1;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 600px;
  display: block;
  margin-inline: 0 auto;
  object-fit: contain;
  object-position: center center;
  box-shadow: none;
  filter: drop-shadow(var(--shadow-float)) drop-shadow(var(--shadow-float));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-image-sliding {
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroImgGhost {
  position: absolute;
  z-index: 3;
  display: block;
  pointer-events: none;
  margin: 0;
}

.uiOverlayArrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: var(--ui-control-size-2);
  height: var(--ui-control-size-2);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-pill);
  background: color-mix(in srgb, var(--ui-bg-0) 82%, transparent);
  color: var(--ui-text-primary);
  display: grid;
  place-items: center;
  font-size: calc(var(--fs-12) * 2);
  line-height: 1;
  cursor: var(--ui-cursor-button);
  opacity: 0.58;
  transition: opacity 140ms ease, transform 140ms ease, background-color 140ms ease, border-color 140ms ease;
}

.uiOverlayArrow:hover {
  opacity: 1;
  transform: translateY(-50%) scale(1.08);
  background: color-mix(in srgb, var(--ui-bg-0) 72%, transparent);
}

.uiOverlayArrow:focus-visible {
  opacity: 1;
  transform: translateY(-50%) scale(1.08);
  box-shadow: var(--ui-focus-ring-shadow);
  outline: none;
}

.uiOverlayArrow:disabled {
  opacity: 0.35;
  cursor: default;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroNav {
  z-index: 7;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroNavPrev {
  left: var(--space-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroNavNext {
  right: var(--space-2);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-crop-wide {
  aspect-ratio: 2 / 1;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-crop-tall {
  aspect-ratio: 2 / 3;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-crop-wide .codexPrimitiveHeroImg,
.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-crop-tall .codexPrimitiveHeroImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-crop-wide,
.mapLayout .codexPrimitivePanel .codexPrimitiveHeroMedia.is-hero-crop-tall {
  overflow: hidden;
  max-height: 600px;
  margin-inline: 0;
  box-shadow: none;
  filter: drop-shadow(var(--shadow-float)) drop-shadow(var(--shadow-float));
}

.codexPrimitiveLightboxImageWrap {
  position: relative;
  display: block;
  width: max-content;
  max-width: none;
  align-self: center;
}

.codexPrimitiveLightboxNav {
  z-index: 4;
}

.codexPrimitiveLightboxNavPrev {
  left: var(--space-2);
}

.codexPrimitiveLightboxNavNext {
  right: var(--space-2);
}

.codexPrimitiveLightboxMetaRow {
  width: auto;
  max-width: min(96vw, 1680px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: nowrap;
}

.codexPrimitiveLightboxTitle {
  flex: 0 1 auto;
  min-width: 0;
  max-width: min(64vw, 960px);
}

.codexPrimitiveLightboxActions {
  margin-top: 0;
  align-self: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex-wrap: nowrap;
  flex: 0 0 auto;
}

.codexPrimitiveLightboxActions[hidden] {
  display: none !important;
}

.codexPrimitiveLightboxActions > [hidden] {
  display: none !important;
}

.codexPrimitiveLightboxActions .ui-btn.is-ghost {
  background: var(--ui-control-bg);
  border: var(--ui-border-width) solid var(--ui-border);
  color: var(--ui-text-primary);
  box-shadow: var(--ui-shadow-1);
  transition:
    background var(--motion-fast) ease,
    border-color var(--motion-fast) ease,
    box-shadow var(--motion-fast) ease,
    color var(--motion-fast) ease;
}

.codexPrimitiveLightboxActions .ui-btn.is-ghost:hover:not(:disabled) {
  background: var(--ui-control-bg-hover);
  border-color: var(--ui-border-strong, var(--ui-border));
  box-shadow: var(--ui-shadow-2);
}

.codexPrimitiveLightboxActions .ui-btn.is-ghost:active:not(:disabled) {
  background: var(--ui-control-bg-active);
  border-color: var(--ui-border-strong, var(--ui-border));
  box-shadow: var(--ui-shadow-1);
}

.codexPrimitiveLightboxActions .ui-btn.is-ghost:focus-visible {
  outline: none;
  box-shadow: var(--ui-focus-ring-shadow);
}

.codexPrimitiveLightboxActions .ui-btn.is-ghost:disabled {
  opacity: 0.6;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroEmpty {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3);
  text-align: center;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroEmpty::before {
  content: "";
  inline-size: 44px;
  block-size: 44px;
  border-radius: var(--ui-radius-pill);
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border-soft) 85%, transparent);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--ui-bg-inset) 70%, transparent), transparent),
    var(--ui-bg-0);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ui-text-primary) 6%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroEmpty[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroEmptyText {
  max-width: 28ch;
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  color: var(--ui-text-secondary);
  line-height: var(--lh-normal);
  text-wrap: balance;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroLinkBtn {
  min-height: var(--input-h-md);
  background: var(--ui-control-bg);
  border-color: var(--ui-border-soft);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveHeroLinkBtn[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveRightPlaceholder {
  color: var(--ui-text-primary);
  font-size: var(--fs-12);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomePane {
  width: 100%;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  min-height: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomePane[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeCollageFrame {
  position: relative;
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.34);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeCollageImg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.92) contrast(0.96);
  opacity: 0.8;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeCollageImg[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeFallback {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 22% 24%, color-mix(in srgb, var(--ui-accent) 18%, transparent), transparent 42%),
    radial-gradient(circle at 76% 72%, color-mix(in srgb, var(--ui-focus-ring) 20%, transparent), transparent 46%),
    linear-gradient(145deg, color-mix(in srgb, var(--ui-bg-2) 90%, transparent), color-mix(in srgb, var(--ui-bg-0) 88%, transparent));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeFallback[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeOverlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  text-align: center;
  padding: clamp(16px, 4vw, 42px);
  background: linear-gradient(
    to bottom,
    rgba(8, 10, 14, 0.14),
    rgba(8, 10, 14, 0.06) 40%,
    rgba(8, 10, 14, 0.14)
  );
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeHeadline {
  font-family: var(--font-title);
  font-size: clamp(var(--fs-18), 2.8vw, 40px);
  line-height: 1.15;
  letter-spacing: 0.04em;
  color: var(--ui-text-primary);
  text-shadow:
    0 2px 10px rgba(0, 0, 0, 0.72),
    0 1px 0 rgba(0, 0, 0, 0.58);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeSubhead {
  font-family: var(--font-ui);
  font-size: clamp(var(--fs-12), 1.2vw, var(--fs-16));
  line-height: 1.3;
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--ui-text-primary) 88%, var(--ui-text-muted) 12%);
  max-width: 44ch;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.64),
    0 1px 0 rgba(0, 0, 0, 0.48);
}

.theme-light .mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeHeadline {
  color: #ffffff;
}

.theme-light .mapLayout .codexPrimitivePanel .codexPrimitiveWelcomeSubhead {
  color: color-mix(in srgb, #ffffff 92%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTitleRow {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-2);
  margin-top: var(--space-1);
  min-height: 0;
  flex: 0 0 auto;
  min-width: 0;
  padding: var(--ui-pad-1) var(--ui-pad-2);
  background: transparent;
  border: 0;
  border-radius: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTitleRow.is-travel-open {
  z-index: 12;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntityTitle {
  font-family: var(--font-title);
  font-size: clamp(18px, 3vw, 30px);
  font-weight: var(--fw-title);
  line-height: var(--lh-tight);
  color: var(--ui-text-primary);
  flex: 1 1 auto;
  min-width: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTitleActions {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: var(--space-2);
  flex: 0 0 auto;
  margin-left: auto;
  min-width: 0;
  position: relative;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveRevealBtn {
  flex: 0 0 auto;
  align-self: flex-end;
  min-height: 22px;
  height: 22px;
  padding: 0 8px;
  border-radius: var(--ui-radius-pill);
  border: var(--ui-border-width) solid var(--ui-accent);
  background: var(--ui-accent-soft);
  color: var(--ui-accent);
  font-family: var(--font-ui);
  font-size: var(--fs-10);
  font-style: italic;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  line-height: 1.1;
  white-space: nowrap;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveRevealBtn.is-hidden {
  border-color: var(--ui-border-soft);
  background: var(--ui-bg-0);
  color: var(--ui-text-muted);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveRevealBtn:disabled {
  opacity: var(--ui-disabled-opacity);
  cursor: var(--ui-cursor-disabled);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveRevealBtn[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelMenu {
  position: relative;
  flex: 0 0 auto;
  align-self: flex-end;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelMenu[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelBtn {
  min-height: 22px;
  height: 22px;
  padding: 0 8px;
  border-radius: var(--ui-radius-pill);
  border: var(--ui-border-width) solid var(--ui-border);
  background: var(--ui-control-bg);
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-10);
  font-style: italic;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  line-height: 1.1;
  white-space: nowrap;
  box-shadow: var(--ui-shadow-1);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelBtn.is-open {
  border-color: var(--ui-border-strong, var(--ui-border));
  background: var(--ui-control-bg-hover);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelDropdown {
  position: absolute;
  top: calc(100% + var(--space-1));
  right: 0;
  min-width: 140px;
  padding: var(--space-1);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  background: var(--ui-bg-1);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-2);
  box-shadow: var(--ui-shadow-2);
  z-index: 13;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelDropdown[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTravelOption {
  min-height: 24px;
  justify-content: flex-start;
  padding: 0 var(--space-2);
  border-radius: var(--ui-radius-2);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  background: var(--ui-control-bg);
  color: var(--ui-text-primary);
  font-size: var(--fs-11);
  box-shadow: none;
}

.mapLayout .uiEntityTypeBadgeSelect,
.mapLayout .codexPrimitivePanel .codexPrimitiveEntityTypeBadge {
  flex: 0 0 auto;
  align-self: flex-end;
  min-height: 22px;
  height: 22px;
  font-family: var(--font-ui);
  font-size: var(--fs-10);
  font-style: italic;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  text-transform: none;
  color: var(--ui-accent);
  background: var(--ui-accent-soft);
  border: var(--ui-border-width) solid var(--ui-accent);
  border-radius: var(--ui-radius-pill);
  padding: 0 8px;
  white-space: nowrap;
  width: auto;
  min-width: 84px;
  max-width: 116px;
  cursor: var(--ui-cursor-button);
  line-height: 1.1;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntityTypeBadge {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 20px;
  text-overflow: ellipsis;
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position:
    calc(100% - 12px) 50%,
    calc(100% - 8px) 50%;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
}

.theme-dark .mapLayout .codexPrimitivePanel .codexPrimitiveEntityTypeBadge {
  color-scheme: dark;
}

.theme-light .mapLayout .codexPrimitivePanel .codexPrimitiveEntityTypeBadge {
  color-scheme: light;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntityTypeBadge option {
  background: var(--ui-bg-1);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntityTypeBadge[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveBlurbFrame {
  position: relative;
  z-index: 1;
  min-width: 0;
  background: var(--ui-bg-inset);
  border: var(--ui-border-width) dashed var(--ui-accent);
  border-radius: var(--ui-radius-3);
  padding: var(--ui-pad-2);
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-2);
  flex: 0 0 auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveBlurbFrame.is-editing {
  border-color: var(--ui-accent);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-accent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveBlurb {
  background: var(--ui-bg-inset);
  border-radius: var(--ui-radius-2);
  padding: var(--ui-pad-1) var(--ui-pad-2);
  font-size: var(--fs-14);
  color: var(--ui-text-secondary);
  line-height: 1.4;
  font-family: var(--font-ui);
  font-style: italic;
  white-space: pre-wrap;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveBlurb.is-placeholder {
  color: var(--ui-text-muted);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardFrame {
  position: relative;
  z-index: 1;
  min-width: 0;
  max-width: 800px;
  background: color-mix(in srgb, var(--ui-bg-inset) 92%, transparent);
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border-soft) 86%, transparent);
  border-radius: var(--ui-radius-2);
  box-shadow: var(--shadow-float);
  padding: var(--ui-pad-2) var(--ui-pad-2) var(--ui-pad-1);
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 0 0 auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardOptionsBtn.ui-iconbtn {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 3;
  width: 24px;
  height: 24px;
  padding: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardFrame.is-disabled .codexPrimitiveStatCardOptionsBtn.ui-iconbtn {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardOptionsMenu.uiOptionsMenu {
  position: absolute;
  top: 34px;
  right: 8px;
  z-index: 4;
  width: max-content;
  min-width: 300px;
  max-width: min(92vw, 420px);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardOptionsMenu.uiOptionsMenu[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardOptionsMenu .uiOptionsMenuRows {
  max-height: min(46vh, 320px);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  box-sizing: border-box;
  padding-right: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardOptionsHeader .codexPrimitiveStatCardOptionsClose {
  margin-left: auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRevealRow {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--space-2);
  padding-left: var(--space-1);
  padding-right: var(--space-1);
  min-width: 0;
  width: 100%;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRevealRow > input[type="checkbox"] {
  grid-column: 2;
  justify-self: end;
  align-self: center;
  margin: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRevealLabel {
  grid-column: 1;
  display: inline-flex;
  align-items: center;
  min-width: 0;
  font-size: var(--fs-12);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateTools {
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-1);
  padding-top: var(--ui-gap-1);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateSearchRow {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateSearchRow > span {
  font-size: var(--fs-11);
  color: var(--ui-text-muted);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateSearch.ui-input {
  width: 100%;
  min-width: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateSelect {
  width: 100%;
  min-width: 280px;
  max-width: min(86vw, 380px);
  min-height: 152px;
  max-height: min(42vh, 300px);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-2);
  background: color-mix(in srgb, var(--ui-bg-0) 82%, transparent);
  color: var(--ui-text-primary);
  padding: 4px;
  box-sizing: border-box;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateActions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTemplateActions .ui-btn {
  width: 100%;
  justify-content: center;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardFrame.is-disabled {
  opacity: 1;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardHeader {
  font-family: var(--font-title);
  font-size: var(--fs-22);
  font-weight: var(--fw-title);
  color: var(--ui-text-primary);
  line-height: 1.2;
  margin-bottom: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardSubtitle {
  display: block;
  width: 100%;
  font-style: italic;
  line-height: 1.3;
  margin: 0 0 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRule {
  height: 2px;
  width: 100%;
  border: 0;
  background-image: var(--ui-gradient-divider-accent);
  background-repeat: no-repeat;
  background-size: 100% 2px;
  background-position: 0 50%;
  box-shadow: var(--ui-gradient-divider-accent-shadow);
  margin: 4px 0 6px;
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardModeSurface,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewHost {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardModeSurface[hidden],
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewHost[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumns.is-single-column {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumn {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardStack,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardBalanceBlock {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumnTitle {
  font-family: var(--font-ui);
  font-size: var(--fs-11);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ui-text-primary);
  margin-bottom: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumnRight .codexPrimitiveStatCardColumnTitle {
  font-family: var(--font-title);
  font-size: var(--fs-13);
  font-weight: var(--fw-title);
  color: var(--ui-accent-secondary-text);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRichSection .codexPrimitiveStatCardColumnTitle {
  font-family: var(--font-title);
  font-size: var(--fs-13);
  font-weight: var(--fw-title);
  color: var(--ui-accent-secondary-text);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewRichSection .codexPrimitiveStatCardColumnTitle {
  font-family: var(--font-title);
  font-size: var(--fs-13);
  font-weight: var(--fw-title);
  color: var(--ui-accent-secondary-text);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardHeader,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardVitals .codexPrimitiveStatCardPropertyLine > span,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardDetails .codexPrimitiveStatCardPropertyLine > span,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilities > .codexPrimitiveStatCardAbility > span {
  color: var(--ui-accent-secondary-text);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardVitals {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardVital,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardLine,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTextareaWrap {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--ui-text-secondary);
  font-size: var(--fs-12);
  text-transform: none;
  letter-spacing: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardPropertyLine > span {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardPropertyLine {
  align-items: flex-start;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardPropertyLine > span::after {
  content: "";
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTextareaWrap {
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTextareaWrap > span {
  font-weight: 700;
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardInput {
  width: auto;
  min-width: 0;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--ui-text-primary);
  padding: 0;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.35;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardInputInline {
  flex: 1 1 auto;
  width: 100%;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewText {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.35;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardInputArea {
  resize: none;
  overflow: hidden;
  min-height: 1.35em;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardInput.is-text {
  font-size: var(--fs-12);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardInput::placeholder {
  color: var(--ui-text-muted);
  opacity: 0.52;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTextarea::placeholder {
  color: var(--ui-text-muted);
  opacity: 0.52;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardInput:focus {
  outline: none;
  border-bottom-color: transparent;
  background-image: none;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel input[type="number"].codexPrimitiveStatCardInput {
  appearance: textfield;
  -moz-appearance: textfield;
}

.mapLayout .codexPrimitivePanel input[type="number"].codexPrimitiveStatCardInput::-webkit-outer-spin-button,
.mapLayout .codexPrimitivePanel input[type="number"].codexPrimitiveStatCardInput::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilities {
  display: grid;
  grid-template-columns: repeat(6, 52px);
  justify-content: start;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbility {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  color: var(--ui-text-secondary);
  font-size: var(--fs-11);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilityLabelBold {
  font-weight: 700;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbility .codexPrimitiveStatCardInputInline {
  width: 100%;
  text-align: center;
  flex: 0 0 auto;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilityValue {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  width: 100%;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilityValue .codexPrimitiveStatCardInputInline {
  width: auto;
  min-width: 1.6ch;
  max-width: 3.2ch;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilityModifier {
  font-weight: 700;
  color: var(--ui-text-primary);
  line-height: 1.2;
  white-space: nowrap;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardDetails {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewDetails {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardFrame [data-stat-card-detail-key] {
  overflow: hidden;
  max-height: 320px;
  opacity: 1;
  transform-origin: top;
  transition:
    max-height 180ms ease,
    opacity 140ms ease,
    margin-top 180ms ease,
    margin-bottom 180ms ease,
    padding-top 180ms ease,
    padding-bottom 180ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardFrame [data-stat-card-detail-key].is-filtered-out {
  max-height: 0 !important;
  opacity: 0;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine {
  position: relative;
  display: block;
  --statCardDetailLabelWidth: 0px;
  min-height: 1.35em;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine.is-filtered-out {
  min-height: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine > span {
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine .codexPrimitiveStatCardInputInline {
  width: 100%;
  text-indent: calc(var(--statCardDetailLabelWidth) + 1ch);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewLine {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  color: var(--ui-text-secondary);
  font-size: var(--fs-12);
  text-transform: none;
  letter-spacing: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTextarea {
  width: 100%;
  resize: vertical;
  min-height: 210px;
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border-soft) 74%, transparent);
  border-radius: var(--ui-radius-2);
  background: color-mix(in srgb, var(--ui-bg-0) 70%, transparent);
  padding: 8px 10px;
  line-height: 1.4;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumnRight .codexPrimitiveStatCardTextarea {
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumnRight .codexPrimitiveStatCardTextarea::placeholder {
  color: var(--ui-text-muted);
  opacity: 0.52;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRichSection {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewRichFragment,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewRichSection {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRichSection[data-stat-card-detail-key]:not(.is-filtered-out) {
  overflow: visible;
  max-height: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTraitsEditor {
  width: 100%;
  min-height: 1.35em;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--ui-text-primary);
  padding: 0;
  margin: 0;
  line-height: 1.4;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-shadow: none;
  outline: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardViewRichText {
  width: 100%;
  min-width: 0;
  color: var(--ui-text-primary);
  line-height: 1.4;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardRule.codexPrimitiveStatCardRuleCompact {
  margin: 2px 0 4px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTraitsEditor.is-empty::before {
  content: attr(data-placeholder);
  white-space: pre-line;
  color: var(--ui-text-muted);
  opacity: 0.52;
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTraitsEditor.is-focused,
.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTraitsEditor:focus {
  outline: none;
  border-bottom-color: transparent;
  background-image: none;
  box-shadow: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTraitsEditor.is-disabled {
  opacity: 1;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardActions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0;
  padding-top: 0;
  margin-top: auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardStatus {
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveStatCardStatus.is-error {
  color: var(--ui-danger);
}

@media (max-width: 900px) {
  .mapLayout .codexPrimitivePanel .codexPrimitiveStatCardColumns {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .mapLayout .codexPrimitivePanel .codexPrimitiveStatCardAbilities {
    grid-template-columns: repeat(6, 52px);
  }
  .mapLayout .codexPrimitivePanel .codexPrimitiveStatCardTextarea {
    min-height: 120px;
  }
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardFrame {
  position: relative;
  z-index: 1;
  min-width: 0;
  width: 675px;
  max-width: 100%;
  box-sizing: border-box;
  background: color-mix(in srgb, var(--ui-bg-inset) 92%, transparent);
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border-soft) 86%, transparent);
  border-radius: var(--ui-radius-2);
  box-shadow: var(--shadow-float);
  padding: var(--ui-pad-2) var(--ui-pad-2) var(--ui-pad-1);
  display: flex;
  flex-direction: column;
  gap: 0;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardHeader {
  font-family: var(--font-title);
  font-size: var(--fs-22);
  font-weight: var(--fw-title);
  color: var(--ui-accent-secondary-text);
  line-height: 1.2;
  margin-bottom: 2px;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardSubtitle {
  display: block;
  width: 100%;
  font-style: italic;
  line-height: 1.3;
  margin: 0 0 2px;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardRule {
  height: 2px;
  width: 100%;
  border: 0;
  background-image: var(--ui-gradient-divider-accent);
  background-repeat: no-repeat;
  background-size: 100% 2px;
  background-position: 0 50%;
  box-shadow: var(--ui-gradient-divider-accent-shadow);
  margin: 4px 0 6px;
  pointer-events: none;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardColumns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardColumn {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardColumnTitle {
  font-family: var(--font-title);
  font-size: var(--fs-13);
  font-weight: var(--fw-title);
  color: var(--ui-accent-secondary-text);
  margin-bottom: 2px;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardVitals,
[data-mention-hovercard="1"] .codexPrimitiveStatCardDetails {
  display: flex;
  flex-direction: column;
  gap: 0;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardVital,
[data-mention-hovercard="1"] .codexPrimitiveStatCardLine {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--ui-text-secondary);
  font-size: var(--fs-12);
  text-transform: none;
  letter-spacing: 0;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardPropertyLine > span {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--ui-accent-secondary-text);
  font-family: var(--font-ui);
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardPropertyLine {
  align-items: flex-start;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardInput {
  width: auto;
  min-width: 0;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--ui-text-primary);
  padding: 0;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.35;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardInputInline {
  flex: 1 1 auto;
  width: 100%;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardInputArea {
  resize: none;
  overflow: hidden;
  min-height: 1.35em;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbilities {
  display: grid;
  grid-template-columns: repeat(6, 52px);
  justify-content: start;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 2px;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbility {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  color: var(--ui-text-secondary);
  font-size: var(--fs-11);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbility > span {
  color: var(--ui-accent-secondary-text);
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbilityLabelBold {
  font-weight: 700;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbilityValue {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  width: 100%;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbilityValue .codexPrimitiveStatCardInputInline {
  width: auto;
  min-width: 1.6ch;
  max-width: 3.2ch;
  text-align: center;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardAbilityModifier {
  font-weight: 700;
  color: var(--ui-text-primary);
  line-height: 1.2;
  white-space: nowrap;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine {
  position: relative;
  display: block;
  --statCardDetailLabelWidth: 0px;
  min-height: 1.35em;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine > span {
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  pointer-events: none;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardDetails .codexPrimitiveStatCardLine .codexPrimitiveStatCardInputInline {
  width: 100%;
  text-indent: calc(var(--statCardDetailLabelWidth) + 1ch);
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardRichSection {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardRichSection[data-stat-card-detail-key]:not(.is-filtered-out) {
  overflow: visible;
  max-height: none;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardTraitsEditor {
  width: 100%;
  min-height: 1.35em;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--ui-text-primary);
  padding: 0;
  margin: 0;
  line-height: 1.4;
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-shadow: none;
  outline: none;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardRule.codexPrimitiveStatCardRuleCompact {
  margin: 2px 0 4px;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardActions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0;
  padding-top: 0;
  margin-top: auto;
}

[data-mention-hovercard="1"] .codexPrimitiveStatCardStatus {
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
}

@media (max-width: 900px) {
  [data-mention-hovercard="1"] .codexPrimitiveStatCardColumns {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepsFrame {
  position: relative;
  z-index: 1;
  min-width: 0;
  background: var(--ui-bg-inset);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-3);
  padding: var(--ui-pad-2);
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-1);
  flex: 0 0 auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepsList {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepRow {
  display: flex;
  align-items: center;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepCreateRow {
  display: flex;
  align-items: center;
  gap: var(--ui-gap-1);
  padding-top: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepLine {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ui-text-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  line-height: 1.45;
  padding: 4px 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepLine::placeholder {
  color: var(--ui-text-muted);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepLine:focus-visible {
  box-shadow: none;
  outline: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepLine.is-done {
  color: var(--ui-text-muted);
  text-decoration: line-through;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestStepCreateBtn.ui-btn {
  min-width: 28px;
  width: 28px;
  height: 24px;
  padding: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestsFrame {
  position: relative;
  z-index: 1;
  min-width: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-1);
  flex: 0 0 auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestsFrame[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestsTitleToken {
  font-family: var(--font-title);
  font-size: var(--fs-18);
  line-height: 1.2;
  font-weight: var(--fw-title);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestsTitleToken.is-inline-editing {
  outline: none;
  box-shadow: inset 0 -1px 0 var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestsList {
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-1);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestCreateRow {
  display: flex;
  align-items: center;
  gap: var(--ui-gap-1);
  margin-top: 2px;
  padding-left: 14px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestCreateBtn.ui-btn {
  min-width: 24px;
  width: 24px;
  height: 24px;
  padding: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestCreateInput {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ui-text-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  line-height: 1.45;
  padding: 3px 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestCreateInput::placeholder {
  color: var(--ui-text-muted);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestCreateInput:focus-visible {
  outline: none;
  box-shadow: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--ui-gap-1);
  justify-content: flex-start;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 0;
  padding: 2px 18px 2px 14px;
  border: 0;
  border-radius: var(--ui-radius-2);
  background: transparent;
  box-shadow: none;
  font-size: var(--fs-14);
  cursor: pointer;
  transition: background-color 120ms ease;
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn[draggable="true"] {
  cursor: grab;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-dragging {
  opacity: 0.66;
  cursor: grabbing;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-drop-target-before {
  box-shadow:
    inset 0 2px 0 0 var(--ui-selection-highlight-ring-color),
    inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-drop-target-after {
  box-shadow:
    inset 0 -2px 0 0 var(--ui-selection-highlight-ring-color),
    inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn::before {
  position: absolute;
  left: 2px;
  top: 3px;
  content: "\2022";
  display: inline-block;
  margin-right: 0;
  color: var(--ui-text-secondary);
  line-height: 1;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestLabel {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
  padding-right: 16px;
  user-select: text;
  cursor: text;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestMarker {
  position: static;
  flex: 0 0 auto;
  flex-shrink: 0;
  align-self: center;
  margin-left: auto;
  margin-top: 0;
  min-width: 12px;
  display: inline-block;
  z-index: 1;
  text-align: right;
  color: var(--ui-text-secondary);
  font-family: var(--font-ui), "Segoe UI Symbol", "Apple Color Emoji", sans-serif;
  font-size: var(--fs-13);
  font-weight: var(--fw-semibold);
  line-height: 1;
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestMarker[data-state="completed"] {
  color: var(--ui-ok, #34c67a) !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestMarker[data-state="failed"] {
  color: var(--ui-danger, #d64b4b) !important;
}


.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-dimmed .codexPrimitiveQuestSubquestLabel {
  opacity: 0.72;
  text-decoration: line-through;
  text-decoration-color: currentColor;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-completed .codexPrimitiveQuestSubquestMarker {
  color: var(--ui-ok, #34c67a);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-failed .codexPrimitiveQuestSubquestMarker {
  color: var(--ui-danger, #d64b4b);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-completed .codexPrimitiveQuestSubquestLabel {
  color: color-mix(in srgb, var(--ui-ok, #34c67a) 74%, var(--ui-text-primary));
  text-decoration-color: color-mix(in srgb, var(--ui-ok, #34c67a) 84%, var(--ui-text-primary));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-failed .codexPrimitiveQuestSubquestLabel {
  color: color-mix(in srgb, var(--ui-danger, #d64b4b) 74%, var(--ui-text-primary));
  text-decoration-color: color-mix(in srgb, var(--ui-danger, #d64b4b) 84%, var(--ui-text-primary));
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-selected:not(.is-hidden-objective):not(.is-dimmed) {
  background: color-mix(in srgb, var(--ui-selection-bg) 72%, transparent);
  border: 0;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hidden-objective {
  background: color-mix(in srgb, var(--ui-bg-2) 74%, transparent);
  box-shadow: none;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hidden-objective .codexPrimitiveQuestSubquestLabel {
  font-style: italic;
  color: var(--ui-text-primary);
  opacity: 0.72;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn:hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn:focus-visible {
  background: color-mix(in srgb, var(--ui-bg-2) 66%, transparent);
  box-shadow: inset 0 0 0 var(--ui-border-width) color-mix(in srgb, var(--ui-border-soft) 82%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn:not(.is-hidden-objective):not(.is-dimmed):hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn:not(.is-hidden-objective):not(.is-dimmed):focus-visible,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hovered:not(.is-hidden-objective):not(.is-dimmed) {
  background: rgba(220, 170, 70, 0.22) !important;
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color) !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hidden-objective:hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hidden-objective:focus-visible,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hidden-objective.is-hovered {
  background: rgba(0, 0, 0, 0.32) !important;
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color) !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-hidden-objective.is-selected {
  background: color-mix(in srgb, var(--ui-bg-2) 82%, transparent);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-dimmed:hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-dimmed:focus-visible,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-dimmed.is-hovered {
  box-shadow: inset 0 0 0 var(--ui-border-width) color-mix(in srgb, var(--ui-border-soft) 72%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-completed:hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-completed:focus-visible,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-completed.is-hovered {
  background: color-mix(in srgb, var(--ui-ok, #34c67a) 14%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-failed:hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-failed:focus-visible,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-failed.is-hovered {
  background: color-mix(in srgb, var(--ui-danger, #d64b4b) 14%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbar {
  position: fixed;
  left: 0;
  top: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px;
  border-radius: var(--ui-radius-2);
  background: color-mix(in srgb, var(--ui-bg-2) 88%, transparent);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  box-shadow: var(--ui-shadow-popover);
  opacity: 0;
  pointer-events: none;
  z-index: 20;
  transform: translateY(2px);
  transition:
    opacity 120ms ease,
    transform 140ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-toolbar-visible .codexPrimitiveQuestSubquestToolbar {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn {
  min-width: 18px;
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: var(--ui-radius-1);
  padding: 0;
  margin: 0;
  background: transparent;
  color: var(--ui-text-secondary);
  font-size: var(--fs-11);
  font-weight: var(--fw-semibold);
  line-height: 1;
  cursor: pointer;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-complete {
  color: var(--ui-ok);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-failed {
  color: var(--ui-danger);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-strike {
  text-decoration: line-through;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-clear {
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-reveal {
  color: var(--ui-ok);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-hide {
  color: var(--ui-warning);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn.is-remove {
  color: var(--ui-danger);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn:hover,
.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestToolbarBtn:focus-visible {
  background: color-mix(in srgb, var(--ui-selection-bg) 36%, transparent);
  outline: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestInlineInput {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ui-text-primary);
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  padding: 0;
  margin: 0;
  min-height: 22px;
  max-height: 120px;
  resize: none;
  overflow: hidden;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-editing .codexPrimitiveQuestSubquestLabel {
  padding-right: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestRow.ui-btn.is-editing .codexPrimitiveQuestSubquestMarker {
  display: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveQuestSubquestEmpty {
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
  padding: 2px 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionFrame {
  position: relative;
  z-index: 1;
  min-width: 0;
  background: var(--ui-bg-inset);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-3);
  padding: var(--ui-pad-2);
  display: flex;
  flex-direction: column;
  gap: var(--ui-gap-2);
  flex: 0 0 auto;
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionFrame.is-editing {
  border-color: var(--ui-accent);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-accent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionTools {
  display: flex;
  align-items: center;
  gap: var(--ui-gap-1);
  flex-wrap: wrap;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(-8px);
  margin-bottom: 0;
  pointer-events: none;
  transition:
    max-height 170ms ease,
    opacity 120ms ease,
    transform 170ms ease,
    margin-bottom 170ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionFrame.is-tools-open .codexPrimitiveDescriptionTools {
  max-height: 120px;
  opacity: 1;
  transform: translateY(0);
  margin-bottom: var(--ui-gap-1);
  pointer-events: auto;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionTools[aria-hidden="true"] {
  visibility: hidden;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionFrame.is-tools-open .codexPrimitiveDescriptionTools[aria-hidden="false"] {
  visibility: visible;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionToolBtn {
  min-width: 28px;
  height: 24px;
  padding: 0 var(--ui-pad-2);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-2);
  background: var(--ui-bg-1);
  color: var(--ui-text-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: var(--ui-cursor-button);
  user-select: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionToolBtn:hover:not(:disabled),
.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionToolBtn:focus-visible:not(:disabled) {
  background: var(--ui-control-bg-hover);
  color: var(--ui-text-primary);
  border-color: var(--ui-border);
  outline: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionToolBtn.is-active {
  background: var(--ui-control-bg-active);
  color: var(--ui-text-primary);
  border-color: var(--ui-border);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionToolBtn:disabled {
  opacity: 0.45;
  cursor: default;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionToolSep {
  width: 1px;
  height: 16px;
  background: var(--ui-border-soft);
  margin-inline: 2px;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveDescriptionFrame.is-disabled {
  opacity: 0.72;
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host {
  display: block;
  align-items: initial;
  gap: 0;
  min-height: 0;
  max-height: none;
  width: 100%;
  margin: 0;
  padding: var(--ui-pad-1) var(--ui-pad-2);
  border: 0;
  background: var(--ui-bg-inset);
  border-radius: var(--ui-radius-2);
  color: var(--ui-text-secondary);
  font-size: var(--fs-14);
  line-height: 1.45;
  font-family: var(--font-ui);
  white-space: pre-wrap;
  box-sizing: border-box;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror {
  display: block;
  min-height: 1.45em;
  outline: none;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror p {
  margin: 0;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror p + p {
  margin-top: 0.45em;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host:focus-visible {
  box-shadow: none;
  outline: none;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror h1,
.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror h2,
.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror h3 {
  margin: 0;
  color: var(--ui-text-primary);
  font-family: var(--font-title);
  font-weight: var(--fw-title);
  line-height: var(--lh-tight);
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror h1 { font-size: clamp(1.35rem, 2.4vw, 1.8rem); }
.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror h2 { font-size: clamp(1.2rem, 2.0vw, 1.5rem); }
.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror h3 { font-size: clamp(1.05rem, 1.6vw, 1.25rem); }

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror .rt-canon-image-node {
  display: inline-block;
  max-width: min(100%, 800px);
  min-width: 120px;
  resize: horizontal;
  overflow: hidden;
  margin: var(--ui-gap-2) 0;
}

.mapLayout .codexPrimitivePanel .rt-canon-description-editor-host .ProseMirror img[data-canon-image="1"] {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: var(--ui-radius-2);
  box-shadow: var(--ui-shadow-1);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveEntityTitle.is-inline-editing {
  background: color-mix(in srgb, var(--ui-bg-inset) 84%, transparent);
  outline: var(--ui-border-width) solid var(--ui-border-soft);
  outline-offset: 0;
  border-radius: var(--ui-radius-2);
  cursor: text;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveBlurb.is-inline-editing {
  background: var(--ui-bg-inset);
  outline: none;
  box-shadow: none;
  border-radius: var(--ui-radius-2);
  cursor: text;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeHeader {
  padding: var(--space-3);
  font-size: var(--fs-12);
  color: var(--ui-text-primary);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeSearchRow {
  padding: var(--space-2);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
  background: transparent;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeSearchInput {
  width: 100%;
  min-height: var(--input-h-md);
  background: color-mix(in srgb, var(--ui-bg-1) 88%, transparent);
  border-color: color-mix(in srgb, var(--ui-border-soft) 78%, transparent);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeActionRow {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2);
  border-bottom: var(--ui-border-width) solid var(--ui-border-soft);
  background: transparent;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeCreateBtn {
  min-height: var(--input-h-md);
  height: var(--input-h-md);
  line-height: 1;
  white-space: nowrap;
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeCreateBtn[hidden] {
  display: none !important;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeCreateBtn.ui-btn:not(:disabled):not(.is-disabled) {
  background: var(--ui-selection-highlight-bg);
  border-color: var(--ui-selection-highlight-ring-color);
  color: var(--ui-text-primary);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeCreateBtn.ui-btn:not(:disabled):not(.is-disabled):hover {
  background: linear-gradient(
    var(--ui-selection-gradient-angle),
    color-mix(in srgb, var(--ui-selected-outline) 5%, transparent) 0%,
    color-mix(in srgb, var(--ui-selected-outline) 12%, transparent) var(--ui-selection-gradient-mid-stop),
    color-mix(in srgb, var(--ui-selected-outline) 28%, transparent) 100%
  );
  border-color: color-mix(in srgb, var(--ui-selected-outline) 44%, transparent);
  box-shadow: inset 0 0 0 var(--ui-border-width) color-mix(in srgb, var(--ui-selected-outline) 42%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeCreateBtn.ui-btn:not(:disabled):not(.is-disabled):active {
  background: linear-gradient(
    var(--ui-selection-gradient-angle),
    color-mix(in srgb, var(--ui-selected-outline) 7%, transparent) 0%,
    color-mix(in srgb, var(--ui-selected-outline) 14%, transparent) var(--ui-selection-gradient-mid-stop),
    color-mix(in srgb, var(--ui-selected-outline) 30%, transparent) 100%
  );
  border-color: color-mix(in srgb, var(--ui-selected-outline) 50%, transparent);
  box-shadow: inset 0 0 0 var(--ui-border-width) color-mix(in srgb, var(--ui-selected-outline) 48%, transparent);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeSortLabel {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--ui-text-secondary);
  font-size: var(--fs-11);
  font-family: var(--font-ui);
  white-space: nowrap;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeSortSelect {
  min-height: var(--input-h-md);
  height: var(--input-h-md);
  width: auto;
  min-width: 0;
  max-width: none;
  background: color-mix(in srgb, var(--ui-bg-1) 88%, transparent);
  border-color: color-mix(in srgb, var(--ui-border-soft) 78%, transparent);
  color: var(--ui-text-primary);
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeScroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: var(--space-2);
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--ui-border) 72%, transparent) color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
}

@supports selector(::-webkit-scrollbar) {
  .mapLayout .codexPrimitivePanel .codexPrimitiveTreeScroll::-webkit-scrollbar {
    width: 10px;
    height: 10px;
  }

  .mapLayout .codexPrimitivePanel .codexPrimitiveTreeScroll::-webkit-scrollbar-track {
    background: color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
    border-radius: 999px;
  }

  .mapLayout .codexPrimitivePanel .codexPrimitiveTreeScroll::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--ui-border) 72%, transparent);
    border-radius: 999px;
    border: 2px solid color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
  }
}


.mapLayout .codexPrimitivePanel .codexPrimitiveTreeList {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mapLayout .codexPrimitivePanel .codexPrimitiveTreeEmpty {
  color: var(--ui-text-muted);
  font-size: var(--fs-12);
  padding: var(--space-2);
}

.mapLayout .codexPrimitivePanel .uiTreeRoot {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mapLayout .codexPrimitivePanel .uiTreeRow {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow: hidden;
  max-height: 28px;
  transition: max-height 120ms ease, opacity 120ms ease, transform 120ms ease;
}

.mapLayout .codexPrimitivePanel .uiTreeRow.is-tree-exit {
  max-height: 28px;
  opacity: 1;
  transform: translateY(0);
}

.mapLayout .codexPrimitivePanel .uiTreeRow.is-tree-exit-active {
  max-height: 0;
  opacity: 0;
  transform: translateY(-3px);
}

.mapLayout .codexPrimitivePanel .uiTreeRow.is-tree-enter {
  max-height: 0;
  opacity: 0;
  transform: translateY(-3px);
}

.mapLayout .codexPrimitivePanel .uiTreeRow.is-tree-enter-active {
  max-height: 28px;
  opacity: 1;
  transform: translateY(0);
}

.mapLayout .codexPrimitivePanel .uiTreeRowLine {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: stretch;
  min-height: 24px;
  width: 100%;
}

.mapLayout .codexPrimitivePanel .uiTreeGutter {
  display: inline-flex;
  align-items: stretch;
}

.mapLayout .codexPrimitivePanel .uiTreeGuide {
  position: relative;
  width: var(--space-3);
  min-width: var(--space-3);
  display: inline-block;
}

.mapLayout .codexPrimitivePanel .uiTreeGuideTrunk[data-continue="1"]::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: var(--ui-border-width);
  transform: translateX(-50%);
  background: var(--codex-primitive-tree-line);
}

.mapLayout .codexPrimitivePanel .uiTreeGuideElbow::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  height: 50%;
  width: var(--ui-border-width);
  transform: translateX(-50%);
  background: var(--codex-primitive-tree-line);
}

.mapLayout .codexPrimitivePanel .uiTreeGuideElbow[data-continue="1"]::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  bottom: 0;
  width: var(--ui-border-width);
  transform: translateX(-50%);
  background: var(--codex-primitive-tree-line);
}

.mapLayout .codexPrimitivePanel .uiTreeGuideElbow {
  position: relative;
  overflow: visible;
}

.mapLayout .codexPrimitivePanel .uiTreeContent {
  position: relative;
  display: grid;
  grid-template-columns: var(--space-4) minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  gap: var(--space-1);
}

.mapLayout .codexPrimitivePanel .uiTreeContent::before {
  content: "";
  position: absolute;
  left: calc(var(--space-3) * -0.5);
  top: 50%;
  width: calc((var(--space-3) * 0.5) + var(--space-2));
  height: var(--ui-border-width);
  background: var(--codex-primitive-tree-line);
  transform: translateY(-50%);
  pointer-events: none;
}

.mapLayout .codexPrimitivePanel .uiTreeRow[data-tree-depth="0"] .uiTreeContent::before {
  display: none;
}

.mapLayout .codexPrimitivePanel .uiTreeChevron {
  width: var(--space-4);
  min-width: var(--space-4);
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  color: var(--ui-text-primary);
  font-size: calc(var(--fs-12) * 2);
  line-height: 1;
  text-align: center;
  cursor: var(--ui-cursor-button);
  transform-origin: 50% 50%;
  transition: transform 120ms ease;
}

.mapLayout .codexPrimitivePanel .uiTreeRow[data-tree-expanded="1"] .uiTreeChevron {
  transform: rotate(90deg);
}

.mapLayout .codexPrimitivePanel .uiTreeChevron:disabled {
  cursor: default;
  opacity: 0;
}

.mapLayout .codexPrimitivePanel .uiTreeLabelWrap {
  border: 0;
  background: transparent;
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-14);
  font-weight: var(--fw-regular);
  text-align: left;
  padding: var(--space-1) var(--space-1);
  margin: 0;
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--space-1);
  cursor: var(--ui-cursor-button);
}

.mapLayout .codexPrimitivePanel .uiTreeLabelWrap.uiSelectionHighlight,
.mapLayout .codexPrimitivePanel .uiTreeLabelWrap.uiDottedHighlight {
  background: var(--ui-selection-highlight-bg);
  border-radius: var(--ui-radius-2);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
}

.mapLayout .codexPrimitivePanel .uiTreeRow.is-quest-tree-selected .uiTreeContent {
  background: var(--ui-selection-highlight-bg);
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-highlight-ring-color);
  border-radius: 0;
}

.mapLayout .codexPrimitivePanel .uiTreeRow.is-quest-tree-selected .uiTreeLabelWrap.uiSelectionHighlight,
.mapLayout .codexPrimitivePanel .uiTreeRow.is-quest-tree-selected .uiTreeLabelWrap.uiDottedHighlight {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

.mapLayout .codexPrimitivePanel .uiTreeLabelWrap:disabled {
  cursor: default;
}

.mapLayout .codexPrimitivePanel .uiTreeLabel {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mapLayout .codexPrimitivePanel .uiTreeMeta {
  font-size: var(--fs-10);
  color: var(--ui-text-primary);
  opacity: 0.72;
  white-space: nowrap;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneDivider {
  position: relative;
  flex: 0 0 var(--codex-primitive-divider-width);
  width: var(--codex-primitive-divider-width);
  min-width: var(--codex-primitive-divider-width);
  z-index: 8;
  cursor: col-resize;
  touch-action: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneDivider::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4px;
  width: 1px;
  background: var(--ui-border-soft);
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneDividerControls {
  position: absolute;
  left: 50%;
  top: calc(var(--input-h-md) + var(--space-4));
  transform: translateX(-50%);
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  z-index: 12;
  pointer-events: auto;
}

.mapLayout .codexPrimitivePanel.is-left-pane-collapsed .codexPrimitivePaneDividerControls {
  left: calc(50% + 10px);
}

.mapLayout .codexPrimitivePanel.is-right-pane-collapsed .codexPrimitivePaneDividerControls {
  left: calc(50% - 10px);
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneToggle {
  pointer-events: auto;
  inline-size: 18px;
  block-size: 18px;
  border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border-soft) 78%, transparent);
  border-radius: var(--ui-radius-pill);
  background: color-mix(in srgb, var(--ui-bg-0) 58%, transparent);
  color: var(--ui-text-primary);
  font-size: var(--fs-10);
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: var(--ui-cursor-button);
  opacity: 0.18;
  transition:
    opacity 140ms ease,
    transform 140ms ease,
    background-color 140ms ease,
    border-color 140ms ease;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneDivider:hover .codexPrimitivePaneToggle,
.mapLayout .codexPrimitivePanel .codexPrimitivePaneDivider:focus-within .codexPrimitivePaneToggle,
.mapLayout .codexPrimitivePanel .codexPrimitivePaneDividerControls:hover .codexPrimitivePaneToggle,
.mapLayout .codexPrimitivePanel .codexPrimitivePaneDividerControls:focus-within .codexPrimitivePaneToggle {
  opacity: 0.7;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneToggle:hover,
.mapLayout .codexPrimitivePanel .codexPrimitivePaneToggle:focus-visible {
  opacity: 1;
  transform: scale(1.08);
  background: color-mix(in srgb, var(--ui-bg-0) 76%, transparent);
  border-color: var(--ui-border);
  outline: none;
}

.mapLayout .codexPrimitivePanel .codexPrimitivePaneToggle:focus-visible {
  box-shadow: var(--ui-focus-ring-shadow);
}

.mapLayout .codexPrimitivePanel.is-left-pane-collapsed .codexPrimitivePaneLeft {
  flex: 0 0 0;
  width: 0;
  min-width: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel.is-right-pane-collapsed .codexPrimitivePaneRight {
  flex: 0 0 0;
  width: 0;
  min-width: 0;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}

.mapLayout .codexPrimitivePanel.is-right-pane-collapsed .codexPrimitivePaneLeft,
.mapLayout .codexPrimitivePanel.is-left-pane-collapsed .codexPrimitivePaneRight {
  flex: 0 0 calc(100% - var(--codex-primitive-divider-width));
  width: calc(100% - var(--codex-primitive-divider-width));
}

.mapLayout .codexPrimitivePanel.is-primitive-split-dragging,
.mapLayout .codexPrimitivePanel.is-primitive-split-dragging * {
  cursor: col-resize;
  user-select: none;
}

#dlg #modalBody .assetPickerStatus {
  margin-bottom: var(--space-2);
}

#dlg #modalBody .assetPickerControls {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

#dlg #modalBody .assetPickerSearchInput {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: var(--input-h-md);
  background: var(--ui-bg-1);
  color: var(--ui-text-primary);
  border-color: var(--ui-border);
}

#dlg #modalBody .assetsToggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--ui-text-secondary);
  font-size: var(--fs-12);
  user-select: none;
}

#dlg #modalBody .assetsToggle input[type="checkbox"] {
  accent-color: var(--ui-accent);
}

#dlg #modalBody .assetsUploadRow {
  margin-bottom: var(--space-2);
}

#dlg #modalBody .assetsUploadInput {
  width: 100%;
  min-height: var(--input-h-md);
  padding: var(--ui-pad-2) var(--ui-pad-3);
  background: var(--ui-bg-1);
  color: var(--ui-text-primary);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--ui-radius-2);
}

#dlg #modalBody .assetPickerList {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  max-height: min(52vh, 440px);
  overflow: auto;
  margin-bottom: var(--space-2);
  padding: var(--space-1);
  background: var(--ui-bg-1);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  border-radius: var(--ui-radius-3);
}

#dlg #modalBody .assetPickerEmpty {
  color: var(--ui-text-muted);
  font-size: var(--fs-12);
  padding: var(--space-2);
}

#dlg #modalBody .assetPickerItem {
  display: grid;
  grid-template-columns: calc(var(--row-lg) * 1.6) minmax(0, 1fr);
  gap: var(--space-2);
  align-items: center;
  padding: var(--space-1) var(--space-2);
  border: var(--ui-border-width) solid transparent;
  border-radius: var(--ui-radius-2);
  background: var(--ui-bg-0);
  color: var(--ui-text-primary);
  cursor: var(--ui-cursor-button);
}

#dlg #modalBody .assetPickerItem:hover {
  border-color: var(--ui-border-soft);
  background: var(--ui-bg-1);
}

#dlg #modalBody .assetPickerItem.is-selected {
  border-color: var(--ui-accent);
  background: color-mix(in srgb, var(--ui-accent) 18%, var(--ui-bg-1));
}

#dlg #modalBody .assetPickerItem.is-disabled {
  opacity: 0.55;
  cursor: var(--ui-cursor-disabled);
}

#dlg #modalBody .assetPickerThumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--ui-radius-2);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  background: var(--ui-bg-1);
}

#dlg #modalBody .assetPickerMeta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#dlg #modalBody .assetPickerName {
  color: var(--ui-text-primary);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#dlg #modalBody .assetPickerTags {
  color: var(--ui-text-muted);
  font-size: var(--fs-10);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#dlg #modalBody .assetPickerBadge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0 var(--space-1);
  border-radius: var(--ui-radius-pill);
  border: var(--ui-border-width) solid var(--ui-border-soft);
  color: var(--ui-text-muted);
  font-size: var(--fs-10);
}

#dlg #modalBody .assetPickerActions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-2);
}

[data-assets-manager-surface] .assetPickerPortal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: var(--ui-border-width) solid var(--ui-border-soft);
}

[data-assets-manager-surface] .assetPickerPortalHint {
  color: var(--ui-text-muted);
  font-size: var(--fs-12);
}

[data-assets-manager-surface] .assetPickerPortalActions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.uiConfirmDialogRoot {
  position: fixed;
  inset: 0;
  z-index: 2147483400;
  display: grid;
  place-items: center;
  pointer-events: auto;
}

.uiConfirmDialogBackdrop {
  position: absolute;
  inset: 0;
  background: var(--ui-scrim);
  opacity: 0.55;
}

.uiConfirmDialogPanel {
  position: relative;
  min-width: 280px;
  width: fit-content;
  max-width: min(440px, calc(100vw - (var(--space-6) * 2)));
  background: var(--ui-bg-2);
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-overlay);
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  padding: var(--space-4);
  display: grid;
  gap: var(--space-3);
}

.uiConfirmDialogTitle {
  margin: 0;
  font-size: var(--fs-14);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-normal);
  color: var(--ui-text-primary);
}

.uiConfirmDialogMessage {
  margin: 0;
  font-size: var(--fs-12);
  line-height: var(--lh-normal);
  color: var(--ui-text-primary);
}

.uiConfirmDialogToggleRow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-12);
  color: var(--ui-text-muted);
  user-select: none;
}

.uiConfirmDialogToggle {
  inline-size: 14px;
  block-size: 14px;
}

.uiConfirmDialogActions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-2);
}

.uiConfirmDialogBtn {
  min-height: var(--input-h-md);
  min-width: 88px;
  border: var(--ui-border-width) solid var(--ui-border);
  border-radius: var(--radius-md);
  background: var(--ui-control-bg);
  color: var(--ui-text-primary);
  font-family: var(--font-ui);
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  padding: 0 var(--space-3);
  cursor: var(--ui-cursor-button);
}

.uiConfirmDialogBtn:hover {
  background: var(--ui-hover-bg);
}

.uiConfirmDialogBtn:active {
  background: var(--ui-active-bg);
}

.uiConfirmDialogBtn:focus-visible {
  outline: none;
  box-shadow: var(--ui-focus-ring-shadow);
}

.uiConfirmDialogBtn.is-primary {
  border-color: var(--ui-selected-outline);
  background: linear-gradient(var(--ui-selected-bg), var(--ui-selected-bg)), var(--ui-control-bg);
}

.uiConfirmDialogBtn.is-danger {
  border-color: var(--ui-danger-border, #a12a2a);
  background: color-mix(in srgb, var(--ui-danger-bg, #a12a2a) 22%, var(--ui-control-bg));
  color: var(--ui-danger-text, var(--ui-text-primary));
}
