.interactive-proof{min-width:0;max-width:100%}
.interactive-proof .zh-receipt{padding:20px;overflow-wrap:anywhere}
.interactive-proof .zh-head{padding-bottom:13px}
.proof-title{font-size:20px;line-height:1.2;letter-spacing:-.035em;margin-top:10px;color:var(--zh-ink)}
.proof-record-count{font:11px/1.4 var(--zh-mono);color:var(--zh-muted);white-space:nowrap}
.interactive-proof .proof-row{display:block;min-height:0}
.proof-row-button{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:58px;padding:8px 0;border:0;background:none;color:var(--zh-ink);text-align:left;cursor:pointer}
.proof-call{display:flex;min-width:0;flex-direction:column;gap:7px}
.proof-call strong{font:600 14px/1.25 "DM Sans",sans-serif;color:var(--zh-ink);overflow-wrap:normal}
.proof-detail-hint{font:11px/1.2 var(--zh-mono);color:var(--zh-muted)}
.proof-row-button:hover,.proof-row-button[aria-expanded=true]{background:rgba(200,241,53,.035)}
.proof-row-button:focus-visible,.proof-verify:focus-visible,.proof-details a:focus-visible{outline:2px solid var(--zh-lime);outline-offset:3px}
.proof-details{padding:2px 0 16px 32px;font-size:12px;color:var(--zh-muted)}
.proof-details[hidden]{display:none!important}
.proof-details dl{margin:0;display:grid;gap:5px}
.proof-details dt{font-size:11px}.proof-details dd{margin:0 0 8px;color:var(--zh-ink);overflow-wrap:anywhere}
.proof-details pre{max-width:100%;margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 var(--zh-mono);max-height:180px;overflow:auto}
.proof-details a,.interactive-proof .zh-note a{display:inline-flex;min-height:48px;align-items:center;gap:6px;color:var(--zh-lime)!important}
.proof-verify{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;margin-top:14px;padding:12px 16px;background:var(--zh-lime);color:#070807;border:1px solid transparent;border-radius:7px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}
.proof-verify:disabled{cursor:wait;opacity:.65}
.interactive-proof .proof-status{margin:12px 0 0;font:12px/1.5 var(--zh-mono);min-height:36px;color:var(--zh-muted)}
.proof-matched .proof-status{color:var(--zh-lime)}.proof-mismatch .proof-status,.proof-unavailable .proof-status{color:var(--zh-ink)}
.interactive-proof .zh-check{border-color:var(--zh-muted);visibility:hidden;animation:none}
.interactive-proof .zh-check:after{border-color:var(--zh-muted)}
.proof-checking .zh-check,.proof-mismatch .zh-check,.proof-unavailable .zh-check,.proof-matched .zh-check{visibility:visible}
.proof-mismatch .zh-check,.proof-unavailable .zh-check{border-color:var(--zh-muted)}
.proof-mismatch .zh-check:after,.proof-unavailable .zh-check:after{content:"!";border:0;width:auto;height:auto;transform:none!important;opacity:1!important;color:var(--zh-ink)}
.interactive-proof .zh-note{font:12px/1.6 "DM Sans",sans-serif}
.proof-matched-seal{animation:zh-seal 220ms var(--zh-ease)!important}
.proof-arrived .proof-row{animation:ir-row-arrival 300ms ease-out backwards;animation-delay:calc(var(--i)*80ms)}
@keyframes ir-row-arrival{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.proof-arrived .proof-row{animation-name:ir-row-fade;transform:none}}
@keyframes ir-row-fade{from{opacity:0}to{opacity:1}}
@keyframes proof-scan{from{opacity:.25;transform:translateY(1px)}to{opacity:1;transform:none}}
@media(max-width:560px){.interactive-proof .zh-receipt{padding:18px 15px}.proof-row-button{grid-template-columns:18px minmax(0,1fr);gap:8px}.proof-call{flex-direction:row;justify-content:space-between;align-items:center}.proof-call strong{font-size:13px}.proof-details{padding-left:26px}.proof-title{font-size:18px}.proof-record-count{font-size:10px}}
.interactive-proof .zh-head{flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.proof-matched-seal{animation:none!important;transition:none!important}}
/* The snapshot must never hide receipt data behind a delayed entrance animation. */
.interactive-proof .zh-merkle{position:relative}
.interactive-proof .proof-seal{display:flex;flex-direction:column;align-items:center;gap:6px}
.proof-seal-label{font:700 9px/1 var(--zh-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--zh-muted)}
.proof-matched .proof-seal-label{color:var(--zh-lime)}
.interactive-proof .zh-check{border-color:var(--zh-muted);opacity:.8}
.interactive-proof .zh-check:after{border-color:var(--zh-muted)}
.proof-matched .zh-check,.proof-matched .zh-check:after{border-color:var(--zh-lime);opacity:1}
.proof-matched .zh-check{background:rgba(199,255,61,.12)}
/* Hover, focus and open feedback */
.interactive-proof .zh-receipt{transition:border-color 200ms,box-shadow 200ms}
.interactive-proof:hover .zh-receipt{border-color:rgba(200,241,53,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px rgba(200,241,53,.12)}
.interactive-proof .proof-row{position:relative;transition:transform 180ms var(--zh-ease)}
.interactive-proof .proof-row::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:2px;background:var(--zh-lime);border-radius:2px;opacity:0;transform:scaleY(.3);transition:opacity 160ms,transform 220ms var(--zh-ease)}
.interactive-proof .proof-row:hover::before,.interactive-proof .proof-row:focus-within::before,.interactive-proof .proof-row.is-open::before{opacity:1;transform:none}
.interactive-proof .proof-row:hover{transform:translateX(3px)}
.proof-row-button{transition:background 160ms}
.proof-details:not([hidden]){animation:ir-open 240ms var(--zh-ease)}
@keyframes ir-open{from{opacity:0;transform:translateY(-6px)}}
.proof-row.is-scanning::before{opacity:1;transform:none;animation:ir-blink 380ms linear infinite alternate}
.proof-row.row-ok .zh-row-no,.proof-row.row-ok .proof-detail-hint{color:var(--zh-lime)}
.proof-row.row-bad .zh-row-no,.proof-row.row-bad .proof-detail-hint{color:#ff8a6b}
.proof-row.is-scanning .proof-call strong{color:var(--zh-lime)}
@keyframes ir-blink{from{opacity:.3}to{opacity:1}}
.proof-verify{transition:transform 160ms var(--zh-ease),filter 160ms}
.proof-verify:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.07)}
@media(prefers-reduced-motion:reduce){.interactive-proof *,.interactive-proof *::before{animation:none!important;transition:none!important}}
