body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.numeric-keypad{background-color:#f8f9fa;border-radius:15px;box-shadow:0 2px 4px #0000001a;margin:20px auto;max-width:450px;padding:15px;transform:scale(1);transform-origin:center;width:100%}.keypad-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);min-height:450px;padding:15px}.keypad-button{aspect-ratio:1;background-color:#fff;border:none;border-radius:12px;box-shadow:0 2px 4px #0000001a;color:#333;cursor:pointer;font-size:36px;font-weight:700;min-height:80px;transition:all .2s ease}.keypad-button:hover{background-color:#e9ecef;box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.keypad-button:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.keypad-button.clear,.keypad-button.delete{background-color:#f8f9fa;color:#dc3545;font-size:30px}.keypad-button.clear:hover,.keypad-button.delete:hover{background-color:#dc3545;color:#fff}@media (max-width:480px){.numeric-keypad{max-width:100%}.keypad-button{font-size:30px;min-height:60px}}:root{--primary-color:#4a6bff;--primary-hover:#3a5bef;--error-color:#ff4d4d;--success-color:#4caf50;--text-color:#333;--border-color:#e0e0e0;--api-error-color:#d32f2f}.login-container{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;max-width:400px;padding:30px;width:100%}.login-box h1{color:#333;font-size:24px;margin-bottom:30px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.badge-display{border:2px solid #e9ecef;color:#333;font-size:24px;font-weight:700;letter-spacing:2px;margin-bottom:15px}input[type=text]{border:2px solid #e9ecef;border-radius:8px;font-size:16px;padding:12px;transition:border-color .3s ease;width:100%}input[type=text]:focus{border-color:#007bff;outline:none}.login-button{background-color:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px;transition:background-color .3s ease;width:100%}.login-button:hover{background-color:#0056b3}.login-button:disabled{background-color:#ccc;cursor:not-allowed}.error-message{border-radius:8px;margin-bottom:15px}.success-message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:8px;color:#28a745;margin-bottom:15px;padding:10px;text-align:center}@media (max-width:480px){.login-box{padding:20px}.login-box h1{font-size:20px}.badge-display{font-size:20px;padding:12px}.login-button,input[type=text]{font-size:14px;padding:10px}}.login-header{margin-bottom:2rem;text-align:center}.login-header h2{color:#4a6bff;color:var(--primary-color);font-size:1.8rem;font-weight:600;margin-bottom:.5rem}.login-header p{color:#666;font-size:.9rem}.error{animation:shake .5s ease;color:#ff4d4d;color:var(--error-color);font-size:.8rem;margin-top:.5rem}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.api-error{animation:fadeIn .3s ease;background-color:#d32f2f1a;border-radius:4px;color:#d32f2f;color:var(--api-error-color);font-size:.9rem;font-weight:500;margin-top:1rem;padding:.5rem;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.home-container{background-color:#fff;border-radius:16px;box-shadow:0 10px 25px #0000001a;margin:2rem auto;max-width:800px;padding:2rem}.header{align-items:center;background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;margin-bottom:2rem;padding:1rem}.header h1{color:#333;font-size:2rem;margin:0;text-align:center;width:100%}.logout-button{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem 1rem;transition:background-color .3s ease}.logout-button:hover{background-color:#c82333}.content{padding:1rem 0}.matiere-selector,.producteur-selector{border:2px solid #dc3545;border-radius:4px;margin-bottom:20px;margin-left:auto;margin-right:auto;max-width:400px;padding:10px;transition:border-color .3s ease;width:100%}.matiere-selector.selected,.producteur-selector.selected{border-color:#28a745}.matiere-selector label,.producteur-selector label{color:#333;display:block;font-weight:500;margin-bottom:8px}.select-input{background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:16px;overflow:hidden;padding:10px;text-overflow:ellipsis;transition:border-color .3s ease;white-space:nowrap;width:100%}.select-input:hover{border-color:#999}.select-input:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233;outline:none}.select-input option{max-width:100%;overflow:hidden;padding:10px;text-overflow:ellipsis;white-space:nowrap}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;color:#dc3545;margin-top:10px}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:20px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#4a90e2;height:40px;margin-bottom:10px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.confirm-button,.reset-button{background-color:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;margin-top:20px;padding:12px;transition:background-color .3s ease;width:100%}.confirm-button:hover,.reset-button:hover{background-color:#357abd}.confirm-button:disabled{background-color:#ccc;cursor:not-allowed}.qr-container{align-items:center;display:flex;flex-direction:column;padding:20px}.qr-code{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:20px 0;padding:20px}.qr-data{background-color:#f5f5f5;border-radius:4px;font-family:monospace;margin-top:10px;padding:10px;text-align:center;word-break:break-all}.select-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.warning-message{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:4px;color:#856404;margin:10px 0;padding:10px;text-align:center}.single-matiere{background-color:#f8f9fa;border:2px solid #dee2e6;border-radius:4px;color:#495057;font-weight:500;margin-top:8px;padding:10px}.badge-display{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:20px 0;padding:15px;text-align:center}.badge-label{color:#6c757d;display:block;font-size:.9rem;margin-bottom:8px}.badge-number{color:#212529;display:block;font-size:2.5rem;font-weight:700;letter-spacing:2px;margin-bottom:15px}.instruction-box{background-color:#e9ecef;border-radius:6px;margin:15px 0;padding:10px 15px}.badge-instruction{color:#495057;font-size:1rem;font-style:italic;margin:0}@media screen and (max-width:768px){.home-container{margin:0;min-height:100vh;padding:20px}.header{flex-direction:column;gap:15px;text-align:center}.header h1{font-size:24px;margin:0}.content,.matiere-selector,.producteur-selector{padding:15px}.select-input,.single-matiere{font-size:16px;padding:12px}.qr-container{padding:20px}.qr-code{margin:20px auto;max-width:300px;width:100%}.qr-code svg{height:auto;width:100%}.qr-data{font-size:14px;word-break:break-all}.confirm-button,.reset-button{font-size:16px;padding:15px;width:100%}.error-message,.warning-message{font-size:14px;padding:10px}.badge-display{margin:15px 0;padding:12px}.badge-label{font-size:.8rem}.badge-number{font-size:2rem;margin-bottom:12px}.instruction-box{margin:12px 0;padding:8px 12px}.badge-instruction{font-size:.9rem}}@supports (-webkit-touch-callout:none){.select-input,.single-matiere{font-size:16px}}*{box-sizing:border-box;padding:0}*,body{margin:0}body{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);color:#333;font-family:Poppins,sans-serif}.App,body{min-height:100vh}.App{align-items:center;display:flex;justify-content:center;padding:20px}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background-color:#ffebee;border-radius:4px;color:red;margin:10px 0;padding:10px;text-align:center}.login-form input{letter-spacing:2px;text-align:center}
/*# sourceMappingURL=main.cba288bd.css.map*/