@import"https://fonts.googleapis.com/css2?family=Titillium+Web:wght@400;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}a{font-weight:500;color:#667eea;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font-family:inherit}.app-container{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:#f8f9fa;box-shadow:0 2px 4px #00000014;border-bottom:1px solid #e0e0e0}.header-title-bar{background-color:#2770b7;color:#fff;padding:1rem 2rem}.header-title-bar h1{margin:0;font-size:14px;font-weight:400;font-family:Titillium Web,Helvetica,Arial,sans-serif;letter-spacing:0px;color:#fff}.header-logo-bar{background-color:#fff;padding:.75rem 2rem;display:flex;align-items:center;justify-content:flex-start;border-bottom:1px solid #e0e0e0}.header-content{max-width:1200px;margin:0 auto;width:100%;display:flex;align-items:center}.anac-logo{height:50px;width:auto;display:block}.app-main{flex:1;padding:2rem;max-width:1200px;width:100%;margin:0 auto}.cig-form{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a}.form-group{display:flex;flex-direction:column;gap:.75rem}.form-group label{font-weight:600;font-size:1.1rem;color:#333}.input-group{display:flex;gap:1rem}.cig-input{flex:1;padding:.75rem 1rem;font-size:1rem;border:2px solid #ddd;border-radius:8px;transition:border-color .3s}.cig-input:focus{outline:none;border-color:#667eea}.cig-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.submit-button{padding:.75rem 2rem;font-size:1rem;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:transform .2s,box-shadow .2s;white-space:nowrap}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:disabled{opacity:.6;cursor:not-allowed}.form-hint{color:#666;font-size:.9rem}.captcha-container{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #eee;display:flex;flex-direction:column;gap:.75rem}.captcha-container #mosparo-box{display:flex;justify-content:center;min-height:80px}.captcha-loading{color:#667eea;font-size:.9rem;text-align:center;padding:.5rem;background-color:#f0f4ff;border-left:3px solid #667eea;border-radius:4px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.captcha-warning{color:#ff9800;font-size:.9rem;text-align:center;padding:.5rem;background-color:#fff8e1;border-left:3px solid #ff9800;border-radius:4px}.captcha-error{color:#dc3545;font-size:.9rem;text-align:center;padding:.5rem;background-color:#fff5f5;border-left:3px solid #dc3545;border-radius:4px}@media(max-width:768px){.cig-form{padding:1.5rem}.input-group{flex-direction:column}.submit-button{width:100%}.captcha-container{margin-top:1rem}}.cig-results{margin-top:2rem}.cig-results h2{margin-bottom:1.5rem;color:#333}.result-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f0f0f0}.header-actions{display:flex;align-items:center;gap:.75rem}.export-json-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;border:none;border-radius:8px;background:linear-gradient(135deg,#036,#06c);color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .3s ease,transform .2s ease,box-shadow .3s ease;box-shadow:0 2px 8px #00336640}.export-json-btn:hover{background:linear-gradient(135deg,#004a99,#07e);transform:translateY(-1px);box-shadow:0 4px 14px #00336659}.export-json-btn:active{transform:translateY(0)}.export-json-btn svg{flex-shrink:0}.print-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;border:none;border-radius:8px;background:linear-gradient(135deg,#2d8659,#34a853);color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .3s ease,transform .2s ease,box-shadow .3s ease;box-shadow:0 2px 8px #2d865940}.print-btn:hover{background:linear-gradient(135deg,#236b47,#2d9649);transform:translateY(-1px);box-shadow:0 4px 14px #2d865959}.print-btn:active{transform:translateY(0)}.print-btn svg{flex-shrink:0}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:.4rem .7rem;background:#333;color:#fff;font-size:.75rem;font-weight:500;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:100}[data-tooltip]:hover:after{opacity:1}@media print{.header-actions,.export-json-btn,.print-btn,.scroll-to-top{display:none!important}}.status-badge{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem}.status-badge.success{background-color:#d4edda;color:#155724}.status-badge.warning{background-color:#fff3cd;color:#856404}.result-section{margin-bottom:2rem}.section-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #f0f0f0;padding-bottom:.5rem;margin-bottom:1rem}.result-section h3{color:#667eea;margin-bottom:1rem;font-size:1.3rem;border-bottom:2px solid #f0f0f0;padding-bottom:.5rem}.section-header h3{color:#667eea;font-size:1.3rem;margin:0;border-bottom:none;padding-bottom:0}.result-section h4{color:#764ba2;margin:1rem 0 .5rem;font-size:1.1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item.full-width{grid-column:1 / -1}.info-label{font-weight:600;color:#666;font-size:.9rem}.info-value{color:#333;font-size:1rem}.status-active{color:#28a745;font-weight:600}.subsection{margin-top:1.5rem;padding:1rem;background-color:#f8f9fa;border-radius:8px}.cpv-item,.cup-item{padding:.75rem;background:#fff;border-radius:6px;margin-bottom:.5rem}.badge{display:inline-block;padding:.25rem .75rem;background-color:#667eea;color:#fff;border-radius:12px;font-size:.8rem;margin-left:.5rem}.incaricato-item{padding:1rem;background-color:#f8f9fa;border-radius:8px;margin-bottom:.75rem}.incaricato-name{font-weight:600;font-size:1.1rem;margin-bottom:.5rem;color:#333}.incaricato-details{display:flex;gap:1rem;align-items:center}.cf-badge{font-family:monospace;background-color:#e9ecef;padding:.25rem .75rem;border-radius:6px;font-size:.9rem}@media(max-width:768px){.info-grid{grid-template-columns:1fr}.result-card{padding:1rem}}.table-wrapper{overflow-x:auto;border-radius:8px;box-shadow:0 2px 4px #00000014}.info-table{width:100%;border-collapse:collapse;background:#fff}.info-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.info-table th{padding:1rem;text-align:left;font-size:.95rem;letter-spacing:.5px;border:none}.info-table tbody tr{border-bottom:1px solid #e9ecef;transition:all .2s ease}.info-table tbody tr:hover{background-color:#f8f9ff;box-shadow:inset 0 2px 4px #667eea0d}.info-table tbody tr.even{background-color:#f8f9fa}.info-table tbody tr.odd{background-color:#fff}.info-table td{padding:1rem;color:#333;font-size:.95rem}.info-table td.sal-numero{font-weight:600;color:#667eea;min-width:50px}.info-table td.sal-importo{color:#28a745;font-weight:600}.sal-badge{display:inline-block;padding:.4rem .8rem;border-radius:20px;font-size:.85rem;font-weight:600;white-space:nowrap}.sal-badge.in-linea{background-color:#d4edda;color:#155724}.sal-badge.ritardo{background-color:#f8d7da;color:#721c24}.info-table td.mono{font-family:monospace;font-size:.9em;background-color:#f5f5f5;padding:1rem;letter-spacing:.5px}.info-table td.text-center{text-align:center}.sal-table tbody tr:last-child{border-bottom:none}@media(max-width:768px){.info-table th,.info-table td{padding:.75rem .5rem;font-size:.85rem}.sal-badge{font-size:.75rem;padding:.3rem .6rem}}.cig-consultazione{width:100%}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{background-color:#fee;border:1px solid #fcc;border-radius:8px;padding:1.5rem;margin-top:2rem;color:#c00}.error-container h3{margin:0 0 .5rem}.error-container p{margin:0}.no-results{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.app-footer{background-color:#2770b7;color:#fff;padding:2rem;margin-top:auto;font-family:Titillium Web,Helvetica,Arial,sans-serif}.footer-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem}.footer-section h3{margin:0 0 1rem;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.footer-item{margin-bottom:.75rem;font-size:14px;display:flex;align-items:flex-start;gap:.5rem}.footer-item .icon{margin-right:.25rem;flex-shrink:0}.footer-item a{color:#fff;text-decoration:none;transition:opacity .3s ease}.footer-item a:hover{opacity:.8;text-decoration:underline}.footer-item span{color:#fff}@media(max-width:768px){.footer-content{grid-template-columns:1fr;gap:2rem}}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;border:none;border-radius:14px;background:linear-gradient(135deg,#036,#06c);color:#fff;font-size:1.2rem;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity .4s ease,visibility .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;box-shadow:0 4px 15px #0033664d;z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{background:linear-gradient(135deg,#004a99,#07e);transform:translateY(-3px);box-shadow:0 8px 25px #0366}.scroll-to-top:active{transform:translateY(-1px);box-shadow:0 4px 12px #0033664d}.scroll-to-top svg{transition:transform .3s ease}.scroll-to-top:hover svg{transform:translateY(-2px)}@media(max-width:600px){.scroll-to-top{bottom:1.2rem;right:1.2rem;width:42px;height:42px;border-radius:12px}}
