#gallery-soundtrack {
  position: absolute;
  z-index: 6;
  left: max(14px, env(safe-area-inset-left));
  bottom: max(66px, calc(env(safe-area-inset-bottom) + 60px));
  display: flex;
  min-height: 58px;
  flex-direction: column;
  width: 360px;
  max-width: calc(100% - max(14px, env(safe-area-inset-left)) - max(14px, env(safe-area-inset-right)));
  max-height: min(560px, calc(100% - var(--soundtrack-top-clearance, 12px) - max(72px, calc(env(safe-area-inset-bottom) + 66px))));
  padding: 6px;
  border: 1px solid #c4cbbb;
  border-radius: 9px;
  background: #f3f1ebf7;
  color: #34412f;
  box-shadow: 0 3px 18px #1520161f;
  font-size: 12px;
}
.soundtrack-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 5px;
  flex: none;
}
.soundtrack-toolbar button {
  min-height: 44px;
  min-width: 44px;
  padding: 9px 11px;
  font-size: 12px;
  white-space: nowrap;
}
#soundtrack-play {
  background: #455b39;
  border-color: #455b39;
  color: #fff;
}
#soundtrack-play:hover { background: #364a2e; }
.soundtrack-mixer-body {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 12px 9px 8px;
  margin-top: 6px;
  border-top: 1px solid #c7cbbf;
}
.soundtrack-heading h3 {
  margin: 0 0 4px;
  font: 400 20px/1.25 Georgia, serif;
}
.soundtrack-heading p,
#soundtrack-status {
  margin: 0 0 10px;
  color: #53634a;
  font-size: 11px;
  line-height: 1.5;
}
#soundtrack-status { min-height: 17px; }
.soundtrack-range {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0 0 4px;
}
.soundtrack-range > span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  font-size: 12px;
  line-height: 1.5;
}
#gallery-soundtrack output {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  color: #53634a;
  white-space: nowrap;
}
#gallery-soundtrack input[type=range] {
  min-width: 0;
  width: 100%;
  height: 44px;
  margin: 0;
  padding: 0;
  accent-color: #526a43;
  cursor: pointer;
  touch-action: pan-y;
}
.soundtrack-loop {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin: 0 0 8px;
  cursor: pointer;
}
.soundtrack-stems {
  margin: 0;
  padding: 0;
  min-width: 0;
  border: 0;
}
.soundtrack-stems legend {
  margin: 0 0 8px;
  padding: 0;
  color: #53634a;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.soundtrack-stem {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  column-gap: 5px;
  align-items: center;
  padding: 8px 0 3px;
  border-top: 1px solid #d2d6cb;
}
.soundtrack-stem-name {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 3px;
  padding-right: 4px;
}
.soundtrack-stem-name label { font-size: 12px; line-height: 1.4; }
.soundtrack-layer-note { font-size: 10px; line-height: 1.4; color: #69735f; }
.soundtrack-stem button {
  min-height: 44px;
  min-width: 44px;
  padding: 9px;
  font-size: 11px;
}
.soundtrack-gain-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 35px;
  gap: 9px;
  align-items: center;
}
.soundtrack-gain-row output { text-align: right; }
#soundtrack-reset { width: 100%; margin-top: 10px; min-height: 44px; font-size: 12px; }
body #viewport:fullscreen #gallery-soundtrack,
body #viewport.is-expanded #gallery-soundtrack {
  left: var(--soundtrack-tour-left, max(14px, env(safe-area-inset-left)));
  max-width: var(--soundtrack-tour-width, calc(100% - 28px));
  bottom: var(--soundtrack-bottom-clearance, 14px);
  max-height: min(560px, calc(100% - var(--soundtrack-top-clearance, 72px) - var(--soundtrack-bottom-clearance, 14px)));
}
@media (max-width: 600px) {
  #gallery-soundtrack {
    min-height: 56px;
    left: max(8px, env(safe-area-inset-left));
    max-width: calc(100% - max(8px, env(safe-area-inset-left)) - max(8px, env(safe-area-inset-right)));
    width: 360px;
    padding: 5px;
    bottom: max(62px, calc(env(safe-area-inset-bottom) + 58px));
  }
  .soundtrack-toolbar button { padding: 9px 8px; font-size: 11px; }
  .soundtrack-mixer-body { padding: 10px 6px 6px; }
}
@media (max-height: 520px) {
  #gallery-soundtrack { width: 340px; }
  .soundtrack-mixer-body { padding-top: 8px; }
}

.soundtrack-screen{width:100%;min-height:44px;margin:10px 0 4px}
