/*
 * DarziOS PWA — SCR-MEAS-03 Measurement Version History & Comparison
 * styles (production, Doc 7 §5 Module 3).
 *
 * Owner rule (strict): every color, spacing value, radius, shadow and
 * duration in this file resolves to a custom property in
 * css/design-tokens.css. Zero raw color literals. Control patterns
 * (buttons, tags) come from css/controls.css; .app-bar and
 * .sample-chip live in css/app.css.
 */

/* ---------------------------------------------------------------- page */
.mhist {
  max-width: 1080px;
  margin: 0 auto;
  padding: var(--space-6);
  display: grid;
  gap: var(--space-4);
}

.mhist__toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.mhist__titles {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}
.mhist__title {
  margin: 0;
  font-size: var(--text-2xl);
  font-weight: var(--weight-semibold);
}
.mhist__ctx {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--chalk-muted);
  font-variant-numeric: tabular-nums;
}
.mhist__toolbar .sample-chip {
  margin-left: auto;
}

/* ------------------------------------------------------ version strip */
.mhist-versions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-3);
}
.mhist-ver {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto auto;
  align-items: center;
  column-gap: var(--space-3);
  row-gap: 2px;
  text-align: left;
  padding: var(--space-3) var(--space-4);
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  font-family: var(--font-ui);
  cursor: pointer;
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}
.mhist-ver:hover:not(:disabled) {
  border-color: var(--brand-brass);
}
.mhist-ver:disabled {
  cursor: default;
}
.mhist-ver--selected {
  border-color: var(--brand-brass);
  box-shadow:
    0 0 0 2px var(--brass-faint),
    var(--shadow-card);
}
.mhist-ver--current {
  border-color: var(--status-success);
  background: var(--success-faint);
}
.mhist-ver__v {
  grid-row: 1 / 3;
  font-size: var(--text-xl);
  font-weight: var(--weight-extrabold);
  font-variant-numeric: tabular-nums;
  color: var(--brand-brass-ink);
}
.mhist-ver__date {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  font-variant-numeric: tabular-nums;
}
.mhist-ver__reason {
  font-size: var(--text-xs);
  color: var(--chalk-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mhist-ver__by {
  grid-column: 1 / -1;
  font-size: var(--text-xs);
  color: var(--chalk-muted);
}
.mhist-ver__tag {
  grid-column: 1 / -1;
  justify-self: start;
}

/* ------------------------------------------------------------ compare card */
.mhist-card {
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-4);
  display: grid;
  gap: var(--space-3);
}
.mhist-card__head {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.mhist-card__title {
  margin: 0;
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
  font-variant-numeric: tabular-nums;
}
.mhist-card__meta {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--chalk-muted);
  background: var(--neutral-faint);
  padding: 2px var(--space-2);
  border-radius: var(--radius-full);
}

/* Comparison table (horizontal scroll on narrow phones — data stays
   legible, nothing wraps mid-figure). */
.mhist-tablewrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.mhist-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: var(--text-sm);
}
.mhist-table th {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  color: var(--chalk-muted);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.mhist-table td {
  padding: var(--space-3) var(--space-4);
  border-top: 1px dashed var(--border-subtle);
  font-variant-numeric: tabular-nums;
}
.mhist-table__attr {
  font-weight: var(--weight-medium);
}
.mhist-table__num {
  text-align: right;
  white-space: nowrap;
}
.mhist-table__num--cur {
  font-weight: var(--weight-semibold);
}
.mhist-row--changed td {
  background: var(--warning-faint);
}
.mhist-table__delta--warn {
  color: var(--status-warning);
  font-weight: var(--weight-bold);
}
.mhist-table__delta--new {
  color: var(--status-success);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  font-size: var(--text-xs);
  letter-spacing: 0.05em;
}
.mhist-table__delta--gone {
  color: var(--status-danger);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  font-size: var(--text-xs);
  letter-spacing: 0.05em;
}
.mhist-table__delta--zero {
  color: var(--chalk-muted);
}

/* ------------------------------------------------------------- actions */
.mhist-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.mhist-note {
  margin: 0;
  font-size: var(--text-xs);
  line-height: 1.55;
  color: var(--chalk-muted);
}

/* --------------------------------------------------------- responsive */
@media (max-width: 720px) {
  .mhist {
    padding: var(--space-4);
  }
  .mhist-ver {
    grid-template-columns: auto 1fr;
  }
}
