@charset "UTF-8";._button_19nhc_1 {
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border-radius: var(--echoes-radius-sm);
  border: none;
  cursor: pointer;
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  font-size: var(--echoes-font-size-sm);
  height: 32px;
}
._button_19nhc_1:hover:not(:disabled) {
  background-color: var(--echoes-blue);
}
._button_19nhc_1:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._primary_19nhc_26 {
  background-color: var(--echoes-green);
  color: var(--echoes-white);
}
._primary_19nhc_26:hover:not(:disabled) {
  background-color: #5ea86d;
}

._secondary_19nhc_34 {
  background-color: transparent;
  border: 1px solid var(--echoes-white);
}
._secondary_19nhc_34:hover:not(:disabled) {
  background-color: var(--echoes-blue);
  border-color: var(--echoes-blue);
}

._danger_19nhc_43 {
  background-color: var(--echoes-red);
  color: var(--echoes-white);
}
._danger_19nhc_43:hover:not(:disabled) {
  background-color: #d11a1a;
}

._ghost_19nhc_51 {
  background-color: transparent;
  border: none;
}
._ghost_19nhc_51:hover:not(:disabled) {
  background-color: var(--echoes-blue);
}

._ghostBorder_19nhc_59 {
  background-color: transparent;
  border: 1px solid var(--echoes-white);
}
._ghostBorder_19nhc_59:hover:not(:disabled) {
  background-color: var(--echoes-blue);
}

._active_19nhc_67 {
  background-color: var(--echoes-green);
  color: var(--echoes-white);
}
._active_19nhc_67:hover:not(:disabled) {
  background-color: #5ea86d;
}

._small_19nhc_75 {
  padding: var(--echoes-space-xs) var(--echoes-space-md);
  font-size: var(--echoes-font-size-xs);
  height: 24px;
}

._large_19nhc_81 {
  padding: var(--echoes-space-md) var(--echoes-space-xl);
  font-size: var(--echoes-font-size-base);
  height: 40px;
}

._fullWidth_19nhc_87 {
  width: 100%;
}

._tool_19nhc_91 {
  background-color: var(--echoes-background);
  border: 1px solid var(--echoes-yellow);
  color: var(--echoes-yellow);
  outline: none;
}
._tool_19nhc_91:hover:not(:disabled) {
  background-color: color-mix(in srgb, var(--echoes-yellow), transparent 90%);
  color: var(--echoes-yellow);
  border: 1px solid var(--echoes-yellow);
}
._tool_19nhc_91._active_19nhc_67 {
  background-color: var(--echoes-yellow);
  border: 1px solid transparent;
  color: var(--echoes-background);
}._stack_107o3_1 {
  display: flex;
}

._column_107o3_5 {
  flex-direction: column;
}

._row_107o3_9 {
  flex-direction: row;
}

._gapXs_107o3_13 {
  gap: var(--echoes-space-xs);
}

._gapSm_107o3_17 {
  gap: var(--echoes-space-sm);
}

._gapMd_107o3_21 {
  gap: var(--echoes-space-md);
}

._gapLg_107o3_25 {
  gap: var(--echoes-space-lg);
}

._gapXl_107o3_29 {
  gap: var(--echoes-space-xl);
}

._alignStart_107o3_33 {
  align-items: flex-start;
}

._alignCenter_107o3_37 {
  align-items: center;
}

._alignEnd_107o3_41 {
  align-items: flex-end;
}

._alignStretch_107o3_45 {
  align-items: stretch;
}

._justifyStart_107o3_49 {
  justify-content: flex-start;
}

._justifyCenter_107o3_53 {
  justify-content: center;
}

._justifyEnd_107o3_57 {
  justify-content: flex-end;
}

._justifyBetween_107o3_61 {
  justify-content: space-between;
}

._wrap_107o3_65 {
  flex-wrap: wrap;
}

._fullWidth_107o3_69 {
  width: 100%;
}

._fullHeight_107o3_73 {
  height: 100%;
}

._responsive_107o3_77 {
  flex-direction: column;
}
@media (min-width: 768px) {
  ._responsive_107o3_77 {
    flex-direction: row;
  }
}._container_sy5xj_1 {
  width: auto;
}

._fullWidth_sy5xj_5 {
  width: 100%;
}

._label_sy5xj_9 {
  display: block;
  font-size: var(--echoes-font-size-sm);
  color: var(--echoes-white);
  margin-bottom: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
}

._input_sy5xj_18 {
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border: 1px solid #333;
  border-radius: var(--echoes-radius-sm);
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  height: 32px;
  width: 100%;
  transition: border-color 0.2s ease;
}
._input_sy5xj_18:focus {
  border-color: var(--echoes-blue);
}
._input_sy5xj_18._error_sy5xj_35 {
  border-color: var(--echoes-red);
}
._input_sy5xj_18::placeholder {
  color: #666;
  font-weight: normal;
}

._errorText_sy5xj_43 {
  font-size: var(--echoes-font-size-xs);
  color: var(--echoes-red);
  margin-top: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
}

._small_sy5xj_50 ._input_sy5xj_18 {
  padding: var(--echoes-space-xs) var(--echoes-space-md);
  font-size: var(--echoes-font-size-xs);
  height: 24px;
}
._small_sy5xj_50 ._container_sy5xj_1 {
  max-width: 180px;
}

._medium_sy5xj_59 ._container_sy5xj_1 {
  max-width: 280px;
}

._large_sy5xj_63 ._container_sy5xj_1 {
  max-width: 400px;
}._container_d118p_1 {
  display: flex;
  align-items: center;
  gap: var(--echoes-space-sm);
}

._label_d118p_7 {
  min-width: var(--echoes-space-4xl);
  text-align: left;
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  color: var(--echoes-white);
}

._barWrapper_d118p_15 {
  position: relative;
  width: 100%;
  height: var(--echoes-space-md);
}

._background_d118p_21 {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #444;
}

._fill_d118p_28 {
  position: absolute;
  height: 100%;
  background-color: var(--echoes-green);
}

._numbers_d118p_34 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--echoes-font-size-sm);
  font-weight: bold;
  color: var(--echoes-white);
  text-shadow: var(--echoes-space-xs) var(--echoes-space-xs) var(--echoes-space-xs) rgba(0, 0, 0, 0.8);
  pointer-events: none;
  font-family: var(--echoes-font-family);
}

._small_d118p_51 ._barWrapper_d118p_15 {
  height: var(--echoes-space-sm);
}
._small_d118p_51 ._numbers_d118p_34 {
  font-size: var(--echoes-font-size-xs);
}

._large_d118p_58 ._barWrapper_d118p_15 {
  height: var(--echoes-space-lg);
}
._large_d118p_58 ._numbers_d118p_34 {
  font-size: var(--echoes-font-size-base);
}._container_j2n88_1 {
  display: flex;
  flex-wrap: wrap;
  position: relative;
}

._tab_j2n88_7 {
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  border: 1px solid #333;
  border-bottom: 1px solid #333;
  padding: var(--echoes-space-sm) var(--echoes-space-md);
  cursor: pointer;
  font-size: var(--echoes-font-size-xs);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  transition: background-color 0.1s ease, color 0.1s ease;
  user-select: none;
  position: relative;
  z-index: 2;
}
._tab_j2n88_7:first-child {
  border-top-left-radius: var(--echoes-radius-sm);
  border-right: none;
}
._tab_j2n88_7:last-child {
  border-top-right-radius: var(--echoes-radius-sm);
}
._tab_j2n88_7:not(:first-child):not(:last-child) {
  border-left: none;
  border-right: none;
}
._tab_j2n88_7:not(:first-child) {
  border-left: none;
}
._tab_j2n88_7._active_j2n88_37 {
  background-color: var(--echoes-grey);
  color: var(--echoes-white);
  z-index: 3;
  border-bottom-color: var(--echoes-background);
  border-bottom-width: 2px;
  margin-bottom: -1px;
}
._tab_j2n88_7:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}._root_16oha_1 {
  all: unset;
  background-color: var(--echoes-background);
  width: 16px;
  height: 16px;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--echoes-white);
  cursor: pointer;
  transition: all 0.2s ease;
}
._root_16oha_1:hover {
  border-color: var(--echoes-green);
}
._root_16oha_1:focus {
  outline: 2px solid var(--echoes-green);
  outline-offset: 2px;
}
._root_16oha_1[data-state=checked] {
  background-color: var(--echoes-green);
  border-color: var(--echoes-green);
}

._indicator_16oha_26 {
  color: var(--echoes-background);
  font-size: 12px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
}

._label_16oha_35 {
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  cursor: pointer;
  user-select: none;
}
._label_16oha_35:hover {
  color: var(--echoes-green);
}._canvas_1yq27_1 {
  image-rendering: pixelated;
  background: var(--echoes-background);
}._root_10e5i_1 {
  display: flex;
  flex-direction: column;
  gap: var(--echoes-space-sm);
}

._rootRow_10e5i_7 {
  flex-direction: row;
  gap: var(--echoes-space-md);
}

._item_10e5i_12 {
  all: unset;
  background-color: var(--echoes-background);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid var(--echoes-white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
._item_10e5i_12:hover {
  border-color: var(--echoes-green);
}
._item_10e5i_12:focus {
  outline: 2px solid var(--echoes-green);
  outline-offset: 2px;
}
._item_10e5i_12[data-state=checked] {
  background-color: var(--echoes-green);
  border-color: var(--echoes-green);
}

._indicator_10e5i_37 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--echoes-background);
}

._itemWrapper_10e5i_47 {
  display: flex;
  align-items: center;
  gap: var(--echoes-space-xs);
}

._label_10e5i_53 {
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  cursor: pointer;
  user-select: none;
}
._label_10e5i_53:hover {
  color: var(--echoes-green);
}._container_2ybke_1 {
  height: calc(var(--sprite-height) * var(--sprite-scale));
  width: calc(var(--sprite-width) * var(--sprite-scale));
  margin: var(--echoes-space-sm);
}

._sprite_2ybke_7 {
  display: block;
  width: var(--sprite-width);
  height: var(--sprite-height);
  background-repeat: no-repeat;
  image-rendering: pixelated;
  transform: scale(var(--sprite-scale));
  transform-origin: top left;
}._container_12qhq_1 {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

._label_12qhq_7 {
  display: block;
  font-size: var(--echoes-font-size-sm);
  color: var(--echoes-white);
  margin-bottom: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
}

._trigger_12qhq_16 {
  all: unset;
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border: 1px solid #333;
  border-radius: var(--echoes-radius-sm);
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  outline: none;
  height: 32px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: border-color 0.2s ease;
  overflow: hidden;
}
._trigger_12qhq_16 [data-radix-select-value] {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._trigger_12qhq_16:hover {
  border-color: var(--echoes-green);
}
._trigger_12qhq_16:focus {
  border-color: var(--echoes-green);
}
._trigger_12qhq_16[data-disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

._icon_12qhq_57 {
  font-size: 10px;
  color: var(--echoes-white);
  flex-shrink: 0;
}

._content_12qhq_63 {
  overflow: hidden;
  background-color: var(--echoes-background);
  border: 1px solid #333;
  border-radius: var(--echoes-radius-sm);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  z-index: 1000;
}

._item_12qhq_72 {
  all: unset;
  font-size: var(--echoes-font-size-sm);
  font-family: var(--echoes-font-family);
  color: var(--echoes-white);
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
}
._item_12qhq_72:hover {
  background-color: var(--echoes-green);
  color: var(--echoes-background);
}
._item_12qhq_72[data-disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
._item_12qhq_72[data-highlighted] {
  background-color: var(--echoes-green);
  color: var(--echoes-background);
}._toast_p2brt_1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--echoes-space-sm) var(--echoes-space-lg);
  border-radius: var(--echoes-radius-sm);
  margin-bottom: var(--echoes-space-sm);
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  min-width: 300px;
  max-width: 500px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  animation: _slideIn_p2brt_1 0.3s ease-out;
}
._toast_p2brt_1._success_p2brt_15 {
  background-color: var(--echoes-green);
  color: var(--echoes-background);
  border: 1px solid var(--echoes-green);
}
._toast_p2brt_1._error_p2brt_20 {
  background-color: var(--echoes-red);
  color: var(--echoes-white);
  border: 1px solid var(--echoes-red);
}
._toast_p2brt_1._info_p2brt_25 {
  background-color: var(--echoes-blue);
  color: var(--echoes-white);
  border: 1px solid var(--echoes-blue);
}
._toast_p2brt_1._warning_p2brt_30 {
  background-color: var(--echoes-orange);
  color: var(--echoes-white);
  border: 1px solid var(--echoes-orange);
}

._message_p2brt_36 {
  flex: 1;
  margin-right: var(--echoes-space-sm);
}

._closeButton_p2brt_41 {
  background: none;
  border: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
._closeButton_p2brt_41:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

@keyframes _slideIn_p2brt_1 {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}._container_1qfn4_1 {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}._panel_j6o29_1 {
  border: 1px solid var(--echoes-grey);
  background: color-mix(in srgb, var(--echoes-background), var(--echoes-white) 10%);
  position: absolute;
  display: flex;
  flex-direction: column;
  border-radius: var(--echoes-space-xs);
  box-shadow: 0 var(--echoes-space-sm) var(--echoes-space-lg) rgba(0, 0, 0, 0.3);
}

._handle_j6o29_11 {
  display: flex;
  align-items: center;
  padding: 0 var(--echoes-space-md);
  color: var(--echoes-white);
  cursor: grab;
  height: var(--echoes-space-3xl);
  background: var(--echoes-grey);
  font-family: var(--echoes-font-family);
  font-weight: bold;
  font-size: var(--echoes-font-size-sm);
}
._handle_j6o29_11:active {
  cursor: grabbing;
}

._title_j6o29_27 {
  font-family: var(--echoes-font-family);
  font-weight: bold;
  font-size: var(--echoes-font-size-sm);
}

._content_j6o29_33 {
  padding: var(--echoes-space-md);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: var(--echoes-space-sm);
}

._closeButton_j6o29_41 {
  background: transparent !important;
  border: none !important;
  color: var(--echoes-white) !important;
  padding: var(--echoes-space-xs) !important;
  min-width: 20px !important;
  height: 20px !important;
  font-size: 12px !important;
  font-weight: bold !important;
  border-radius: var(--echoes-space-xs) !important;
}
._closeButton_j6o29_41:hover {
  background: color-mix(in srgb, var(--echoes-white), transparent 80%) !important;
  color: var(--echoes-white) !important;
}._fieldset_14lkt_1 {
  position: relative;
  border: 1px solid #fff;
  border-radius: var(--echoes-radius-sm);
  margin: var(--echoes-space-xs);
  margin-top: var(--echoes-space-lg);
  padding: var(--echoes-space-md);
  padding-top: calc(var(--echoes-space-md) + var(--echoes-space-sm) + 2px + var(--echoes-space-md));
}

._tabsWrapper_14lkt_11 {
  position: absolute;
  top: calc(-1 * var(--echoes-space-sm) - 8px);
  left: var(--echoes-space-md);
  z-index: 10;
}

._content_14lkt_18 {
  position: relative;
  z-index: 1;
  margin-top: var(--echoes-space-md);
}/* 
 * ===============================================
 * MUSIC EDITOR CUSTOMIZATION VARIABLES
 * ===============================================
 * Easily customize colors by changing the assignments below
 */
:root {
  --echoes-white: #ffffff;
  --echoes-purple: #a855f7;
  --echoes-blue: #3b82f6;
  --echoes-red: #ef4444;
  --echoes-orange: #f97316;
  --echoes-yellow: #eab308;
  --echoes-green: #4ade80;
  --echoes-grey: #6b7280;
  --echoes-lightish-grey: #9ca3af;
  --echoes-background: #081b1b;
  --echoes-space-xs: 2px;
  --echoes-space-sm: 4px;
  --echoes-space-md: 8px;
  --echoes-space-lg: 12px;
  --echoes-space-xl: 16px;
  --echoes-space-2xl: 20px;
  --echoes-space-3xl: 24px;
  --echoes-space-4xl: 32px;
  --echoes-font-family: monospace;
  --echoes-font-size-xs: 10px;
  --echoes-font-size-sm: 11px;
  --echoes-font-size-base: 13px;
  --echoes-font-size-lg: 16px;
  --echoes-radius-xs: 2px;
  --echoes-radius-sm: 4px;
  --echoes-radius-md: 6px;
}

._container_lp29d_36 {
  --note-color: var(--echoes-blue);
  --note-hover-color: var(--echoes-blue);
  --chord-note-color: var(--echoes-orange);
  --playhead-color: var(--echoes-yellow);
  --loop-region-color: var(--echoes-purple);
  --track-background: var(--echoes-background);
  --track-border: var(--echoes-grey);
  --track-header: var(--echoes-grey);
  --button-primary: var(--echoes-green);
  --button-secondary: var(--echoes-grey);
  --button-hover: var(--echoes-blue);
  --button-danger: var(--echoes-red);
  --control-background: var(--echoes-grey);
  --control-active: var(--echoes-green);
  --control-text: var(--echoes-white);
  --input-background: var(--echoes-background);
  --input-border: var(--echoes-grey);
  --input-focus: var(--echoes-blue);
  --input-text: var(--echoes-white);
  --font-size-xs: var(--echoes-font-size-xs);
  --font-size-sm: var(--echoes-font-size-sm);
  --font-size-base: var(--echoes-font-size-base);
  --font-size-md: var(--echoes-font-size-base);
  --font-size-lg: var(--echoes-font-size-lg);
  --font-size-xl: 14px;
  --font-size-2xl: 18px;
  --font-size-3xl: 20px;
  --spacing-xs: var(--echoes-space-xs);
  --spacing-sm: var(--echoes-space-sm);
  --spacing-md: var(--echoes-space-md);
  --spacing-lg: var(--echoes-space-lg);
  --spacing-xl: var(--echoes-space-xl);
  --spacing-2xl: var(--echoes-space-2xl);
  --height-xs: 16px;
  --height-sm: 20px;
  --height-base: 24px;
  --height-md: 26px;
  --height-lg: 48px;
  --height-xl: 200px;
  --height-2xl: 300px;
  --height-3xl: 400px;
  --height-4xl: 500px;
  --width-xs: 8px;
  --width-sm: 16px;
  --width-base: 18px;
  --width-md: 60px;
  --width-lg: 80px;
  --width-xl: 100px;
  --width-2xl: 120px;
  --width-3xl: 140px;
  --width-4xl: 176px;
  --width-5xl: 180px;
  --min-width-sm: 24px;
  --min-width-md: 80px;
  --min-width-lg: 90px;
  --min-width-xl: 140px;
  --min-width-2xl: 200px;
  --max-width-sm: 120px;
  --max-width-md: 200px;
}

/* 
 * ===============================================
 * MUSIC EDITOR STYLES
 * ===============================================
 */
._container_lp29d_36 {
  padding: var(--spacing-lg);
  background-color: var(--echoes-background);
  color: var(--echoes-white);
  font-size: var(--font-size-md);
  min-height: 100vh;
  overflow-y: auto;
}

._pianoRoll_lp29d_112 {
  display: flex;
}
._pianoRoll_lp29d_112._chordMode_lp29d_115 ._noteCell_lp29d_115 {
  cursor: copy !important;
}

._pianoKeys_lp29d_119 {
  width: var(--width-5xl);
  background-color: var(--track-header);
  border-right: 1px solid var(--track-border);
}

._pianoKey_lp29d_119 {
  height: var(--height-base);
  border-bottom: 1px solid var(--grey-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-base);
  font-weight: bold;
  color: var(--white-color);
  background-color: var(--background-color);
}
._pianoKey_lp29d_119:nth-child(odd) {
  background-color: var(--grey-color);
}

._pianoGrid_lp29d_140 {
  flex: 1;
  background-color: var(--background-color);
}

._headerRow_lp29d_145 {
  display: flex;
  height: 0px;
  border-bottom: 2px solid var(--grey-color);
  background-color: var(--grey-color);
}

._stepHeader_lp29d_152 {
  width: var(--width-base);
  height: 0px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: var(--spacing-xs);
  font-size: var(--font-size-sm);
  font-weight: bold;
  color: var(--white-color);
  border-right: 1px solid var(--grey-color);
}
._stepHeader_lp29d_152:nth-child(1) {
  border-left: 2px solid var(--white-color);
}
._stepHeader_lp29d_152:nth-child(17), ._stepHeader_lp29d_152:nth-child(33), ._stepHeader_lp29d_152:nth-child(49) {
  border-left: 2px solid var(--white-color);
}

._noteRow_lp29d_171 {
  display: flex;
  height: var(--height-base);
  border-bottom: 1px solid var(--grey-color);
}

._noteCell_lp29d_115 {
  width: var(--width-base);
  height: var(--height-base);
  border: none;
  border-right: 1px solid var(--grey-color);
  background-color: var(--background-color);
  cursor: pointer;
  transition: background-color 0.1s ease;
}
._noteCell_lp29d_115._active_lp29d_186 {
  background-color: var(--note-color);
}
._noteCell_lp29d_115._barStart_lp29d_189 {
  border-left: 2px solid var(--white-color);
}
._noteCell_lp29d_115:hover {
  background-color: var(--note-hover-color);
}
._noteCell_lp29d_115._chordNote_lp29d_195 {
  box-shadow: inset 0 0 0 1px var(--chord-note-color);
}
._noteCell_lp29d_115._chordNote_lp29d_195._active_lp29d_186 {
  background-color: var(--chord-note-color);
  box-shadow: inset 0 0 0 1px var(--chord-note-color);
}
._noteCell_lp29d_115._playhead_lp29d_202 {
  box-shadow: inset 0 0 0 1px var(--playhead-color);
  animation: _pulse_lp29d_1 0.52s ease-in-out infinite alternate;
}
._noteCell_lp29d_115._playhead_lp29d_202._active_lp29d_186 {
  background-color: var(--playhead-color);
  box-shadow: inset 0 0 0 3px var(--playhead-color);
}
._noteCell_lp29d_115._loopRegion_lp29d_210 {
  background-color: color-mix(in srgb, var(--loop-region-color), transparent 90%);
}
._noteCell_lp29d_115._loopRegion_lp29d_210._active_lp29d_186 {
  background-color: color-mix(in srgb, var(--note-color), var(--loop-region-color) 20%);
}
._noteCell_lp29d_115._noteStart_lp29d_216 {
  border-left: 3px solid var(--note-color);
  border-radius: 3px 0 0 3px;
}
._noteCell_lp29d_115._noteExtension_lp29d_220 {
  background-color: color-mix(in srgb, var(--note-color), transparent 50%);
  border-left: none;
  border-right: 1px solid var(--grey-color);
}
._noteCell_lp29d_115._noteExtension_lp29d_220:last-child {
  border-radius: 0 3px 3px 0;
}
._noteCell_lp29d_115._noteExtension_lp29d_220._chordNote_lp29d_195 {
  background-color: color-mix(in srgb, var(--chord-note-color), transparent 70%);
}

@keyframes _pulse_lp29d_1 {
  from {
    opacity: 0.7;
  }
  to {
    opacity: 1;
  }
}
._editorContent_lp29d_240 {
  margin-bottom: var(--space-2xl);
  border: 1px solid var(--grey-color);
  border-top: none;
  border-radius: 0 0 var(--space-sm) var(--space-sm);
  min-height: var(--height-3xl);
  background-color: var(--background-color);
}

._saveDialog_lp29d_249 {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin-top: var(--space-sm);
  padding: var(--space-sm);
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: var(--space-sm);
  border: 1px solid var(--grey-color);
}

._patternNameInput_lp29d_260 {
  background-color: var(--background-color);
  color: var(--white-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-md);
  outline: none;
}
._patternNameInput_lp29d_260:focus {
  border-color: var(--blue-color);
}

._saveButton_lp29d_273, ._cancelButton_lp29d_273 {
  background-color: var(--grey-color);
  color: var(--white-color);
  border: none;
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-base);
}
._saveButton_lp29d_273:hover, ._cancelButton_lp29d_273:hover {
  background-color: var(--blue-color);
}

._cancelButton_lp29d_273 {
  background-color: var(--red-color);
}
._cancelButton_lp29d_273:hover {
  background-color: #ff6b6b;
}

._patternBrowser_lp29d_293 {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-height: var(--height-3xl);
  background: var(--background-color);
  border-radius: var(--space-sm);
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  margin-top: var(--space-sm);
}

._patternBrowserHeader_lp29d_305 {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--grey-color);
  margin-bottom: var(--space-md);
}

._searchContainer_lp29d_314 {
  display: flex;
}

._searchInput_lp29d_318 {
  flex: 1;
  padding: var(--space-sm);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  background: var(--background-color);
  color: var(--white-color);
  font-size: 0.8rem;
  transition: border-color 0.2s ease;
}
._searchInput_lp29d_318:focus {
  outline: none;
  border-color: var(--blue-color);
  box-shadow: 0 0 0 2px rgba(90, 139, 222, 0.1);
}

._patternList_lp29d_334 {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

._noPatterns_lp29d_342 {
  text-align: center;
  color: var(--lightish-grey-color);
  font-style: italic;
  padding: var(--space-lg);
}

._patternCard_lp29d_349 {
  background: var(--background-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  transition: border-color 0.2s ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  min-height: var(--height-lg);
}
._patternCard_lp29d_349:hover {
  border-color: var(--green-color);
  background: var(--grey-color);
}

._patternCardRow_lp29d_366 {
  display: grid;
  grid-template-columns: auto 1fr auto auto auto auto;
  align-items: center;
  gap: var(--space-md);
  min-height: var(--height-lg);
}

._patternName_lp29d_260 {
  font-weight: bold;
  color: var(--white-color);
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex: 1;
  min-width: 0;
}

._patternDescription_lp29d_385 {
  color: var(--lightish-grey-color);
  font-size: 0.7rem;
  font-style: italic;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: var(--min-width-2xl);
}

._patternTags_lp29d_397 {
  display: flex;
  gap: var(--space-xs);
  flex-shrink: 0;
  max-width: var(--max-width-sm);
  overflow: hidden;
}

._tag_lp29d_405 {
  background: var(--grey-color);
  color: var(--white-color);
  padding: var(--spacing-xs) var(--spacing-md);
  border-radius: 8px;
  font-size: 0.6rem;
  font-weight: 500;
  border: 1px solid var(--grey-color);
  transition: all 0.2s ease;
  white-space: nowrap;
}
._tag_lp29d_405:hover {
  background: var(--green-color);
  color: var(--background-color);
  border-color: var(--green-color);
}

._tempoBadge_lp29d_422 {
  background: var(--grey-color);
  color: var(--white-color);
  padding: var(--spacing-xs) var(--spacing-md);
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 3px;
  border: 1px solid var(--grey-color);
  flex-shrink: 0;
}

._patternActions_lp29d_436 {
  display: flex;
  gap: var(--space-xs);
  align-items: center;
}

._previewButton_lp29d_442, ._loadButton_lp29d_442 {
  padding: var(--space-xs);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  background: var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  font-size: 0.7rem;
  font-weight: 500;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-height: var(--min-width-sm);
  min-width: var(--min-width-sm);
}
._previewButton_lp29d_442:hover, ._loadButton_lp29d_442:hover {
  background: var(--blue-color);
  color: white;
  border-color: var(--blue-color);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

._loadButton_lp29d_442 {
  background: var(--green-color);
  color: var(--background-color);
  border-color: var(--green-color);
  font-weight: 600;
}
._loadButton_lp29d_442:hover {
  background: var(--orange-color);
}

._patternCount_lp29d_477 {
  text-align: center;
  color: var(--lightish-grey-color);
  font-size: 0.8rem;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--grey-color);
}

._arrangeView_lp29d_485 {
  padding: var(--space-lg);
  background-color: var(--background-color);
  min-height: var(--height-4xl);
}

._arrangeHeader_lp29d_491 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 2px solid var(--grey-color);
}
._arrangeHeader_lp29d_491 h2 {
  margin: 0;
  color: var(--white-color);
  font-size: var(--font-size-2xl);
}

._arrangeControls_lp29d_505 {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
}

._totalDuration_lp29d_511 {
  color: var(--white-color);
  font-weight: bold;
  font-size: var(--font-size-xl);
}

._arrangeContent_lp29d_517 {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--space-xl);
  height: var(--height-3xl);
}

._patternLibrary_lp29d_524 h3 {
  margin: 0 0 var(--space-md) 0;
  color: var(--white-color);
  font-size: var(--font-size-xl);
}

._sequenceSection_lp29d_530 h3 {
  margin: 0 0 var(--space-md) 0;
  color: var(--white-color);
  font-size: var(--font-size-xl);
}

._sequenceHeader_lp29d_536 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-md);
}

._clearButton_lp29d_543 {
  background-color: var(--red-color);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--space-xs);
  font-size: var(--font-size-md);
  cursor: pointer;
  transition: background-color 0.2s ease;
}
._clearButton_lp29d_543:hover:not(:disabled) {
  background-color: #d11a1a;
}
._clearButton_lp29d_543:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._emptySequence_lp29d_561 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: var(--height-xl);
  border: 2px dashed var(--grey-color);
  border-radius: var(--space-sm);
}
._emptySequence_lp29d_561 p {
  color: var(--lightish-grey-color);
  margin: var(--space-xs) 0;
  font-style: italic;
}

._sequenceTimeline_lp29d_576 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  max-height: var(--height-2xl);
  overflow-y: auto;
}

._sequenceItem_lp29d_584 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-sm);
  background-color: var(--green-color);
  border: 1px solid var(--green-color);
  border-radius: var(--space-xs);
  transition: all 0.2s ease;
}
._sequenceItem_lp29d_584:hover {
  background-color: #5ea86d;
}
._sequenceItem_lp29d_584._currentlyPlaying_lp29d_597 {
  animation: _currentlyPlayingPulse_lp29d_1 1s ease-in-out infinite alternate;
  transition: all 0.3s ease;
}

._sequenceItemContent_lp29d_602 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

._sequencePatternName_lp29d_608 {
  color: var(--white-color);
  font-weight: bold;
  font-size: var(--font-size-lg);
}

._sequencePatternDuration_lp29d_614 {
  color: var(--white-color);
  font-size: var(--font-size-base);
  opacity: 0.8;
}

._sequenceItemControls_lp29d_620 {
  display: flex;
  gap: var(--space-xs);
}

._moveButton_lp29d_625, ._removeButton_lp29d_625 {
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs);
  border-radius: var(--space-xs);
  font-size: var(--font-size-base);
  cursor: pointer;
  transition: background-color 0.2s ease;
  min-width: var(--min-width-sm);
  height: var(--min-width-sm);
  display: flex;
  align-items: center;
  justify-content: center;
}
._moveButton_lp29d_625:hover, ._removeButton_lp29d_625:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

._removeButton_lp29d_625 {
  background-color: var(--red-color);
}
._removeButton_lp29d_625:hover {
  background-color: #d11a1a;
}

@keyframes _currentlyPlayingPulse_lp29d_1 {
  from {
    opacity: 0.8;
  }
  to {
    opacity: 1;
  }
}
._shortcuts_lp29d_659 {
  margin-top: var(--space-lg);
  padding: var(--space-sm);
  background-color: transparent;
  border-top: 1px solid var(--grey-color);
  text-align: center;
}
._shortcuts_lp29d_659 small {
  color: var(--lightish-grey-color);
  font-size: var(--font-size-base);
}._shortcuts_11cc0_1 {
  margin-top: var(--space-lg);
  padding: var(--space-sm);
  background-color: transparent;
  border-top: 1px solid var(--grey-color);
  text-align: center;
}
._shortcuts_11cc0_1 small {
  color: var(--lightish-grey-color);
  font-size: var(--font-size-base);
}._viewTab_13zgf_1 {
  padding: var(--spacing-sm) var(--spacing-lg);
  border: 1px solid var(--button-secondary);
  background-color: var(--button-secondary);
  color: var(--control-text);
  cursor: pointer;
  font-size: var(--font-size-base);
  font-weight: bold;
  border-radius: 0;
}
._viewTab_13zgf_1:first-child {
  border-top-left-radius: var(--spacing-sm);
  border-bottom-left-radius: var(--spacing-sm);
}
._viewTab_13zgf_1:last-child {
  border-top-right-radius: var(--spacing-sm);
  border-bottom-right-radius: var(--spacing-sm);
}
._viewTab_13zgf_1:hover {
  background-color: var(--button-hover);
}
._active_13zgf_22._viewTab_13zgf_1 {
  background-color: var(--control-active);
  border-color: var(--control-active);
}

._viewTab_13zgf_1 {
  font-size: var(--font-size-md);
  padding: var(--spacing-sm) var(--spacing-lg);
}
._viewTab_13zgf_1._active_13zgf_22 {
  background-color: var(--loop-region-color);
  border-color: var(--loop-region-color);
}

._viewTabsRow_13zgf_36 {
  display: flex;
  gap: 0;
  justify-content: center;
  margin-bottom: var(--spacing-md);
}._patternLibrarySection_ktom9_1 {
  margin-bottom: var(--space-md);
  padding: var(--space-md);
  background-color: rgba(255, 255, 255, 0.05);
  border-radius: var(--space-sm);
  border: 1px solid var(--grey-color);
}

._patternLibraryHeader_ktom9_9 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-sm);
}
._patternLibraryHeader_ktom9_9 h3 {
  margin: 0;
  color: var(--white-color);
  font-size: var(--font-size-xl);
}

._toggleButton_ktom9_21 {
  background: transparent;
  border: 1px solid var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  padding: var(--space-xs);
  border-radius: var(--space-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
._toggleButton_ktom9_21:hover {
  background-color: var(--grey-color);
  border-color: var(--blue-color);
}._playButton_1gl1x_1 {
  border: none;
  border-radius: var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-md);
  font-weight: bold;
  padding: var(--space-sm) var(--space-lg);
  transition: background-color 0.2s ease;
}

._globalControls_1gl1x_11 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-md);
  padding: var(--space-md);
  background-color: var(--control-background);
  border-radius: var(--space-sm);
}

._patternMetadata_1gl1x_21, ._playbackControls_1gl1x_21 {
  display: flex;
  gap: var(--space-lg);
  align-items: center;
}

._playbackControls_1gl1x_21 {
  gap: var(--space-md);
}

._controlGroup_1gl1x_31 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
._controlGroup_1gl1x_31 label {
  font-size: var(--font-size-md);
  color: var(--white-color);
  font-weight: bold;
}
._controlGroup_1gl1x_31 input, ._controlGroup_1gl1x_31 select {
  background-color: var(--input-background);
  border: 1px solid var(--input-border);
  color: var(--input-text);
  border-radius: var(--space-xs);
  font-size: var(--font-size-md);
}
._controlGroup_1gl1x_31 input:focus, ._controlGroup_1gl1x_31 select:focus {
  outline: none;
  border-color: var(--input-focus);
}
._controlGroup_1gl1x_31 select {
  cursor: pointer;
}
._controlGroup_1gl1x_31 span {
  color: var(--control-text);
  font-size: var(--font-size-md);
}

._playButton_1gl1x_1 {
  background-color: var(--button-primary);
  color: var(--control-text);
}
._playButton_1gl1x_1:hover {
  background-color: #5ea86d;
}
._playButton_1gl1x_1._playing_1gl1x_67 {
  background-color: var(--button-danger);
}
._playButton_1gl1x_1._playing_1gl1x_67:hover {
  background-color: #d11a1a;
}

._songInput_1gl1x_74 {
  width: var(--width-2xl);
  padding: var(--space-xs);
}

._patternSelectGlobal_1gl1x_79, ._timeSignatureSelect_1gl1x_79 {
  min-width: var(--min-width-md);
}

._tempoInput_1gl1x_83, ._lengthInput_1gl1x_83 {
  width: var(--width-md);
  padding: var(--space-xs);
}

._durationSelect_1gl1x_88 {
  min-width: var(--min-width-lg);
}

._loopLabel_1gl1x_92 {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--font-size-md);
  color: var(--white-color);
}

._loopCheckbox_1gl1x_100 {
  cursor: pointer;
  accent-color: var(--green-color);
}

._saveLoadButtons_1gl1x_105 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

._downloadButton_1gl1x_111, ._uploadButton_1gl1x_111 {
  background-color: var(--blue-color);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-base);
  cursor: pointer;
  border-radius: var(--space-xs);
  transition: background-color 0.2s ease;
}
._downloadButton_1gl1x_111:hover, ._uploadButton_1gl1x_111:hover {
  background-color: #4a8bc2;
}

._uploadButton_1gl1x_111 {
  background-color: var(--green-color);
}
._uploadButton_1gl1x_111:hover {
  background-color: #5ea86d;
}

._wavButton_1gl1x_132 {
  background-color: var(--purple-color);
  color: var(--white-color);
  border: none;
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-base);
  cursor: pointer;
  border-radius: var(--space-xs);
  transition: background-color 0.2s ease;
}
._wavButton_1gl1x_132:hover {
  background-color: #a855f7;
}._output_1tcxt_1 {
  margin-top: var(--space-2xl);
  padding: var(--space-lg);
  background-color: var(--grey-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
}

._outputHeader_1tcxt_9 {
  cursor: pointer;
  user-select: none;
  transition: background-color 0.2s ease;
  padding: var(--space-xs);
  margin: calc(-1 * var(--space-xs));
  border-radius: var(--space-xs);
}
._outputHeader_1tcxt_9:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

._outputTitle_1tcxt_21 {
  color: var(--white-color);
  margin-bottom: var(--space-xs);
  font-size: var(--font-size-lg);
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

._outputDescription_1tcxt_31 {
  color: var(--white-color);
  margin-bottom: var(--space-sm);
  font-size: var(--font-size-base);
}

._outputTextarea_1tcxt_37 {
  width: 100%;
  min-height: var(--height-xl);
  max-height: var(--height-3xl);
  background-color: var(--background-color);
  color: var(--white-color);
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  font-size: var(--font-size-md);
  outline: none;
  resize: vertical;
  line-height: 1.4;
}
._outputTextarea_1tcxt_37:focus {
  border-color: var(--blue-color);
}

._dataManagementContainer_1tcxt_55 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  margin-top: var(--space-md);
}

._dataSection_1tcxt_62 {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
._dataSection_1tcxt_62 h4 {
  color: var(--white-color);
  margin: 0;
  font-size: var(--font-size-md);
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

._dataSectionHeader_1tcxt_77 {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

._copyButton_1tcxt_83 {
  background: transparent;
  border: 1px solid var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  padding: var(--space-xs);
  border-radius: var(--space-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}
._copyButton_1tcxt_83:hover {
  background-color: var(--grey-color);
  border-color: var(--blue-color);
}

._importHint_1tcxt_100 {
  color: var(--lightish-grey-color);
  font-size: var(--font-size-sm);
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}
._importHint_1tcxt_100 kbd {
  background-color: var(--background-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  padding: 2px var(--space-xs);
  font-size: var(--font-size-xs);
  font-family: monospace;
}._channelTab_1mi6y_1 {
  padding: var(--space-sm) var(--space-lg);
  border: 1px solid var(--grey-color);
  background-color: var(--grey-color);
  color: var(--white-color);
  cursor: pointer;
  font-size: var(--font-size-sm);
  font-weight: bold;
  border-radius: 0;
  transition: background-color 0.2s ease;
}
._channelTab_1mi6y_1:first-child {
  border-top-left-radius: var(--space-sm);
  border-bottom-left-radius: var(--space-sm);
}
._channelTab_1mi6y_1:last-child {
  border-top-right-radius: var(--space-sm);
  border-bottom-right-radius: var(--space-sm);
}
._channelTab_1mi6y_1:hover:not(._active_1mi6y_20) {
  background-color: var(--blue-color);
}
._active_1mi6y_20._channelTab_1mi6y_1 {
  background-color: var(--green-color);
  border-color: var(--green-color);
}

._channelTabsRow_1mi6y_28 {
  display: flex;
  gap: 0;
  justify-content: center;
  margin-bottom: var(--space-md);
}._livePreviewButton_qogbu_1 {
  border: none;
  border-radius: var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-md);
  font-weight: bold;
  padding: var(--space-sm) var(--space-lg);
  transition: background-color 0.2s ease;
}

._channelSpecificControls_qogbu_11 {
  display: flex;
  gap: var(--space-lg);
  align-items: center;
  padding: var(--space-sm) var(--space-md);
  background-color: rgba(255, 255, 255, 0.05);
  border-radius: var(--space-sm);
  margin-bottom: var(--space-md);
}

._toolbarGroup_qogbu_21 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
._toolbarGroup_qogbu_21 label {
  font-size: var(--font-size-md);
  color: var(--white-color);
  font-weight: bold;
}

._octaveButton_qogbu_32 {
  background-color: var(--grey-color);
  color: var(--white-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  cursor: pointer;
  font-size: var(--font-size-base);
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--width-sm);
  height: var(--width-sm);
  transition: background-color 0.2s ease;
}
._octaveButton_qogbu_32:hover:not(:disabled) {
  background-color: var(--blue-color);
}
._octaveButton_qogbu_32:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

._octaveDisplay_qogbu_55 {
  color: var(--white-color);
  font-weight: bold;
  text-align: center;
  font-size: var(--font-size-xl);
  min-width: var(--width-2xl);
}

._scaleSelectToolbar_qogbu_63 {
  background-color: var(--input-background);
  border: 1px solid var(--input-border);
  color: var(--input-text);
  border-radius: var(--space-xs);
  padding: var(--space-xs);
  font-size: var(--font-size-md);
  width: var(--width-4xl);
  cursor: pointer;
}
._scaleSelectToolbar_qogbu_63:focus {
  outline: none;
  border-color: var(--input-focus);
}

._livePreviewButton_qogbu_1 {
  background-color: var(--button-secondary);
  color: var(--control-text);
  border: 1px solid var(--button-secondary);
}
._livePreviewButton_qogbu_1:hover {
  background-color: var(--button-hover);
}
._livePreviewButton_qogbu_1._active_qogbu_86 {
  background-color: var(--button-primary);
  border-color: var(--button-primary);
}

._saveButton_qogbu_91, ._cancelButton_qogbu_91 {
  background-color: var(--grey-color);
  color: var(--white-color);
  border: none;
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-base);
  transition: background-color 0.2s ease;
}
._saveButton_qogbu_91:hover, ._cancelButton_qogbu_91:hover {
  background-color: var(--blue-color);
}

._cancelButton_qogbu_91 {
  background-color: var(--red-color);
}
._cancelButton_qogbu_91:hover {
  background-color: #ff6b6b;
}

._saveDialog_qogbu_112 {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin-left: var(--space-sm);
}

._patternNameInput_qogbu_119 {
  background-color: var(--background-color);
  color: var(--white-color);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--font-size-md);
  outline: none;
}
._patternNameInput_qogbu_119:focus {
  border-color: var(--blue-color);
}._mixerPanel_aprx7_1 {
  background-color: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-sm);
  padding: var(--space-md);
  margin-bottom: var(--space-md);
  width: 100%;
}

._mixerChannels_aprx7_10 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

._mixerChannel_aprx7_10 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  align-items: center;
  background-color: rgba(255, 255, 255, 0.05);
  padding: var(--space-sm);
  border-radius: var(--space-xs);
  min-width: var(--min-width-xl);
}

._channelLabel_aprx7_28 {
  color: var(--white-color);
  font-size: var(--font-size-base);
  font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
}

._testButton_aprx7_39 {
  background-color: var(--blue-color);
  color: var(--white-color);
  border: none;
  border-radius: var(--space-xs);
  padding: var(--space-xs) var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-xs);
  transition: background-color 0.2s ease;
}
._testButton_aprx7_39:hover {
  background-color: #4a8bc2;
}

._muteButton_aprx7_53 {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}
._muteButton_aprx7_53 label {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--font-size-sm);
  color: var(--white-color);
  cursor: pointer;
}
._muteButton_aprx7_53 input[type=checkbox] {
  cursor: pointer;
  accent-color: var(--red-color);
}

._volumeControl_aprx7_71 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
}

._volumeSlider_aprx7_78 {
  width: var(--width-lg);
  height: var(--height-sm);
  background: var(--grey-color);
  border-radius: 10px;
  cursor: pointer;
}
._volumeSlider_aprx7_78::-webkit-slider-thumb {
  appearance: none;
  width: var(--width-sm);
  height: var(--width-sm);
  border-radius: 50%;
  background: var(--green-color);
  cursor: pointer;
}
._volumeSlider_aprx7_78::-moz-range-thumb {
  width: var(--width-sm);
  height: var(--width-sm);
  border-radius: 50%;
  background: var(--green-color);
  cursor: pointer;
  border: none;
}

._volumeLabel_aprx7_102 {
  color: var(--white-color);
  font-size: var(--font-size-sm);
  font-weight: bold;
}

._envelopeControl_aprx7_108,
._dutyControl_aprx7_109 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  width: 100%;
}
._envelopeControl_aprx7_108 label,
._dutyControl_aprx7_109 label {
  font-size: var(--font-size-sm);
  color: var(--white-color);
  font-weight: bold;
}

._channelSelect_aprx7_123 {
  background-color: var(--input-background);
  border: 1px solid var(--input-border);
  color: var(--input-text);
  border-radius: var(--space-xs);
  padding: var(--space-xs);
  font-size: var(--font-size-sm);
  width: 100%;
  cursor: pointer;
}
._channelSelect_aprx7_123:focus {
  outline: none;
  border-color: var(--input-focus);
}

._masterControls_aprx7_138 {
  display: flex;
  justify-content: center;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--grey-color);
}

._masterVolume_aprx7_145 {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
._masterVolume_aprx7_145 label {
  color: var(--white-color);
  font-size: var(--font-size-lg);
  font-weight: bold;
}
._masterVolume_aprx7_145 ._volumeSlider_aprx7_78 {
  width: var(--width-2xl);
}._gameCanvasWrapper_kkvdf_1 {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  overflow-x: scroll;
}
._gameCanvasWrapper_kkvdf_1 canvas {
  outline: none;
}

._cursorNone_kkvdf_12 {
  cursor: default;
}

._cursorSpawnable_kkvdf_16 {
  cursor: crosshair;
}

._cursorZone_kkvdf_20 {
  cursor: cell;
}

._cursorPortal_kkvdf_24 {
  cursor: alias;
}

._cursorErase_kkvdf_28 {
  cursor: no-drop;
}

._cursorDesignate_kkvdf_32 {
  cursor: copy;
}._toolButtons_5vlnk_1 {
  position: absolute;
  bottom: 2em;
  margin-left: auto;
  width: 100vw;
}
._toolButtons_5vlnk_1 ._toolButton_5vlnk_1 {
  background-color: var(--background-color);
  border: 1px solid var(--yellow-color);
  color: var(--yellow-color);
}
._toolButtons_5vlnk_1 ._toolButton_5vlnk_1._active_5vlnk_12 {
  background-color: var(--yellow-color);
  border: 1px solid transparent;
  color: var(--background-color);
}

._widePanel_5vlnk_18 {
  min-width: 700px;
}._container_138ys_1 {
  max-height: 60vh;
  overflow-y: auto;
  scrollbar-width: none;
}
._container_138ys_1::-webkit-scrollbar {
  display: none;
}

._buildingsGrid_138ys_10 {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  max-width: 300px;
}

._buildingButton_138ys_17 {
  padding: 0;
  border: 2px solid var(--grey-color);
  border-radius: var(--space-xs);
  background-color: var(--background-color);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
._buildingButton_138ys_17._selected_138ys_28 {
  border-color: var(--blue-color);
  background-color: color-mix(in srgb, var(--background-color), var(--blue-color) 20%);
  box-shadow: 0 0 8px rgba(74, 144, 226, 0.5);
}
._buildingButton_138ys_17:hover:not(._selected_138ys_28) {
  background-color: color-mix(in srgb, var(--background-color), var(--white-color) 10%);
  border-color: #666;
}

._buildingButtonPlaceholder_138ys_38 {
  font-size: 10px;
  color: #888;
  text-align: center;
  font-family: monospace;
}

._previewContainer_138ys_45 {
  margin-top: var(--space-md);
  max-width: 800px;
}

._previewCard_138ys_50 {
  background-color: #000;
  padding: var(--space-md);
  border-radius: var(--space-sm);
}

._previewTitle_138ys_56 {
  font-weight: bold;
  font-size: 12px;
  font-family: monospace;
  color: var(--green-color);
}

._previewInstruction_138ys_63 {
  font-size: 10px;
  font-family: monospace;
  color: var(--yellow-color);
}

._previewHint_138ys_69 {
  font-size: 9px;
  font-family: monospace;
  color: var(--grey-color);
  margin-top: var(--space-xs);
  opacity: 0.7;
}

._previewDetails_138ys_77 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  align-items: center;
}

._previewDetailItem_138ys_84 {
  font-size: 10px;
  font-family: monospace;
}

._previewPlaceholder_138ys_89 {
  background-color: #444;
  border: 2px solid #666;
  border-radius: var(--space-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ccc;
  font-family: monospace;
  font-size: 11px;
}._container_xgh9m_1 {
  width: 650px;
}

._header_xgh9m_5 {
  font-size: 12px;
  font-family: monospace;
  font-weight: bold;
  color: var(--white-color);
}

._emptyState_xgh9m_12 {
  font-size: 11px;
  font-family: monospace;
  color: #999;
  font-style: italic;
}

._sectionHeader_xgh9m_19 {
  font-size: 10px;
  font-family: monospace;
  text-transform: uppercase;
}

._sectionHeader_xgh9m_19._unassigned_xgh9m_25 {
  color: var(--yellow-color);
}

._sectionHeader_xgh9m_19._active_xgh9m_29 {
  color: var(--green-color);
}

._sectionHeader_xgh9m_19._failed_xgh9m_33 {
  color: var(--red-color);
}

._sectionHeader_xgh9m_19._completed_xgh9m_37 {
  color: #4a9eff;
}

._jobCard_xgh9m_41 {
  padding: var(--space-sm);
  background-color: #2a2a2a;
  font-size: 10px;
  font-family: monospace;
}

._jobCardContent_xgh9m_48 {
  display: flex;
  gap: var(--space-xs);
  align-items: flex-start;
}

._jobSprite_xgh9m_54 {
  flex-shrink: 0;
}

._jobInfo_xgh9m_58 {
  flex: 1;
  min-width: 0;
}

._jobCard_xgh9m_41._unassigned_xgh9m_25 {
  border-left: 2px solid var(--yellow-color);
}

._jobCard_xgh9m_41._active_xgh9m_29 {
  border-left: 2px solid var(--green-color);
}

._jobCard_xgh9m_41._failed_xgh9m_33 {
  border-left: 2px solid var(--red-color);
  color: #999;
}

._jobCard_xgh9m_41._completed_xgh9m_37 {
  border-left: 2px solid #4a9eff;
  color: #999;
}

._jobType_xgh9m_81 {
  color: var(--white-color);
}

._jobWorker_xgh9m_85 {
  color: #999;
  margin-top: 2px;
  font-size: 9px;
}

._jobStatus_xgh9m_91 {
  color: #aaa;
  margin-top: 2px;
  font-size: 9px;
  font-style: italic;
}

._footer_xgh9m_98 {
  font-size: 9px;
  font-family: monospace;
  color: #666;
  margin-top: var(--space-sm);
}

._workPreferencesGrid_xgh9m_105 {
  overflow-x: auto;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--space-xs);
  background-color: rgba(0, 0, 0, 0.2);
}

._gridContainer_xgh9m_112 {
  display: grid;
  font-family: monospace;
  font-size: 11px;
}

._gridHeaderEntity_xgh9m_118 {
  padding: var(--space-sm);
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  position: sticky;
  left: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 1;
}

._gridHeaderJob_xgh9m_128 {
  padding: var(--space-sm) var(--space-xs);
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  height: 125px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

._gridHeaderJobText_xgh9m_139 {
  transform: translateX(-50%) rotate(-90deg);
  transform-origin: center;
  white-space: nowrap;
  font-size: 11px;
  position: absolute;
  left: 50%;
  margin: 0;
  padding: 0;
}

._gridCellEntity_xgh9m_150 {
  padding: var(--space-sm);
  position: sticky;
  left: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 1;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
}

._entityName_xgh9m_161 {
  font-size: 11px;
  font-weight: bold;
}

._gridCellJob_xgh9m_166 {
  padding: var(--space-xs);
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
}

._priorityButton_xgh9m_175 {
  width: 32px;
  height: 24px;
  padding: 0;
  border: 1px solid #444;
  border-radius: var(--space-xs);
  font-size: 11px;
  cursor: pointer;
  font-family: monospace;
  font-weight: bold;
}

._priorityButtonDisabled_xgh9m_187 {
  background-color: #2a2a2a;
  color: #888;
}

._priorityButtonLow_xgh9m_192 {
  background-color: #4a90e2;
  color: var(--white-color);
}

._priorityButtonHigh_xgh9m_197 {
  background-color: #6ba84f;
  color: var(--white-color);
}._wrapper_1gvyt_1 {
  min-width: 500px;
  max-height: 50vh;
}

._header_1gvyt_6 {
  font-size: 12px;
  color: #aaa;
  margin-bottom: var(--space-sm);
  min-width: 380px;
}

._configKey_1gvyt_13 {
  min-width: 180px;
  color: #ccc;
  font-size: 11px;
  font-family: monospace;
}

._configInput_1gvyt_20 {
  flex: 1;
}

._saveButton_1gvyt_24 {
  font-size: 10px !important;
  padding: var(--space-xs) !important;
}

._warning_1gvyt_29 {
  margin-top: var(--space-md);
  padding: var(--space-sm);
  background-color: #333;
  font-size: 10px;
  color: #aaa;
  border: 1px solid var(--color-grey);
  border-radius: var(--space-xs);
  font-family: monospace;
}._timeDisplay_2wcvw_1 {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: monospace;
  font-size: 1.2rem;
  color: var(--yellow-color);
  text-align: center;
  margin: 0;
}

._timeText_2wcvw_12 {
  font-weight: 400;
  letter-spacing: 0.5px;
}

@media (max-width: 768px) {
  ._timeDisplay_2wcvw_1 {
    font-size: 12px;
    padding: 6px 12px;
  }
  ._timeText_2wcvw_12 {
    gap: 4px;
  }
}._soundToggle_1b03b_1 {
  padding: var(--space-sm);
  min-width: auto;
  width: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}._title_vrn14_1 {
  font-weight: bold;
  font-size: 12px;
  font-family: monospace;
  color: var(--white-color);
}

._activeStatus_vrn14_8 {
  color: var(--yellow-color);
  font-size: 11px;
  font-family: monospace;
  font-weight: bold;
}

._queueInfo_vrn14_15 {
  font-size: 10px;
  font-family: monospace;
  color: var(--white-color);
  opacity: 0.8;
}

._sectionTitle_vrn14_22 {
  font-size: 11px;
  font-family: monospace;
  font-weight: bold;
  color: var(--white-color);
  margin-bottom: var(--space-xs);
}

._recipeButton_vrn14_30 {
  text-align: left !important;
  justify-content: flex-start !important;
  font-size: 11px !important;
  font-family: monospace !important;
  padding: var(--space-sm) var(--space-md) !important;
}

._noRecipes_vrn14_38 {
  font-size: 10px;
  font-family: monospace;
  color: var(--white-color);
  opacity: 0.6;
  font-style: italic;
}._container_fih8m_1 {
  border-color: var(--grey-color);
  border-width: 2px 2px 0px 0px;
  border-radius: 0px var(--space-xs) 0px 0px;
  border-style: solid;
  position: absolute;
  left: 0;
  bottom: 0;
  overflow-y: scroll;
  height: 50vh;
  background: color-mix(in srgb, var(--background-color), var(--white-color) 10%);
  margin: 0;
  padding: var(--space-md);
  width: 240px;
  scrollbar-width: none;
}
._container_fih8m_1::-webkit-scrollbar {
  display: none;
}

._selectedEntityTop_fih8m_21 {
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  padding: var(--space-md);
  margin-bottom: var(--space-sm);
  background-color: var(--background-color);
}._gameContainer_1bwt3_1 {
  width: 100vw;
  height: 100vh;
  position: relative;
}

._areaHeader_1bwt3_7 {
  color: var(--yellow-color);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: var(--space-md);
  left: var(--space-lg);
  right: var(--space-lg);
  z-index: 10;
  pointer-events: none;
  gap: var(--space-sm);
}
._areaHeader_1bwt3_7 h1 {
  margin: 0;
  font-family: monospace;
  font-size: 1.6rem;
  text-align: center;
}

._debugCoordinates_1bwt3_28 {
  position: fixed;
  bottom: var(--space-md);
  right: var(--space-md);
  background-color: rgba(0, 0, 0, 0.6);
  color: var(--white-color);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--space-xs);
  font-size: 11px;
  font-family: monospace;
  pointer-events: none;
  z-index: 1000;
}

._floatingControls_1bwt3_42 {
  position: fixed;
  top: var(--space-md);
  right: var(--space-md);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  pointer-events: none;
}
._floatingControls_1bwt3_42 > * {
  pointer-events: auto;
}._footer_na1mp_1 {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: var(--echoes-background);
  border-top: 1px solid var(--echoes-grey);
  padding: var(--space-lg) var(--space-xl);
  z-index: 100;
  backdrop-filter: blur(4px);
}

._content_na1mp_13 {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

._userSection_na1mp_19 {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
}

._userInfo_na1mp_27 {
  color: var(--echoes-white);
  font-size: var(--echoes-font-size-base);
}
._userInfo_na1mp_27 strong {
  color: var(--echoes-yellow);
  font-weight: normal;
}

._status_na1mp_36 {
  display: flex;
  align-items: center;
}._container_whyhc_1 {
  padding: var(--space-4xl);
  max-width: 1200px;
  margin: 0 auto;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 120px;
}

._contentSection_whyhc_12 {
  max-width: 800px;
  text-align: center;
}

._spriteLine_whyhc_17 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-md);
  margin: var(--space-xl) 0;
  flex-wrap: wrap;
}

._fadeIn_whyhc_26 {
  opacity: 1;
  transition: opacity 0.5s ease-in-out;
}

._fadeOut_whyhc_31 {
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}._container_h0u8l_1 {
  position: relative;
  min-height: 100vh;
  margin-top: var(--space-4xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2xl);
  min-width: 20vw;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 120px;
}

._title_h0u8l_16 {
  font-size: 1.8rem;
  font-family: monospace;
  font-weight: bold;
  color: var(--yellow-color);
  text-decoration: none;
}

._existingEntities_h0u8l_24 {
  width: 100%;
  padding: var(--space-lg);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  background-color: rgba(0, 0, 0, 0.2);
}
._existingEntities_h0u8l_24 h3 {
  margin-top: 0;
  margin-bottom: var(--space-md);
  font-size: 1.2rem;
  color: var(--green-color);
}

._entitiesList_h0u8l_38 {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  justify-content: center;
}

._entityCard_h0u8l_45 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  background-color: rgba(0, 0, 0, 0.3);
  transition: all 0.2s ease;
}
._entityCard_h0u8l_45:hover {
  border-color: var(--green-color);
  transform: translateY(-2px);
}

._entityInfo_h0u8l_61 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xs);
  text-align: center;
}

._entityName_h0u8l_69 {
  font-size: 0.9rem;
  font-family: monospace;
  color: var(--white-color);
  font-weight: 500;
}

._entityPosition_h0u8l_76 {
  font-size: 0.75rem;
  font-family: monospace;
  color: var(--grey-color);
  line-height: 1.4;
}

._entityHealth_h0u8l_83 {
  font-size: 0.8rem;
  font-family: monospace;
  color: var(--green-color);
}

._currentLocation_h0u8l_89 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
._currentLocation_h0u8l_89 label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--grey-color);
}
._currentLocation_h0u8l_89 ._locationValue_h0u8l_99 {
  padding: var(--space-sm) var(--space-md);
  background-color: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  font-family: monospace;
  color: var(--green-color);
  font-size: 1rem;
}

._locationSelect_h0u8l_109 {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
._locationSelect_h0u8l_109 label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--grey-color);
}
._locationSelect_h0u8l_109 ._selectInput_h0u8l_119 {
  padding: var(--space-sm) var(--space-md);
  background-color: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  font-family: monospace;
  color: var(--green-color);
  font-size: 1rem;
  cursor: pointer;
  transition: border-color 0.2s ease;
}
._locationSelect_h0u8l_109 ._selectInput_h0u8l_119:hover {
  border-color: var(--green-color);
}
._locationSelect_h0u8l_109 ._selectInput_h0u8l_119:focus {
  outline: none;
  border-color: var(--green-color);
}

._embarkForm_h0u8l_138 {
  padding: var(--space-md);
  border: 1px solid var(--grey-color);
  border-radius: var(--space-xs);
  width: 100%;
}

._formContent_h0u8l_145 {
  flex: 1;
}._graphContainer_1opqe_1 {
  position: relative;
  width: 100%;
  height: 600px;
  background: var(--echoes-background);
  border: 1px solid var(--echoes-grey);
  border-radius: var(--echoes-radius-sm);
  overflow: hidden;
}

._graphSvg_1opqe_11 {
  width: 100%;
  height: 100%;
  background: var(--echoes-background);
}

._nodeLabel_1opqe_17 {
  pointer-events: none;
  user-select: none;
}

._infoPanel_1opqe_22 {
  position: absolute;
  top: var(--echoes-space-xl);
  right: var(--echoes-space-xl);
  background: var(--echoes-grey);
  border: 1px solid var(--echoes-lightish-grey);
  border-radius: var(--echoes-radius-sm);
  padding: var(--echoes-space-xl);
  min-width: 200px;
  max-width: 300px;
  color: var(--echoes-white);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  z-index: 10;
}
._infoPanel_1opqe_22 h3 {
  margin: 0 0 0.75rem 0;
  color: var(--echoes-blue);
  font-size: 1.2rem;
}
._infoPanel_1opqe_22 ._infoRow_1opqe_41 {
  margin-bottom: var(--echoes-space-md);
  font-size: 0.9rem;
}
._infoPanel_1opqe_22 ._infoRow_1opqe_41 strong {
  color: var(--echoes-lightish-grey);
  margin-right: var(--echoes-space-md);
}
._infoPanel_1opqe_22 ._connectedMaps_1opqe_49 {
  margin-top: var(--echoes-space-xl);
  padding-top: var(--echoes-space-xl);
  border-top: 1px solid var(--echoes-lightish-grey);
}
._infoPanel_1opqe_22 ._connectedMaps_1opqe_49 strong {
  display: block;
  margin-bottom: var(--echoes-space-md);
  color: var(--echoes-lightish-grey);
}
._infoPanel_1opqe_22 ._connectedMaps_1opqe_49 ul {
  margin: 0;
  padding-left: 1.5rem;
  list-style-type: disc;
}
._infoPanel_1opqe_22 ._connectedMaps_1opqe_49 ul li {
  margin-bottom: var(--echoes-space-xs);
  color: var(--echoes-blue);
}._container_1ndq8_1 {
  padding: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 100vh;
  background: #1a1a1a;
  color: #e0e0e0;
}

._header_1ndq8_10 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding: 1rem;
  background: #2a2a2a;
  border-radius: 4px;
  gap: 1.5rem;
  flex-wrap: wrap;
}
._header_1ndq8_10 h1 {
  margin: 0;
  font-size: 1.5rem;
  color: #e0e0e0;
}
._header_1ndq8_10 button {
  padding: 0.5rem 1rem;
  background: #4a4a4a;
  color: #e0e0e0;
  border: 1px solid #666;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.9rem;
  white-space: nowrap;
}
._header_1ndq8_10 button:hover {
  background: #5a5a5a;
}

._headerLeft_1ndq8_40 {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

._headerRight_1ndq8_47 {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
._headerRight_1ndq8_47 ._layoutSelector_1ndq8_53 {
  display: flex;
  align-items: center;
}

._loading_1ndq8_58,
._error_1ndq8_59 {
  text-align: center;
  padding: 2rem;
  font-size: 1.2rem;
}

._error_1ndq8_59 {
  color: #ff6b6b;
}

._stats_1ndq8_69 {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

._stat_1ndq8_69 {
  font-size: 0.9rem;
  color: #aaa;
}
._stat_1ndq8_69 strong {
  color: #4a9eff;
  font-size: 1.1rem;
  margin-right: 0.25rem;
}

._graphSection_1ndq8_85 {
  margin-top: 0;
}

._layoutSelector_1ndq8_53 {
  min-width: 180px;
}

._mapsList_1ndq8_93 h2,
._connectionsList_1ndq8_94 h2 {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  color: #4a9eff;
}

._mapsGrid_1ndq8_101 {
  display: grid;
  gap: 1rem;
  max-height: 600px;
  overflow-y: auto;
}

._mapCard_1ndq8_108 {
  padding: 1rem;
  background: #2a2a2a;
  border: 1px solid #444;
  border-radius: 4px;
}
._mapCard_1ndq8_108 h3 {
  margin: 0 0 0.5rem 0;
  color: #4a9eff;
}
._mapCard_1ndq8_108 ._mapInfo_1ndq8_118 {
  font-size: 0.9rem;
  color: #aaa;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

._connections_1ndq8_94 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-height: 600px;
  overflow-y: auto;
}

._connection_1ndq8_94 {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background: #2a2a2a;
  border: 1px solid #444;
  border-radius: 4px;
}

._connectionFrom_1ndq8_144,
._connectionTo_1ndq8_145 {
  flex: 1;
}
._connectionFrom_1ndq8_144 strong,
._connectionTo_1ndq8_145 strong {
  color: #4a9eff;
}
._connectionFrom_1ndq8_144 span,
._connectionTo_1ndq8_145 span {
  color: #aaa;
  font-size: 0.9rem;
}

._arrow_1ndq8_158 {
  font-size: 1.5rem;
  color: #666;
}*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

button {
  display: block;
}

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

ul[role=list],
ol[role=list] {
  list-style: none;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

img, picture, svg, video, canvas {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  font-style: italic;
  background-repeat: no-repeat;
  background-size: cover;
}

body, html {
  height: 100%;
  scroll-behavior: smooth;
}

html:focus-within {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
    transition: none;
  }
}
:root {
  --white-color: #ebebeb;
  --lightish-grey-color: #aaa;
  --grey-color: #333;
  --purple-color: #7e2553;
  --blue-color: #5a8bde;
  --red-color: #ec1c24;
  --orange-color: #dc6250;
  --yellow-color: #ffd4a3;
  --green-color: #449d71;
  --background-color: #081b1b;
  /* Echo UI tokens - these will be overridden by @echoes/ui */
  --echoes-white: var(--white-color);
  --echoes-lightish-grey: var(--lightish-grey-color);
  --echoes-grey: var(--grey-color);
  --echoes-purple: var(--purple-color);
  --echoes-blue: var(--blue-color);
  --echoes-red: var(--red-color);
  --echoes-orange: var(--orange-color);
  --echoes-yellow: var(--yellow-color);
  --echoes-green: var(--green-color);
  --echoes-background: var(--background-color);
  /* Echo spacing tokens */
  --echoes-space-xs: var(--space-xs);
  --echoes-space-sm: var(--space-sm);
  --echoes-space-md: var(--space-md);
  --echoes-space-lg: var(--space-lg);
  --echoes-space-xl: var(--space-xl);
  --echoes-space-2xl: var(--space-2xl);
  --echoes-space-3xl: var(--space-3xl);
  --echoes-space-4xl: var(--space-4xl);
  /* Echo typography tokens */
  --echoes-font-family: monospace;
  --echoes-font-size-xs: 10px;
  --echoes-font-size-sm: 11px;
  --echoes-font-size-base: 13px;
  --echoes-font-size-lg: 16px;
  /* Echo border radius tokens */
  --echoes-radius-xs: 2px;
  --echoes-radius-sm: 4px;
  --echoes-radius-md: 6px;
  /* Spacing scale */
  --space-xs: 2px;
  --space-sm: 4px;
  --space-md: 8px;
  --space-lg: 12px;
  --space-xl: 16px;
  --space-2xl: 20px;
  --space-3xl: 24px;
  --space-4xl: 32px;
  /* Legacy padding (keeping for compatibility) */
  --padding: 16px;
}

* {
  font-family: monospace;
}

::-webkit-scrollbar {
  width: 0px;
  background: transparent;
}

html {
  height: 100vh;
  width: 100vw;
  background-color: var(--background-color);
  cursor: crosshair;
  font-family: monospace;
  color: var(--white-color);
  font-size: 13px;
}

body {
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

h1 {
  margin-bottom: 0.7em;
}

h2 {
  margin-bottom: 0.5em;
}

label {
  font-size: 1rem;
}

a {
  text-decoration: none;
}

textarea,
input {
  padding: var(--space-sm);
  border: none;
  font-size: 1rem;
  outline: none;
  height: 2rem;
  color: var(--white-color);
  background: transparent;
  border: 1px solid var(--white-color);
}

button {
  padding: var(--space-sm);
  border: none;
  border-radius: 0;
  outline: none;
  cursor: pointer;
  font-size: 1rem;
}

hr {
  font-size: 1.1rem;
  border: none;
  border-top: 3px double var(--white-color);
  color: var(--white-color);
  overflow: visible;
  text-align: center;
  height: 1em;
  margin: 3em 0;
}
hr::after {
  background: var(--background-color);
  content: "§";
  padding: 0 var(--space-sm);
  position: relative;
  top: -0.7em;
}

#root {
  height: 100vh;
  width: 100vw;
}

.App {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
}

.bg-action-color {
  background-color: var(--green-color);
  color: var(--background-color);
}

.green {
  color: var(--green-color);
}

.bold {
  font-weight: 800;
}

.border {
  border: 1px solid var(--white-color);
}

.push-bottom {
  margin-bottom: 2em;
}

.small-text {
  font-size: 0.8rem;
  color: var(--yellow-color);
  margin-top: var(--space-md);
}

.text-xs {
  font-size: 0.7rem;
}

.text-sm {
  font-size: 0.8rem;
}.flex {
  display: flex;
}
.flex.align-center {
  align-items: center;
}
.flex.justify-center {
  justify-content: center;
}
.flex.space-between {
  justify-content: space-between;
}
.flex.flex-column {
  flex-direction: column;
}
.flex.flex-wrap {
  flex-wrap: wrap;
}
.flex.flex-1 {
  flex: 1;
}
.flex.flex-2 {
  flex: 2;
}
.flex.row-stretch {
  align-items: stretch;
}

.align-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.space-between {
  justify-content: space-between;
}

.flex-column {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-1 {
  flex: 1;
}

.flex-2 {
  flex: 2;
}

.row-stretch {
  align-items: stretch;
}

.gap5 {
  gap: var(--space-sm);
}

.gap10 {
  gap: var(--space-md);
}

.gap20 {
  gap: var(--space-2xl);
}@keyframes flicker {
  0% {
    opacity: 0.27861;
  }
  5% {
    opacity: 0.34769;
  }
  10% {
    opacity: 0.23604;
  }
  15% {
    opacity: 0.90626;
  }
  20% {
    opacity: 0.18128;
  }
  25% {
    opacity: 0.83891;
  }
  30% {
    opacity: 0.65583;
  }
  35% {
    opacity: 0.67807;
  }
  40% {
    opacity: 0.26559;
  }
  45% {
    opacity: 0.84693;
  }
  50% {
    opacity: 0.96019;
  }
  55% {
    opacity: 0.08594;
  }
  60% {
    opacity: 0.20313;
  }
  65% {
    opacity: 0.71988;
  }
  70% {
    opacity: 0.53455;
  }
  75% {
    opacity: 0.37288;
  }
  80% {
    opacity: 0.71428;
  }
  85% {
    opacity: 0.70419;
  }
  90% {
    opacity: 0.7003;
  }
  95% {
    opacity: 0.36108;
  }
  100% {
    opacity: 0.24387;
  }
}
.crt {
  position: relative;
}
.crt::after {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
  z-index: 2;
  pointer-events: none;
  animation: flicker 0.15s infinite;
  will-change: contents;
}
.crt::before {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
  z-index: 2;
  background-size: 100% 2px, 3px 100%;
  pointer-events: none;
  will-change: contents;
}:root {
  --echoes-white: #ffffff;
  --echoes-purple: #a855f7;
  --echoes-blue: #3b82f6;
  --echoes-red: #ef4444;
  --echoes-orange: #f97316;
  --echoes-yellow: #eab308;
  --echoes-green: #4ade80;
  --echoes-grey: #6b7280;
  --echoes-lightish-grey: #9ca3af;
  --echoes-background: #081b1b;
  --echoes-space-xs: 2px;
  --echoes-space-sm: 4px;
  --echoes-space-md: 8px;
  --echoes-space-lg: 12px;
  --echoes-space-xl: 16px;
  --echoes-space-2xl: 20px;
  --echoes-space-3xl: 24px;
  --echoes-space-4xl: 32px;
  --echoes-font-family: monospace;
  --echoes-font-size-xs: 10px;
  --echoes-font-size-sm: 11px;
  --echoes-font-size-base: 13px;
  --echoes-font-size-lg: 16px;
  --echoes-radius-xs: 2px;
  --echoes-radius-sm: 4px;
  --echoes-radius-md: 6px;
}

* {
  box-sizing: border-box;
}

body {
  font-family: var(--echoes-font-family);
  font-size: var(--echoes-font-size-sm);
  line-height: 1.5;
  color: var(--echoes-white);
  background-color: var(--echoes-background);
}

.text-xs {
  font-size: var(--echoes-font-size-xs);
}

.text-sm {
  font-size: var(--echoes-font-size-sm);
}

.text-base {
  font-size: var(--echoes-font-size-base);
}

.text-lg {
  font-size: var(--echoes-font-size-lg);
}