:root{--primary: #0cecbe;--primary-dark: #08a182;--primary-light: #e6fef9;--secondary: #f1cec3;--secondary-dark: #0c2568;--danger: #e74c3c;--danger-dark: #c0392b;--warning: #f39c12;--warning-dark: #e67e22;--light: #f1cec3;--dark: #051a2e;--gray: #95a5a6;--gray-light: #ecf0f1;--gray-dark: #7f8c8d;--white: #ffffff;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0}html{width:100%;overflow-x:hidden}body{width:100%;min-width:100vw;overflow-x:hidden;min-height:100vh;background-color:var(--dark);font-family:Poppins,serif,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}#root{width:100%;min-width:100vw;min-height:100vh}.app-container{min-height:100vh}.flex{display:flex;flex-direction:column;justify-content:space-between}main{flex:100;width:100%;min-width:100vw;max-width:1200px;min-height:calc(100vh - 160px);margin:0 auto var(--spacing-lg) auto;align-items:center}.container{flex:100;margin-bottom:var(--spacing-xl);padding:0 var(--spacing-lg);text-align:center;width:100%;min-width:100vw;max-width:500px;align-items:center}h1{color:var(--primary);font-size:1.6em;text-align:center;margin-bottom:var(--spacing-md)}h2{color:var(--dark);font-size:1.2em;padding:var(--spacing-sm) 0;box-shadow:var(--shadow-sm)}h3{text-align:center;margin:0;padding:var(--spacing-sm);color:var(--primary)}.filters h3{margin-bottom:0;background-color:#051a2e;color:var(--gray-light);padding:0;font-size:1.15rem;text-align:left}h4{padding:0 var(--spacing-sm);font-size:.9em}h5{font-size:smaller;font-style:italic;text-transform:uppercase;font-weight:200;padding:var(--spacing-sm)}h6{color:var(--primary);font-size:small;background-color:var(--dark);border-radius:0 0 var(--radius-md) var(--radius-md)}p{padding-bottom:var(--spacing-lg);line-height:1.1}a{color:var(--primary);text-decoration:none;transition:color .2s ease}a:hover,a:active{color:var(--primary-dark);text-decoration:underline}.auth-container{width:500px;margin-bottom:var(--spacing-xl) auto;padding:var(--spacing-xl);background-color:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:0;font-weight:500;color:var(--primary)}.auth-container button{width:100%;padding:var(--spacing-md);margin-top:var(--spacing-md);cursor:pointer;background-color:var(--dark);color:var(--primary);font-size:clamp(1em,4vw,1.2rem);font-weight:700;text-decoration:none;border:1px solid var(--primary);border-radius:var(--radius-md);box-shadow:4px 4px var(--primary);transition:.25s}.auth-container button:hover{color:var(--white);box-shadow:2px 2px var(--primary);transform:translateY(.25em)}.auth-container button:active{background-color:var(--primary);color:var(--white);box-shadow:2px 2px var(--primary);transform:translateY(.25em)}.auth-links{margin-top:var(--spacing-lg);display:flex;flex-direction:column;justify-content:space-between}.user-email{margin-right:var(--spacing-md);font-weight:500}input,select,textarea{width:100%;padding:var(--spacing-sm);border:1px solid var(--gray);border-radius:var(--radius-sm);font-family:inherit;font-size:1rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #0cecbe33}.verification-status{text-align:center;padding:var(--spacing-xl)}.verification-status p{font-size:1.1rem;margin-bottom:var(--spacing-lg)}.spinner{display:flex;justify-content:center;margin-top:var(--spacing-lg)}.spinner-circle{width:40px;height:40px;border:4px solid var(--gray-light);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.success-icon{font-size:3rem;color:var(--primary);margin-top:var(--spacing-lg)}.error-icon{font-size:3rem;color:var(--danger);margin-top:var(--spacing-lg)}.form-footer{margin-top:var(--spacing-xl)}.secondary-button{width:100%;padding:var(--spacing-md);background-color:var(--white);color:var(--dark);border:1px solid var(--gray);border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s ease}.secondary-button:hover{background-color:var(--gray-light)}.message{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-radius:var(--radius-sm);text-align:center}.message.error{background-color:#e74c3c1a;color:var(--danger);border:1px solid var(--danger)}.message.success{background-color:var(--primary-light);color:var(--primary-dark);border:1px solid var(--primary-dark)}header{margin:var(--spacing-lg) 0;z-index:10;width:100%;text-align:center}.logo{max-width:150px;height:auto}footer{flex:1;background-color:var(--primary);color:var(--dark);padding:var(--spacing-xl);display:inline-flex;justify-content:space-between}.footer-button{margin:0;border:none;padding:var(--spacing-xs);background-color:var(--primary);font-family:Poppins,serif,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--dark);font-size:1rem;font-weight:700}.icon{width:30px;height:30px;padding:5px;border-radius:var(--radius-md)}.section{width:500px;margin:auto;margin-bottom:var(--spacing-xl);padding:1px;background-color:var(--gray-light);border-radius:var(--radius-lg)}.padded{padding:var(--spacing-md)}ul{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}li{padding:var(--spacing-md);background-color:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:200px;overflow-y:auto}.ticket-details{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}.QRcode{padding:var(--spacing-md);background-color:var(--white);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.nav-container{width:500px;margin:auto;padding:0;padding-bottom:var(--spacing-xl);display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.nav-button{cursor:pointer;background-color:var(--white);color:var(--dark);font-size:1.2rem;font-weight:700;text-decoration:none;display:flex;justify-content:center;align-items:center;border:1px solid var(--primary);border-radius:var(--radius-md);box-shadow:3px 3px var(--primary);flex:1 1 auto;width:45%;height:100px;transition:all .1s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav-button:active{background-color:var(--primary);box-shadow:3px 3px var(--primary-dark);color:var(--white);text-decoration:none;transform:translateY(2px);transition:all .1s ease}.back-button,.logout-button{display:inline-block;width:80%;max-width:500px;padding:var(--spacing-md);margin:var(--spacing-xl);cursor:pointer;background-color:var(--dark);color:var(--primary);font-size:1.15rem;font-weight:700;text-decoration:none;border:1px solid var(--primary);border-radius:var(--radius-md);box-shadow:3px 3px var(--primary)}.logout-button:hover,.back-button:hover{background-color:var(--primary);color:var(--white)}.event-item{padding:0}.filters{max-width:500px;margin:auto;margin-bottom:var(--spacing-md)}.filters button{margin:0 var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md);box-shadow:3px 3px var(--primary);color:var(--dark)}.filters button:active{background-color:var(--primary)}.mappaFiera{width:100%}.vendors-section{max-height:60vh;overflow-y:scroll}.vendor-list{list-style:none;padding-top:var(--spacing-sm)}.vendors-section li a{color:var(--dark)}.vendor-list li{padding-top:var(--spacing-sm);margin-bottom:var(--spacing-lg);background-color:var(--gray-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-weight:500}.company-logo{max-width:110px;height:auto}.company-photo{max-width:100%;height:auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-xl) var(--primary)}.match-card{padding:var(--spacing-lg);background-color:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-lg)}.action-buttons{display:flex;justify-content:space-between;margin-top:var(--spacing-lg)}.action-buttons button{flex:1;margin:0 var(--spacing-sm)}.action-buttons button:first-child{margin-left:0}.validator-container{width:80%;max-width:500px;margin:0 auto;padding-bottom:40%;position:relative}.scanner-wrapper{position:relative;z-index:1}.validation-overlay{position:relative;z-index:2;margin-top:var(--spacing-lg);min-height:150px;display:flex;flex-direction:column;gap:var(--spacing-md)}.validator-controls{display:flex;gap:var(--spacing-sm);justify-content:center}.validator-result{padding:var(--spacing-md);border-radius:var(--radius-sm);animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.validator-result.valid{background-color:var(--primary);color:var(--dark);border:2px solid var(--primary);font-weight:600;box-shadow:0 4px 12px #0cecbe4d}.validator-result.invalid{background-color:var(--danger);color:var(--white);border:2px solid var(--danger);font-weight:600;box-shadow:0 4px 12px #e74c3c4d}.validator-result.loading{background-color:var(--white);color:var(--dark);border:2px solid var(--gray);font-weight:500}.clear-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--white);color:var(--dark);border:2px solid var(--primary);border-radius:var(--radius-lg);font-size:1rem;font-weight:600;font-family:Poppins,serif,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.clear-button:hover{background-color:var(--primary);color:var(--white);transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.clear-button:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.clear-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:1.2rem;font-weight:700}.clear-text{font-size:.95rem;letter-spacing:.5px}.matches-section{width:500px;margin:auto;margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background-color:var(--gray-light);border-radius:var(--radius-md)}.match-header{margin-bottom:var(--spacing-lg)}.match-header h2{box-shadow:0 0 #fff}.vendor-card-scrollable{max-height:60vh;overflow-y:auto;margin-bottom:var(--spacing-lg);border-radius:var(--radius-lg)}.vendor-card{background-color:var(--white);border:2px solid var(--primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md)}.vendor-card:active{transform:translateY(2px);box-shadow:var(--shadow-sm);background-color:var(--primary-light)}.vendor-header{margin-bottom:var(--spacing-md)}.vendor-header h3{margin:0;color:var(--dark);text-align:left;display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;flex-direction:column;align-items:flex-start}.no-matches h3{color:var(--primary-dark);margin-bottom:var(--spacing-md)}.match-description h4,.vendor-seeking h4,.vendor-contact h4{margin:0 0 var(--spacing-sm) 0;padding:0;font-size:1rem;color:var(--primary-dark)}.match-percentage{background-color:var(--primary);color:var(--dark);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-lg);font-weight:700;font-size:.8rem}.vendor-contact-info{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md);text-align:left}.vendor-contact-info div{margin-bottom:var(--spacing-sm);font-size:.9rem;text-align:left}.vendor-contact-info strong{color:var(--primary-dark)}.vendor-contact-info a{color:var(--primary);word-break:break-all}.vendor-contact-info a:hover{color:var(--primary-dark);text-decoration:underline}.vendor-description,.match-description,.vendor-seeking,.vendor-contact{margin-bottom:var(--spacing-md);text-align:left}.vendor-description p,.match-description p,.vendor-seeking p,.vendor-contact p{margin:0;padding:0;line-height:1.4;color:var(--dark)}.match-description{background-color:var(--primary-light);padding:var(--spacing-md);border-radius:var(--radius-sm);border-left:4px solid var(--primary)}.action-buttons{display:flex;flex-direction:row;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.action-buttons button{padding:var(--spacing-md);border-radius:var(--radius-md);font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);flex:1}.btn-reject{background-color:var(--gray-light);color:var(--gray-dark);border:1px solid var(--gray)}.btn-reject:active{background-color:var(--gray);color:var(--dark);transform:translateY(1px)}.btn-accept{background-color:var(--primary);color:var(--dark);border:2px solid var(--primary-dark)}.btn-accept:active{background-color:var(--primary-dark);color:var(--white);transform:translateY(1px)}.btn-contact{background-color:var(--secondary);color:var(--dark)}.btn-contact:active{background-color:var(--secondary-dark);color:var(--white);transform:translateY(1px)}.no-matches{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-md)}.no-matches p{color:var(--gray-dark);margin:0;padding:0}.tab-navigation{display:flex;margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--gray-light)}.tab-button{flex:1;padding:var(--spacing-md);background-color:transparent;border:none;border-bottom:2px solid transparent;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s ease;color:var(--gray-dark)}.tab-button.active{color:var(--primary-dark);border-bottom-color:var(--primary)}.tab-button:hover{color:var(--primary)}.tab-content{min-height:400px}.match-history{text-align:left}.history-filters{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.filter-button{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--white);border:2px solid var(--gray-light);border-radius:var(--radius-md);font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s ease;color:var(--gray-dark);flex:1;min-width:0}.filter-button.active{background-color:var(--primary);border-color:var(--primary-dark);color:var(--dark)}.filter-button:hover{border-color:var(--primary);color:var(--primary-dark)}.filter-button.active:hover{background-color:var(--primary-dark);color:var(--white)}.history-match-card{background-color:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);transition:all .2s ease}.history-match-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary)}.history-vendor-info{padding:var(--spacing-md);cursor:pointer}.history-vendor-info h4{margin:0 0 var(--spacing-sm) 0;display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.match-status{margin-bottom:var(--spacing-sm)}.status-accepted{color:#28a745;font-weight:700}.status-rejected{color:var(--gray-dark);font-weight:700}.status-none{color:var(--warning);font-weight:700}.contact-link{display:inline-block;background-color:var(--secondary);color:var(--dark);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);text-decoration:none;font-size:.8rem;font-weight:700;margin-top:var(--spacing-sm)}.contact-link:hover{background-color:var(--secondary-dark);color:var(--white)}@media (max-width: 500px){.main-content{padding:0 var(--spacing-md)}.auth-container{width:90%}.section,.nav-container,.matches-section{width:96%}.navbar{flex-direction:column;padding:var(--spacing-md)}.navbar-brand{margin-bottom:var(--spacing-md)}.list,.ticket-details{grid-template-columns:1fr}.auth-links{flex-direction:column;gap:var(--spacing-sm)}.match-percentage{align-self:flex-start}.history-filters{flex-direction:column}.filter-button{flex:none}}.setup-warning{color:var(--danger);font-size:1.1rem;margin-bottom:var(--spacing-md);padding:var(--spacing-md);background-color:#ffeaea;border-radius:var(--radius-sm);border-left:4px solid var(--danger)}.setup-description{color:var(--dark);font-size:1rem;line-height:1.5;padding-bottom:0}.profile-setup-form{text-align:left}.profile-setup-form .form-group{margin-bottom:var(--spacing-lg)}.profile-setup-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.profile-setup-form .help-text{display:block;font-size:.8rem;color:var(--gray-dark);font-weight:400;margin-top:var(--spacing-xs);line-height:1.4}.profile-setup-form textarea,.profile-setup-form input,.profile-setup-form select{color:var(--gray-dark);width:100%;padding:var(--spacing-md);border:1px solid var(--gray);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;margin-top:var(--spacing-sm)}textarea::placeholder{color:var(--gray);font-size:.9rem;font-style:italic}.profile-setup-form textarea:focus,.profile-setup-form input:focus,.profile-setup-form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #0cecbe33}.quality-reminder{background-color:var(--primary-light);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:var(--spacing-md);margin:var(--spacing-lg) 0;text-align:center}.quality-reminder p{margin:0;color:var(--dark);font-size:.95rem;padding:0}.form-actions{text-align:center;margin-top:var(--spacing-xl)}.form-actions .btn-primary{width:100%;padding:var(--spacing-lg);background-color:var(--dark);color:var(--primary);border:2px solid var(--primary);border-radius:var(--radius-md);font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:3px 3px var(--primary)}.form-actions .btn-primary:hover:not(:disabled){color:var(--white);box-shadow:2px 2px var(--primary);transform:translateY(.25em)}.form-actions .btn-primary:active:not(:disabled){background-color:var(--primary);color:var(--white);box-shadow:2px 2px var(--primary);transform:translateY(.25em)}.form-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-message{background-color:#ffeaea;color:var(--danger);padding:var(--spacing-md);border-radius:var(--radius-sm);border-left:4px solid var(--danger);margin-bottom:var(--spacing-lg);font-weight:500}@media (max-width: 600px){.profile-setup-form .form-row{grid-template-columns:1fr}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center}.loading-spinner{margin-bottom:var(--spacing-lg)}.spinner{width:50px;height:50px;border:4px solid var(--gray-light);border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{color:var(--dark);font-size:1.3rem;margin-bottom:var(--spacing-md);font-weight:600}.loading-submessage{color:var(--gray-dark);font-size:1rem;line-height:1.5;max-width:400px}
