@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--color-background: oklch(.99 .01 250);--color-foreground: oklch(.25 .02 240);--color-primary: oklch(.45 .15 250);--color-primary-foreground: oklch(1 0 0);--color-secondary: oklch(.98 .01 250 / .4);--color-secondary-foreground: oklch(.35 .1 250);--color-muted: oklch(.97 .005 240 / .5);--color-muted-foreground: oklch(.5 .02 240);--color-accent: oklch(.95 .01 250 / .3);--color-accent-foreground: oklch(.35 .1 250);--color-destructive: oklch(.6 .18 25);--color-destructive-foreground: oklch(1 0 0);--color-border: oklch(1 0 0 / .2);--color-input: oklch(.93 .01 240 / .5);--color-ring: oklch(.45 .15 250 / .15);--radius-sm: .6rem;--radius-md: .8rem;--radius-lg: 1.25rem;--radius-xl: 1.5rem;--radius-2xl: 2.25rem;--shadow-premium: 0 4px 20px -2px rgb(0 0 0 / .06);--shadow-glass: 0 8px 32px 0 rgba(74, 92, 245, .08);--shadow-inner: inset 0 1px 1px 0 rgba(255, 255, 255, .4)}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--color-background);background-image:radial-gradient(at 0% 0%,oklch(.95 .02 250) 0px,transparent 50%),radial-gradient(at 100% 0%,oklch(.94 .03 260) 0px,transparent 50%),radial-gradient(at 100% 100%,oklch(.96 .02 240) 0px,transparent 50%),radial-gradient(at 0% 100%,oklch(.95 .03 255) 0px,transparent 50%);background-attachment:fixed;color:var(--color-foreground);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.container{max-width:600px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.screen{flex:1;display:flex;flex-direction:column}.screen.hidden{display:none!important}header{text-align:center;padding:3rem 1.5rem;background:transparent;color:var(--color-foreground);margin-bottom:2rem}.main-header{position:sticky;top:0;z-index:50;width:100%;background:#fff6;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid var(--color-border);margin-bottom:0}.header-content{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem}.header-left{display:flex;align-items:center;gap:1.25rem}.header-info{display:flex;flex-direction:column;line-height:1.1;border-left:1px solid var(--color-border);padding-left:1rem}.venue-name{font-size:.7rem;font-weight:800;color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;opacity:.6;display:block}.app-title{font-size:1rem;font-weight:800;color:var(--color-foreground);display:block;letter-spacing:-.02em}.full-system-name{display:block;white-space:nowrap}.logout-button{background:#ffffff80;border:1px solid var(--color-border);color:var(--color-foreground);padding:.4rem 1.2rem;border-radius:9999px;font-size:.75rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-transform:uppercase;letter-spacing:.05em}.logout-button:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px)}header h1{font-size:2.25rem;font-weight:800;letter-spacing:-.04em;color:var(--color-foreground);margin-bottom:.5rem}.main-header .header-logo{margin-top:.25rem}.subtitle{font-size:1rem;color:var(--color-muted-foreground);font-weight:500}.login-logo{width:170px;height:auto;display:block;margin:0 auto 3rem;transition:all .6s cubic-bezier(.16,1,.3,1)}.login-logo:hover{transform:translateY(-4px)}.header-logo{height:2rem;width:auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.05))}.login-form{display:flex;flex-direction:column;gap:1.25rem;max-width:380px;margin:0 auto;padding:0 1.5rem 3rem}.login-input{padding:1.125rem 1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:1.125rem;outline:none;background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--color-foreground);box-shadow:var(--shadow-inner)}.login-input:focus{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 5px var(--color-ring),var(--shadow-premium);transform:translateY(-1px)}.turnstile-container{display:flex;justify-content:center;margin:12px 0}.login-button{padding:1.125rem 1.5rem;background:var(--color-primary);color:var(--color-primary-foreground);border:none;border-radius:var(--radius-lg);font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 20px -5px #0057984d;box-shadow:0 10px 20px -5px oklch(.45 .15 250 / .3)}.login-button:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 15px 30px -5px #00579866;box-shadow:0 15px 30px -5px oklch(.45 .15 250 / .4)}.login-button:active{transform:translateY(0)}.login-button:disabled{opacity:.5;transform:none;cursor:not-allowed}.login-error{text-align:center;color:var(--color-destructive);font-weight:600;font-size:.9rem;margin-top:.75rem;animation:fadeIn .3s ease-out}main{flex:1;display:flex;flex-direction:column;gap:2rem;padding:2rem 1.5rem}.buttons-container{display:flex;flex-direction:column;gap:1.25rem}.action-button{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;min-height:5rem;border:1px solid var(--color-border);border-radius:var(--radius-xl);font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);background:#fff6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--color-foreground);box-shadow:var(--shadow-glass),var(--shadow-inner)}.action-button:hover{transform:translateY(-4px) scale(1.02);border-color:var(--color-primary);background:#fff9;box-shadow:0 20px 40px -10px #0057981a,var(--shadow-inner);box-shadow:0 20px 40px -10px oklch(.45 .15 250 / .1),var(--shadow-inner)}.action-button:active{transform:scale(.98)}.button-icon{font-size:1.75rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.button-text{font-size:1rem}.nfc-button.scanning{background-color:var(--color-destructive);color:#fff;border:2px solid rgba(255,255,255,.4);animation:pulse-border 1.5s ease-in-out infinite}@keyframes pulse-border{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}.action-button.disabled{opacity:.3;pointer-events:none}.feed-container{animation:fadeIn .5s cubic-bezier(.16,1,.3,1)}.nfc-feed{display:flex;flex-direction:column;gap:1rem}.feed-item{border-radius:var(--radius-lg);padding:1.5rem;background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);box-shadow:var(--shadow-glass),var(--shadow-inner);animation:slideInUp .4s cubic-bezier(.16,1,.3,1)}.feed-item-loading{background-color:var(--color-secondary);display:flex;align-items:center;gap:1.25rem}.feed-item-loading .feed-spinner{width:1.5rem;height:1.5rem;border:3px solid var(--color-primary);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.feed-item-loading .feed-item-text{font-size:1rem;font-weight:600;color:var(--color-primary)}.feed-item-authorized{background:linear-gradient(135deg,#37981bcc,#198928cc,#007834cc);background:linear-gradient(135deg,#37981bcc,#198928cc,color(xyz 0.07 0.137 0.05 / 0.8));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;border:1px solid rgba(255,255,255,.2)}.feed-item-unauthorized{background:linear-gradient(135deg,#d74745cc,#a8372acc);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;border:1px solid rgba(255,255,255,.2)}.feed-item-error{background-color:#fff5f199;background-color:oklch(.98 .02 40 / .6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid oklch(.6 .15 40 / .3);color:#531700;color:oklch(.3 .1 40)}.checkout-result{text-align:center;padding:4rem 2rem;border-radius:var(--radius-2xl);color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.checkout-result.authorized{background:linear-gradient(135deg,#37981be6,#1f8918e6,#007918e6 50%,#00701fe6,#006822e6 75%,#005725e6);background:linear-gradient(135deg,#37981be6,#1f8918e6,color(xyz 0.069 0.137 0.03 / 0.902),color(xyz 0.047 0.101 0.023 / 0.902),color(xyz 0.03 0.072 0.017 / 0.902));box-shadow:0 30px 60px -15px #37981b66}.checkout-result.not-authorized{background:linear-gradient(135deg,#d74745e6,#861309e6);box-shadow:0 30px 60px -15px #d7474566}.checkout-result.pickup-required{background:linear-gradient(135deg,#cd9200e6,#a65c00e6);background:linear-gradient(135deg,color(xyz 0.357 0.336 0.038 / 0.902),color(xyz 0.205 0.156 0.003 / 0.902));box-shadow:0 30px 60px -15px #cd920066;box-shadow:0 30px 60px -15px oklch(.7 .15 80 / .4)}.checkout-result.scanning{background:linear-gradient(135deg,var(--color-primary) 0%,oklch(.35 .12 260) 100%);box-shadow:0 30px 60px -15px #00579866;box-shadow:0 30px 60px -15px oklch(.45 .15 250 / .4)}.checkout-icon{font-size:5rem;margin-bottom:1.5rem;filter:drop-shadow(0 4px 12px rgba(0,0,0,.2))}.checkout-status{font-size:2rem;font-weight:800;margin-bottom:.75rem;letter-spacing:-.02em}.checkout-message{font-size:1.25rem;opacity:.95;font-weight:500}.checkout-name{font-size:1.75rem;font-weight:800;margin-top:.75rem;letter-spacing:-.01em}.checkout-pickups{margin-top:1.5rem;text-align:left;background:#ffffff26;border-radius:var(--radius-lg);padding:1rem 1.25rem;border:1px solid rgba(255,255,255,.15)}.checkout-pickups-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;opacity:.8}.checkout-pickups ul{list-style:none;padding:0;margin:0}.checkout-pickups li{padding:.4rem 0;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,.1)}.checkout-pickups li:last-child{border-bottom:none}.checkout-uid{margin-top:1.5rem;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.8rem;font-weight:600;background:#fff3;padding:.5rem 1rem;border-radius:9999px;display:inline-block;border:1px solid rgba(255,255,255,.1)}.manual-modal-content{background:#ffffffb3!important;backdrop-filter:blur(32px) saturate(180%)!important;-webkit-backdrop-filter:blur(32px) saturate(180%)!important;border-radius:var(--radius-2xl)!important;padding:2.5rem!important;box-shadow:var(--shadow-inner),0 40px 80px -20px #0000001a!important;border:1px solid var(--color-border)!important}.manual-form{display:flex;flex-direction:column;gap:1.25rem}.manual-label{font-size:.8rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);letter-spacing:.1em}.manual-select,.manual-input{padding:1rem 1.25rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:1.125rem;outline:none;background:#ffffff80;transition:all .3s cubic-bezier(.4,0,.2,1)}.manual-select:focus,.manual-input:focus{border-color:var(--color-primary);background:#fff;box-shadow:0 0 0 5px var(--color-ring)}.status-message{padding:1.25rem;border-radius:var(--radius-xl);text-align:center;font-weight:700;font-size:1rem;border:1px solid var(--color-border);min-height:4rem;display:flex;align-items:center;justify-content:center;background:#fff6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .4s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-inner)}.status-message.success{background-color:#d3fcca66;color:#104700;color:oklch(.35 .15 140);border-color:#4995374d}.status-message.error{background-color:#ffe8e366;background-color:oklch(.95 .08 30 / .4);color:#730400;color:oklch(.35 .15 30);border-color:#ca57474d}.status-message.info{background-color:var(--color-secondary);color:var(--color-primary);border-color:var(--color-primary)}.result-container{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#fff6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:1.5rem;animation:fadeIn .4s ease-out}.result-card{width:100%;max-width:420px;background:#ffffffb3;-webkit-backdrop-filter:blur(32px) saturate(180%);backdrop-filter:blur(32px) saturate(180%);border-radius:var(--radius-2xl);padding:2rem;box-shadow:var(--shadow-inner),0 40px 80px -20px #0000001a;border:1px solid var(--color-border)}.result-title{font-size:1.5rem;font-weight:800;margin-bottom:1.5rem;color:var(--color-primary);letter-spacing:-.02em}.result-content{margin-bottom:2rem}.result-item{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border)}.result-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.result-item strong{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);margin-bottom:.35rem;letter-spacing:.05em;opacity:.7}.result-item p{font-size:1.125rem;font-weight:500}.result-data{font-family:ui-monospace,SFMono-Regular,monospace;background-color:var(--color-secondary);padding:1rem;border-radius:var(--radius-md);font-size:1rem;font-weight:600;border:1px solid var(--color-border)}.result-actions{display:flex;gap:1rem}.secondary-button{flex:1;padding:1rem 1.5rem;border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);border-radius:var(--radius-lg);font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.secondary-button:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px);box-shadow:0 10px 20px -5px #0057984d;box-shadow:0 10px 20px -5px oklch(.45 .15 250 / .3)}.secondary-button:active{transform:scale(.98)}.checkout-result .secondary-button{border-color:#fff9;color:#fff;background:#ffffff1a}.checkout-result .secondary-button:hover{background:#fff;color:var(--color-primary);border-color:#fff}.modal{position:fixed;inset:0;background-color:#fff3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .4s cubic-bezier(.16,1,.3,1)}.modal-content{width:100%;max-width:500px;padding:2rem;position:relative}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;color:var(--color-foreground)}.modal-header h2{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.close-button{background:#0000000d;border:none;color:var(--color-foreground);font-size:1.5rem;cursor:pointer;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:9999px;transition:all .3s cubic-bezier(.4,0,.2,1)}.close-button:hover{background-color:var(--color-primary);color:#fff;transform:rotate(90deg)}.qr-modal-layout{display:flex;flex-direction:column;width:100%;height:100%;max-width:500px;padding:2rem 1.5rem;gap:2rem;position:relative}.qr-modal-header{text-align:center;color:var(--color-foreground)}.qr-modal-header h2{font-size:1.75rem;font-weight:800;margin-bottom:.5rem;letter-spacing:-.02em}.qr-modal-header .scanner-hint{font-size:1rem;color:var(--color-muted-foreground);font-weight:500}.scanner-container{position:relative;width:100%;aspect-ratio:1;border-radius:var(--radius-2xl);overflow:hidden;background-color:#000;box-shadow:0 20px 40px -10px #0003,0 0 0 1px var(--color-border)}.qr-video{width:100%;height:100%;object-fit:cover}.scanner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.scanner-frame{width:65%;height:65%;border:2.5px solid rgba(255,255,255,.8);border-radius:var(--radius-xl);box-shadow:0 0 0 9999px #00000080;position:relative}.scanner-frame:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-primary);box-shadow:0 0 15px var(--color-primary);animation:scan-line 2s ease-in-out infinite}@keyframes scan-line{0%,to{top:0%;opacity:0}10%,90%{opacity:1}50%{top:100%}}.qr-actions{display:flex;justify-content:center;padding-top:1rem}.qr-stop-button{width:auto;min-width:160px}.qr-result-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 3rem);max-width:420px;z-index:100;padding:2.5rem 1.5rem;border-radius:var(--radius-2xl);backdrop-filter:blur(40px) saturate(200%);-webkit-backdrop-filter:blur(40px) saturate(200%);color:#fff;animation:slideInUpInPlace .4s cubic-bezier(.16,1,.3,1);box-shadow:0 30px 60px -12px #00000080,inset 0 1px 1px #ffffff4d;border:1px solid rgba(255,255,255,.3);text-align:center}@keyframes slideInUpInPlace{0%{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}.qr-result-overlay.authorized{background:linear-gradient(135deg,#009a46d9,#00764cd9);background:linear-gradient(135deg,color(xyz 0.112 0.24 0.073 / 0.851),color(xyz 0.057 0.141 0.067 / 0.851))}.qr-result-overlay.not-authorized{background:linear-gradient(135deg,#de3b3dd9,#c83224d9,#b12b00d9);background:linear-gradient(135deg,#de3b3dd9,#c83224d9,color(xyz 0.192 0.11 0.009 / 0.851))}.qr-result-overlay.pickup-required{background:linear-gradient(135deg,#cd9200d9,#b17000d9);background:linear-gradient(135deg,color(xyz 0.357 0.336 0.038 / 0.851),color(xyz 0.246 0.207 0.006 / 0.851))}.qr-result-overlay.loading{background:linear-gradient(135deg,var(--color-primary) 0%,oklch(.4 .15 260) 100%);opacity:.9}.qr-result-status{font-size:2.25rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.5rem;line-height:1}.qr-result-name{font-size:1.5rem;font-weight:700;opacity:1;letter-spacing:-.01em}.qr-result-pickups{margin-top:1.25rem;font-size:1.125rem;font-weight:600;background:#fff3;padding:.5rem .75rem;border-radius:var(--radius-lg);line-height:1.4;max-height:180px;overflow-y:auto;border:1px solid rgba(255,255,255,.1)}.qr-result-pickups ul{list-style:none;padding:0;margin:0}.qr-result-pickups li{padding:.6rem .5rem;border-bottom:1px solid rgba(255,255,255,.1)}.qr-result-pickups li:last-child{border-bottom:none}.qr-actions-inner{margin-top:1.5rem;display:flex;justify-content:center}.qr-stop-inner{border-color:#fff9!important;color:#fff!important;background:#ffffff1a!important;min-width:140px;font-size:.95rem;padding:.75rem 1.5rem}.qr-stop-inner:hover{background:#fff!important;color:var(--color-primary)!important;border-color:#fff!important}@media(max-height:700px){.qr-modal-layout{gap:1rem;padding:1.5rem 1rem}.qr-modal-header h2{font-size:1.5rem}.qr-result-overlay{bottom:1rem;left:1rem;right:1rem}}.loading{position:fixed;inset:0;background-color:#fff9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999;color:var(--color-primary);gap:1.5rem}.spinner{width:4rem;height:4rem;border:4px solid var(--color-secondary);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;box-shadow:0 10px 30px -5px #00579833;box-shadow:0 10px 30px -5px oklch(.45 .15 250 / .2)}.loading p{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0;transform:scale(.98) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:768px){.buttons-container{flex-direction:row}.action-button{flex:1}header h1{font-size:3rem}.subtitle{font-size:1.25rem}}@supports (-webkit-touch-callout: none){body{padding-bottom:env(safe-area-inset-bottom)}}
