body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (max-width:768px){h1{font-size:24px}h2{font-size:20px}table{font-size:12px}table td,table th{padding:8px 4px!important}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0f2f5;color:#212529;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 6px #0000001a;color:#fff;padding:30px 20px}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px}.header-title{text-align:left}.app-header h1{font-size:2.5rem;font-weight:700;margin-bottom:8px}.app-header p{font-size:1.1rem;opacity:.95}.logout-button{background:#fff3;border:2px solid #ffffff80;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.logout-button:hover{background:#ffffff4d;border-color:#fff}.app-loading{align-items:center;color:#666;display:flex;font-size:18px;justify-content:center;min-height:100vh}.app-main{flex:1 1;margin:0 auto;max-width:1200px;padding:30px 20px;width:100%}.app-footer{background:#343a40;color:#adb5bd;font-size:14px;padding:15px 20px;text-align:center}.app-footer a{color:#007bff;text-decoration:none}.app-footer a:hover{text-decoration:underline}@media (max-width:768px){.header-content{flex-direction:column;gap:16px}.header-title{text-align:center}.app-header h1{font-size:2rem}.app-header p{font-size:1rem}.app-main{padding:20px 15px}}.bollette-upload{margin:0 auto;max-width:700px}.bollette-upload h2{color:#333;margin-bottom:20px}.mode-selector{display:flex;gap:10px;margin-bottom:20px}.mode-selector button{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;flex:1 1;font-size:15px;padding:12px;transition:all .2s}.mode-selector button:hover{border-color:#007bff}.mode-selector button.active{background:#007bff;border-color:#007bff;color:#fff}.message{border-radius:6px;font-size:14px;margin-bottom:20px;padding:12px 16px}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.manual-form{background:#f8f9fa;border-radius:8px;padding:20px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-bottom:15px}.form-group{display:flex;flex-direction:column}.form-group label{color:#495057;font-size:14px;font-weight:500;margin-bottom:6px}.form-group input[type=date],.form-group input[type=number],.form-group input[type=text],.form-group textarea{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:10px}.form-group input:focus,.form-group textarea:focus{border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.form-group textarea{font-family:inherit;resize:vertical}.radio-group{align-items:center;display:flex;gap:15px;padding-top:8px}.radio-group label{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:6px}.radio-group input[type=radio]{cursor:pointer}.pdf-form{background:#f8f9fa;border-radius:8px;padding:20px}.drop-zone{background:#fff;border:3px dashed #ced4da;border-radius:8px;margin-bottom:20px;padding:60px 20px;text-align:center;transition:all .3s}.drop-zone.active{background:#e7f3ff;border-color:#007bff}.drop-zone.has-file{background:#d4edda;border-color:#28a745;border-style:solid}.drop-text{color:#6c757d;font-size:16px;margin-bottom:10px}.drop-or{color:#adb5bd;font-size:14px;margin:10px 0}.file-info{align-items:center;display:flex;flex-direction:column;gap:8px}.file-info p{color:#155724;font-size:15px;margin:0}.file-size{color:#6c757d!important;font-size:13px!important}.btn-primary,.btn-remove,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:500;padding:12px 24px;transition:all .2s}.btn-primary{background:#007bff;border:2px solid #007bff;width:100%}.btn-primary:hover:not(:disabled){background:#0056b3;border-color:#0056b3}.btn-primary:focus:not(:disabled){background:#007bff;outline:2px solid #0056b3;outline-offset:2px}.btn-primary:active:not(:disabled){background:#003d82;border-color:#003d82}.btn-primary:disabled{background:#6c757d;border-color:#6c757d;color:#fff;cursor:not-allowed;opacity:.65}.btn-secondary{background:#fff;border:2px solid #007bff;color:#007bff;display:inline-block}.btn-secondary:hover{background:#007bff;border-color:#007bff;color:#fff}.btn-secondary:focus{background:#fff;color:#007bff;outline:2px solid #007bff;outline-offset:2px}.btn-secondary:active{background:#0056b3;border-color:#0056b3;color:#fff}.btn-remove{background:#dc3545;border:2px solid #dc3545;color:#fff;font-size:13px;padding:8px 16px}.btn-remove:hover{background:#c82333;border-color:#c82333}.btn-remove:focus{background:#dc3545;outline:2px solid #c82333;outline-offset:2px}.btn-remove:active{background:#a02127;border-color:#a02127}.ocr-preview{background:#e7f3ff;border:2px solid #007bff;border-radius:8px;margin-bottom:20px;padding:20px}.ocr-preview h3{color:#0056b3;font-size:16px;margin:0 0 15px}.preview-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:20px}.preview-item{display:flex;flex-direction:column;gap:4px}.preview-item label{color:#6c757d;font-size:12px;font-weight:600;text-transform:uppercase}.preview-item span{color:#333;font-size:15px;font-weight:500}.preview-actions{display:flex;gap:10px}.preview-actions .btn-primary{flex:2 1;width:auto}.preview-actions .btn-secondary{flex:1 1;padding:12px 16px;text-align:center}.message.warning{background:#fff3cd;border:1px solid #ffc107;color:#856404}.message.info{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}@media (max-width:768px){.form-row{grid-template-columns:1fr}.drop-zone{padding:40px 15px}.manual-form,.pdf-form{padding:15px}}.comparator-container{margin:0 auto;width:100%}.alert-info-mercato{align-items:center;background:#e3f2fd;border-left:4px solid #2196f3;border-radius:4px;color:#0d47a1;display:flex;gap:12px;margin:16px 0;padding:12px 16px}.alert-info-mercato .alert-icon{font-size:1.5em;line-height:1}.alert-info-mercato .alert-text{flex:1 1;font-size:.95em;line-height:1.5}.alert-info-mercato .alert-text strong{font-weight:600}.comparator-error,.comparator-loading{color:#666;padding:20px;text-align:center}.comparator-error{color:#d32f2f}.btn-retry{background:#1976d2;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-top:10px;padding:8px 16px}.btn-retry:hover{background:#1565c0}.comparator-empty{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#666;padding:30px 20px;text-align:center}.empty-title{font-size:1.2em;margin-bottom:10px}.empty-subtitle{color:#888;font-size:.9em}.comparator-no-bollette{background:#fff8e1;border-color:#ffe082}.comparator-no-bollette .empty-title{color:#f57f17}.comparator-no-bollette .empty-subtitle{color:#795548}.comparator-header{color:#666;font-size:.95em;margin-bottom:15px}.comparator-header p{margin:5px 0}.table-wrapper{border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.offerte-table{background:#fff;border-collapse:collapse;font-size:.95em;width:100%}.offerte-table thead{background:#f5f5f5;border-bottom:2px solid #e0e0e0}.offerte-table th{color:#333;font-weight:600;padding:12px 8px;text-align:left}.offerte-table th.col-risparmio,.offerte-table th.col-spesa-attuale,.offerte-table th.col-spesa-stimata{text-align:right}.offerte-table th .subtitle{color:#666;display:block;font-size:.85em;font-weight:400;margin-top:2px}.offerte-table tbody tr{border-bottom:1px solid #f0f0f0}.offerte-table tbody tr:hover{background:#fafafa}.offerte-table tbody tr.row-best{background:#c8e6c9;font-weight:500}.offerte-table tbody tr.row-best td{color:#1b5e20}.offerte-table tbody tr.row-best .badge{color:#fff;font-weight:600}.offerte-table tbody tr.row-costlier{background:#ffcdd2;font-weight:500}.offerte-table tbody tr.row-costlier td{color:#b71c1c}.offerte-table tbody tr.row-costlier .badge{color:#fff;font-weight:600}.offerte-table td{padding:12px 8px;vertical-align:top}.col-provider{min-width:120px}.provider-source{margin-top:4px}.col-offerta{min-width:180px}.offerta-name{color:#333;font-size:.95em;margin-bottom:6px}.offerta-badges{display:flex;flex-wrap:wrap;gap:4px}.badge{color:#fff;font-size:.85em;white-space:nowrap}.badge-best{background:#1b5e20;color:#fff;font-weight:600}.badge-hot{background:#ff9800}.badge-warning{background:#e65100;color:#fff;font-size:.7rem;font-weight:600}.badge-green{background:#388e3c;color:#fff;font-weight:600}.badge-costlier{background:#c62828;font-weight:600}.badge-fonte{border-radius:3px;display:inline-block;font-size:.8em;font-weight:500;margin-top:4px;padding:3px 8px}.badge-fonte-arera{background:#06c;color:#fff}.badge-fonte-facile{background:#ff8c00;color:#fff}.badge-fonte-manual{background:#6c757d;color:#fff}.col-spesa-attuale{min-width:150px;text-align:right}.spesa-attuale{background-color:#fff3cd;border-radius:4px;color:#d9534f;cursor:help;display:inline-block;font-size:1.1em;font-weight:700;padding:6px 10px}.spesa-nd{color:#999;cursor:help;font-style:italic}.col-spesa-stimata{min-width:140px;text-align:right}.spesa-details{color:#666;display:flex;flex-direction:column;font-size:.85em;gap:2px;margin-top:4px}.col-risparmio{min-width:130px;text-align:right}.risparmio-positive .risparmio-pct{color:#4caf50;font-size:1.1em;font-weight:700}.risparmio-positive .risparmio-amount{color:#666;font-size:.85em;margin-top:2px}.risparmio-negative{color:#d32f2f}.risparmio-negative .risparmio-amount{font-size:.85em;margin-top:4px}.risparmio-negative .risparmio-pct-negative{color:#d32f2f;font-size:1.1em;font-weight:700;margin-top:2px}.risparmio-warning{background:#fff3e0;border-radius:4px;color:#e65100;cursor:help;font-size:.8em;margin-top:4px;padding:2px 6px}.risparmio-na{color:#999}.col-dettagli{min-width:180px}.dettagli-extra{display:flex;flex-direction:column;font-size:.9em;gap:6px}.detail-item{color:#555}.text-muted{color:#999}.link-offerta{color:#1976d2;font-weight:500;text-decoration:none}.link-offerta:hover{text-decoration:underline}.link-na{color:#ccc;font-style:italic}.detail-item.updated-at{border-top:1px solid #e0e0e0;color:#999;font-size:.85rem;margin-top:6px;padding-top:6px}.comparator-footer{background:#f5f5f5;border-radius:4px;color:#666;font-size:.85em;margin-top:15px;padding:10px}.comparator-footer p{margin:5px 0}@media (max-width:768px){.offerte-table{font-size:.85em}.col-provider{display:none}.offerte-table td,.offerte-table th{padding:8px 6px}.offerta-badges{align-items:flex-start;flex-direction:column}.spesa-attuale{font-size:1em;padding:4px 8px}.dettagli-extra{font-size:.85em;gap:4px}.comparator-header{font-size:.9em}}@media (min-width:768px) and (max-width:1024px){.offerte-table{font-size:.9em}.col-dettagli{min-width:150px}}.detail-item.updated-at{cursor:help}.manual-note{color:#666;cursor:help;font-size:.85em;margin-left:8px}.manual-note:hover{color:#333}.show-all-container{border-top:1px solid #e0e0e0;margin:1.5rem 0;padding:1rem 0;text-align:center}.btn-show-all{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .3s ease}.btn-show-all:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.btn-show-all:active{transform:translateY(0)}.show-all-hint{color:#666;font-size:.9rem;font-style:italic;margin-top:.75rem}.provider-summary{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-left:4px solid #667eea;border-radius:8px;margin:1rem 0;padding:1rem;text-align:center}.provider-summary p{color:#333;font-size:.95rem;margin:0}.contratto-attuale{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 8px 16px #00000026;color:#fff;margin-bottom:32px;padding:24px}.contratto-attuale h2{font-size:1.8rem;font-weight:600;margin:0 0 20px;text-align:center}.contratti-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:20px}.contratto-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:8px;padding:20px}.contratto-card h3{align-items:center;display:flex;font-size:1.3rem;font-weight:600;gap:8px;margin:0 0 16px}.contratto-info p{font-size:.95rem;line-height:1.5;margin:8px 0}.contratto-info strong{min-width:90px}.badge,.contratto-info strong{display:inline-block;font-weight:600}.badge{background:#ffffff40;border-radius:4px;font-size:.85rem;padding:2px 8px;text-transform:capitalize}.badge.fisso{background:#4caf50cc;color:#fff}.badge.variabile{background:#ff9800cc;color:#fff}.placeholder{color:#666;font-style:italic}.alert{border-radius:6px;font-size:.9rem;font-weight:500;margin-top:12px;padding:12px}.alert-warning{background:#ffc107e6;border:1px solid #ffc107;color:#333}.contratto-actions{display:flex;justify-content:center;margin-top:20px}.btn{border:none;border-radius:6px;cursor:pointer;display:inline-block;font-size:1rem;font-weight:600;padding:12px 28px;text-decoration:none;transition:all .2s ease}.btn-primary{background:#ffffff40;border:2px solid #ffffff80;color:#fff}.btn-primary:hover{background:#ffffff59;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.contratto-attuale.error{background:linear-gradient(135deg,#e74c3c,#c0392b)}@media (max-width:768px){.contratto-attuale{padding:16px}.contratto-attuale h2{font-size:1.5rem}.contratti-grid{grid-template-columns:1fr}.contratto-info strong{min-width:80px}}
/*# sourceMappingURL=main.751101b5.css.map*/