/* ta-print-parse-v1.2.0.css
   v1.2.0 — ta-print-issues v3.6.0: the modal ends at extract, so the
   review-table, found-panel, ads-section, chip and page-link styles
   have MOVED to ta-print-review-v1.0.0.css with the surface they
   dress. What stays is the upload modal (pick / read / fail / stitch
   / extract / finish), plus two new pieces:
     · the "Reviews in progress" strip on the issue list
     · the draft-hit banner buttons in the pick step
   v1.1.2 — page links and View pages (moved out in v1.2.0).
   v1.1.1 — ads sections (moved out in v1.2.0).
   v1.1.0 — found panels, four type chips (moved out in v1.2.0).
   v1.0.2 — Customer column; modal widened to 1280px (narrowed back
   in v1.2.0: without the review table, 720 is room enough).
   v1.0.1 — .tpi-pz-bar--busy: indeterminate moving stripe for the
   steps with no measurable progress.
   INBXIFY T-A — print issue upload modal + review-drafts strip
   Companion to ta-print-issues-v3.6.0.js. Load AFTER ix-modals,
   ix-form-controls and ix-buttons: this file only lays out the
   surface. Every control is an ix-* primitive and keeps its own
   styling. */

/* Without the review table the default ix-modal width is enough;
   a little extra keeps the failed-pages list comfortable. */
.ix-modal.tpi-pz-modal {
  max-width: 760px !important;
  max-height: calc(100vh - 48px) !important;
}

.tpi-pz-modal .ix-modal-footer { gap: 12px !important; }
.tpi-pz-modal .ix-modal-footer-right { display: flex !important; align-items: center !important; gap: 14px !important; flex-wrap: wrap; justify-content: flex-end; }

.tpi-pz-lab {
  display: block;
  margin: 12px 0 4px;
  font-family: var(--ix-font-body, 'DM Sans', system-ui, sans-serif);
  font-size: 11.5px;
  color: var(--ix-text-mid, #5a6478);
}
.tpi-pz-lab:first-child { margin-top: 0; }

/* A field plus its undo link, on one line. */
.tpi-pz-f { display: flex; align-items: center; gap: 6px; min-width: 0; }
.tpi-pz-f > .ix-picker-input { flex: 1 1 auto; min-width: 0; }
.tpi-pz-f > .ix-revert[hidden] { display: none !important; }

.tpi-pz-file { font-size: 13px; }

.tpi-pz-hint {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--ix-text-mid, #5a6478);
}

.tpi-pz-warn { margin-top: 12px; }

/* v1.2.0 — every banner in this modal is prose (plus, for the
   draft hit, a button row beneath it), so they flow as blocks. */
.tpi-pz-modal .ix-modal-banner { display: block; }

/* The two choices inside the draft-hit banner. */
.tpi-pz-dr-btns {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
}
.tpi-pz-dr-btns .ix-revert { white-space: nowrap; }

.tpi-pz-fails { margin: 10px 0 0; padding-left: 20px; font-size: 12.5px; }
.tpi-pz-fails li { margin: 2px 0; }

/* Progress */
.tpi-pz-prog { display: flex; align-items: center; gap: 12px; }
.tpi-pz-bar {
  flex: 1 1 auto;
  height: 8px;
  border-radius: 4px;
  background: var(--ix-border-soft, #eee9dc);
  overflow: hidden;
}
.tpi-pz-bar i {
  display: block;
  height: 100%;
  width: 0;
  background: var(--ix-teal, #1A3A3A);
  transition: width 0.25s ease;
}
.tpi-pz-prog-t { font-size: 12px; white-space: nowrap; color: var(--ix-text-dark, #1e2a3a); }

/* v1.0.1 — indeterminate bar. A short block slides across on a
   loop, so a step with no countable progress still visibly moves. */
.tpi-pz-bar--busy { position: relative; }
.tpi-pz-bar--busy i {
  position: absolute;
  top: 0; left: 0;
  width: 30% !important;
  animation: tpi-pz-slide 1.4s ease-in-out infinite;
}
@keyframes tpi-pz-slide {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(340%); }
}
@media (prefers-reduced-motion: reduce) {
  .tpi-pz-bar--busy i { animation-duration: 4s; }
}

/* ── v1.2.0 · Reviews in progress, above the issue calendar ──── */

.tpi-dr {
  margin: 0 0 16px;
  padding: 12px 16px;
  border: 1px solid var(--ix-gold, #C4A35A);
  border-radius: 8px;
  background: var(--ix-gold-glow, rgba(196, 163, 90, 0.12));
}
.tpi-dr-h {
  display: block;
  margin-bottom: 8px;
  font-family: var(--ix-font-mono, 'DM Mono', ui-monospace, monospace);
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ix-gold-ink, #8A6E2E);
}
.tpi-dr-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
}
.tpi-dr-row + .tpi-dr-row { border-top: 1px solid var(--ix-gold-shadow, rgba(196, 163, 90, 0.20)); }
.tpi-dr-mn {
  font-size: 14px;
  font-weight: 600;
  color: var(--ix-text-dark, #1e2a3a);
  white-space: nowrap;
}
.tpi-dr-meta {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  color: var(--ix-text-mid, #5a6478);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tpi-dr-act { flex: none; }
.tpi-dr-why { font-size: 12px; color: var(--ix-text-mid, #5a6478); }
