/* Unuploaded — /ringtone-maker/ page styles. ROUTE-LOCAL rather than in
   convert.css for the reason bpm.css records: that sheet is loaded by every D3
   tool page, and /stl-viewer/ sits 165 bytes under the page-weight assertion,
   so anything folded into it is paid for twenty times by routes that can never
   render it. */

/* Height fixed here, as the beat strip's and the tone ladder's are: the
   waveform paints after the decode and an unsized canvas would reflow the page
   at that moment. Zero CLS is a house floor. */
#wave {
  display: block;
  width: 100%;
  height: 140px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
  margin: 0 0 0.5rem;
}

/* The envelope table is columns of numbers pretending to be prose, so it keeps
   the mono face and scrolls sideways on a narrow screen rather than wrapping
   each slice onto two lines where the columns stop lining up. */
#wave-text {
  overflow-x: auto;
  margin: 0 0 0.6rem;
}

#wave-text:empty { display: none; }

/* The install section is the artifact ladder's EXPLANATION rung and the audit
   conditioned this route's pursue on shipping it, so it is boxed to read as
   part of the tool rather than as footer prose. Same treatment bpm.css gives
   its second instrument. */
.install-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  padding: 0.9rem 1rem 1rem;
  margin: 1.4rem 0;
}

.install-panel h2 { margin-top: 0; }
.install-panel h3 { margin-bottom: 0.2rem; }
.install-panel p { margin-top: 0.3rem; }

/* The checkbox rides INSIDE its label so the pair cannot wrap apart at ≤480px,
   the idiom the 2026-08-20 mobile audit settled on. */
.controls label.inline input[type="checkbox"] {
  margin-right: 0.4rem;
  vertical-align: middle;
}
