/* Focused corrections to the supplied kiosk, preserving its portrait layout. */
.kiosk-demo-ribbon { position: absolute; z-index: 30; bottom: 14px; left: 80px; right: 80px; text-align: center; pointer-events: none; font-size: 22px; line-height: 1.3; color: #53657f; letter-spacing: .4px; }
button:focus-visible, a:focus-visible { outline: 6px solid #642c83; outline-offset: 6px; }
button.at-cta { width: 100%; text-align: left; border: 0; font-family: inherit; }
.qr-request-cancel { display: block; width: 100%; margin-top: auto; padding: 22px 26px; border: 2px solid #80639f; border-radius: 18px; background: #fff; color: #43215f; font: inherit; font-size: 29px; font-weight: 600; cursor: pointer; }
.admin-brand-fixed { display: flex; align-items: center; gap: 26px; padding: 24px; border: 2px solid #d6e1f0; border-radius: 18px; background: #fff; font-size: 25px; }
.admin-brand-fixed img { display: block; width: 220px; height: auto; }
.kiosk-bank-check { width: 100%; padding: 32px; border-radius: 32px; background: #fff; border: 2px solid #d6e1f0; box-shadow: 0 16px 48px #1a355515; }
.kiosk-bank-eyebrow { color: var(--primary); font-size: 24px; letter-spacing: 2px; font-weight: 700; }
.kiosk-bank-check h3 { font-size: 47px; line-height: 1.18; margin: 20px 0; }
.kiosk-bank-check p { color: #4f5d72; font-size: 30px; line-height: 1.45; }
.kiosk-bank-check dl { margin: 22px 0; border-top: 2px solid #dfe7f1; }
.kiosk-bank-check dl > div { display: flex; justify-content: space-between; gap: 24px; padding: 18px 0; border-bottom: 2px solid #dfe7f1; font-size: 28px; }
.kiosk-bank-check dt { color: #5c708c; }
.kiosk-bank-check dd { font-weight: 600; text-align: right; margin: 0; }
.kiosk-bank-decision, .kiosk-bank-assumption { border-radius: 20px; padding: 20px 28px; margin-top: 18px; }
.kiosk-bank-decision { background: #fff4e2; color: #6b4610; border: 2px solid #e9d0a7; }
.kiosk-bank-assumption { background: #edf5ff; color: #164473; border: 2px solid #cee0f5; }
.kiosk-bank-decision strong, .kiosk-bank-assumption strong { display: block; font-size: 30px; margin-bottom: 10px; }
.kiosk-bank-decision p, .kiosk-bank-assumption p { font-size: 28px; color: inherit; }
.kiosk-bank-check > .ph-cta { display: block; width: 100%; margin-top: 22px; background: #fff; color: #123b70; }
.flowbottom .btn { font-size: 29px; padding-left: 25px; padding-right: 25px; }
/* Interactive requests remain open during wallet approval instead of replaying the
   original looping sheet animation. Saved-state transitions stay intact. */
.wi:not(.wi-once) .wi-sheet { animation: none; transform: none; }
.wi:not(.wi-once)::after { animation: none; opacity: 1; }
/* Saving a credential also remains reachable without animation support. */
.wi-once:not(.is-saved) .wi-sheet {
  transform: none;
  animation-name: kiosk-wallet-sheet-in;
  animation-fill-mode: both;
}
@keyframes kiosk-wallet-sheet-in {
  from { transform: translateY(105%); }
  to { transform: none; }
}
/* Verification must stay readable and actionable if animations are disabled.
   Backwards fill keeps the existing staggered reveal when they are enabled. */
.gx-checks li, .gx-result { opacity: 1; animation-fill-mode: both; }
@media (prefers-reduced-motion: reduce) { .screen, .glow, .qr::after { animation: none !important; } }
