/* ─── generate-batch.html — Kötegelt generálás (proposal table, launch) ──── */

/* The brief is a form and stays at a readable width; the proposal is a
   wide table and gets the room the viewport has, so it does not scroll
   sideways inside a narrow column with empty space on both sides. */
.batch-shell { max-width: 96rem; margin: 0 auto; padding: 1.25rem 1rem 3rem; 
}
.batch-shell > :not(#reviewPanel) { max-width: 72rem; margin-inline: auto; 
}
.batch-shell > .gen-panel { margin-bottom: 1rem; 
}
#batchNotes { max-width: 80ch; 
}
.field-row { display: flex; flex-wrap: wrap; gap: 0.75rem; 
}
.field-row > * { flex: 1; min-width: 8rem; 
}
.precondition {
  font-size: var(--fs-label); font-weight: 700; color: var(--ink-muted);
  margin: 0 0 0.75rem; padding: 0.55rem 0.7rem;
  border-radius: var(--r-md); background: var(--paper);
  border: 1px solid var(--line);
}
.coverage-strip, .progress-header {
  font-size: var(--fs-body); font-weight: 700; margin: 0 0 0.75rem;
  padding: 0.55rem 0.7rem; border-radius: var(--r-md);
  background: var(--paper); border: 1px solid var(--line);
}
.progress-status-row {
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
}
.progress-status-row .btn-stamp { flex: none; }
.progress-status { font-weight: 800; 
}
.progress-summary { font-size: var(--fs-label); color: var(--ink-muted); margin-top: 0.3rem; 
}
.progress-header.is-failed .progress-summary { color: inherit; 
}
.progress-bar {
  display: flex; height: 0.6rem; margin-top: 0.45rem; overflow: hidden;
  border-radius: var(--r-full); background: var(--line); border: 1px solid var(--line-strong);
}
.progress-bar[hidden] { display: none; 
}
.progress-seg { display: block; height: 100%; transition: width 0.3s ease; 
}
.progress-seg.is-done { background: #16a34a; 
}
.progress-seg.is-review { background: #2563eb; 
}
.progress-seg.is-failed { background: #dc2626; 
}
.progress-seg.is-running { background: #f59e0b; 
}
.progress-seg.is-waiting { background: var(--line-strong);
}
.progress-seg.is-stopped { background: var(--ink-muted); 
}
.batch-table-wrap { overflow-x: auto; 
}
/* Table, header and cell rule base: .call-log-table in generator.css. */
.batch-table th, .batch-table td { vertical-align: top; padding: 0.45rem 0.4rem; 
}
.batch-table textarea, .batch-table input[type="number"] {
  width: 100%; box-sizing: border-box; font: inherit; font-size: var(--fs-label);
  padding: 0.3rem 0.4rem; border: 1px solid var(--line-strong);
  border-radius: var(--r-sm); background: var(--paper);
}
.batch-table .warn { color: #92400e; font-size: var(--fs-caption); 
}
.col-dist { min-width: 12rem; 
}
/* The instruction is the editable field, so it takes the width; the
   rationale is read once and can run longer and narrower. */
.col-instr { min-width: 15rem; width: 30%; 
}
.col-why { min-width: 14rem; width: 22%; 
}
.row-warns { margin: 0.4rem 0 0; padding-left: 1rem; color: #92400e; font-size: var(--fs-caption); 
}
.col-run { min-width: 9rem; 
}
/* Run cell: one track of six stage segments in pipeline order (same colours
   as the progress bar above), then the current step, then the links. */
.run-cell { display: grid; gap: 0.4rem; 
}
.stage-track { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; 
}
.stage-seg {
  height: 0.6rem; border-radius: var(--r-full);
  background: var(--line); border: 1px solid var(--line-strong);
}
.stage-seg.is-done { background: #16a34a; border-color: #15803d; 
}
.stage-seg.is-running { background: #f59e0b; border-color: #b45309; 
}
.stage-seg.is-await { background: #2563eb; border-color: #1d4ed8; 
}
.stage-seg.is-stale { background: #fecaca; border-color: #dc2626; 
}
.stage-seg.is-failed { background: #dc2626; border-color: #991b1b; 
}
.stage-seg.is-current { outline: 2px solid var(--ink); outline-offset: 1px; 
}
.run-cell-label { font-weight: 800; 
}
.run-cell-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; 
}
.batch-table .dist-item { gap: 0.4rem; padding: 0.25rem 0.35rem; margin: 0.15rem 0; 
}
.dist-name { flex: 1; font-size: var(--fs-label); font-weight: 700; 
}
.dist-stepper { display: flex; align-items: center; gap: 0.15rem; flex: none; 
}
.dist-step {
  width: 1.35rem; height: 1.5rem; padding: 0; flex: none;
  border: 1px solid var(--line-strong); border-radius: var(--r-sm);
  background: var(--card); color: var(--ink); font: inherit; font-size: var(--fs-body);
  font-weight: 800; line-height: 1; cursor: pointer;
}
.dist-step[disabled] { opacity: 0.35; cursor: not-allowed; 
}
/* Narrow, spinner-less: the digit itself has to stay readable in the cell. */
.batch-table input.dist-edit {
  width: 2.1rem; flex: none; text-align: center; padding: 0.3rem 0.15rem;
  font-weight: 800; -moz-appearance: textfield;
}
.batch-table input.dist-edit::-webkit-outer-spin-button,
.batch-table input.dist-edit::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; 
}
.batch-table textarea.instr-edit {
  min-height: 4.5rem; resize: vertical; overflow: hidden;
}
.launch-overlay[hidden] { display: none; 
}
.launch-card {
  width: min(28rem, 100%);
  padding: 1.25rem 1.35rem;
}
.launch-card h2 {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: var(--fs-title);
}
.launch-card .estimate-price {
  font-size: var(--fs-title); font-weight: 800; margin: 0.5rem 0;
}
.launch-card .estimate-caveat {
  font-size: var(--fs-label); font-weight: 600; color: var(--ink-muted); margin: 0.5rem 0 1rem;
}
.launch-card .actions { justify-content: flex-end; 
}
