body{display:flex!important;align-items:center!important;justify-content:center!important;min-height:100dvh;padding:24px}.pass-container{width:100%;max-width:400px;text-align:center}.pass-logo-wrap{width:88px;height:88px;margin:0 auto 32px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:20px;overflow:hidden}.pass-logo-wrap img{max-width:100%;max-height:100%;object-fit:contain;opacity:0;transition:opacity .3s ease}.pass-logo-wrap img.loaded{opacity:1}.pass-logo-placeholder{font-size:var(--font-size-2xl);color:var(--color-text-tertiary)}.pass-venue-name{font-family:var(--font-display);font-size:var(--font-size-sm);font-weight:500;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--accent-color);margin-bottom:16px}.pass-heading{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--color-text-primary);margin-bottom:8px}.pass-tournament-name{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.pass-player-name{font-family:var(--font-ui);font-size:var(--font-size-base);color:var(--color-text-secondary);margin-bottom:24px}.pass-meta{display:flex;justify-content:center;gap:20px;margin-bottom:32px;flex-wrap:wrap}.pass-meta-item{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-tertiary);letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:6px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px}.pass-meta-item:empty{display:none}.pass-wallet-btn{display:inline-block;cursor:pointer;transition:transform .15s ease,opacity .15s ease;border:none;background:none;padding:0}.pass-wallet-btn:hover{transform:scale(1.04)}.pass-wallet-btn:active{transform:scale(.97);opacity:.8}.pass-wallet-btn img{height:56px}.pass-save-image-section{margin-top:16px}.pass-save-image-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:12px 24px;cursor:pointer;transition:all .15s ease}.pass-save-image-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);transform:translateY(-1px)}.pass-save-image-btn:active{transform:translateY(0);opacity:.8}.pass-save-image-btn svg{flex-shrink:0}.pass-divider{width:48px;height:1px;background:var(--color-border);margin:32px auto}.pass-footer{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.6}.pass-footer a{color:var(--color-text-tertiary);text-decoration:none}.pass-footer a:hover{color:var(--color-text-secondary)}.pass-not-apple{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:20px;margin-top:24px}.pass-not-apple-icon{font-size:24px;margin-bottom:8px}.pass-not-apple p{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.pass-status-banner{padding:12px 20px;border-radius:10px;font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:600;margin-bottom:24px}.pass-status-banner.pending{background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);color:#f59e0b}.pass-status-banner.cancelled{background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:#ef4444}.pass-loading{display:flex;flex-direction:column;align-items:center;gap:16px}.pass-spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--accent-color);border-radius:50%;animation:passSpin .8s linear infinite}@keyframes passSpin{to{transform:rotate(360deg)}}.pass-loading-text{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.pass-error{display:none}.pass-error-icon{font-size:40px;margin-bottom:16px}.pass-error h2{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text-primary);margin-bottom:8px}.pass-error p{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--color-text-secondary)}
