/* Lensdump checkout: the shared payment outcome dialog and payment
 * processing overlay, used on every page that takes a payment (see
 * checkout.js). Not scoped to #registration: /settings/membership uses it. */
      .ld-payment-outcome[hidden] { display:none !important; }
      .ld-payment-outcome { position:fixed;z-index:10030;inset:0;display:flex;align-items:center;justify-content:center;padding:24px 16px;overflow:auto;background:rgba(4,7,10,.86);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px); }
      .ld-payment-outcome__dialog { box-sizing:border-box;position:relative;width:min(100%,420px);margin:auto;padding:var(--ld-space-6);border:1px solid var(--ld-line);border-radius:var(--ld-radius-xl);background:var(--ld-surface-2);box-shadow:var(--ld-shadow-modal);color:var(--ld-text);text-align:center;outline:none; }
      .ld-payment-outcome__close { position:absolute;top:var(--ld-space-4);right:var(--ld-space-4);width:var(--ld-control-sm);height:var(--ld-control-sm);padding:0;display:grid;place-items:center;border:0;border-radius:var(--ld-radius-sm);background:transparent;color:var(--ld-text-muted);cursor:pointer; } /* the Modal recipe's ghost close (slice 4) */
      .ld-payment-outcome__close:hover { color:var(--ld-text);background:var(--ld-fill-hover); } .ld-payment-outcome__close:focus-visible { color:var(--ld-text);outline:2px solid var(--ld-green);outline-offset:2px; }
      .ld-payment-outcome__icon { min-height:64px;margin:2px auto 18px;display:grid;place-items:center; }
      .ld-payment-outcome__icon svg { display:block; }
      .ld-payment-outcome__icon svg[hidden] { display:none; }
      .ld-payment-outcome__eyebrow { margin-bottom:9px;font:600 10.5px ui-monospace,Menlo,monospace;color:#7f8994;letter-spacing:.14em; }
      .ld-payment-outcome__title { margin:0;font:var(--ld-type-title);color:var(--ld-text-strong); }
      .ld-payment-outcome__message { margin:11px 0 0;font:400 13px/1.65 -apple-system,sans-serif;color:#aeb6bf;text-wrap:pretty; }
      .ld-payment-outcome__detail { margin-top:18px;padding:13px 14px;border:1px solid var(--ld-line);border-radius:10px;background:var(--ld-fill-hover);font:400 11.5px/1.55 -apple-system,sans-serif;color:#8f98a2;text-align:left;overflow-wrap:anywhere; }
      .ld-payment-outcome__actions { margin-top:var(--ld-space-6);display:flex;gap:var(--ld-space-2); }
      .ld-payment-outcome__actions button { min-height:var(--ld-control-md);padding:0 var(--ld-space-4);border-radius:var(--ld-radius-md);font:600 13px/16px var(--font-sans);cursor:pointer; }
      .ld-payment-outcome__secondary { flex:0 0 auto;border:1px solid var(--ld-line-strong);background:var(--ld-surface-4);color:var(--ld-text); }
      .ld-payment-outcome__primary { flex:1;border:1px solid var(--ld-green);background:var(--ld-green);color:var(--ld-on-green); }
      .ld-payment-outcome__actions button:hover,.ld-payment-outcome__actions button:focus-visible { filter:brightness(1.06);outline:2px solid var(--ld-green-line);outline-offset:2px; }
      .ld-payment-outcome[data-outcome-state="pending"] .ld-payment-outcome__primary { border-color:var(--ld-warning);background:var(--ld-warning);color:#291b06; }
      .ld-payment-outcome[data-outcome-state="review"] .ld-payment-outcome__primary { border-color:var(--ld-danger);background:var(--ld-danger);color:var(--ld-text-strong); }
      @media (max-width:600px) {
        .ld-payment-outcome { align-items:flex-end;padding:0; }
        .ld-payment-outcome__dialog { width:100%;max-height:min(88vh,680px);margin:0;padding:28px 22px calc(22px + env(safe-area-inset-bottom));overflow:auto;border-width:1px 0 0;border-radius:20px 20px 0 0;text-align:left; }
        .ld-payment-outcome__icon { justify-items:start;margin-left:0; }
        .ld-payment-outcome__actions { flex-direction:column-reverse; }
        .ld-payment-outcome__actions button { width:100%; }
      }
      .ld-processing { position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(3,4,8,.78);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px); }
      .ld-processing[hidden] { display:none; }
      .ld-processing__card { box-sizing:border-box;width:420px;max-width:100%;padding:36px 34px 28px;border-radius:18px;background:var(--ld-surface-1);border:1px solid var(--ld-line);box-shadow:0 30px 70px rgba(0,0,0,.55);text-align:center; }
      .ld-processing__card:focus { outline:none; }
      .ld-processing__badge { position:relative;width:92px;height:92px;margin:0 auto 20px; }
      .ld-processing__badge svg { position:absolute;inset:0;width:100%;height:100%; }
      .ld-processing__ring { transform-origin:50% 50%;animation:ld-processing-spin 1.1s linear infinite; }
      .ld-processing__badge img { position:absolute;left:20px;top:20px;width:52px;height:52px; }
      .ld-processing__title { margin:0 0 8px;font:700 19px Archivo, "Archivo Fallback",-apple-system,sans-serif;color:var(--ld-text-strong); }
      .ld-processing__lede { margin:0 0 22px;font:400 13.5px/1.55 -apple-system,sans-serif;color:var(--ld-text-muted); }
      .ld-processing__steps { display:flex;flex-direction:column;gap:2px;margin:0 0 18px;padding:6px 14px;list-style:none;text-align:left;border:1px solid var(--ld-line);border-radius:12px; }
      .ld-processing__step { display:flex;align-items:center;gap:12px;padding:10px 0;font:500 13px -apple-system,sans-serif;color:var(--ld-text-dim); }
      .ld-processing__step-icon { flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center; }
      .ld-processing__dot { width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.18); }
      .ld-processing__spinner { width:18px;height:18px;border-radius:50%;box-sizing:border-box;border:2.2px solid rgba(var(--ld-processing-accent),.25);border-top-color:rgb(var(--ld-processing-accent));animation:ld-processing-spin .9s linear infinite; }
      .ld-processing__step[data-state="active"] { color:var(--ld-text-strong); }
      .ld-processing__step[data-state="done"] { color:var(--ld-text-secondary); }
      .ld-processing__bars,.ld-processing__active-label { display:none; }
      .ld-processing__bar { flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.12);transition:background .3s; }
      .ld-processing__bar[data-state="active"] { background:rgb(var(--ld-processing-accent)); }
      .ld-processing__bar[data-state="done"] { background:#34c778; }
      .ld-processing__secure { display:flex;align-items:center;justify-content:center;gap:8px;font:400 12px/1.4 -apple-system,sans-serif;color:var(--ld-text-dim);white-space:nowrap; }
      /* One line, never two: on the card it may use part of the side padding. */
      .ld-processing__work .ld-processing__secure { margin:0 -16px; }
      .ld-processing__wait { display:none; }
      .ld-processing[data-phase="wait"] .ld-processing__work { display:none; }
      .ld-processing[data-phase="wait"] .ld-processing__wait { display:block; }
      .ld-processing__wait-ring { display:block;width:60px;height:60px;margin:0 auto 18px; }
      .ld-processing__ref { display:flex;align-items:center;gap:10px;margin:0 0 20px;padding:12px 14px;text-align:left;border:1px solid var(--ld-line);border-radius:12px; }
      .ld-processing__ref span:first-child { flex:none;font:600 11px ui-monospace,Menlo,monospace;color:var(--ld-text-muted); }
      .ld-processing__ref span:last-child { font:500 12px ui-monospace,Menlo,monospace;color:var(--ld-text-secondary);word-break:break-all; }
      .ld-processing__later { width:100%;min-height:44px;padding:12px;border:1px solid var(--ld-line-strong);border-radius:10px;background:transparent;color:var(--ld-text);font:600 13px -apple-system,sans-serif;cursor:pointer; }
      .ld-processing__later:hover,.ld-processing__later:focus-visible { border-color:rgba(255,255,255,.28); }
      @keyframes ld-processing-spin { to { transform:rotate(360deg); } }
      @media (prefers-reduced-motion:reduce) { .ld-processing__ring,.ld-processing__spinner { animation-duration:3s; } }
      @media (max-width:600px) {
        .ld-processing { padding:0;background:#06070d;backdrop-filter:none;-webkit-backdrop-filter:none; }
        .ld-processing__card { width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 32px;border:0;border-radius:0;box-shadow:none;background:#06070d; }
        .ld-processing[data-phase="wait"] .ld-processing__card { background:rgba(3,4,8,.96); }
        .ld-processing__badge { width:112px;height:112px;margin-bottom:26px; }
        .ld-processing__badge img { left:24px;top:24px;width:64px;height:64px; }
        .ld-processing__title { font-size:21px;margin-bottom:10px; }
        .ld-processing__work .ld-processing__lede,.ld-processing__steps { display:none; }
        .ld-processing__active-label { display:block;margin:0 0 28px;font:400 14px/1.55 -apple-system,sans-serif;color:var(--ld-text-muted); }
        .ld-processing__bars { display:flex;gap:6px;width:220px;max-width:100%;margin:0 auto; }
        /* Phones: one line too - less padding, and the size follows the screen width (12px from 375px wide, 9px at the least). */
        .ld-processing__work .ld-processing__secure { position:absolute;left:0;right:0;bottom:calc(34px + env(safe-area-inset-bottom));margin:0;padding:0 12px;font-size:clamp(9px, calc((100vw - 45px) * .0364), 12px); }
        .ld-processing__wait { width:100%;max-width:356px; }
      }
@media (max-width:600px) {
  .ld-payment-outcome { width:100vw;max-width:100%;height:100dvh;overscroll-behavior:contain; }
  .ld-payment-outcome__dialog { max-height:100dvh !important;overscroll-behavior:contain; }
}

/* The encouraging phrase on the final step (LDPhrases). */
.ld-processing__cheer { margin: 0 0 16px; font: 500 14px/1.5 -apple-system, sans-serif; color: rgb(var(--ld-processing-accent)); animation: ld-processing-cheer .5s ease-out both; }
.ld-processing__cheer[hidden] { display: none; }
@keyframes ld-processing-cheer { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ld-processing__cheer { animation: none; } }
@media (max-width: 600px) { .ld-processing__cheer { margin: 22px 0 0; max-width: 320px; font-size: 15px; } }

/* Page lock (checkout.js ldPageLock; every checkout since 4 Oct 2026): above the page, below the
   payment processing overlay (1200) and the outcome dialog (10030). */
.ld-page-lock { position: fixed; inset: 0; z-index: 1150; display: flex; align-items: center; justify-content: center; padding: 24px;
  background: rgba(5, 6, 8, .72); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); cursor: progress; }
.ld-page-lock[hidden] { display: none; }
.ld-page-lock__card { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 26px 30px; border-radius: 16px;
  background: #0b0d12; border: 1px solid rgba(var(--ld-lock-accent, 14, 229, 155), .35);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .5), 0 0 40px rgba(var(--ld-lock-accent, 14, 229, 155), .12); }
.ld-page-lock__spin { width: 38px; height: 38px; border-radius: 50%; border: 3px solid var(--ld-line); border-top-color: rgb(var(--ld-lock-accent, 14, 229, 155));
  animation: ld-page-lock-spin .8s linear infinite; }
.ld-page-lock__text { margin: 0; font: 600 15px -apple-system, "Segoe UI", sans-serif; color: var(--ld-text); text-align: center; }
@keyframes ld-page-lock-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ld-page-lock__spin { animation-duration: 2.4s; } }
