/* Écrans Invendus, Rapports et Tableau de bord.
 * Compléments locaux à la charte v1.1 : uniquement classes et tokens tx-*.
 */

.tx-scope .tx-ops-header {
  display: grid;
  gap: var(--tx-s1);
  margin-block-end: var(--tx-s5);
}

.tx-scope .tx-ops-header p,
.tx-scope .tx-section-copy,
.tx-scope .tx-kpi-grid p,
.tx-scope .tx-report-card p { margin: 0; }

.tx-scope .tx-ops-header p,
.tx-scope .tx-section-copy { max-width: 72ch; color: var(--tx-muted); }

.tx-scope .tx-ops-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 22rem) minmax(0, 1fr);
  gap: var(--tx-s5);
  align-items: start;
}

.tx-scope .tx-ops-main,
.tx-scope .tx-ops-aside,
.tx-scope .tx-panel-body,
.tx-scope .tx-report-grid { min-width: 0; }

.tx-scope .tx-ops-main,
.tx-scope .tx-ops-aside,
.tx-scope .tx-panel-body { display: grid; gap: var(--tx-s4); }

.tx-scope .tx-panel-heading { margin: 0; }

.tx-scope .tx-panel-body { padding: var(--tx-s4); }

.tx-scope .tx-panel-heading + .tx-panel-body {
  border-block-start: 1px solid var(--tx-border);
}

.tx-scope .tx-inline-form {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: var(--tx-s2);
}

.tx-scope .tx-inline-form .tx-field { flex: 1 1 14rem; }

.tx-scope .tx-ops-camera-button {
  width: 44px;
  min-width: 44px;
  padding: 0;
  display: inline-grid;
  place-items: center;
}

.tx-scope .tx-camera-dialog { width: min(36rem, calc(100% - (2 * var(--tx-s4)))); }

.tx-scope .tx-camera-preview {
  position: relative;
  overflow: hidden;
  margin-block: var(--tx-s4);
  aspect-ratio: 4 / 3;
  border: 1px solid var(--tx-border);
  border-radius: var(--tx-r-lg);
  background: var(--tx-text);
}

.tx-scope .tx-camera-preview video { width: 100%; height: 100%; object-fit: cover; }

.tx-scope .tx-camera-frame {
  position: absolute;
  inset: 22% 10%;
  border: 3px solid var(--tx-primary);
  border-radius: var(--tx-r-md);
  box-shadow: 0 0 0 999px var(--tx-overlay);
  pointer-events: none;
}

.tx-scope .tx-status {
  min-height: 1.4em;
  color: var(--tx-muted);
}

.tx-scope .tx-status[data-kind="success"] { color: var(--tx-ok); }
.tx-scope .tx-status[data-kind="error"] { color: var(--tx-danger); font-weight: 650; }

.tx-scope .tx-seller-list,
.tx-scope .tx-missing-list,
.tx-scope .tx-report-results { display: grid; gap: var(--tx-s2); }

.tx-scope .tx-seller-option,
.tx-scope .tx-report-option {
  width: 100%;
  min-height: 52px;
  display: grid;
  gap: var(--tx-s1);
  padding: var(--tx-s3);
  border: 1px solid var(--tx-border);
  border-radius: var(--tx-r-md);
  background: var(--tx-surface);
  color: var(--tx-text);
  font: inherit;
  text-align: start;
  cursor: pointer;
}

.tx-scope .tx-seller-option span,
.tx-scope .tx-report-option span { color: var(--tx-muted); font-size: var(--tx-fs-small); }

.tx-scope .tx-seller-option:hover,
.tx-scope .tx-report-option:hover { background: var(--tx-bg); }

.tx-scope .tx-seller-option[aria-current="true"] {
  border-color: var(--tx-primary);
  background: var(--tx-primary-soft);
  box-shadow: inset var(--tx-s1) 0 0 var(--tx-primary);
}

.tx-scope .tx-session-head,
.tx-scope .tx-item-row,
.tx-scope .tx-action-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tx-s3);
}

.tx-scope .tx-session-head { align-items: start; }

.tx-scope .tx-session-meta { margin: var(--tx-s1) 0 0; color: var(--tx-muted); }

.tx-scope .tx-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--tx-s3);
}

.tx-scope .tx-kpi-grid--unsold { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.tx-scope .tx-kpi[hidden] { display: none; }

.tx-scope .tx-progress-block { display: grid; gap: var(--tx-s2); }

.tx-scope .tx-progress-heading {
  display: flex;
  justify-content: space-between;
  gap: var(--tx-s3);
  color: var(--tx-muted);
}

.tx-scope .tx-progress-heading strong { color: var(--tx-text); }


.tx-scope .tx-item-row {
  min-height: 64px;
  padding: var(--tx-s3);
  border: 1px solid var(--tx-border);
  border-radius: var(--tx-r-md);
  background: var(--tx-surface);
}

.tx-scope .tx-item-main { display: grid; gap: var(--tx-s1); min-width: 0; }
.tx-scope .tx-item-main span { color: var(--tx-muted); }
.tx-scope .tx-item-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--tx-s2); }

.tx-scope .tx-empty { border: 1px dashed var(--tx-border-input); border-radius: var(--tx-r-md); }

.tx-scope .tx-validation-grid { display: grid; gap: var(--tx-s3); }

.tx-scope .tx-action-panel {
  align-items: flex-start;
  padding: var(--tx-s4);
  border: 1px solid var(--tx-border);
  border-radius: var(--tx-r-lg);
  background: var(--tx-bg);
}

.tx-scope .tx-action-panel > div { display: grid; gap: var(--tx-s1); }

.tx-scope .tx-report-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--tx-s4);
}

.tx-scope .tx-report-card {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: var(--tx-s3);
  padding: var(--tx-s4);
}

.tx-scope .tx-report-card .tx-badge { justify-self: start; }
.tx-scope .tx-report-card .tx-btn { justify-self: start; align-self: end; }

.tx-scope .tx-report-search { margin-block-start: var(--tx-s4); }

.tx-scope .tx-report-selection {
  display: grid;
  gap: var(--tx-s3);
  padding: var(--tx-s4);
  border-radius: var(--tx-r-md);
  background: var(--tx-primary-soft);
}

.tx-scope .tx-report-selection p { margin: 0; }

.tx-scope .tx-dashboard-layout { display: grid; gap: var(--tx-s5); }

.tx-scope .tx-dashboard-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  flex-wrap: wrap;
  gap: var(--tx-s3);
}

.tx-scope .tx-dashboard-context { margin: 0; color: var(--tx-muted); }

.tx-scope .tx-closure-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--tx-s4);
  align-items: center;
}

.tx-scope .tx-closure-actions__links { display: flex; flex-wrap: wrap; gap: var(--tx-s2); }

@media (max-width: 1099px) {
  .tx-scope .tx-ops-grid { grid-template-columns: minmax(0, 1fr); }
  .tx-scope .tx-ops-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tx-scope .tx-kpi-grid--unsold { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tx-scope .tx-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 699px) {
  .tx-scope .tx-ops-aside,
  .tx-scope .tx-kpi-grid,
  .tx-scope .tx-kpi-grid--unsold,
  .tx-scope .tx-report-grid { grid-template-columns: minmax(0, 1fr); }

  .tx-scope .tx-inline-form > *,
  .tx-scope .tx-inline-form .tx-field,
  .tx-scope .tx-report-card .tx-btn { width: 100%; }

  .tx-scope .tx-inline-form .tx-ops-camera-button { width: 44px; }

  .tx-scope .tx-item-row,
  .tx-scope .tx-action-panel,
  .tx-scope .tx-closure-actions { display: grid; grid-template-columns: minmax(0, 1fr); }

  .tx-scope .tx-item-actions,
  .tx-scope .tx-closure-actions__links { display: grid; justify-content: stretch; }

  .tx-scope .tx-item-actions .tx-btn,
  .tx-scope .tx-closure-actions__links .tx-btn { width: 100%; }

  .tx-scope .tx-dialog__f .tx-btn { flex: 1 1 100%; }
}
