/* =====================================================================
   Lumora — Publication integrity record (v5 provenance)
   templates/frontend/objects/lumora_provenance_record.tpl
   Logical properties only (RTL-safe). Status = icon + text, never colour
   alone. Colours meet WCAG 2.2 AA on white. Loaded on article pages only.
   ===================================================================== */
body.lumora .lz-prov {
  --lz-prov-ok: #15803D;      --lz-prov-ok-bg: #DCFCE7;
  --lz-prov-now: var(--journal-primary, var(--lz-brand, #2C5FA0));
  --lz-prov-back: #B45309;    --lz-prov-back-bg: #FEF3C7;
  --lz-prov-no: #B91C1C;      --lz-prov-no-bg: #FEE2E2;
  --lz-prov-wait: #64748B;    --lz-prov-wait-bg: #F1F5F9;
  --lz-prov-warn: #C2410C;    --lz-prov-warn-bg: #FFEDD5;
  --lz-prov-line: var(--journal-border, var(--lz-slate-200, #E2E8F0));
}
body.lumora .lz-prov-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 18px; margin: 0 0 12px; }
body.lumora .lz-prov-head .lz-review-title { margin: 0; }
body.lumora .lz-prov-status { margin: 0; font-size: .9rem; color: var(--lz-slate-600); }
body.lumora .lz-prov-status strong { color: var(--lz-ink); }
body.lumora .lz-prov-subtitle {
  margin: 20px 0 10px; font-size: .95rem; font-weight: 800; color: var(--lz-ink);
}
body.lumora .lz-prov-alert {
  display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 10px 14px; border-radius: 8px;
  border: 1px solid #FDBA74; border-inline-start: 4px solid var(--lz-prov-warn); background: #FFF7ED; color: #7C2D12;
  font-size: .9rem; line-height: 1.55;
}
body.lumora .lz-prov-alert-icon { flex: none; margin-top: 1px; color: var(--lz-prov-warn); }

/* ---------- Summary card ---------- */
body.lumora .lz-prov-summary {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin: 0;
}
body.lumora .lz-prov-summary-item {
  padding: 10px 12px; border: 1px solid var(--lz-prov-line); border-radius: 8px; background: var(--lz-slate-50, #F8FAFC);
}
body.lumora .lz-prov-summary-item dt {
  font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--lz-slate-600);
}
body[dir="rtl"].lumora .lz-prov-summary-item dt,
html[dir="rtl"] body.lumora .lz-prov-summary-item dt { letter-spacing: 0; text-transform: none; }
body.lumora .lz-prov-summary-item dd { margin: 4px 0 0; font-size: .95rem; font-weight: 600; color: var(--lz-ink); font-variant-numeric: tabular-nums; }
body.lumora .lz-prov-summary-detail { display: block; margin-top: 2px; font-size: .82rem; font-weight: 500; color: var(--lz-slate-600); }
body.lumora .lz-prov-badge {
  display: inline-flex; gap: 8px; align-items: center; margin: 14px 0 0; padding: 6px 12px; border-radius: 999px;
  border: 1px solid #BBF7D0; background: #F0FDF4; color: #14532D; font-size: .86rem; font-weight: 600;
}

/* ---------- Stepper (horizontal on wide screens) ---------- */
body.lumora .lz-prov-stepper-wrap { overflow-x: auto; padding: 4px 2px 8px; border-radius: 8px; }
body.lumora .lz-prov-stepper-wrap:focus-visible { outline: 3px solid var(--lz-prov-now); outline-offset: 2px; }
body.lumora .lz-prov-stepper {
  list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(148px, 1fr);
}
body.lumora .lz-prov-step { position: relative; display: flex; flex-direction: column; gap: 8px; padding-inline-end: 14px; min-width: 0; }
body.lumora .lz-prov-step::before {
  content: ''; position: absolute; top: 13px; inset-inline-start: 30px; inset-inline-end: 0; height: 2px; background: var(--lz-prov-line);
}
body.lumora .lz-prov-step:last-child::before { display: none; }
body.lumora .lz-prov-step.is-completed::before { background: var(--lz-prov-ok); }
body.lumora .lz-prov-step-icon {
  position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 28px; height: 28px; border-radius: 50%; border: 2px solid currentColor; background: #fff;
}
body.lumora .lz-prov-step.is-completed .lz-prov-step-icon { color: var(--lz-prov-ok); background: var(--lz-prov-ok-bg); }
body.lumora .lz-prov-step.is-current .lz-prov-step-icon { color: #fff; background: var(--lz-prov-now); border-color: var(--lz-prov-now); box-shadow: 0 0 0 4px var(--lz-brand-soft, #E9F1FA); }
body.lumora .lz-prov-step.is-returned .lz-prov-step-icon { color: var(--lz-prov-back); background: var(--lz-prov-back-bg); }
body.lumora .lz-prov-step.is-rejected .lz-prov-step-icon { color: var(--lz-prov-no); background: var(--lz-prov-no-bg); }
body.lumora .lz-prov-step.is-pending .lz-prov-step-icon { color: var(--lz-prov-wait); border-style: dashed; }
body.lumora .lz-prov-step.is-not_applicable .lz-prov-step-icon { color: var(--lz-prov-wait); background: var(--lz-prov-wait-bg); }
body.lumora .lz-prov-step.is-warning .lz-prov-step-icon { color: var(--lz-prov-warn); background: var(--lz-prov-warn-bg); }
body.lumora[dir="rtl"] .lz-prov-step.is-returned .lz-prov-step-icon svg,
html[dir="rtl"] body.lumora .lz-prov-step.is-returned .lz-prov-step-icon svg { transform: scaleX(-1); }
body.lumora .lz-prov-step-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body.lumora .lz-prov-step-label { font-size: .88rem; font-weight: 700; color: var(--lz-ink); line-height: 1.3; }
body.lumora .lz-prov-step-status { font-size: .76rem; font-weight: 700; color: var(--lz-slate-600); }
body.lumora .lz-prov-step.is-completed .lz-prov-step-status { color: var(--lz-prov-ok); }
body.lumora .lz-prov-step.is-current .lz-prov-step-status { color: var(--lz-prov-now); }
body.lumora .lz-prov-step.is-returned .lz-prov-step-status { color: var(--lz-prov-back); }
body.lumora .lz-prov-step.is-rejected .lz-prov-step-status { color: var(--lz-prov-no); }
body.lumora .lz-prov-step.is-warning .lz-prov-step-status { color: var(--lz-prov-warn); }
body.lumora .lz-prov-step-date { font-size: .78rem; color: var(--lz-slate-600); font-variant-numeric: tabular-nums; }
body.lumora .lz-prov-date-note { font-style: italic; }
body.lumora .lz-prov-round-aggregate { margin: .15rem 0 .35rem; font-size: .9rem; }
body.lumora .lz-prov-step-summary { font-size: .78rem; line-height: 1.45; color: var(--lz-slate-700); overflow-wrap: anywhere; }

/* ---------- People, rounds, notices ---------- */
body.lumora .lz-prov-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
body.lumora .lz-prov-person { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; font-size: .92rem; }
body.lumora .lz-prov-person-role { min-width: 13em; font-size: .78rem; font-weight: 800; color: var(--lz-slate-600); }
body.lumora .lz-prov-person-name { font-weight: 700; color: var(--lz-ink); }
body.lumora .lz-prov-person-aff { color: var(--lz-slate-600); }
body.lumora .lz-prov-orcid { font-size: .82rem; font-weight: 600; color: #3F6B00; text-underline-offset: 3px; }
body.lumora .lz-prov-rounds { display: grid; gap: 10px; }
body.lumora .lz-prov-round { padding: 10px 12px; border: 1px solid var(--lz-prov-line); border-radius: 8px; }
body.lumora .lz-prov-round-title { margin: 0 0 6px; font-weight: 700; font-size: .92rem; color: var(--lz-ink); }
body.lumora .lz-prov-round-list { margin: 0; padding-inline-start: 18px; display: grid; gap: 4px; font-size: .88rem; color: var(--lz-slate-700); }
body.lumora .lz-prov-round-list time { color: var(--lz-slate-600); font-size: .8rem; }
body.lumora .lz-prov-report-who { font-weight: 600; }
body.lumora .lz-prov-notices { margin: 0; padding-inline-start: 18px; display: grid; gap: 6px; font-size: .9rem; color: var(--lz-slate-700); }
body.lumora .lz-prov-notices a { font-weight: 700; text-underline-offset: 3px; }

/* ---------- Ledger (expandable) ---------- */
body.lumora .lz-prov-ledger { margin: 18px 0 0; border: 1px solid var(--lz-prov-line); border-radius: 8px; background: #fff; }
body.lumora .lz-prov-ledger > summary {
  cursor: pointer; padding: 10px 14px; font-weight: 700; font-size: .92rem; color: var(--journal-primary-dark, var(--lz-brand-dark, #1E4378));
  list-style-position: inside;
}
body.lumora .lz-prov-ledger > summary:focus-visible { outline: 3px solid var(--lz-prov-now); outline-offset: 2px; border-radius: 8px; }
body.lumora .lz-prov-count { font-weight: 600; color: var(--lz-slate-600); }
body.lumora .lz-prov-ledger-list { list-style: none; margin: 0; padding: 0 14px; }
body.lumora .lz-prov-entry { padding: 10px 0; border-top: 1px solid var(--lz-prov-line); break-inside: avoid; }
body.lumora .lz-prov-entry-when { margin: 0; font-size: .8rem; font-weight: 700; color: var(--lz-slate-600); font-variant-numeric: tabular-nums; }
body.lumora .lz-prov-entry-summary { margin: 2px 0 0; font-size: .92rem; color: var(--lz-ink); }
body.lumora .lz-prov-entry-meta { margin: 4px 0 0; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .78rem; color: var(--lz-slate-600); }
body.lumora .lz-prov-entry-meta span + span::before { content: '·'; margin-inline-end: 12px; color: var(--lz-slate-500); }
body.lumora .lz-prov-amended { font-weight: 700; color: var(--lz-prov-back); }
body.lumora .lz-prov-entry-hash, body.lumora .lz-prov-chain { margin: 4px 0 0; font-size: .76rem; color: var(--lz-slate-600); }
body.lumora .lz-prov-entry-hash code, body.lumora .lz-prov-chain code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .76rem; color: var(--lz-slate-700); unicode-bidi: isolate;
}
body.lumora .lz-prov-chain { padding: 10px 14px 12px; border-top: 1px solid var(--lz-prov-line); }

/* ---------- Narrow screens: vertical stepper ---------- */
@media (max-width: 720px) {
  body.lumora .lz-prov-stepper { grid-auto-flow: row; grid-auto-columns: auto; gap: 0; }
  body.lumora .lz-prov-step { flex-direction: row; gap: 12px; padding: 0 0 14px; }
  body.lumora .lz-prov-step::before { top: 30px; bottom: 0; inset-inline-start: 13px; inset-inline-end: auto; width: 2px; height: auto; }
  body.lumora .lz-prov-person-role { min-width: 100%; }
}

/* ---------- Forced colours (Windows high contrast) ---------- */
@media (forced-colors: active) {
  body.lumora .lz-prov-step-icon { forced-color-adjust: auto; border-color: CanvasText; }
  body.lumora .lz-prov-step::before { background: CanvasText; }
}

/* ---------- Print: the complete record, vertical, ledger open ---------- */
@media print {
  body.lumora .lz-prov { break-inside: auto; border-color: #999; }
  body.lumora .lz-prov-stepper-wrap { overflow: visible; }
  body.lumora .lz-prov-stepper { grid-auto-flow: row; grid-auto-columns: auto; }
  body.lumora .lz-prov-step { flex-direction: row; gap: 10px; padding: 0 0 8px; break-inside: avoid; }
  body.lumora .lz-prov-step::before { display: none; }
  body.lumora .lz-prov-step-icon { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.lumora .lz-prov-ledger > summary { list-style: none; }
  body.lumora .lz-prov-ledger:not([open]) > *:not(summary) { display: block; }
  body.lumora .lz-prov-notices a[href^="http"]::after { content: " (" attr(href) ")"; font-weight: 400; }
  body.lumora .lz-prov-summary { grid-template-columns: repeat(3, 1fr); }
}
