html, body {
  height: 100%;
  margin: 0;
  background: #101418;
  color: #f2f4f6;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  padding:
    calc(16px + env(safe-area-inset-top))
    16px
    calc(16px + env(safe-area-inset-bottom));
  overscroll-behavior: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

button {
  font: inherit;
  color: #f2f4f6;
  border: 0;
  border-radius: 28px;
  cursor: pointer;
}

#staff-sign-in,
#live-controls,
#staff-name {
  margin: 0 0 10px;
}

#staff-sign-in,
#staff-sign-in input {
  user-select: text;
  -webkit-user-select: text;
}

#staff-sign-in {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#staff-sign-in input {
  font: inherit;
  font-size: 1rem;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #3a4654;
  background: #1a2129;
  color: #f2f4f6;
}

#sign-in,
#live-end {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 10px 16px;
  background: #2f6f5e;
  font-size: 1rem;
  font-weight: 700;
}

#live-controls {
  display: flex;
  gap: 8px;
}

#staff-name {
  min-height: 0;
  text-align: center;
  color: #c5ced6;
}

#sheet {
  flex: 0 1 auto;
  min-height: 0;
  overflow: auto;
}

#hold {
  flex: 1 0 auto;
  min-height: 34vh;
  font-size: clamp(2rem, 8vw, 3.2rem);
  font-weight: 700;
  touch-action: none;
  -webkit-touch-callout: none;
  background: #243044;
}

#hold.held {
  background: #8c2f2f;
  box-shadow: inset 0 0 0 4px #ffd2d2;
}

#status.is-recording {
  color: #ffb4b4;
}

#status {
  margin: 0 0 6px;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

#heard {
  min-height: 1.4em;
  margin: 0 0 16px;
  text-align: center;
  font-size: 0.95rem;
  color: #c5ced6;
}

#unsupported,
#banner,
#reply {
  margin: 12px 0 16px;
  text-align: center;
  font-size: 1.15rem;
  line-height: 1.4;
}

#banner {
  color: #f0d48a;
}

#reply {
  color: #f2f4f6;
}

label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.95rem;
  color: #c5ced6;
}

.is-hidden {
  display: none !important;
}
