textarea#urls {
  resize: vertical;
}

.progress {
  height: 1.5rem;
}

/* Replaces inline style="" attributes so the app's own CSP (default-src 'self',
   no style-src-attr) doesn't silently drop them - see app/main.py's security
   middleware. */
/* display:inline-flex re-centers the label/icon when min-height stretches the
   button taller than its content - plain inline-block (Bootstrap's default)
   leaves it sitting at the top instead. */
.btn-touch {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-touch-square {
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.login-card {
  max-width: 380px;
}

.thumb {
  width: 176px;
  height: 99px;
  object-fit: cover;
  border-radius: 0.25rem;
}

/* The job log is plain text with long unbroken lines; without wrapping, a
   <pre> forces the whole card wider than the viewport on phones. */
[data-log-content] {
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: auto;
  max-width: 100%;
}

/* Flex items default to min-width:auto, so their content (long log lines,
   wide button rows) can force this column - and the whole card - wider than
   the viewport instead of shrinking/wrapping. */
.card .flex-grow-1 {
  min-width: 0;
}
