#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}button:focus,input:focus,textarea:focus{outline:2px solid #fff;outline-offset:2px}a{color:#fff;text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#111}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.app-container{align-items:center;background-attachment:fixed;background-color:#000;background-color:var(--background-color,#000);background-image:url(/static/media/Fond.fee2a606c5bb12afaf97.jpg);background-image:var(--background-image,url(/static/media/Fond.fee2a606c5bb12afaf97.jpg));background-position:50%;background-size:cover;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:1rem;position:relative}.app-container:before{background:#0006;bottom:0;content:"";left:0;position:fixed;right:0;top:0;z-index:-1}.app-card{background:linear-gradient(135deg,#111,#0a0a0a);border:1px solid #333;border-radius:1.25rem;box-shadow:0 15px 35px #0009;max-width:500px;overflow:hidden;position:relative;width:100%}.app-card:before{background:linear-gradient(90deg,#000,#333,#000);content:"";height:4px;left:0;position:absolute;right:0;top:0;z-index:2}.app-header{background-color:#000;color:#fff;flex-direction:column;height:150px;overflow:hidden;padding:0;position:relative;text-align:center}.app-header,.restaurant-logo{align-items:center;display:flex;justify-content:center}.restaurant-logo{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.restaurant-logo img{display:block;height:100%;object-fit:contain;object-position:center;transition:opacity .3s ease;width:100%}.app-header h1{color:#fff;font-size:1.5rem;font-weight:700;margin:0;z-index:1}.app-header p{color:#ccc;font-size:.875rem;margin:.25rem 0 0;z-index:1}.scan-container{background-color:#111;padding:2.5rem 2rem;text-align:center}.scan-container h2{color:#fff;font-size:2rem;font-weight:800;margin-bottom:2rem;padding-bottom:1rem;position:relative}.scan-container h2:after{background:linear-gradient(90deg,#0000,#fff,#0000);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.camera-container{align-items:center;background-color:#1a1a1a;border:3px dashed #444;border-radius:1rem;box-shadow:0 4px 6px #0000004d;display:flex;height:300px;justify-content:center;margin:0 auto 1.5rem;position:relative;width:100%}.camera-icon{color:#666;height:5rem;width:5rem}.camera-overlay{align-items:center;background-color:#000c;border-radius:1rem;display:flex;inset:0;justify-content:center;position:absolute}.scan-frame{border:3px solid #ffffffb3;border-radius:1rem;height:80%;position:relative;width:80%}.corner{border:0 solid #fff;height:2.5rem;position:absolute;width:2.5rem}.top-left{border-left-width:3px;border-top-width:3px;left:0;top:0}.top-right{border-right-width:3px;border-top-width:3px;right:0;top:0}.bottom-left{border-bottom-width:3px;border-left-width:3px;bottom:0;left:0}.bottom-right{border-bottom-width:3px;border-right-width:3px;bottom:0;right:0}.scan-line{align-items:center;display:flex;inset:0;justify-content:center;position:absolute}.scan-line:before{animation:pulse 2s infinite;background-color:#fff;border-radius:2px;content:"";height:3px;width:90%}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.button-primary{background:linear-gradient(135deg,#000,#111);border:2px solid #fff;border-radius:.75rem;box-shadow:0 6px 12px #0006;color:#fff;cursor:pointer;font-size:1.15rem;font-weight:700;margin:0 auto;max-width:320px;overflow:hidden;padding:1.1rem 1.75rem;position:relative;transition:all .3s ease;width:100%}.button-primary:hover{background:linear-gradient(135deg,#111,#222);box-shadow:0 8px 16px #0009;transform:translateY(-3px)}.button-primary:active{box-shadow:0 4px 8px #0006;transform:translateY(-1px)}.button-primary:after{background:#fff3;content:"";height:200%;left:-60%;position:absolute;top:-50%;transform:rotate(30deg);transition:all .6s;width:20px}.button-primary:hover:after{left:120%}.full-width{width:100%}.info-text{color:#aaa;font-size:1rem;font-weight:500;margin-top:1.5rem}.form-container{background-color:#111;margin:0 auto;max-width:420px;padding:2.5rem 2rem}.form-title{color:#fff;font-size:2rem;font-weight:800;margin-bottom:2rem;padding-bottom:1rem;position:relative;text-align:center}.form-title:after{background:linear-gradient(90deg,#0000,#fff,#0000);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{color:#ddd;display:block;font-size:1.05rem;font-weight:600;margin-bottom:.75rem;position:relative;text-align:left}.form-group label:after{background-color:#fff;border-radius:1px;bottom:-.25rem;content:"";height:2px;left:0;position:absolute;width:30px}.form-input,.form-textarea{background-color:#222;border:2px solid #333;border-radius:.75rem;box-shadow:0 2px 4px #0000004d;color:#fff;display:block;font-size:1rem;font-weight:500;padding:1rem 1.25rem;transition:all .3s ease;width:100%}.form-input:focus,.form-textarea:focus{background-color:#2a2a2a;border-color:#fff;box-shadow:0 0 0 4px #ffffff4d;outline:none}.form-input::placeholder,.form-textarea::placeholder{color:#777;font-weight:400}.form-input.error,.form-textarea.error{border-color:#f44}.form-textarea{height:10rem;min-height:8rem;resize:vertical}.form-actions{margin-top:2rem;text-align:center}.error-message{color:#f44;display:block;font-size:.875rem;margin-top:.5rem}.help-text{color:#999;display:block;font-size:.75rem;font-style:italic;margin-top:.25rem}.sms-status{border-radius:.5rem;margin-top:1rem;padding:.75rem;text-align:center}.sms-loading{color:orange;font-size:.9rem;margin:0}.sms-success{color:#27ae60;font-size:.9rem;font-weight:500;margin:0}.sms-error{color:#f44}.sms-error p{font-size:.9rem;margin:.25rem 0}.sms-error-details{font-size:.8rem!important;font-style:italic;opacity:.8}.verification-modal{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.verification-modal-content{background:linear-gradient(135deg,#111,#0a0a0a);border:1px solid #333;border-radius:1rem;max-width:400px;padding:2rem;position:relative;text-align:center;width:100%}.verification-modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:1.5rem;height:2rem;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .3s ease;width:2rem}.verification-modal-close:hover{background:#333;color:#fff}.verify-container{padding:2rem;text-align:center}.verify-title{color:#fff;color:var(--text-primary,#fff);font-size:1.75rem;font-weight:700;margin-bottom:1rem}.verify-subtitle{color:#ccc;color:var(--text-secondary,#ccc);font-size:1rem;line-height:1.5;margin-bottom:1.5rem}.verification-input{font-size:1.5rem;font-weight:600;letter-spacing:.5rem;padding:1rem;text-align:center}.button-secondary{background:#0000;border:1px solid #333;border-radius:.5rem;color:#ccc;color:var(--text-secondary,#ccc);cursor:pointer;font-size:1rem;font-weight:500;margin-left:1rem;padding:.75rem 1.5rem;transition:all .3s ease}.button-secondary:hover{background:#333;border-color:#555;color:#fff}.button-secondary:disabled{cursor:not-allowed;opacity:.5}.button-link{background:none;border:none;color:#fff;color:var(--accent,#fff);cursor:pointer;font-size:.9rem;padding:.5rem;text-decoration:underline;transition:opacity .3s ease}.button-link:hover{opacity:.8}.button-link:disabled{cursor:not-allowed;opacity:.5}.resend-section{border-top:1px solid #333;margin-top:2rem;padding-top:1.5rem}.resend-section p{color:#999;color:var(--text-light,#999);font-size:.9rem;margin-bottom:.5rem}.cooldown-info{color:#fff;color:var(--accent,#fff);font-size:.8rem;font-style:italic;margin-top:.5rem;opacity:.8}.consent-section{background:linear-gradient(135deg,#1a1a1a,#151515);border:2px solid #333;border-radius:1rem;box-shadow:0 6px 12px #0000004d;margin:2rem 0;padding:2rem;position:relative}.consent-section:before{background:linear-gradient(90deg,#000,#333,#000);content:"";height:3px;left:0;position:absolute;right:0;top:0}.consent-title{color:#fff;font-size:1.5rem;font-weight:800;margin-bottom:1.5rem;padding-bottom:.75rem;position:relative;text-align:center}.consent-title:after{background:linear-gradient(90deg,#0000,#fff,#0000);border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:50px}.consent-group{margin-bottom:1rem}.checkbox-label{align-items:center;color:#ddd;cursor:pointer;display:flex;font-size:.95rem;gap:.6rem;line-height:1.4;margin-bottom:.5rem;position:relative;-webkit-user-select:none;user-select:none}.form-checkbox{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.checkbox-box{align-items:center;background-color:#222;border:2px solid #444;border-radius:.25rem;display:inline-flex;flex-shrink:0;height:1rem;justify-content:center;transition:all .2s ease;width:1rem}.checkbox-icon{color:#fff;font-size:.65rem;line-height:1;opacity:0;transform:scale(.6);transition:opacity .15s ease,transform .15s ease}.checkbox-label:hover .checkbox-box{background-color:#333;border-color:#666}.form-checkbox:checked+.checkbox-box{background-color:#000;border-color:#fff;box-shadow:0 0 0 1px #000,0 0 0 2px #fff3}.form-checkbox:focus-visible+.checkbox-box{outline:2px solid #fff;outline-offset:2px}.form-checkbox:checked+.checkbox-box .checkbox-icon{opacity:1;transform:scale(1)}.form-checkbox.error+.checkbox-box{border-color:#f44}.checkbox-text{flex:1 1}.rgpd-link{border-bottom:1px solid #0000;color:#3498db;font-weight:600;text-decoration:none;transition:all .3s ease}.rgpd-link:hover{border-bottom-color:#2980b9;color:#2980b9}.consent-group:last-child{margin-bottom:0}.instagram-section{background:linear-gradient(135deg,#1a1a1a,#151515);border:2px solid #333;border-radius:1rem;box-shadow:0 6px 12px #0000004d;margin:2rem 0;padding:1.5rem;position:relative;text-align:center}.instagram-section:before{background:linear-gradient(90deg,#000,#333,#000);content:"";height:3px;left:0;position:absolute;right:0;top:0}.instagram-section p{color:#ddd;font-size:1.1rem;font-weight:500;margin-bottom:1.5rem}.instagram-button{align-items:center;background:linear-gradient(135deg,#000,#111);border:2px solid #fff;border-radius:.75rem;box-shadow:0 6px 12px #0006;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1rem;font-weight:700;gap:.75rem;justify-content:center;overflow:hidden;padding:1rem 1.75rem;position:relative;transition:all .3s ease}.instagram-button:hover{background:linear-gradient(135deg,#111,#222);box-shadow:0 8px 16px #0009;transform:translateY(-3px)}.instagram-button:active{transform:translateY(-1px)}.instagram-button svg{fill:none;height:24px;width:24px}.instagram-button:after{background:#fff3;content:"";height:200%;left:-60%;position:absolute;top:-50%;transform:rotate(30deg);transition:all .6s;width:20px}.instagram-button:hover:after{left:120%}.success-container{background-color:#111;display:flex;flex-direction:column;gap:2rem;padding:2.5rem 2rem;text-align:center}.success-header{margin-bottom:1rem}.success-icon{align-items:center;animation:fadeIn .5s ease-out forwards;display:flex;justify-content:center;margin-bottom:.5rem}.success-image{height:120px;object-fit:contain;width:120px}.checkmark-fallback{display:none}.checkmark{animation:fadeIn .5s ease-out forwards;height:5rem;margin:0 auto;width:5rem}.success-title{animation:fadeInUp .6s ease-out forwards;color:#fff;font-size:2.5rem;font-weight:800;margin:1rem 0 1.5rem;padding-bottom:1rem;position:relative;text-align:center}.success-title:after{background:linear-gradient(90deg,#0000,#f44,#0000);border-radius:2px;bottom:0;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:80px}.reward-showcase{animation:fadeIn .8s ease-out forwards;background:linear-gradient(135deg,#1a1a1a,#222);border:2px solid #333;border-radius:1.25rem;box-shadow:0 8px 20px #0006;margin:1rem 0 2rem;overflow:hidden;padding:2.5rem 2rem;position:relative}.reward-showcase:before{background:linear-gradient(90deg,#0000,#fff,#0000);content:"";height:3px;left:0;position:absolute;right:0;top:0}.reward-image{border:2px solid #fff;border-radius:1rem;box-shadow:0 10px 25px #0006;height:auto;margin-bottom:2rem;max-height:320px;max-width:100%;object-fit:contain;object-position:center;transition:transform .3s ease}.reward-image:hover{transform:scale(1.02)}.reward-placeholder{align-items:center;background-color:#222;border-radius:.75rem;color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:250px;justify-content:center;margin-bottom:1.5rem;width:100%}.reward-highlight{color:#fff;font-weight:800}.success-text{color:#ccc;font-size:1.25rem;font-weight:500;margin:1rem 0}.validation-section{align-items:center;display:flex;flex-direction:column;margin-bottom:1rem}.success-info{color:#aaa;font-size:1rem;font-weight:500;margin-bottom:.5rem}.validation-code{background:linear-gradient(135deg,#1a1a1a,#222);border:2px solid #333;border-radius:1.25rem;box-shadow:0 8px 16px #0006;margin-bottom:2rem;overflow:hidden;padding:2rem;position:relative}.validation-code:before{background:linear-gradient(90deg,#f44,#f66,#f44);content:"";height:4px;left:0;position:absolute;right:0;top:0}.code-label{color:#fff;font-size:1rem;font-weight:600;margin:0}.code-value{-webkit-text-fill-color:#0000;animation:codeGlow 3s infinite;background:linear-gradient(90deg,#fff,#ccc,#fff);-webkit-background-clip:text;background-clip:text;color:#fff;font-family:Courier New,monospace;font-size:2.5rem;font-weight:800;letter-spacing:3px;margin:1rem 0 0;text-shadow:0 3px 6px #00000080;word-break:break-all}@keyframes codeGlow{0%{filter:brightness(1)}50%{filter:brightness(1.2)}to{filter:brightness(1)}}.compliance-info{background-color:#1a1a1a;border:1px solid #333;border-radius:.75rem;margin:1rem 0;padding:1rem}.compliance-text{color:#999;font-size:.875rem;font-weight:500;margin:0;text-align:center}.loyalty-reward-showcase{align-items:center;display:flex;flex-direction:column;gap:1rem}.loyalty-reward-icon{align-items:center;background-color:#000;border:2px solid #fff;border-radius:50%;display:flex;height:5rem;justify-content:center;margin-bottom:.5rem;width:5rem}.reward-emoji{font-size:2.5rem}.loyalty-message-large{color:#ccc;font-size:1.1rem;font-weight:500;margin-top:.5rem;text-align:center}.discount-badge{align-items:center;animation:pulse 2s infinite;background:linear-gradient(135deg,#f44,#f66);border:3px solid #fff;border-radius:50%;box-shadow:0 8px 16px #0006;display:flex;flex-direction:column;height:140px;justify-content:center;margin:1rem auto;width:140px}.discount-percentage{color:#fff;font-size:2.8rem;font-weight:800;line-height:1;text-shadow:0 2px 4px #0000004d}.discount-text{font-size:1.1rem;text-shadow:0 1px 2px #0000004d}.discount-message,.discount-text{color:#fff;font-weight:700;text-align:center}.discount-message{background:linear-gradient(135deg,#000,#111);border:2px solid #fff;border-radius:.75rem;box-shadow:0 4px 8px #0000004d;font-size:1.2rem;margin:1.5rem 0;padding:1rem}@keyframes pulse{0%{box-shadow:0 8px 16px #0006;transform:scale(1)}50%{box-shadow:0 12px 20px #00000080;transform:scale(1.05)}to{box-shadow:0 8px 16px #0006;transform:scale(1)}}.data-recap-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d9;border:1px solid #fff3;border-radius:12px;margin:1.5rem 0;padding:1.5rem}.recap-title{border-bottom:2px solid #e74c3c;color:#fff;font-size:1.2rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem;text-align:center}.recap-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;max-width:100%}@media (max-width:768px){.recap-grid{gap:.75rem;grid-template-columns:1fr}.recap-item{align-items:center;flex-direction:row;justify-content:space-between}.recap-label{font-size:.85rem;margin-bottom:0}.recap-value{font-size:1rem;text-align:right}}.recap-item{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;display:flex;flex-direction:column;padding:.75rem}.recap-item-full{grid-column:1/-1}.recap-item:last-child{border-bottom:none}.recap-label{color:#bdc3c7;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.recap-value{color:#fff;font-size:1.1rem;font-weight:600}.recap-comment{align-items:flex-start;flex-direction:column}.recap-comment .recap-label{margin-bottom:.5rem}.recap-comment .recap-value{background:#34495e1a;border-radius:6px;padding:.5rem;text-align:left;width:100%}@media (min-width:600px){.recap-grid{grid-template-columns:1fr 1fr}.recap-comment{grid-column:1/-1}}