:root{--primary: #6d4fd8;--primary-dark: #5a3fc4;--secondary: #a1f798;--success: #37813e;--error: #be1823;--warning: #fd7814;--text: #1a1a1a;--text-muted: #6b7280;--card-bg: #ffffff;--page-bg: #f3f4f6;--border: #e5e7eb;--radius: 16px;--shadow: 0 10px 40px rgba(109, 79, 216, .08)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;min-height:100vh;font-family:Cairo,Segoe UI,system-ui,sans-serif;background:var(--page-bg);color:var(--text);line-height:1.6}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px 40px}.brand{margin-bottom:24px;text-align:center}.brand-name{font-size:1.25rem;font-weight:700;color:var(--primary);letter-spacing:.02em}.card{width:100%;max-width:440px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:32px 28px;text-align:center}.card a{color:var(--primary)}.icon{width:64px;height:64px;margin:0 auto 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.icon--success{background:#37813e1f;color:var(--success)}.icon--failed{background:#be18231a;color:var(--error)}.icon--error{background:#fd78141f;color:var(--warning)}h1{margin:0 0 12px;font-size:1.375rem;font-weight:700;line-height:1.35}.lead{margin:0 0 20px;color:var(--text-muted);font-size:.95rem}.note{margin:0;padding:14px 16px;background:#f9fafb;border-radius:10px;font-size:.875rem;color:var(--text-muted);border:1px solid var(--border)}.lang-toggle{display:flex;gap:8px;justify-content:center;margin-bottom:20px}.lang-toggle button{font-family:inherit;font-size:.8125rem;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text-muted);cursor:pointer}.lang-toggle button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}body[dir=rtl] .card{text-align:center}.card--info{max-width:560px;text-align:start}body[dir=rtl] .card--info{text-align:start}.card--info h2{margin:22px 0 8px;font-size:1rem;font-weight:700}.steps{margin:0 0 8px;padding-inline-start:1.25rem}.steps li{margin:0 0 8px}.steps li:last-child{margin-bottom:0}.footer{margin-top:28px;font-size:.75rem;color:var(--text-muted)}.receipt-details{margin:0 0 20px;text-align:start}.receipt-details__heading{margin:0 0 12px;font-size:.9375rem;font-weight:700;color:var(--text)}.receipt-details__list{margin:0;padding:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fafafa}.receipt-row{display:flex;flex-direction:column;gap:4px;margin:0;padding:12px 14px;border-bottom:1px solid var(--border)}.receipt-row:last-child{border-bottom:none}.receipt-row__label{margin:0;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.receipt-row__value{margin:0;font-size:.9375rem;font-weight:600;color:var(--text);word-break:break-word}.receipt-status{display:inline-block;font-size:.8125rem;letter-spacing:.03em}.receipt-status--success{color:var(--success)}.receipt-status--failed{color:var(--error)}.receipt-unavailable{margin:0 0 20px;padding:14px 16px;background:#f9fafb;border-radius:10px;font-size:.875rem;color:var(--text-muted);border:1px solid var(--border);text-align:start}.booking-page{align-items:center;justify-content:flex-start;padding-top:32px}.booking-card{width:100%;max-width:640px;text-align:start;padding:0;overflow:hidden}.booking-card__header{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:28px 24px}.booking-card__header h1{color:#fff;margin-bottom:8px}.booking-card__ref{margin:0;font-size:.875rem;opacity:.9}.booking-card__qr{margin:6px 0 0;font-size:.8125rem;opacity:.75;font-family:ui-monospace,monospace}.booking-hero{width:100%;height:220px;object-fit:cover;display:block;background:var(--border)}.booking-body{padding:24px}.booking-activity-name{margin:0 0 8px;font-size:1.25rem;font-weight:700}.booking-activity-name-ar{margin:0 0 12px;color:var(--text-muted);font-size:1rem}.booking-description{margin:0 0 20px;color:var(--text-muted);font-size:.9375rem}.booking-section{margin-bottom:20px}.booking-section__title{margin:0 0 12px;font-size:.9375rem;font-weight:700}.ticket-status{display:inline-block;padding:8px 14px;border-radius:999px;font-size:.875rem;font-weight:700;color:#fff}.ticket-status--valid{background:var(--success)}.ticket-status--upcoming{background:#2563eb}.ticket-status--expired{background:#4b5563}.ticket-status--cancelled,.ticket-status--invalid{background:var(--error)}.ticket-status--scanned{background:var(--warning)}.ticket-status--pending{background:#ca8a04}.ticket-status--unknown{background:#6b7280}.booking-message{margin:10px 0 0;font-size:.875rem;color:var(--text-muted)}.booking-alert{margin-top:14px;padding:12px 14px;border-radius:10px;font-size:.875rem;font-weight:600}.booking-alert--success{background:#37813e1a;border:1px solid rgba(55,129,62,.25);color:var(--success)}.booking-alert--danger{background:#be182314;border:1px solid rgba(190,24,35,.2);color:var(--error)}.booking-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.booking-pill{display:inline-block;padding:6px 12px;border-radius:8px;font-size:.8125rem;font-weight:700;color:#fff}.booking-pill--paid{background:var(--success)}.booking-pill--pending{background:#ca8a04}.booking-pill--failed{background:var(--error)}.booking-pill--approved{background:var(--success)}.booking-pill--cancelled{background:var(--error)}.booking-total{display:flex;justify-content:space-between;align-items:center;padding-top:16px;margin-top:8px;border-top:1px solid var(--border)}.booking-total__label{font-size:1rem;font-weight:700}.booking-total__value{font-size:1.375rem;font-weight:700;color:var(--primary)}.booking-loading,.booking-error{width:100%;max-width:440px;text-align:center}.booking-spinner{width:40px;height:40px;margin:0 auto 16px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:booking-spin .8s linear infinite}@keyframes booking-spin{to{transform:rotate(360deg)}}.booking-map-link{display:inline-block;margin-top:4px;font-size:.875rem;font-weight:600}@media(max-width:520px){.booking-status-grid{grid-template-columns:1fr}}
