/* B3BOP Pulse Lab — small additions on top of ../type_lab/type_lab.css (same warm-workshop look + phone layout). */

/* two layouts, two sources: pairs instead of Type Lab's 5-column preset grid */
#presets, #sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 0; }
#sources { margin-top: 4px; }
#sources .tool { text-align: center; }

/* transport: Play · scrub · clock · Sound */
#sound { min-width: 6.4rem; }
#sound:disabled, .scrub input:disabled { opacity: .45; cursor: not-allowed; }
#src-note { margin: 8px 4px 0; }
#src-note:empty, #export-note:empty, #layout-note:empty { display: none; }
#src-note.warn, #export-note.warn { padding: 10px 12px; border-radius: 12px; background: rgba(196, 84, 26, .14); color: var(--paper); }

/* boolean slider (Mirror) as a pill toggle in a slider row */
.row .toggle { justify-self: start; min-height: 36px; padding: 0 16px; }

/* square frames (Radial 1:1) shouldn't tower over the tray on desktop */
.stage canvas.square { max-height: min(calc(100vh - 190px), 640px); }

@media (max-width: 600px) {
  .back { padding: 11px 0; }
  .scrub { flex-wrap: wrap; row-gap: 6px; }
  .scrub input { order: 5; flex: 1 0 100%; }
  #clock { margin-left: auto; }
  #sound { min-width: 0; }
  .stage canvas.square { max-height: 30vh; }
  /* the two layouts still swipe like Type Lab's presets, but both fit */
  #presets .tool { flex: 1 0 auto; }
  .row .toggle { grid-area: s; justify-self: stretch; min-height: 44px; }
}
