body { font-family: sans-serif; background: #111; color: #fff; font-size:12px;}


#app {
  display: flex;
  height: 100vh;
}
#left {
  flex: 1;
  padding: 20px;
}
#right {
  width: 350px;
  background: #1a1a1a;
  border-left: 1px solid #333;
  padding: 10px;
  overflow-y: auto;
}


.popup {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 100;
}
.popup-content {
  background: #222;
  padding: 20px;
  touch-action: none;
}
.hidden {
  display: none;
}


.button {
  margin: 2px;
  background: #222;
  color: #aaa;
  border: 1px solid #555;
  padding: 5px 10px;
  cursor: pointer;
}
.button:hover {
  background: #555;
}
.ctl-btn {
  font-size: 14px;
}
input[type="text"] {
  margin: 2px;
  margin-bottom: 5px;
  padding: 5px;
  background: #222;
  color: white;
  border: 1px solid #444;
}
.radio-label {
  display: flex;
  cursor: pointer;
  margin-bottom: 6px;
}
.radio-span {
  color: #aaa;
  padding-top: 3px;
  padding-left: 4px;
}


.track {
  padding: 5px;
  width: 35px;
}
.row0 { display: flex; margin: 10px 0; }
.row1 { display: flex; margin: 10px 0; }
.step {
  width: 24px; height: 24px; margin: 2px;
  background: #333; cursor: pointer;
}
.step.active { background: #0f0; }
.step.playing { outline: 2px solid yellow; }



ul {
  padding-inline-start: 10px;
}
li {
  margin: 5px 0;
  justify-content: space-between;
  display: flex;
  align-items: center;
}
#patternList button {
  width: 60px;
  flex-shrink: 0;
}
#patternList span {
  flex: 1;
  margin: 0 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


#stepSliders {
  display: flex;
  gap: 4px;
}
#stepSliders input {
  writing-mode: vertical-lr;
  direction: rtl;
  width: 20px;
  height: 120px;
}


.mixer-sliders {
  display: grid;
  grid-template-columns: 15px 1fr;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
}
.mixer-sliders input {
  height: 20px;
}
.mixer-sliders span {
  padding-left: 10px;
}
.mixer-balance {
  writing-mode: vertical-lr;
  direction: rtl;
  width: 30px;
  height: 130px;
}


.tempo-div {
  display: flex;
}
#tempo-bar {
  width: 180px;
  height: 20px;
}

.shift-mode {
  display: flex;
}
.shift-mode span {
  margin-right: 10px;
}
.sound-load {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}


.group-end {
  margin-right: 12px;
}


#tabs {
  display: flex;
}
#tabs button {
  flex: 1;
  padding: 6px;
  background: #252526;
  color: #aaa;
  border: none;
  cursor: pointer;
}
#tabs button.active {
  font-weight: bold;
  color: hsl(40, 100%, 45%);
  background: #1e1e1e;
  /* border-bottom: 2px solid #007acc; */
}
#tabContents > div {
  padding: 8px;
}


.form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.form-row {
  display: grid;
  grid-template-columns: 70px 1fr;
  align-items: center;
  gap: 10px;
}
.form-label {
  font-weight: bold;
}



.seq1 {
/*
  color: hsl(210, 80%, 60%);
  color: #1e1e1e;
  color: #d4d4d4;
  color: #6a9955;
  color: #ce9178;
  color: #b5cea8;
  color: #007acc;
  color: #569cd6;
  color: #4FC1FF;
*/
  color: hsl(201, 100%, 70%);
}
.seq2 {
  /* color: hsl(0, 80%, 60%); */
  /* color: #ce9178; */
  color: hsl(5, 100%, 70%);
}
.snd {
  /* color: hsl(280, 80%, 60%); */
  /* color: #c586c0; */
  /* color: hsl(275, 100%, 65%); */
  /* color: #6a9955; */
  color: hsl(40, 100%, 45%);
}
.ptn {
  /* color: hsl(45, 80%, 60%); */
  /* color: #dcdcaa; */
  color: hsl(60, 100%, 45%);
}
.stg {
  color: #aaa;
}
.tit {
  color: #eee;
}
.playing {
  /* color: hsl(140, 80%, 60%); */
  background: #044;
  color: #0ff;
}
.shift {
  color: hsl(40, 100%, 45%);
}
