/* The description actions must never cover the input on short mobile screens. */
@media (max-width: 1023px) {
  #app > [data-screen="describe"] .situation-actions {
    position: static; inset: auto; background: transparent; border-top: 0;
  }
  #app > [data-screen="describe"] .situation-composer {
    flex: 1 0 220px; min-height: 220px; margin-bottom: 0;
  }
  #app > [data-screen="describe"] .situation-composer #desc {
    flex: 1 1 auto; min-height: 220px; padding: 20px; text-align: left;
  }
}
/* Native modal keeps the underlying form inert without losing its draft. */
body.dictation-open { overflow: hidden; }
#dictationView {
  position: fixed; inset: 0; margin: 0; padding: 0; border: 0;
  width: 100%; max-width: none; height: 100dvh; max-height: 100dvh;
  background: #fcfbf8; color: var(--ink, #191715); overflow: hidden;
}
#dictationView::backdrop { background: #fcfbf8; }
.dictation-shell { height: 100%; display: flex; flex-direction: column; position: relative; }
.dictation-header {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  padding: calc(24px + env(safe-area-inset-top, 0px)) 24px 0; flex-shrink: 0;
  color: var(--brick, #961b1b); font-size: 13px; font-weight: 600;
}
.dictation-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; animation: dictation-pulse 1.8s ease-in-out infinite; }
.dictation-status { text-align: center; font-size: 13px; color: #746c65; margin: 8px 20px 0; flex-shrink: 0; }
.dictation-transcript {
  flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  padding: 36px max(26px, calc((100% - 720px) / 2)) calc(170px + env(safe-area-inset-bottom, 0px));
  font-size: clamp(23px, 4.8vw, 32px); line-height: 1.65; letter-spacing: -.025em;
  text-align: left; overflow-wrap: anywhere;
  scrollbar-width: thin; scrollbar-color: #d6c9be transparent;
}
#dictationPlaceholder { color: #948a80; }
#dictationWords { white-space: pre-wrap; }
#dictationInterim { color: var(--brick, #961b1b); }
.dictation-controls {
  position: absolute; bottom: 0; left: 0; right: 0;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 32px 24px calc(22px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(transparent, #fcfbf8e6 40%, #fcfbf8 100%);
  pointer-events: none;
}
#dictationStop {
  pointer-events: auto; display: grid; place-items: center;
  width: 76px; height: 76px; border-radius: 50%;
  background: #ffffffb8; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid #ffffff; color: var(--brick, #961b1b);
  box-shadow: 0 8px 32px #6018181a, inset 0 0 0 1px #961b1b12;
  transition: transform .15s;
}
#dictationStop:active { transform: scale(.96); }
#dictationStop:focus-visible { outline: 2px solid var(--brick, #961b1b); outline-offset: 5px; }
#dictationStop:disabled { opacity: .65; }
#dictationStop svg { width: 30px; height: 30px; }
#dictationStopLabel { color: #746c65; font-size: 12px; font-weight: 600; }
@keyframes dictation-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .dictation-dot { animation: none; } #dictationStop { transition: none; } }
