@charset "UTF-8";:root{--font-family: "Inter", sans-serif;--font-size-xxs: 10px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 22px;--font-size-xl: 30px;--font-size-xxl: 40px}@media (max-width: 400px){:root{--font-size-xxs: 7px;--font-size-xs: 9px;--font-size-sm: 11px;--font-size-md: 13px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-xxl: 28px}}html,body{margin:0;padding:0;height:100%;background:var(--colors-background-surface);font-family:Inter,sans-serif}#app{max-width:425px;margin:0 auto;min-height:100vh;background:var(--colors-background-primary);box-shadow:0 0 10px #0000001a;display:flex;flex-direction:column;position:relative}.main-content{margin:var(--spacing-lg);flex:1;font-size:var(--font-size-md)}a{color:var(--colors-accent-blue)}a:hover{color:var(--colors-accent-blueDark)}a:active{color:var(--colors-accent-blueDarker)}p{color:var(--colors-text-body)}h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-xl)}h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-xl)}h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-lg)}h4{font-weight:var(--font-weight-md);font-size:var(--font-size-md)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);color:var(--colors-text-heading);font-size:var(--font-size-sm);gap:var(--spacing-lg);text-align:center;max-width:300px;width:100%;height:300px;margin:0 auto}.empty-state img{width:100%}.empty-state--fullscreen{width:100%;height:60vh}.global{box-shadow:0 1px 3px #0000001a;padding:var(--spacing-sm);margin:var(--spacing-lg) auto;font-size:var(--font-size-xs);text-align:center;border-radius:var(--radius-xs);align-items:center;display:flex;justify-content:center;gap:var(--spacing-sm)}.global__error{border:1px solid var(--colors-state-error);color:var(--colors-state-error)}.global__success{border:1px solid var(--colors-state-success);color:var(--colors-state-success)}.global__info{border:1px solid var(--colors-state-info);color:var(--colors-state-info)}.placeholder{background-color:#e0e0e0;border-radius:4px;width:100%;height:40px;animation:flash 2s infinite;margin:20px 0}.placeholder.image{height:50px;margin:10px}.placeholder--xs{height:20px}.placeholder--sm{height:30px}.placeholder--lg{height:50px}.placeholder.short{width:50%}.placeholder.extra__short{width:20%}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease;z-index:1000;position:relative}.fade-enter-from,.fade-leave-to{opacity:0;z-index:1000}.fade-enter-to,.fade-leave-from{opacity:1;z-index:1000}.slide-enter-active{transition:all .3s ease-out}.slide-leave-active{transition:all .3s cubic-bezier(1,.5,.8,1)}.slide-enter-from{transform:translate(100px);opacity:0}.slide-leave-to{transform:translate(150px);opacity:0}.collapse-enter-active,.collapse-leave-active{transition:all .25s ease;transform-origin:top}.collapse-enter-from,.collapse-leave-to{opacity:0;transform:scaleY(0)}.collapse-enter-to,.collapse-leave-from{opacity:1;transform:scaleY(1)}@keyframes blink{0%,50%,to{opacity:1}25%,75%{opacity:.4}}@keyframes flash{0%{background-color:#e0e0e0}50%{background-color:#f0f0f0}to{background-color:#e0e0e0}}@keyframes scan{0%{left:-60%}50%{left:60%}to{left:120%}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.pop-enter-active{animation:popIn .35s ease-out forwards}.pop-leave-active{transition:opacity .2s ease}@keyframes pulse{0%{transform:scale(0);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes idleWiggle{0%,to{left:2px}50%{left:7px}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes shine{0%{background-position:-60% 0}50%{background-position:-150% 0}to{background-position:-200% 0}}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes typing-9ch{0%{width:0}to{width:9ch}}@keyframes typing-18ch{0%{width:0}to{width:18ch}}@keyframes typing-blink{0%,50%,to{border-color:var(--colors-text-label)}25%,75%{border-color:transparent}}.footer{border-top:1px solid var(--colors-background-border)}.footer__content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm, 12px);margin:var(--spacing-lg, 16px) var(--spacing-xxl, 32px);font-size:var(--font-size-xs);color:var(--colors-text-label);text-align:center}.footer__info{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-lg, 16px);flex-wrap:wrap;justify-content:center}.footer__logo{max-width:28px;height:auto;width:100%}.footer__copyright{max-width:270px}.footer__social{display:flex;gap:var(--spacing-sm, 8px);flex-direction:column}.footer__social p{font-size:var(--font-size-sm);font-weight:var(--font-weight-md);margin:0}.footer__social-wrapper{display:flex;align-items:center;justify-content:center}.footer__social-link{color:var(--colors-icon-inactive);font-size:var(--font-size-lg);margin-left:var(--spacing-sm, 8px);transition:all .3s ease}.footer__social-link:hover{color:var(--colors-icon-active);transform:translateY(-2px)}.card{background:var(--colors-background-secondary);border-radius:var(--radius-xl, 20px);box-shadow:0 4px 16px #00000026;padding:var(--spacing-xl, 24px)}.listing-card{background:var(--colors-background-secondary);border-radius:var(--radius-xl, 20px);box-shadow:0 4px 16px #00000026;padding:var(--spacing-lg, 16px) var(--spacing-sm, 8px);display:flex;align-items:center;margin:var(--spacing-lg) 0}.listing-card__icon{display:flex;justify-content:center;align-items:center;background:var(--colors-accent-blue);color:var(--colors-background-secondary);border-radius:100%;width:32px;height:32px;margin-left:var(--spacing-xs)}.listing-card__content{display:flex;flex-direction:column;flex:1;margin:0 var(--spacing-lg);gap:var(--spacing-sm)}.listing-card__content-title{max-width:90%;width:100%;color:var(--colors-text-body);font-size:var(--font-size-sm);font-weight:var(--font-weight-lg);display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.listing-card__content-subtitle{color:var(--colors-text-label);font-size:var(--font-size-xs);font-weight:var(--font-weight-md)}.listing-card__extra{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-sm);margin-right:var(--spacing-xs)}.header{background-color:var(--colors-background-secondary);padding:var(--spacing-lg) 0;display:flex;justify-content:space-between;align-items:center;position:relative}.header .menu{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer}.header-center{flex:1;display:flex;justify-content:center}.header-logo{width:100px;height:auto;cursor:pointer}.header-right{width:var(--spacing-xxl)}.header .side-menu{position:fixed;top:0;height:100vh;background-color:var(--colors-background-surface);color:var(--colors-text-body);box-shadow:0 2px 8px #0003;z-index:1001;max-width:425px;width:100%;display:flex;flex-direction:column}.header .side-menu .menu-header{position:relative;display:flex;justify-content:center;align-items:center;padding:var(--spacing-lg);background-color:var(--colors-background-secondary)}.header .side-menu .menu-header .close-btn{position:absolute;right:var(--spacing-sm);background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;color:var(--colors-text-body)}.header .side-menu .user-info{margin:var(--spacing-lg);display:flex;background:var(--colors-background-secondary);border-radius:var(--radius-xl, 20px);box-shadow:0 4px 16px #00000026;padding:var(--spacing-xl, 24px)}.header .side-menu .user-info__wrapper{display:flex;gap:var(--spacing-lg);align-items:flex-start}.header .side-menu .user-info .user-icon{flex-shrink:0;color:var(--colors-text-label);align-self:flex-start;font-size:var(--font-size-xl)}.header .side-menu .user-info .user-details{display:flex;flex-direction:column;flex:1;gap:var(--spacing-xs)}.header .side-menu .user-info .user-details .username{font-weight:var(--font-weight-xl);font-size:var(--font-size-lg);color:var(--colors-text-heading);-webkit-line-clamp:1;line-clamp:1;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.header .side-menu .user-info .user-details .email{font-size:var(--font-size-xs);color:var(--colors-text-label);-webkit-line-clamp:1;line-clamp:1;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.header .side-menu .user-info .user-details .edit-profile{margin-top:var(--spacing-xs);max-width:130px;width:100%;font-size:var(--font-size-sm)}.header .side-menu .user-info .qrcode{margin-left:auto;font-size:var(--font-size-xs);color:var(--colors-text-label);display:flex;align-items:center;gap:var(--spacing-xs);color:var(--colors-accent-blue);cursor:pointer}.header .side-menu .menu-block,.header .side-menu .menu-footer{background:var(--colors-background-secondary);border-radius:var(--radius-lg);box-shadow:0 2px 6px #00000014;padding:var(--spacing-sm) 0;margin:0 var(--spacing-lg)}.header .side-menu .menu-block .menu-list,.header .side-menu .menu-footer .menu-list{margin:0;list-style:none;padding:0}.header .side-menu .menu-block .menu-list li,.header .side-menu .menu-footer .menu-list li{justify-content:space-between;display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);font-weight:var(--font-weight-md);font-size:var(--font-size-md);cursor:pointer;transition:.2s ease-in;border-bottom:1px solid var(--colors-background-border)}.header .side-menu .menu-block .menu-list li:hover,.header .side-menu .menu-footer .menu-list li:hover{background-color:var(--colors-background-surface);padding-left:var(--spacing-xl)}.header .side-menu .menu-block .menu-list li:last-child,.header .side-menu .menu-footer .menu-list li:last-child{border-bottom:none}.header .side-menu .menu-block .menu-list li .menu-left,.header .side-menu .menu-footer .menu-list li .menu-left{display:flex;align-items:center;gap:var(--spacing-lg);color:var(--colors-text-body);text-decoration:none}.header .side-menu .menu-block .menu-list li .menu-left.logout,.header .side-menu .menu-footer .menu-list li .menu-left.logout{color:var(--colors-state-error)}.header .side-menu .menu-block .menu-list li svg.menu-icon,.header .side-menu .menu-footer .menu-list li svg.menu-icon{max-width:20px;height:20px}.header .side-menu .menu-block .menu-list li svg.menu-arrow,.header .side-menu .menu-footer .menu-list li svg.menu-arrow{color:var(--colors-text-label);max-width:15px;height:15px}.header .side-menu .menu-block .menu-list li svg.menu-arrow.logout,.header .side-menu .menu-footer .menu-list li svg.menu-arrow.logout{color:var(--colors-state-error)}.header .side-menu .menu-block .menu-list li svg.menu-arrow.cancel-btn,.header .side-menu .menu-footer .menu-list li svg.menu-arrow.cancel-btn{margin-left:8px;background:transparent;border:none;color:var(--colors-primary);cursor:pointer;font-size:.9rem}.header .side-menu .menu-list{list-style:none;padding:0}.header .side-menu .menu-list li{align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg)}.header .side-menu .menu-footer{margin:var(--spacing-xl) var(--spacing-lg)}.modal__qr{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--spacing-lg)}.modal__qr .modal__code{background:var(--colors-background-surface);border:1px solid var(--colors-background-border);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-lg);font-weight:var(--font-weight-xl);font-size:var(--font-size-md);color:var(--colors-text-heading);margin:0 0 var(--spacing-sm);cursor:pointer}.modal__qr .modal__code-icon{margin-left:var(--spacing-sm)}.modal__qr .modal__code-feedback{margin-left:.5rem;color:var(--colors-state-success);font-size:.875rem}.form__item{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px);margin-bottom:var(--spacing-lg, 16px)}.form__label{font-size:var(--font-size-sm);color:var(--colors-text-body)}.form__label.required:after{content:" *";color:red;font-weight:400}.form__input{padding:var(--spacing-md, 12px);border:1px solid var(--colors-background-border);border-radius:var(--radius-sm, 8px);font-size:var(--font-size-md);background:var(--colors-background-surface)}.form__input::placeholder{color:var(--colors-text-label);opacity:.8}.form__input :-webkit-input-placeholder{color:var(--colors-text-label)}.form__input :-ms-input-placeholder{color:var(--colors-text-label)}.form__input:focus{border-color:var(--colors-secondary-purple);outline:none;box-shadow:0 0 0 2px #6763f533}.form__input.error{border-color:var(--colors-state-errorLight, red);box-shadow:0 0 0 1px #ff00004d}.form__input:disabled{color:var(--colors-text-disabled);outline:none}.form input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--colors-accent-blue);border-radius:var(--radius-xs, 4px)}.form input[type=checkbox]:hover{accent-color:var(--colors-accent-blueDark)}.form input[type=checkbox]:focus{accent-color:var(--colors-accent-blueDarker)}.form__hint{font-size:var(--font-size-xxs);color:var(--colors-text-label);margin-top:var(--spacing-xxs, 2px);font-style:italic}.form__error{font-size:var(--font-size-xs);color:var(--colors-state-error);margin-top:var(--spacing-xxs, 2px)}.form__success{padding:var(--spacing-sm);background:var(--colors-state-successLight);font-size:var(--font-size-xs);color:var(--colors-state-success);margin-top:var(--spacing-xxs, 2px);text-align:center;border-radius:var(--radius-xs)}.form__success svg{margin-right:var(--spacing-sm)}.form__info{font-size:var(--font-size-sm);color:var(--colors-text-label)}.form .radio-option{background:var(--colors-background-secondary);border-color:var(--colors-icon-inactive);transition:all .25s ease;margin-top:var(--spacing-sm, 8px);height:30px;align-content:center;justify-content:space-between;display:flex;gap:var(--spacing-sm, 8px)}.form .radio-option:hover{border-color:var(--colors-secondary-purpleDark);background-color:var(--colors-background-surface)}.form .radio-option label{display:flex;align-items:center;cursor:pointer;flex:1}.form .radio-option .label-text{flex:1}.form .radio-option img{width:40px;height:40px;object-fit:contain}.form .radio-option:has(input:checked){opacity:1;pointer-events:auto}.form .radio-option:has(input:checked):has(input[type=radio][value=halal]:checked){border-color:var(--colors-secondary-purple);accent-color:var(--colors-secondary-purple);box-shadow:0 0 0 2px #6763f533}.form .radio-option:has(input:checked):has(input[type=radio][value=vegetarian]:checked){border-color:var(--colors-state-success);accent-color:var(--colors-state-success);box-shadow:0 0 0 2px #00c85333}.form .radio-option:has(input:checked):has(input[type=radio][value=normal]:checked){border-color:var(--colors-accent-blue);accent-color:var(--colors-accent-blue);box-shadow:0 0 0 2px #2196f333}.form .radio-option.disabled{opacity:.5;cursor:not-allowed;pointer-events:none;background:var(--colors-background-surface);border-color:var(--colors-icon-disabled)}.form .radio-option.disabled:hover{border-color:var(--colors-icon-inactive);background:var(--colors-background-secondary)}.form .checkbox-group{flex-direction:row;align-items:flex-start;margin-top:var(--spacing-xl, 24px);font-size:var(--spacing-sm);transition:transform .2s ease}.form .checkbox-group:hover{transform:scale(1.02)}.form__actions{margin-top:var(--spacing-xl, 24px);display:flex;justify-content:center}.form__options{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.form__options .checkbox-group{margin-top:0}.form .password-wrapper{position:relative;display:flex;align-items:center}.form .password-wrapper .form__input{width:100%}.form .password-wrapper .password-toggle{position:absolute;right:8px;background:none;border:none;cursor:pointer;height:100%;padding:8px 0;color:var(--colors-icon-inactive)}.form .password-wrapper .password-toggle:hover{color:var(--colors-icon-disabled)}.btn{width:100%;border-radius:var(--radius-sm, 8px);font-size:var(--font-size-md);font-weight:var(--font-weight-lg);display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .25s ease,transform .2s ease,box-shadow .25s ease;height:45px;text-align:center;padding:0 var(--spacing-xxs);text-decoration:none;color:var(--colors-text-heading)}.btn--lg{width:100%;border-radius:var(--radius-sm, 8px);color:var(--colors-text-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-xl);display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .25s ease,transform .2s ease,box-shadow .25s ease;height:55px;text-align:center;padding:0 var(--spacing-xxs)}.btn--sm{width:100%;border-radius:var(--radius-sm, 8px);color:var(--colors-text-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-md);display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .25s ease,transform .2s ease,box-shadow .25s ease;height:35px;text-align:center;padding:0 var(--spacing-xxs)}.btn--with-icon{width:100%;border-radius:var(--radius-sm, 8px);color:var(--colors-text-heading);font-size:var(--font-size-md);font-weight:var(--font-weight-lg);display:flex;cursor:pointer;transition:background-color .25s ease,transform .2s ease,box-shadow .25s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xs);height:auto}.btn--primary{background-color:var(--colors-primary-gold);border:none}.btn--primary:hover{box-shadow:2px 2px #000c;background-color:var(--colors-primary-goldDark);transform:translateY(-2px);color:var(--colors-text-heading)}.btn--primary:active{transform:translateY(0);background-color:var(--colors-primary-goldDarker);border:1px solid var(--colors-text-heading);box-shadow:none}.btn--primary:focus{transform:translateY(0);background-color:var(--colors-primary-goldDarker);border:1px solid var(--colors-text-heading);box-shadow:none}.btn--primary:disabled{background-color:var(--colors-primary-goldLight);cursor:not-allowed;color:var(--colors-text-disabled)}.btn--primary:disabled:hover{box-shadow:none;transform:none}.btn--secondary{border:2px solid var(--colors-primary-gold);background-color:var(--colors-background-secondary)}.btn--secondary:hover{box-shadow:2px 2px #000c;transform:translateY(-2px);color:var(--colors-text-heading)}.btn--secondary:active{transform:translateY(0);background-color:var(--colors-primary-goldDarker);box-shadow:0 0 0 1.5px #000c}.btn--secondary:focus{transform:translateY(0);background-color:var(--colors-primary-goldDarker);box-shadow:0 0 0 1.5px #000c}.btn--secondary:disabled{background-color:var(--colors-primary-goldLight);cursor:not-allowed;color:var(--colors-text-disabled)}.btn--back{gap:var(--spacing-sm);display:flex;align-items:center;font-size:var(--font-size-sm);cursor:pointer;margin-bottom:var(--spacing-lg);text-decoration:none}.btn--back svg{max-width:15px;height:15px}.modal__overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:999;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.modal__body{background:var(--colors-background-secondary);border-radius:var(--radius-xxl);min-width:320px;width:100%;max-width:390px;margin:0 var(--spacing-sm);max-height:90vh;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;z-index:1000}.modal__body::-webkit-scrollbar{display:none}.modal__header{background:var(--colors-primary-gold);border-radius:var(--radius-xxl) var(--radius-xxl) 0 0;padding:var(--spacing-lg);display:flex;align-items:center;justify-content:space-between}.modal__header h3{margin:0}.modal__header--icon{border-radius:100%;background:var(--colors-background-secondary);padding:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);transition:background .3s ease,transform .2s ease,box-shadow .2s ease}.modal__header--icon:hover{background:var(--colors-background-border);transform:scale(1.1);box-shadow:0 4px 12px #00000026}.modal__header--icon:active{transform:scale(.95);box-shadow:0 2px 6px #0000001a}.modal__content{padding:var(--spacing-lg) var(--spacing-xl)}.modal__content h4{margin:0}.swiper.swiper-container{position:relative;max-width:100%;height:40px;background:linear-gradient(135deg,var(--colors-primary-gold) 0%,var(--colors-primary-goldDark) 100%);border-radius:var(--radius-sm);overflow:hidden;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none;box-shadow:inset 0 0 4px #ffffff4d}.swiper.swiper-container:before{content:"";position:absolute;top:0;left:-60%;width:60%;height:100%;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.35) 50%,transparent 100%);pointer-events:none}.swiper.swiper-container:after{content:"Swipe to Redeem";position:absolute;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-md);font-weight:var(--font-weight-lg);background:linear-gradient(90deg,var(--colors-text-body) 0%,var(--colors-text-body) 30%,var(--colors-primary-goldLight) 50%,var(--colors-text-body) 70%,var(--colors-text-body) 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:shine 2.5s linear infinite;pointer-events:none}.swiper.swiper-container.success{background:var(--colors-state-successLight)}.swiper.swiper-container.success:after{content:"Redeemed";color:var(--colors-state-success);animation:popIn .3s ease}.swiper.swiper-container.success:before{content:"";position:absolute;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.4) 0%,transparent 70%);animation:pulse .6s ease-out}.swiper-progress{position:absolute;left:0;top:0;height:100%;background:linear-gradient(135deg,var(--colors-primary-goldLight) 20%,var(--colors-primary-gold) 50%,var(--colors-primary-goldDark) 100%);transition:width .1s linear;z-index:1}.swiper-slider{position:absolute;left:2px;width:50px;height:90%;background:var(--colors-background-secondary);border-radius:var(--radius-sm);display:flex;justify-content:center;align-items:center;color:var(--colors-text-heading);font-weight:var(--font-weight-lg);cursor:grab;-webkit-user-select:none;user-select:none;transition:transform .05s ease,box-shadow .25s ease;box-shadow:0 0 4px 1px #0003;animation:idleWiggle 1.5s ease-in-out infinite;z-index:9;touch-action:none;-webkit-user-drag:none}.swiper-slider:hover{transform:scale(1.05);box-shadow:0 3px 8px #00000040}.swiper-slider:active,.swiper-slider.dragging{cursor:grabbing;transform:scale(.9);box-shadow:0 1px 4px #0003;animation:none}.swiper.success .swiper-progress{width:100%!important;animation:fadeOut .5s forwards}.swiper.success .swiper-slider{opacity:0;pointer-events:none}.modal__content h4{font-size:var(--font-size-xs);font-weight:var(--font-weight-lg)}.modal__content ul{font-size:var(--font-size-xs);color:var(--colors-text-body);padding:0 var(--spacing-lg);margin-bottom:var(--spacing-xl)}.modal__content .redeem-modal{display:flex;flex-direction:column;justify-content:center;align-items:center}.modal__content .redeem-modal__title{font-size:var(--font-size-xs)}.modal__content .redeem-modal__qrcode-wrapper{position:relative;display:inline-block;margin:var(--spacing-lg) 0;max-width:160px;height:160px;width:100%}.modal__content .redeem-modal__qrcode-logo{position:absolute;top:50%;left:50%;width:40px;height:40px;transform:translate(-50%,-50%);border-radius:8px;background:var(--colors-background-secondary);padding:var(--spacing-sm)}.modal__content .redeem-modal__hint{color:var(--colors-text-label);font-size:var(--font-size-xs)}.modal__content .redeem-modal__barcode-wrapper{margin:var(--spacing-lg) 0}.modal__content .redeem-modal__code{background:var(--colors-background-surface);border:1px solid var(--colors-background-border);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-lg);font-weight:var(--font-weight-xl);font-size:var(--font-size-md);color:var(--colors-text-heading);margin:0 0 var(--spacing-sm);cursor:pointer}.modal__content .redeem-modal__code-icon{margin-left:var(--spacing-sm)}.modal__content .redeem-modal__code-feedback{margin-left:.5rem;color:var(--colors-state-success);font-size:.875rem}.modal__content .redeem-modal__timer-label{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-xs);font-size:var(--font-size-xs)}.modal__content .redeem-modal__timer{font-weight:var(--font-weight-xl);font-size:var(--font-size-lg);color:var(--colors-text-heading);transition:color .3s ease}.modal__content .redeem-modal__timer.warning{color:var(--colors-state-warning)}.modal__content .redeem-modal__timer.danger{color:var(--colors-state-error);animation:blink 1s infinite}.modal__content .redeem-modal__actions{margin:var(--spacing-xl) 0 var(--spacing-lg)}.modal__content .redeem-modal__success{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.enlarge-modal{display:flex;justify-content:center}.badge{border-radius:var(--radius-xs);text-align:center;font-weight:var(--font-weight-lg)}.badge--sm{padding:var(--spacing-xxs) var(--spacing-sm);font-size:var(--font-size-xxs)}.badge--error{color:var(--colors-state-error);background-color:var(--colors-state-errorLight)}.badge--success{color:var(--colors-state-success);background-color:var(--colors-state-successLight)}.badge--warning{color:var(--colors-state-warning);background-color:var(--colors-state-warningLight)}.badge--info{color:var(--colors-state-info);background-color:var(--colors-state-infoLight)}.pagination-wrapper{display:flex;justify-content:center;margin-top:var(--spacing-xxl)}.pagination-wrapper .load-more{text-align:center;max-width:300px;width:100%}.pagination-wrapper .pagination{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.pagination-wrapper .page-btn{min-width:28px;min-height:28px;padding:var(--spacing-xs);border:1px solid var(--colors-background-border);border-radius:var(--radius-xs);cursor:pointer;background:var(--colors-background-secondary);color:var(--colors-text-body);font-size:var(--font-size-sm)}.pagination-wrapper .page-btn:disabled{opacity:.5;cursor:not-allowed;color:var(--colors-text-disabled)}.pagination-wrapper .page-input{width:32px;height:28px;text-align:center;border:1px solid var(--colors-icon-inactive);border-radius:var(--radius-xs);font-size:var(--font-size-md)}.search-wrapper{position:relative;width:100%}.search-wrapper .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--colors-text-label);opacity:.8}.search-wrapper .search-input{width:100%;max-width:100%;box-sizing:border-box;background:var(--colors-background-secondary);border-radius:var(--radius-sm);padding:var(--spacing-md) var(--spacing-xxxl);border:1px solid var(--colors-background-border);font-size:var(--font-size-sm)}.search-wrapper .search-input::placeholder{color:var(--colors-text-disabled)}.search-wrapper .search-input:focus{border-color:var(--colors-secondary-purple);outline:none;box-shadow:0 0 0 2px #6763f533}.collapse-item{cursor:pointer;border-bottom:1px solid var(--colors-background-border);padding:var(--spacing-md) 0;list-style:none}.collapse-item:last-child{border-bottom:none}.collapse-item__header{display:flex;justify-content:space-between;align-items:center;font-weight:var(--font-weight-md);font-size:var(--font-size-sm)}.collapse-item__body{padding:var(--spacing-xs) 0;color:var(--colors-text-label);font-size:var(--font-size-sm)}.collapse-item__icon--rotated{transform:rotate(90deg);transition:transform .2s ease}.loading-overlay{position:fixed;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:9998}.loading-box{width:100%;max-width:160px;height:160px;box-shadow:4px 4px 10px #00000026,inset 2px 0 2px #ffffffb3,inset -2px 0 2px #ffffffb3;border-radius:var(--radius-xxl);padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999}.loading-box__logo{width:100px;height:100px;animation:bounce 1.2s ease-in-out infinite}.loading-box__text{margin-top:var(--spacing-lg);display:flex;align-items:center}.loading-box__message{display:inline-block;overflow:hidden;color:var(--colors-text-heading);font-weight:var(--font-weight-md);border-right:2px solid var(--colors-background-border);white-space:nowrap;width:0;animation:typing-9ch 2s steps(9,end) infinite alternate,typing-blink .7s step-end infinite}.loading__content{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.loading__content--text{min-height:75vh;flex:1;display:flex;align-items:center;justify-content:center;color:var(--colors-text-heading)}.loading__content--text span{display:inline-block;overflow:hidden;color:var(--colors-text-heading);font-weight:var(--font-weight-md);border-right:2px solid var(--colors-background-border);white-space:nowrap;width:0;animation:typing-18ch 2s steps(18,end) infinite alternate,typing-blink .7s step-end infinite}.loading__content--skeleton{height:25px;width:100%;border-radius:var(--radius-xs);margin-bottom:var(--spacing-xxs);background:linear-gradient(90deg,#c8c8c84d 25%,#c8c8c880,#c8c8c84d 75%);background-size:200% 100%;animation:skeleton 3s linear infinite}.register.page,.login.page,.forgot.page,.reset.page{display:flex;flex-direction:column;justify-content:space-between;align-items:center;flex:1;padding:var(--spacing-lg, 16px);margin:0 var(--spacing-xxl, 32px)}.register-content,.login-content,.forgot-content,.reset-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl, 24px);margin-top:auto;margin-bottom:auto;width:100%}.register-content img,.login-content img,.forgot-content img,.reset-content img{max-width:200px;width:100%;object-fit:contain}.register .card,.login .card,.forgot .card,.reset .card{width:100%}.register .card p,.login .card p,.forgot .card p,.reset .card p{font-size:var(--font-size-xs);color:var(--colors-text-label);margin:0 0 var(--spacing-xl, 24px);line-height:var(--font-size-md);text-align:justify}.register .card p span,.login .card p span,.forgot .card p span,.reset .card p span{font-weight:var(--font-weight-xl);color:var(--colors-secondary-purple);display:flex;gap:var(--spacing-xs, 4px);line-height:100%}.register .card p.login-link,.login .card p.login-link,.forgot .card p.login-link,.reset .card p.login-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-sm);color:var(--colors-text-body);text-align:center;margin-top:var(--spacing-lg);margin-bottom:0}.login h1{margin:0 0 var(--spacing-xl, 24px)}.register.page{margin-bottom:var(--spacing-xxl, 32px)}.register h1{margin:0 0 var(--spacing-xs, 4px)}.register-success{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;inset:0;z-index:2000;pointer-events:auto}.register-success-section{text-align:center;transform-origin:center center;position:fixed;z-index:100}.register-success-box{width:100%;max-width:320px;background:var(--colors-background-secondary);padding:var(--spacing-xl);border-radius:var(--radius-xl);box-shadow:0 6px 30px #0000002e;text-align:center;margin-top:var(--spacing-xl);box-shadow:0 4px 12px #0003}.register-success .success-icon{color:var(--colors-state-success);font-size:var(--font-size-xxl)}.register-success h1{margin:var(--spacing-sm)}.register-success p{color:var(--colors-text-label);font-weight:var(--font-weight-md);line-height:var(--font-size-lg)}.register-success .btn{margin-top:var(--spacing-xl)}.register h1.register-closed{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.profile,.password{gap:var(--spacing-lg, 16px)}.forgot h1,.reset h1{margin:0}.forgot .card p,.reset .card p{line-height:var(--font-size-lg)}.forgot .card div.text-hint,.reset .card div.text-hint{font-size:var(--font-size-xs);color:var(--colors-text-label);padding-bottom:var(--spacing-md)}.forgot .card .login-link,.reset .card .login-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-sm);margin-top:var(--spacing-lg);margin-bottom:0;display:flex;justify-content:center;align-items:center}.voucher-layout.voucher-item{background-color:var(--colors-background-secondary);border-radius:var(--spacing-md);box-shadow:0 2px 8px #0003;padding:var(--spacing-sm);margin:var(--spacing-xs) 0;transition:transform .2s,box-shadow .2s;cursor:pointer;position:relative}.voucher-layout.voucher-item .status-badge__wrapper{position:absolute;top:5px;right:5px;border-top-right-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-lg)}.voucher-layout.voucher-item .status-badge__wrapper:before{content:"";position:absolute;top:0;left:-4px;width:4px;height:4px;border-radius:100%;z-index:0}.voucher-layout.voucher-item .status-badge__wrapper:after{content:"";position:absolute;bottom:-5px;right:0;width:5px;height:5px;border-radius:100%;z-index:0}.voucher-layout.voucher-item .status-badge__wrapper.active{background:var(--colors-state-successLight);color:var(--colors-state-success)}.voucher-layout.voucher-item .status-badge__wrapper.active:before,.voucher-layout.voucher-item .status-badge__wrapper.active:after{background:var(--colors-state-success);border:1px solid var(--colors-state-successLight)}.voucher-layout.voucher-item .status-badge__wrapper.upcoming{background:var(--colors-state-warningLight);color:var(--colors-state-warning)}.voucher-layout.voucher-item .status-badge__wrapper.upcoming:before,.voucher-layout.voucher-item .status-badge__wrapper.upcoming:after{background:var(--colors-state-warning);border:1px solid var(--colors-state-warningLight)}.voucher-layout.voucher-item .status-badge__wrapper.expired{background:var(--colors-state-errorLight);color:var(--colors-state-error)}.voucher-layout.voucher-item .status-badge__wrapper.expired:before,.voucher-layout.voucher-item .status-badge__wrapper.expired:after{background:var(--colors-state-error);border:1px solid var(--colors-state-errorLight)}.voucher-layout.voucher-item .status-badge__wrapper.redeemed{background:var(--colors-state-infoLight);color:var(--colors-state-info)}.voucher-layout.voucher-item .status-badge__wrapper.redeemed:before,.voucher-layout.voucher-item .status-badge__wrapper.redeemed:after{background:var(--colors-state-info);border:1px solid var(--colors-state-infoLight)}.voucher-layout.voucher-item .status-badge{top:0;right:0;font-size:var(--font-size-xxs);font-weight:var(--font-weight-md);border-top-right-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-lg);text-align:center;padding:var(--spacing-sm);z-index:2;text-transform:capitalize;position:relative;box-shadow:-3px 2px 3px #5050504d}.voucher-layout.voucher-item .status-badge.active{background:var(--colors-state-successLight);color:var(--colors-state-success)}.voucher-layout.voucher-item .status-badge.upcoming{background:var(--colors-state-warningLight);color:var(--colors-state-warning)}.voucher-layout.voucher-item .status-badge.expired{background:var(--colors-state-errorLight);color:var(--colors-state-error)}.voucher-layout.voucher-item .status-badge.redeemed{background:var(--colors-state-infoLight);color:var(--colors-state-info)}.voucher-layout.voucher-item:hover{transform:translateY(-2px);box-shadow:0 4px 10px #11060626}.voucher-layout.voucher-item .voucher-card{position:relative;display:flex;padding:var(--spacing-lg);border-radius:var(--radius-md);overflow:hidden}.voucher-layout.voucher-item .voucher-card.purple{background:var(--colors-gradients-purple)}.voucher-layout.voucher-item .voucher-card.orange{background:var(--colors-gradients-orange)}.voucher-layout.voucher-item .voucher-card.blue{background:var(--colors-gradients-blue)}.voucher-layout.voucher-item .voucher-card.red{background:var(--colors-gradients-red)}.voucher-layout.voucher-item .voucher-card.green{background:var(--colors-gradients-green)}.voucher-layout.voucher-item .voucher-card.yellow{background:var(--colors-gradients-yellow)}.voucher-layout.voucher-item .voucher-card.default{background:var(--colors-gradients-gray)}.voucher-layout.voucher-item .voucher-card .voucher-info{display:flex;gap:var(--spacing-xl);padding:var(--spacing-sm) 0}.voucher-layout.voucher-item .voucher-card .voucher-info .img-wrapper{display:flex;align-items:flex-end;position:absolute;bottom:0}.voucher-layout.voucher-item .voucher-card .voucher-info .img-wrapper .white-filter{filter:brightness(0) invert(1)}.voucher-layout.voucher-item .voucher-card .voucher-info img{width:80px;object-fit:contain;height:100px}@media (max-width: 400px){.voucher-layout.voucher-item .voucher-card .voucher-info img{width:70px;height:80px}}@media (max-width: 349px){.voucher-layout.voucher-item .voucher-card .voucher-info img{width:60px}}.voucher-layout.voucher-item .voucher-card .voucher-info .voucher-texts{display:flex;flex-direction:column;justify-content:center;margin-left:100px;margin-right:12px}@media (max-width: 400px){.voucher-layout.voucher-item .voucher-card .voucher-info .voucher-texts{margin-left:85px}}@media (max-width: 349px){.voucher-layout.voucher-item .voucher-card .voucher-info .voucher-texts{margin-left:70px}}.voucher-layout.voucher-item .voucher-card .voucher-info .voucher-texts .voucher-name{font-weight:var(--font-weight-xl);font-size:var(--font-size-lg);color:var(--colors-background-secondary);margin:var(--spacing-xxs) 0;display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}.voucher-layout.voucher-item .voucher-card .voucher-info .voucher-texts .voucher-name.subtext{font-size:var(--font-size-xs);font-weight:var(--font-weight-md);display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.voucher-layout.voucher-item .voucher-card:before,.voucher-layout.voucher-item .voucher-card:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:var(--colors-background-secondary);top:50%;transform:translateY(-50%);box-shadow:0 0 0 2px var(--colors-background-secondary)}.voucher-layout.voucher-item .voucher-card:before{left:-14px}.voucher-layout.voucher-item .voucher-card:after{right:-14px}.voucher-layout.voucher-item .voucher-footer{display:flex;align-items:center;padding:var(--spacing-xs) var(--spacing-md) 0;gap:var(--spacing-sm)}.voucher-layout.voucher-item .voucher-footer .terms{max-width:40%;width:100%;cursor:pointer}.voucher-layout.voucher-item .voucher-footer .spacer{flex:1}.voucher-layout.voucher-item .voucher-footer .btn-redeem{min-width:80px;max-width:50%;width:100%}.voucher-layout.voucher-item .voucher-footer .info-text{font-size:var(--font-size-xs);font-weight:var(--font-weight-md);text-align:right;width:100%;margin-bottom:var(--spacing-xs)}.voucher-layout.voucher-item .voucher-footer .info-text.upcoming{color:var(--colors-secondary-purple)}.voucher-layout.voucher-item .voucher-footer .info-text.expired{color:var(--colors-state-error)}.voucher-layout.voucher-item .voucher-footer .info-text.redeemed{color:var(--colors-state-info)}.voucher-layout.redeemed,.voucher-layout.expired{opacity:.6}.voucher-page .tabs{display:flex;position:relative;margin-bottom:var(--spacing-lg);background:var(--colors-background-secondary);border-radius:var(--radius-sm);overflow:hidden}.voucher-page .tabs button{flex:1;padding:var(--spacing-lg);border:none;background:transparent;cursor:pointer;font-weight:var(--font-weight-md);color:var(--colors-icon-inactive);font-size:var(--font-size-md);position:relative;z-index:1;transition:color .8s,font-weight .8s}.voucher-page .tabs button.active{font-weight:var(--font-weight-lg);color:var(--colors-text-heading)}.voucher-page .tabs .highlight{position:absolute;bottom:0;left:0;width:50%;height:4px;background:var(--colors-primary-gold);border-radius:var(--radius-md);transition:transform .8s ease;z-index:0}.voucher-page .voucher-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.voucher-page .voucher-group__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);border-radius:var(--radius-sm);background:#b3d7ff4d;border:1px solid var(--colors-background-border);cursor:pointer;font-weight:var(--font-weight-lg);color:var(--colors-text-body);transition:background .2s,transform .1s}.voucher-page .voucher-group__header:active{transform:scale(.98)}.voucher-page .voucher-group__header.is-open{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:none}.voucher-page .voucher-group__title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-md)}.voucher-page .voucher-group__divider{font-size:var(--font-size-xs);color:var(--colors-text-label);padding:var(--spacing-xs) 0;border:1px dashed var(--colors-background-border);background:var(--colors-background-secondary);display:flex;align-items:center;gap:var(--spacing-sm);justify-content:center;text-transform:uppercase;text-align:center}.voucher-page .mission-list{display:flex;flex-direction:column;gap:var(--spacing-md);background:#b3d7ff4d;padding:0 var(--spacing-lg) var(--spacing-lg);margin-top:0;border-radius:0 0 var(--radius-xs) var(--radius-xs);border:1px solid var(--colors-background-border);border-top:none;transition:all .2s ease}.voucher-page .mission-list.is-open{animation:popIn .25s ease}.voucher-page .mission-list .mission-failed{opacity:.5;cursor:not-allowed;pointer-events:none;filter:grayscale(.8)}.voucher-detail{display:flex;flex-direction:column}.voucher-detail .voucher-item{cursor:default}.voucher-detail .voucher-details{padding:var(--spacing-lg)}.voucher-detail .voucher-details__title{color:var(--colors-secondary-purple);font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.voucher-detail .voucher-details__description{margin:0}.voucher-detail .voucher-details__actions{margin:var(--spacing-md) 0}.voucher-detail .voucher-details__actions .date-display{margin-left:.25rem}.voucher-detail .voucher-details__actions .info-text{text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-md)}.voucher-detail .voucher-details__actions .info-text.redeemed{color:var(--colors-state-info)}.voucher-detail .voucher-details__actions .info-text.expired{color:var(--colors-state-error)}.voucher-detail .voucher-section{margin:var(--spacing-xl) 0;font-size:var(--font-size-sm);line-height:var(--font-size-lg)}.voucher-detail .voucher-section-title{color:var(--colors-secondary-purple);margin:var(--spacing-md) 0}.voucher-detail .voucher-section p{margin:0}.voucher-detail .voucher-section ol{padding:0 var(--spacing-xl)}.voucher-detail .voucher-section ol li{margin:var(--spacing-sm) 0}.attendance .listing-card{cursor:pointer}.attendance .listing-card__extra .attendance-time{font-size:var(--font-size-md);font-weight:var(--font-weight-lg);color:var(--colors-text-heading)}.attendance .listing-card__extra .attendance-status{max-width:70px}.attendance-modal__header{display:flex;flex-direction:column;gap:var(--spacing-sm);justify-content:center;align-items:center}.attendance-modal__header svg{color:var(--colors-state-success);font-size:var(--font-size-xxl)}.attendance-modal__header-status{color:var(--colors-text-heading);font-weight:var(--font-weight-xl);font-size:var(--font-size-lg)}.attendance-modal__details{margin:var(--spacing-xxl) 0}.attendance-modal__details-row{display:flex;margin:var(--spacing-sm) 0}.attendance-modal__details-row-label{flex:1;text-align:left;color:var(--colors-text-label);font-size:var(--font-size-xs)}.attendance-modal__details-row-value{flex:1;text-align:right;color:var(--colors-text-body);font-weight:var(--font-weight-xl);font-size:var(--font-size-xs)}.help.main-content{margin:0}.help-header{background:var(--colors-primary-goldLight);max-width:100%;height:auto;padding:var(--spacing-lg);text-align:center}.help-search{display:flex;flex-direction:column;align-items:center}.help-content{margin:var(--spacing-lg)}.help-content .help-section{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-xs);margin:var(--spacing-xl) 0;display:flex;flex-direction:column;gap:var(--spacing-sm);border-bottom:1px solid var(--colors-background-border)}.help-content .help-section__title{margin:0}.help-content .help-section__description{color:var(--colors-text-label);font-size:var(--font-size-xs);margin-bottom:0}.help-content .agenda-table{font-size:var(--font-size-xs);color:var(--colors-text-label)}.help-content .agenda-table td{padding:var(--spacing-xs) 0}.help-content .agenda-text{font-size:var(--font-size-xxs);color:var(--colors-text-disabled);text-align:center}.about{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-bottom:var(--spacing-xxl)}.about__image{max-width:150px;width:100%;margin-bottom:var(--spacing-md)}.about__content{font-size:var(--font-size-sm)}.about__content h4{margin:0 0 var(--spacing-md) 0}.about__content-list{list-style:none;padding:0;margin:0}.about__content-list-item{display:flex;align-items:flex-start;font-size:var(--font-size-sm);padding-top:var(--spacing-lg)}.about__content-list-item-icon{color:var(--colors-secondary-purple);font-size:var(--font-size-md);margin-right:var(--spacing-lg)}.about__content-list-item-text{width:100%;border-bottom:1px solid var(--colors-background-border);padding-bottom:var(--spacing-lg)}.about__content-list-item:last-child-text{border-bottom:none;padding-bottom:0}.legal__image{display:flex;justify-content:center;margin:var(--spacing-lg) auto}.legal__image img{max-width:200px;width:100%}.legal .card h1{margin:0 auto var(--spacing-sm)}.legal .card h2{margin:var(--spacing-xl) auto var(--spacing-sm)}.legal .card p.text--sm{font-size:var(--font-size-sm)}.legal .card p{margin:0}
