:root{--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--migros-orange: #FF6600;--migros-orange-dark: #E64A00;--migros-orange-light: #FFF4ED;--migros-orange-border: #FFD2B8;--bg-gradient: linear-gradient(135deg, #18181b 0%, #27272a 50%, #1c1917 100%);--card-bg: rgba(255, 255, 255, .98);--card-border: rgba(255, 255, 255, .35);--text-primary: #18181b;--text-secondary: #4b5563;--text-muted: #9ca3af;--accent-orange-gradient: linear-gradient(135deg, #FF7700 0%, #FF6600 50%, #E64A00 100%);--win-green: #10b981;--win-gradient: linear-gradient(135deg, #34d399 0%, #10b981 100%);--lose-slate: #64748b;--warn-red: #ef4444;--shadow-card: 0 24px 48px -12px rgba(0, 0, 0, .45), 0 0 24px rgba(255, 102, 0, .12);--shadow-btn: 0 10px 24px -4px rgba(255, 102, 0, .38)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);background:var(--bg-gradient);background-attachment:fixed;color:var(--text-primary);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;overflow-x:hidden}#root{width:100%;max-width:440px;margin:0 auto}.app-container{width:100%;animation:fadeIn .4s ease-out}.ticket-card{background:var(--card-bg);border-radius:28px;padding:34px 24px;text-align:center;box-shadow:var(--shadow-card);position:relative;overflow:hidden;border:1px solid var(--card-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.card-top-accent{position:absolute;top:0;left:0;right:0;height:6px;background:var(--accent-orange-gradient)}.card-top-accent.winner{background:linear-gradient(90deg,#10b981,#f60,#10b981)}.card-top-accent.loser{background:linear-gradient(90deg,#f60,#fb923c,#f60)}.card-top-accent.error{background:linear-gradient(90deg,#ef4444,#f87171,#dc2626)}.store-badge-wrapper{display:flex;justify-content:center;width:100%;margin-bottom:14px}.store-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--migros-orange-light);border:1.5px solid var(--migros-orange-border);color:var(--migros-orange-dark);font-size:13px;font-weight:700;padding:6px 14px;border-radius:9999px;letter-spacing:.5px;text-transform:uppercase}.store-badge-m{background:var(--migros-orange);color:#fff;font-size:11px;font-weight:900;padding:2px 7px;border-radius:6px;line-height:1.2}.team-greeting{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--migros-orange-dark);background:#ff660017;padding:8px 16px;border-radius:14px;margin-bottom:18px;border:1px solid rgba(255,102,0,.15)}.status-icon{font-size:68px;line-height:1;margin:0 auto 16px;display:block;text-align:center;-webkit-user-select:none;user-select:none;clear:both}.animate-pulse-gift{animation:pulseScale 1.4s ease-in-out infinite}.animate-winner-tada{animation:winTada 1s ease-in-out}.animate-loser-leaf{animation:floatSway 2.5s ease-in-out infinite}.animate-error-shake{animation:shake .6s cubic-bezier(.36,.07,.19,.97) both}h1{font-family:var(--font-heading);font-size:28px;font-weight:800;letter-spacing:-.5px;color:var(--text-primary);margin-bottom:10px;line-height:1.25}.winner-heading{color:#047857;font-size:34px;letter-spacing:.5px;text-transform:uppercase}.loser-heading{color:#1e293b;font-size:26px}p.subtitle{font-size:15.5px;line-height:1.55;color:var(--text-secondary);margin-bottom:18px}.loyalty-box{background:linear-gradient(145deg,#fff9f5,#fff2ea);border:1.5px solid #FFD8C2;border-radius:20px;padding:18px 20px;margin:18px 0;text-align:left;box-shadow:0 4px 14px #ff66000f}.loyalty-box-title{font-size:15px;font-weight:800;color:#c2410c;margin-bottom:6px;display:flex;align-items:center;gap:6px}.loyalty-box-text{font-size:14px;line-height:1.6;color:#431407}.team-signature{margin-top:14px;padding-top:12px;border-top:1px dashed #FFD2B8;font-size:13.5px;font-weight:700;color:#ea580c;display:flex;align-items:center;justify-content:space-between}p.instruction{font-size:14px;line-height:1.55;color:var(--text-secondary);background:#f8fafc;padding:14px 18px;border-radius:16px;border:1px dashed #cbd5e1;margin:18px 0;text-align:left}.winner-banner{background:#ecfdf5;border:1.5px solid #a7f3d0;padding:14px 16px;border-radius:16px;margin-bottom:18px;color:#065f46;font-weight:700;font-size:14.5px;line-height:1.4}.spinner{width:38px;height:38px;border:3.5px solid #fed7aa;border-top-color:var(--migros-orange);border-radius:50%;animation:spin .8s linear infinite;margin:18px auto}.btn-primary{display:block;width:100%;font-family:var(--font-heading);font-size:17px;font-weight:700;color:#fff;background:var(--accent-orange-gradient);border:none;border-radius:18px;padding:16px 24px;cursor:pointer;box-shadow:var(--shadow-btn);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;-webkit-user-select:none;user-select:none;text-decoration:none}.btn-primary:active{transform:scale(.97);box-shadow:0 4px 12px #ff660047}.btn-secondary{display:inline-block;font-family:var(--font-heading);font-size:15px;font-weight:600;color:var(--text-secondary);background:#f1f5f9;border:none;border-radius:14px;padding:12px 20px;cursor:pointer;margin-top:10px;text-decoration:none;transition:background .15s ease,color .15s ease}.btn-secondary:hover{background:#e2e8f0;color:var(--text-primary)}.footer-note{margin-top:22px;font-size:12.5px;color:var(--text-muted);line-height:1.4}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseScale{0%,to{transform:scale(1)}50%{transform:scale(1.15) rotate(4deg)}}@keyframes winTada{0%{transform:scale(.6);opacity:0}50%{transform:scale(1.2) rotate(-8deg)}70%{transform:scale(.95) rotate(4deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes floatSway{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(6deg)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.pin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;animation:fadeIn .2s ease-out}.pin-modal-card{background:var(--card-bg);border-radius:24px;padding:28px 24px;width:100%;max-width:360px;text-align:center;box-shadow:0 25px 50px -12px #00000080;position:relative;overflow:hidden;border:1px solid var(--card-border);animation:modalPop .25s cubic-bezier(.34,1.56,.64,1)}.pin-modal-top-accent{position:absolute;top:0;left:0;right:0;height:5px;background:var(--accent-orange-gradient)}.pin-input{width:100%;font-family:monospace;font-size:24px;letter-spacing:6px;text-align:center;padding:12px 16px;border-radius:14px;border:2px solid #e2e8f0;background:#fff;color:var(--text-primary);outline:none;margin:16px 0;transition:border-color .15s ease,box-shadow .15s ease}.pin-input:focus{border-color:var(--migros-orange);box-shadow:0 0 0 3px #ff660026}.pin-error-text{color:#dc2626;font-size:13.5px;font-weight:700;margin-bottom:12px;animation:shake .4s ease-in-out}.modal-actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}.btn-cancel{background:none;border:none;color:#64748b;font-size:14.5px;font-weight:600;cursor:pointer;padding:8px;text-decoration:underline}.btn-cancel:hover{color:#1e293b}.redeemed-banner{border-radius:20px;padding:20px;margin:18px 0;text-align:center;animation:fadeIn .35s ease-out}.redeemed-banner.success{background:#f0fdf4;border:2px solid #86efac}.redeemed-banner.already-redeemed{background:#fef2f2;border:2px solid #fca5a5}.redeemed-banner-title{font-family:var(--font-heading);font-size:22px;font-weight:800;margin-bottom:6px}.redeemed-banner.success .redeemed-banner-title{color:#15803d}.redeemed-banner.already-redeemed .redeemed-banner-title{color:#b91c1c}.redeemed-banner-subtitle{font-size:14.5px;line-height:1.5;margin-bottom:8px}.redeemed-banner.success .redeemed-banner-subtitle{color:#166534}.redeemed-banner.already-redeemed .redeemed-banner-subtitle{color:#991b1b}.redeemed-banner-time{font-size:13px;font-weight:700;display:inline-block;padding:4px 10px;border-radius:8px}.redeemed-banner.success .redeemed-banner-time{background:#dcfce7;color:#14532d}.redeemed-banner.already-redeemed .redeemed-banner-time{background:#fee2e2;color:#7f1d1d}@keyframes modalPop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
