:root{--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--glass-blur-sm: blur(4px);--glass-blur-md: blur(8px);--glass-blur-lg: blur(12px);--glass-blur-xl: blur(16px);--glass-blur-2xl: blur(20px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px)}.text-glass-high-contrast{color:#f0f2fff2}.text-glass-medium-contrast{color:#dce1ebe6}.text-glass-muted{color:#a0aab9cc}.text-glass-accent{color:#c8b4fff2}.text-glass-success{color:#6ef0aaf2}.text-glass-warning{color:#ffc864f2}.text-glass-error{color:#ff7878f2}.glass{backdrop-filter:var(--glass-blur-xl);-webkit-backdrop-filter:var(--glass-blur-xl);background:#ffffff26;border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.glass-sm{backdrop-filter:var(--glass-blur-lg);-webkit-backdrop-filter:var(--glass-blur-lg);background:#ffffff1f;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 6px -1px #0000001a}.glass-md{backdrop-filter:var(--glass-blur-xl);-webkit-backdrop-filter:var(--glass-blur-xl);background:#ffffff26;border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 15px -3px #0000001a}.glass-lg{backdrop-filter:var(--glass-blur-2xl);-webkit-backdrop-filter:var(--glass-blur-2xl);background:#fff3;border:1px solid rgba(255,255,255,.25);box-shadow:0 20px 25px -5px #0000001a}.glass-input{backdrop-filter:var(--glass-blur-md);-webkit-backdrop-filter:var(--glass-blur-md);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);transition:all .2s var(--ease-out)}.glass-input:hover{background:#ffffff26;border-color:#ffffff40}.glass-input:focus{background:#ffffff26;border-color:#8b5cf680;box-shadow:0 0 0 3px #8b5cf633;outline:none}.glass-input::placeholder{color:#ffffff80}input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{color-scheme:dark;max-width:100%;min-width:0;width:100%;box-sizing:border-box}input[type=date]::-webkit-datetime-edit,input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=date]::-webkit-datetime-edit-text,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-year-field{min-width:0;overflow:hidden;text-overflow:ellipsis}input.participant-date-input{text-align:center;padding:6px 8px!important;border-radius:10px!important;width:calc(100% - 8px)!important;margin:0 4px;display:block;font-variant-numeric:tabular-nums}input.participant-date-input::-webkit-datetime-edit{padding:0 6px}input.participant-date-input::-webkit-datetime-edit-fields-wrapper{display:flex;justify-content:center}input.participant-date-input::-webkit-datetime-edit-text{padding:0 2px}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=week]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(.8);cursor:pointer}.glass-btn{backdrop-filter:var(--glass-blur-md);-webkit-backdrop-filter:var(--glass-blur-md);background:#ffffff26;border:1px solid rgba(255,255,255,.2);transition:all .15s var(--ease-out)}.glass-btn:hover{background:#ffffff40;transform:translateY(-1px);box-shadow:0 8px 20px -4px #8b5cf64d}.glass-btn:active{transform:translateY(0);background:#ffffff4d}.glass-modal-overlay{backdrop-filter:var(--glass-blur-md);-webkit-backdrop-filter:var(--glass-blur-md);background:#0006}.glass-modal-content{backdrop-filter:var(--glass-blur-2xl);-webkit-backdrop-filter:var(--glass-blur-2xl);background:#0f172acc;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000040}.glass-navbar{backdrop-filter:var(--glass-blur-xl);-webkit-backdrop-filter:var(--glass-blur-xl);background:#0f172acc;border-top:1px solid rgba(255,255,255,.1)}.gradient-text-primary{background:linear-gradient(135deg,#8b5cf6,#d946ef,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-secondary{background:linear-gradient(135deg,#3b82f6,#06b6d4,#14b8a6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-accent{background:linear-gradient(135deg,#f59e0b,#f97316,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-bg-primary{background:linear-gradient(135deg,#8b5cf6,#d946ef,#ec4899)}.gradient-bg-secondary{background:linear-gradient(135deg,#3b82f6,#06b6d4,#14b8a6)}.gradient-bg-accent{background:linear-gradient(135deg,#f59e0b,#f97316,#ef4444)}.gradient-border{position:relative;background:#0f172acc}.gradient-border:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;background:linear-gradient(135deg,#8b5cf6,#d946ef,#ec4899);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;border-radius:inherit;pointer-events:none}.glow-sm{box-shadow:0 0 20px -5px #8b5cf64d}.glow-md{box-shadow:0 0 30px -5px #8b5cf666}.glow-lg{box-shadow:0 0 40px -5px #8b5cf680}.glow-hover:hover{box-shadow:0 0 40px -10px #8b5cf680;transition:box-shadow .2s var(--ease-out)}.text-glow{text-shadow:0 0 20px rgba(139,92,246,.5)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.scrollbar-glass::-webkit-scrollbar{width:6px;height:6px}.scrollbar-glass::-webkit-scrollbar-track{background:#ffffff0d;border-radius:10px}.scrollbar-glass::-webkit-scrollbar-thumb{background:#fff3;border-radius:10px;transition:background .15s var(--ease-out)}.scrollbar-glass::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.pb-safe{padding-bottom:var(--safe-area-inset-bottom)}.pt-safe{padding-top:var(--safe-area-inset-top)}.pl-safe{padding-left:var(--safe-area-inset-left)}.pr-safe{padding-right:var(--safe-area-inset-right)}.px-safe{padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.py-safe{padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom)}.keyboard-open .app-bottom-nav{opacity:0;pointer-events:none}.app-shell{height:calc(var(--app-height, 1vh) * 100);min-height:100%}:root{--app-height: 1vh;--bottom-offset: 0px;--nav-bottom-offset: 0px;--top-offset: 0px}html,body,#root{height:100%}@supports (-webkit-touch-callout: none){body,.app-shell{min-height:-webkit-fill-available}}.focus-ring{outline:none}.focus-ring:focus-visible{outline:2px solid rgba(139,92,246,.7);outline-offset:2px}.transition-fast{transition-duration:.15s}.transition-normal{transition-duration:.2s}.transition-slow{transition-duration:.3s}.transition-ease-out{transition-timing-function:var(--ease-out)}.transition-ease-in-out{transition-timing-function:var(--ease-in-out)}.transition-all-smooth{transition:all .2s var(--ease-out)}.transition-colors-smooth{transition:color .2s var(--ease-out),background-color .2s var(--ease-out),border-color .2s var(--ease-out)}.transition-transform-smooth{transition:transform .2s var(--ease-out)}.transition-opacity-smooth{transition:opacity .2s var(--ease-out)}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.5}}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@media(min-width:768px){.md\:glass-lg{backdrop-filter:var(--glass-blur-2xl);-webkit-backdrop-filter:var(--glass-blur-2xl);background:#fff3;border:1px solid rgba(255,255,255,.25)}}@media(min-width:1024px){.lg\:glass-lg{backdrop-filter:var(--glass-blur-2xl);-webkit-backdrop-filter:var(--glass-blur-2xl);background:#fff3;border:1px solid rgba(255,255,255,.25)}}@media print{.no-print{display:none!important}}@media(pointer:coarse){input,textarea,select{font-size:16px!important}}.drop-shadow-sm{text-shadow:0 1px 2px rgba(0,0,0,.3)}.drop-shadow-md{text-shadow:0 2px 4px rgba(0,0,0,.4)}.drop-shadow-lg{text-shadow:0 4px 8px rgba(0,0,0,.5)}.drop-shadow-xl{text-shadow:0 8px 16px rgba(0,0,0,.6)}.recipe-name{color:#fff!important;-webkit-text-fill-color:#ffffff!important;background-image:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;text-shadow:0 2px 4px rgba(0,0,0,.5);font-weight:700!important;font-size:1.25rem!important;text-decoration:none!important;text-transform:none!important;letter-spacing:normal!important;line-height:1.5!important;margin-bottom:.25rem!important}body .recipe-name,div.recipe-name,h3.recipe-name,span.recipe-name{color:#fff!important;background-color:inherit!important}[class*=recipe-name]{color:#fff!important}#root [data-recipe-name]{color:#fff!important;-webkit-text-fill-color:#ffffff!important;background-image:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;opacity:1!important;mix-blend-mode:normal!important;filter:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:fadeIn .2s var(--ease-out) forwards}.animate-fade-out{animation:fadeOut .2s var(--ease-out) forwards}.animate-fade-in-up{animation:fadeInUp .3s var(--ease-out) forwards}.animate-fade-in-down{animation:fadeInDown .3s var(--ease-out) forwards}.animate-fade-in-left{animation:fadeInLeft .3s var(--ease-out) forwards}.animate-fade-in-right{animation:fadeInRight .3s var(--ease-out) forwards}.animate-stagger-in>*{opacity:0;animation:fadeInUp .3s var(--ease-out) forwards}.animate-stagger-in>*:nth-child(1){animation-delay:0ms}.animate-stagger-in>*:nth-child(2){animation-delay:50ms}.animate-stagger-in>*:nth-child(3){animation-delay:.1s}.animate-stagger-in>*:nth-child(4){animation-delay:.15s}.animate-stagger-in>*:nth-child(5){animation-delay:.2s}.animate-stagger-in>*:nth-child(6){animation-delay:.25s}.animate-stagger-in>*:nth-child(7){animation-delay:.3s}.animate-stagger-in>*:nth-child(8){animation-delay:.35s}@keyframes slideInFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInFromTop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInFromLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutToBottom{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes slideOutToTop{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.animate-slide-in-bottom{animation:slideInFromBottom .3s var(--ease-out) forwards}.animate-slide-in-top{animation:slideInFromTop .3s var(--ease-out) forwards}.animate-slide-in-left{animation:slideInFromLeft .3s var(--ease-out) forwards}.animate-slide-in-right{animation:slideInFromRight .3s var(--ease-out) forwards}.animate-slide-out-bottom{animation:slideOutToBottom .3s var(--ease-out) forwards}.animate-slide-out-top{animation:slideOutToTop .3s var(--ease-out) forwards}@keyframes tabSwipeLeft{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes tabSwipeRight{0%{transform:translate(-100%)}to{transform:translate(0)}}.tab-swipe-left{animation:tabSwipeLeft .28s var(--ease-out) forwards}.tab-swipe-right{animation:tabSwipeRight .28s var(--ease-out) forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes scaleInBounce{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scaleIn .2s var(--ease-out) forwards}.animate-scale-out{animation:scaleOut .2s var(--ease-out) forwards}.animate-scale-in-bounce{animation:scaleInBounce .4s var(--ease-bounce) forwards}@keyframes rotateIn{0%{opacity:0;transform:rotate(-180deg)}to{opacity:1;transform:rotate(0)}}@keyframes rotateOut{0%{opacity:1;transform:rotate(0)}to{opacity:0;transform:rotate(180deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-rotate-in{animation:rotateIn .3s var(--ease-out) forwards}.animate-rotate-out{animation:rotateOut .3s var(--ease-out) forwards}.animate-spin{animation:spin 1s linear infinite}.animate-spin-slow{animation:spin-slow 3s linear infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}20%{transform:scale(1.1)}40%{transform:scale(.9)}60%{opacity:1;transform:scale(1.03)}80%{transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes bounce-out{0%{transform:scale(1)}25%{transform:scale(.95)}50%{opacity:1;transform:scale(1.1)}75%{transform:scale(.95)}to{opacity:0;transform:scale(0)}}.animate-bounce{animation:bounce 2s var(--ease-in-out) infinite}.animate-bounce-in{animation:bounce-in .5s var(--ease-out) forwards}.animate-bounce-out{animation:bounce-out .5s var(--ease-in) forwards}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px -5px #8b5cf64d}50%{box-shadow:0 0 40px -5px #8b5cf699}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.animate-pulse{animation:pulse 2s var(--ease-in-out) infinite}.animate-pulse-glow{animation:pulse-glow 2s var(--ease-in-out) infinite}.animate-pulse-scale{animation:pulse-scale 2s var(--ease-in-out) infinite}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes shake-vertical{0%,to{transform:translateY(0)}10%,30%,50%,70%,90%{transform:translateY(-5px)}20%,40%,60%,80%{transform:translateY(5px)}}.animate-shake{animation:shake .5s var(--ease-out)}.animate-shake-vertical{animation:shake-vertical .5s var(--ease-out)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes float-delayed{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.animate-float{animation:float 3s var(--ease-in-out) infinite}.animate-float-delayed{animation:float-delayed 4s var(--ease-in-out) infinite}@keyframes glow{0%,to{box-shadow:0 0 20px -5px #8b5cf64d}25%{box-shadow:0 0 30px -5px #8b5cf666}50%{box-shadow:0 0 40px -5px #8b5cf680}75%{box-shadow:0 0 30px -5px #8b5cf666}}@keyframes text-glow{0%,to{text-shadow:0 0 10px rgba(139,92,246,.5)}50%{text-shadow:0 0 20px rgba(139,92,246,.8),0 0 30px rgba(139,92,246,.6)}}.animate-glow{animation:glow 3s var(--ease-in-out) infinite}.animate-text-glow{animation:text-glow 3s var(--ease-in-out) infinite}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,#ffffff1a,#fff3,#ffffff1a);background-size:1000px 100%;animation:shimmer 2s infinite}@keyframes page-enter{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes page-exit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(1.05) translateY(-10px)}}.page-enter{animation:page-enter .3s var(--ease-out) forwards}.page-exit{animation:page-exit .2s var(--ease-in) forwards}@keyframes modal-enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes modal-overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes modal-overlay-exit{0%{opacity:1}to{opacity:0}}.modal-enter{animation:modal-enter .2s var(--ease-out) forwards}.modal-exit{animation:modal-exit .15s var(--ease-in) forwards}.modal-overlay-enter{animation:modal-overlay-enter .2s var(--ease-out) forwards}.modal-overlay-exit{animation:modal-overlay-exit .15s var(--ease-in) forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-enter{animation:toast-enter .3s var(--ease-out) forwards}.toast-exit{animation:toast-exit .2s var(--ease-in) forwards}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;border-radius:50%;background:#ffffff80;transform:scale(0);opacity:0;pointer-events:none}.ripple-effect.active:after{animation:ripple .6s var(--ease-out) forwards}@keyframes blob-1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}@keyframes blob-2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,30px) scale(1.2)}66%{transform:translate(20px,-20px) scale(.8)}}@keyframes blob-3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px) scale(1.1)}66%{transform:translate(-50px,-30px) scale(1.3)}}.animate-blob-1{animation:blob-1 20s var(--ease-in-out) infinite}.animate-blob-2{animation:blob-2 25s var(--ease-in-out) infinite}.animate-blob-3{animation:blob-3 30s var(--ease-in-out) infinite}.hover-lift{transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #00000026}.hover-scale{transition:transform .2s var(--ease-out)}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow .2s var(--ease-out)}.hover-glow:hover{box-shadow:0 0 40px -5px #8b5cf680}.hover-brighten{transition:background-color .2s var(--ease-out),border-color .2s var(--ease-out)}.hover-brighten:hover{background-color:#ffffff40;border-color:#ffffff4d}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{display:inline-block;width:24px;height:24px;border:2px solid rgba(255,255,255,.2);border-top-color:#8b5cf6cc;border-radius:50%;animation:spinner 1s linear infinite}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-lg{width:32px;height:32px;border-width:3px}@keyframes dots{0%,20%{opacity:0}50%{opacity:1}80%,to{opacity:0}}.loading-dots span{animation:dots 1.4s infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
