/* IESDesk product parts: progress, stats, the History table and the status
   tags. The kit top menu frames every page (MEMORY 2026-10-03 one-top-bar).
   White paper by default. Dark is opt-in via html[data-theme="dark"].
   Track fills use --radius-sm (4px). The kit does not allow pill radii. */

.pq-num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" on; }

.pq-progress {
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
}
.pq-progress__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--space-sm);
}
.pq-progress__title { margin: 0; }
.pq-progress__pct { font-family: var(--mono); font-size: 13px; color: var(--ink-soft); }
.pq-progress__track {
  height: 6px;
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--ink) 9%, transparent);
  overflow: hidden;
}
.pq-progress__fill { height: 100%; background: var(--ink); border-radius: var(--radius-sm); }
.pq-progress__note { margin: var(--space-sm) 0 0; font-size: 13px; color: var(--ink-faint); }
/* A second section in one panel (parse, then export) starts after a gap. */
.pq-progress__note + .pq-progress__head { margin-top: var(--space-xl); }

/* Turbo Drive injects a default blue bar (#0076ff). Use brand ink instead. */
.turbo-progress-bar {
  background: var(--ink);
}

/* Card or panel title: kill kit prose margins so the heading sits at the top. */
.pq-card__title { margin: 0; }

.pq-stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}
.pq-stat {
  flex: 1 1 200px;
  box-sizing: border-box;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  padding: var(--space-md) var(--space-xl) var(--space-xl);
}
.pq-stat--featured { background: var(--surface); border-color: transparent; }
/* The dark surface is too light for the soft ink: the tile keeps the paper
   and takes the hairline. */
html[data-theme="dark"] .pq-stat--featured { background: var(--paper); border-color: var(--rule); }
.pq-stat__label { margin: 0 0 14px; }
.pq-stat__value {
  font-family: var(--display);
  font-size: 38px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.pq-stat__sub { margin-top: var(--space-xs); font-size: 13px; color: var(--ink-soft); }

.pq-table-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-xl);
}
.pq-table-title { margin: 0; }
.pq-table-tools { display: flex; align-items: center; gap: var(--space-md); }
.pq-filter {
  font-family: var(--display);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-faint);
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.pq-filter.is-active { color: var(--ink); }
.pq-filter:hover { color: var(--ink-soft); }
.pq-filter:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.pq-report {
  color: var(--ink-soft);
  font-weight: 500;
}

.pq-table {
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.pq-tr {
  display: grid;
  grid-template-columns: minmax(0, 2.4fr) 0.7fr 1fr 1.2fr 0.7fr 1.1fr;
  align-items: center;
  gap: var(--space-md);
  padding: 13px var(--space-xl);
  border-bottom: 1px solid var(--rule);
}
.pq-tr:last-child { border-bottom: 0; }
.pq-tr--head {
  font-family: var(--display);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-soft);
  background: var(--surface);
}
html[data-theme="dark"] .pq-tr--head { background: var(--paper); }
.pq-tr--head .pq-r { justify-self: end; }
.pq-r { text-align: right; }
.pq-tr:not(.pq-tr--head):hover { background: color-mix(in srgb, var(--ink) 3%, transparent); }
.pq-file code,
html[data-theme="dark"] .pq-file code {
  font-family: var(--mono);
  font-size: 12.5px;
  color: var(--ink);
  background: none;
  padding: 0;
  border-radius: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}
.pq-fmt {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}
.pq-tr .pq-num { font-size: 13.5px; color: var(--ink); }
/* The retention note is its own line under the batch title. */
.pq-tr > :first-child .iesdesk-quiet { display: block; margin-top: var(--space-2xs); }

.pq-status {
  display: inline-flex;
  align-items: center;
  font-family: var(--display);
  font-size: 12.5px;
  font-weight: 600;
  padding: 0.45em 0.7em;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.pq-status--valid {
  color: var(--paper);
  background: var(--ink);
  border: 1px solid var(--ink);
}
.pq-status--flag { color: var(--ink-soft); border: 1px solid var(--rule); }
.pq-status--err { color: var(--ink); border: 1px solid color-mix(in srgb, var(--ink) 28%, transparent); }
.pq-status--skip { color: var(--ink-faint); }

/* The base .agustos-lockup rules and the .iesdesk-brand rule live in
   iesdesk.css, which every layout loads. */

/* Breakpoints: 860px hides three columns of a job list, 640px stacks each row. */
@media (max-width: 859.98px) {
  .pq-tr { grid-template-columns: minmax(0, 2fr) 1fr 1.1fr; }
  .pq-tr > :nth-child(3), .pq-tr > :nth-child(4), .pq-tr > :nth-child(5) { display: none; }
}
/* Phone: each row of a job list or of Your files stacks. Title on its own line, state and actions below.
   The header row stays in the accessibility tree; only its pixels go. */
@media (max-width: 639.98px) {
  .pq-tr--head { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }
  .pq-tr { grid-template-columns: 1fr auto; row-gap: var(--space-xs); }
  .pq-tr > :first-child { grid-column: 1 / -1; }
}
/* Your files: five columns (Started, Tool, Files, State, Next step). It keeps
   every column down to 640px, then stacks like the other lists. The date and
   the file count stay on one line, so their columns never shrink below that
   line. The tool name wraps. A state of two parts ("Completed, 12 diagrams
   skipped") wraps only between its parts, and each part stays on one line. */
.iesdesk-files-table__nowrap { white-space: nowrap; }
.iesdesk-files-table .pq-tr { grid-template-columns: minmax(min-content, 1.6fr) minmax(0, 1fr) minmax(min-content, 0.6fr) minmax(min-content, 1.2fr) minmax(min-content, 1.6fr); }
@media (max-width: 859.98px) {
  .iesdesk-files-table .pq-tr { grid-template-columns: minmax(min-content, 1.4fr) minmax(0, 1fr) minmax(min-content, 0.6fr) minmax(min-content, 1fr) minmax(min-content, 1.4fr); }
  .iesdesk-files-table .pq-tr > :nth-child(n) { display: block; }
}
@media (max-width: 639.98px) {
  .iesdesk-files-table .pq-tr { grid-template-columns: 1fr auto; }
}
