/* Payment retry simulator. Loaded after guides.css; every rule is scoped to
   .retry-simulator so existing guides are unaffected. No animation. */
.retry-simulator { --ok:#9fe0a8; --warn:#ffb86b; --pending:#bdb7ed; --unknown:#d8d8c8; }
.retry-simulator .sim-intro { max-width:860px; padding-block:44px 30px; }
.retry-simulator .sim-boundary { margin:0 0 18px; padding:16px 20px; border-left:3px solid var(--acid); background:var(--panel); color:var(--muted); font-size:14px; line-height:1.75; }
.retry-simulator .sim-boundary strong { color:var(--ink); }
.retry-simulator .sim-tool { border-block:1px solid var(--line); padding-block:30px 34px; }
.retry-simulator .sim-heading { font-size:29px; font-weight:600; letter-spacing:-.03em; margin:0 0 20px; }
.retry-simulator .sim-fallback,.retry-simulator .sim-error { padding:20px 22px; background:var(--panel); border:1px solid var(--line); color:var(--muted); font-size:15px; line-height:1.75; }
.retry-simulator .sim-fallback p,.retry-simulator .sim-error p { margin:0; }
.retry-simulator .sim-error { border-color:var(--warn); }
.retry-simulator .sim-error p + p { margin-top:12px; }
.retry-simulator .sim-fallback strong,.retry-simulator .sim-error strong { color:var(--ink); }
.retry-simulator .sim-fallback a,.retry-simulator .sim-error a { color:var(--acid); text-underline-offset:4px; }

.retry-simulator .sim-picker { display:grid; grid-template-columns:minmax(0,340px) minmax(0,1fr); gap:24px; align-items:end; }
.retry-simulator .sim-field label,.retry-simulator .sim-label,.retry-simulator .sim-counters dt,.retry-simulator .sim-share-fallback label { display:block; font:11px/1.7 var(--mono); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.retry-simulator .sim-select { width:100%; min-height:48px; padding:10px 12px; background:var(--panel); color:var(--ink); border:1px solid #626c58; border-radius:0; font:16px/1.4 Arial,Helvetica,sans-serif; }
.retry-simulator .sim-goal { margin:0; color:var(--ink); font-size:16px; line-height:1.6; }
.retry-simulator .sim-notice { margin:18px 0 0; padding:12px 16px; border:1px solid var(--warn); color:var(--ink); font-size:14px; line-height:1.6; }
.retry-simulator .sim-notice::before { content:"Note: "; font-weight:700; }

.retry-simulator .sim-controls,.retry-simulator .sim-share { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:22px; }
.retry-simulator .sim-button { min-height:44px; padding:10px 18px; background:transparent; color:var(--ink); border:1px solid #626c58; border-radius:0; font:700 14px/1.3 Arial,Helvetica,sans-serif; cursor:pointer; }
.retry-simulator .sim-button:hover:not(:disabled) { border-color:var(--acid); color:var(--acid); }
.retry-simulator .sim-primary { background:var(--acid); border-color:var(--acid); color:var(--bg); }
.retry-simulator .sim-primary:hover:not(:disabled) { background:#e9ffa6; color:var(--bg); }
.retry-simulator .sim-button:disabled { opacity:.45; cursor:not-allowed; }
.retry-simulator .sim-compare { border-style:dashed; }
.retry-simulator .sim-button:focus-visible,.retry-simulator .sim-select:focus-visible,.retry-simulator .sim-share-fallback input:focus-visible,.retry-simulator summary:focus-visible,.retry-simulator .table-wrap:focus-visible { outline:3px solid var(--acid); outline-offset:3px; }
.retry-simulator .sim-progress { margin:16px 0 0; font:12px/1.8 var(--mono); color:var(--ink); }
.retry-simulator .sim-next-label { color:var(--muted); }
.retry-simulator .sim-status { min-height:1.8em; margin:4px 0 0; font:12px/1.8 var(--mono); color:var(--muted); }

.retry-simulator .sim-counters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:22px 0 0; }
.retry-simulator .sim-counters > div { padding:14px 16px; background:var(--panel); border:1px solid var(--line); }
.retry-simulator .sim-counters dt { margin:0; }
.retry-simulator .sim-counters dd { margin:4px 0 0; font-size:28px; font-weight:600; letter-spacing:-.02em; overflow-wrap:anywhere; }

.retry-simulator .sim-panels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:14px; }
.retry-simulator .sim-panel { min-width:0; padding:18px; background:var(--panel); border:1px solid var(--line); }
.retry-simulator .sim-provider { border-top:3px solid var(--purple); }
.retry-simulator .sim-application { border-top:3px solid var(--acid); }
.retry-simulator .sim-panel h3,.retry-simulator .sim-timeline h3 { margin:0; font-size:18px; line-height:1.4; }
.retry-simulator .sim-tag { display:inline-block; margin-left:6px; padding:1px 7px; border:1px solid var(--purple); color:var(--purple); font:10px/1.8 var(--mono); text-transform:uppercase; vertical-align:middle; }
.retry-simulator .sim-panel-note { margin:6px 0 14px; color:var(--muted); font-size:12px; line-height:1.6; }
.retry-simulator .sim-group { margin:0 0 14px; }
.retry-simulator .sim-group:last-child { margin-bottom:0; }
.retry-simulator .sim-group h4 { margin:0 0 6px; font:11px/1.7 var(--mono); letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.retry-simulator .sim-records { list-style:none; margin:0; padding:0; }
.retry-simulator .sim-records li { padding:7px 0; border-top:1px solid var(--line); font-size:13px; line-height:1.6; color:var(--muted); overflow-wrap:anywhere; }
.retry-simulator .sim-records li:first-child { border-top:0; padding-top:0; }
.retry-simulator .sim-id { font:600 13px/1.6 var(--mono); color:var(--ink); }
.retry-simulator .sim-state { display:inline-block; padding:0 6px; margin-inline:4px; border:1px solid currentColor; font:11px/1.7 var(--mono); }
.retry-simulator .sim-state[data-state="succeeded"],.retry-simulator .sim-state[data-state="located"] { color:var(--ok); }
.retry-simulator .sim-state[data-state="processing"] { color:var(--pending); }
.retry-simulator .sim-state[data-state="unresolved"],.retry-simulator .sim-state[data-state="review"] { color:var(--warn); }
.retry-simulator .sim-none { margin:0; color:var(--muted); font-size:13px; }
.retry-simulator .sim-message { margin:0; padding:14px 16px; border-left:4px solid var(--unknown); font-size:18px; line-height:1.5; color:var(--ink); }
.retry-simulator .sim-message[data-tone="ok"] { border-color:var(--ok); }
.retry-simulator .sim-message[data-tone="pending"] { border-color:var(--pending); }
.retry-simulator .sim-message[data-tone="warn"] { border-color:var(--warn); }
.retry-simulator .sim-reason { margin:12px 0 0; color:var(--muted); font-size:12px; }
.retry-simulator .sim-reason code,.retry-simulator .sim-trace code { font:12px/1.6 var(--mono); overflow-wrap:anywhere; }

.retry-simulator .sim-timeline { margin-top:14px; padding:18px; border:1px solid var(--line); }
.retry-simulator .sim-empty { margin:0; color:var(--muted); font-size:14px; }
.retry-simulator .sim-trace { list-style:none; margin:0; padding:0; }
.retry-simulator .sim-trace li { display:grid; grid-template-columns:72px 104px minmax(0,1fr); gap:6px 14px; padding:11px 0; border-top:1px solid var(--line); font-size:13px; line-height:1.6; }
.retry-simulator .sim-trace li:first-child { border-top:0; }
.retry-simulator .sim-trace .sim-step { font:12px/1.6 var(--mono); color:var(--muted); }
.retry-simulator .sim-trace .is-latest .sim-step { color:var(--acid); }
.retry-simulator .sim-latest { display:block; font:10px/1.6 var(--mono); text-transform:uppercase; color:var(--acid); }
.retry-simulator .sim-actor { font:12px/1.6 var(--mono); color:var(--ink); }
.retry-simulator .sim-actor[data-actor="provider"] { color:var(--purple); }
.retry-simulator .sim-actor[data-actor="network"] { color:var(--warn); }
.retry-simulator .sim-entry { min-width:0; color:var(--muted); }
.retry-simulator .sim-entry strong { color:var(--ink); }
.retry-simulator .sim-refs { display:block; margin-top:3px; color:var(--muted); }
.retry-simulator .sim-note { display:block; margin-top:3px; }

.retry-simulator .sim-download-note { font:12px/1.6 var(--mono); color:var(--muted); }
.retry-simulator .sim-share-fallback { margin-top:14px; }
.retry-simulator .sim-share-fallback label { text-transform:none; letter-spacing:0; font-size:13px; color:var(--ink); }
.retry-simulator .sim-share-fallback input { width:100%; min-height:44px; padding:8px 10px; background:var(--bg); color:var(--ink); border:1px solid #626c58; font:13px/1.4 var(--mono); }
.retry-simulator .sim-print-meta { display:none; }

.retry-simulator .sim-reading { padding-top:8px; }
.retry-simulator .sim-assumptions summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:var(--ink); font-weight:700; }
.retry-simulator .sim-assumptions ol { padding-left:22px; }
.retry-simulator .sim-examples th[scope="row"] { width:20%; }
.retry-simulator .sim-examples td:nth-of-type(n+2):nth-of-type(-n+5) { white-space:nowrap; }

@media(max-width:950px) {
  .retry-simulator .sim-panels { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  .retry-simulator .sim-intro { padding-block:32px 22px; }
  .retry-simulator .sim-picker { grid-template-columns:1fr; gap:14px; }
  .retry-simulator .sim-counters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .retry-simulator .sim-counters dd { font-size:24px; }
  .retry-simulator .sim-trace li { grid-template-columns:1fr; gap:2px; }
  .retry-simulator .sim-trace .sim-step,.retry-simulator .sim-latest { display:inline; margin-right:10px; }
  .retry-simulator .sim-examples,.retry-simulator .sim-examples tbody,.retry-simulator .sim-examples tr,.retry-simulator .sim-examples th,.retry-simulator .sim-examples td { display:block; width:100%; }
  .retry-simulator .sim-examples thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .retry-simulator .sim-examples th[scope="row"] { width:100%; padding:18px 0 6px; }
  .retry-simulator .sim-examples td { border:0; padding:0 0 8px; white-space:normal; }
  .retry-simulator .sim-examples td:nth-of-type(n+2):nth-of-type(-n+5) { white-space:normal; }
  .retry-simulator .sim-examples td::before { display:inline; font-weight:700; color:var(--ink); }
  .retry-simulator .sim-examples td:nth-of-type(1)::before { content:"Steps: "; }
  .retry-simulator .sim-examples td:nth-of-type(2)::before { content:"Create requests: "; }
  .retry-simulator .sim-examples td:nth-of-type(3)::before { content:"Provider records: "; }
  .retry-simulator .sim-examples td:nth-of-type(4)::before { content:"Completed total: "; }
  .retry-simulator .sim-examples td:nth-of-type(5)::before { content:"Fulfilments: "; }
  .retry-simulator .sim-examples td:nth-of-type(6)::before { content:"Lesson: "; }
}
@media(max-width:420px) {
  .retry-simulator .sim-counters { gap:8px; }
  .retry-simulator .sim-counters > div { padding:12px; }
  .retry-simulator .sim-counters dd { font-size:21px; }
  .retry-simulator .sim-panel,.retry-simulator .sim-timeline { padding:14px; }
  .retry-simulator .sim-button { flex:1 1 auto; }
}
@media print {
  .retry-simulator { --ok:#111; --warn:#111; --pending:#111; --unknown:#111; }
  .retry-simulator .sim-controls,.retry-simulator .sim-share,.retry-simulator .sim-share-fallback,.retry-simulator .sim-field,.retry-simulator .sim-status,.retry-simulator .sim-error button { display:none !important; }
  .retry-simulator .sim-print-meta { display:block; margin:6px 0 0; font:9pt/1.5 var(--mono); }
  .retry-simulator .sim-picker { display:block; }
  .retry-simulator .sim-boundary,.retry-simulator .sim-fallback,.retry-simulator .sim-counters > div,.retry-simulator .sim-panel,.retry-simulator .sim-timeline { background:#fff; color:#111; border-color:#999; }
  .retry-simulator .sim-panels { grid-template-columns:1fr; }
  .retry-simulator .sim-counters { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .retry-simulator .sim-counters dd { font-size:16pt; }
  .retry-simulator .sim-trace li { grid-template-columns:60px 90px minmax(0,1fr); break-inside:avoid; }
  .retry-simulator .sim-trace li,.retry-simulator .sim-records li { border-color:#bbb; }
  .retry-simulator .sim-tag,.retry-simulator .sim-state,.retry-simulator .sim-actor,.retry-simulator .sim-latest { color:#111 !important; border-color:#111; }
  .retry-simulator .sim-panel,.retry-simulator .sim-timeline { break-inside:avoid; }
}
