*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;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}.file-upload{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:800px;padding:2rem}.upload-header{margin-bottom:2rem;text-align:center}.upload-header h2{color:#2c3e50;font-size:2rem;font-weight:600;margin-bottom:.5rem}.upload-header p{color:#7f8c8d;font-size:1.1rem;margin:0}.upload-container{margin-bottom:2rem}.drag-drop-area{background:#f8f9fa;border:3px dashed #bdc3c7;border-radius:12px;cursor:pointer;padding:3rem 2rem;position:relative;text-align:center;transition:all .3s ease}.drag-drop-area:hover{background:#ecf0f1;border-color:#3498db}.drag-drop-area.drag-active{background:#e3f2fd;border-color:#3498db;transform:scale(1.02)}.drag-content{position:relative}.upload-icon{color:#7f8c8d;font-size:3rem;margin-bottom:1rem}.drag-content h3{color:#2c3e50;font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.drag-content p{color:#7f8c8d;font-size:1.1rem;margin:0}.file-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.upload-errors{background:#ffebee;border:1px solid #f44336;border-radius:8px;margin:1rem 0;padding:1rem}.error-message{color:#d32f2f;font-size:.9rem;margin-bottom:.5rem}.error-message:last-child{margin-bottom:0}.file-requirements{background:#f8f9fa;border-left:4px solid #3498db;border-radius:8px;margin:2rem 0;padding:1.5rem}.file-requirements h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.file-requirements ul{list-style:none;margin:0;padding:0}.file-requirements li{align-items:center;color:#7f8c8d;display:flex;padding:.5rem 0;position:relative}.file-requirements li:before{color:#bdc3c7;content:"○";font-size:1.2rem;margin-right:.5rem}.file-requirements li.completed:before{color:#27ae60;content:"●"}.file-requirements li.completed{color:#2c3e50}.file-requirements li strong{color:#2c3e50;font-weight:600}.file-naming-note{background:#fff3cd;border:1px solid #ffeaa7;border-left:4px solid #f39c12;border-radius:6px;margin-top:1rem;padding:.75rem}.file-naming-note p{color:#856404;font-size:.9rem;line-height:1.4;margin:0}.file-naming-note strong{color:#856404}.uploaded-files{margin-top:2rem}.file-section{margin-bottom:1.5rem}.file-section h3{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.file-list{display:flex;flex-direction:column;gap:.5rem}.file-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;padding:.75rem 1rem;transition:all .2s ease}.file-item:hover{background:#e9ecef;border-color:#dee2e6}.file-name{color:#2c3e50;flex:1 1;font-weight:500;margin-right:.5rem}.file-size{color:#7f8c8d;font-size:.9rem;margin-right:1rem}.remove-file{align-items:center;background:#e74c3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:24px;justify-content:center;transition:all .2s ease;width:24px}.remove-file:hover{background:#c0392b;transform:scale(1.1)}.upload-actions{display:flex;justify-content:center;margin-top:2rem}.next-button{border:none;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;min-width:200px;padding:1rem 2rem;transition:all .3s ease}.next-button.enabled{background:#3498db;color:#fff}.next-button.enabled:hover{background:#2980b9;box-shadow:0 4px 8px #3498db4d;transform:translateY(-2px)}.next-button.disabled{background:#bdc3c7;color:#7f8c8d;cursor:not-allowed}.next-button.disabled:hover{background:#bdc3c7;box-shadow:none;transform:none}@media (max-width:768px){.file-upload{margin:1rem;padding:1rem}.drag-drop-area{padding:2rem 1rem}.upload-icon{font-size:2rem}.drag-content h3{font-size:1.2rem}.file-requirements{padding:1rem}.file-item{align-items:flex-start;flex-direction:column;gap:.5rem}.file-name,.file-size{margin-right:0}}.constraint-tagging{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.tagging-header{margin-bottom:30px;text-align:center}.tagging-header h2{color:#2c3e50;font-size:28px;font-weight:600;margin:10px 0}.tagging-header p{color:#7f8c8d;font-size:16px;margin:5px 0 20px}.tagging-note{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:20px 0;padding:15px;text-align:left}.tagging-note p{color:#495057;font-size:14px;margin:5px 0}.tagging-note strong{color:#2c3e50}.back-button{border-radius:6px;font-size:14px;left:20px;padding:10px 15px;position:absolute;top:20px;transition:background-color .2s}.constraints-list{display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.constraint-item{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:20px;transition:box-shadow .2s}.constraint-item:hover{box-shadow:0 4px 8px #0000001a}.constraint-info{margin-bottom:20px}.constraint-info h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 10px}.constraint-id-code{font-size:14px;margin:0 0 10px;padding:8px 12px}.constraint-description{font-size:14px;line-height:1.4;margin:0 0 10px}.constraint-activities{color:#495057;font-size:13px;margin:8px 0}.constraint-stats{display:flex;gap:15px;margin-top:10px}.constraint-stats span{background:#f8f9fa;border-radius:4px;color:#495057;font-size:12px;font-weight:500;padding:4px 8px}.tagging-controls{align-items:flex-start;background:#f8f9fa;border-radius:8px;border-top:1px solid #e9ecef;display:flex;flex-direction:row;gap:32px;margin-top:15px;padding:20px}.category-controls,.group-control,.priority-control{background:#fff;border:1px solid #e9ecef;border-radius:6px;display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:180px;padding:15px}.category-controls label,.group-control label,.priority-control label{align-items:center;color:#2c3e50;display:block;display:flex;font-size:14px;font-weight:600;height:20px;line-height:1;margin-bottom:8px}.group-control select,.priority-control select{background:#fff;border:1px solid #ced4da;border-radius:6px;box-sizing:border-box;color:#495057;font-size:14px;height:42px;line-height:1.2;min-width:120px;padding:8px 12px;transition:border-color .2s,box-shadow .2s}.group-control select:focus,.priority-control select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.checkbox-group{gap:8px;justify-content:center;min-height:42px}.checkbox-group label{color:#495057;font-size:14px;font-weight:400;gap:8px;height:auto;margin:0;padding:4px 0;transition:color .2s}.checkbox-group label:hover{color:#007bff}.checkbox-group input[type=checkbox]{accent-color:#007bff;cursor:pointer;height:16px;margin:0;width:16px}.tagging-actions{margin-top:30px;text-align:center}.continue-button{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 30px;transition:background-color .2s}.continue-button:hover{background:#0056b3}.continue-button:active{transform:translateY(1px)}.clear-all-tags-button{background:#e74c3c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-left:12px;padding:12px 24px;transition:background-color .2s}.clear-all-tags-button:hover{background:#c0392b}.tagging-filters{align-items:flex-start;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem;padding:1.5rem}.tagging-filters .filter-group{display:flex;flex:1 1;flex-direction:column;gap:.5rem;min-width:200px}.tagging-filters label{align-items:center;color:#2c3e50;display:flex;font-size:14px;font-weight:600;height:20px;line-height:1;margin-bottom:.25rem}.activity-select,.group-select,.search-input,.type-select{background:#fff;border:1px solid #ced4da;border-radius:6px;box-sizing:border-box;color:#495057;font-size:14px;height:42px;line-height:1.2;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s}.activity-select:focus,.group-select:focus,.search-input:focus,.type-select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.search-input::placeholder{color:#6c757d;font-style:italic}.filter-results{align-items:flex-end;align-self:flex-end;color:#6c757d;display:flex;font-size:14px;font-weight:500;height:42px;margin-left:auto;padding-bottom:.75rem}.no-results{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:2rem 0;padding:3rem 2rem;text-align:center}.no-results p{color:#6c757d;font-size:16px;margin-bottom:1rem}.clear-filters-button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:.5rem 1rem;transition:background-color .2s}.clear-filters-button:hover{background:#5a6268}.constraint-type{background:#e9ecef;border-radius:4px;color:#6c757d;display:inline-block;font-size:12px;margin-top:.5rem;padding:.25rem .5rem}.group-management-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.group-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.group-management-header h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0}.group-manager-toggle{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.group-manager-toggle:hover{background:#2980b9;transform:translateY(-1px)}.group-manager{border-top:1px solid #dee2e6;padding-top:1rem}.group-creator{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.group-name-input{background:#fff;border:1px solid #dee2e6;font-size:.9rem;padding:.75rem}.group-name-input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.add-group-button{background:#27ae60;padding:.75rem 1.5rem;transition:all .3s ease}.add-group-button:hover:not(:disabled){background:#229954;transform:translateY(-1px)}.add-group-button:disabled{background:#95a5a6;transform:none}.groups-list h4{font-size:1rem;margin:0 0 1rem}.no-groups{background:#fff;border:1px dashed #dee2e6;padding:1rem}.groups-grid{grid-gap:.75rem;gap:.75rem}.group-item{background:#fff;border:1px solid #dee2e6;padding:.75rem 1rem;transition:all .3s ease}.group-item:hover{border-color:#3498db;box-shadow:0 2px 4px #0000001a}.remove-group-button{background:#e74c3c;border-radius:50%;font-weight:700;transition:all .2s ease}.remove-group-button:hover{background:#c0392b;transform:scale(1.1)}.group-dialog-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.group-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:90%}.group-dialog-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;padding:20px 24px}.group-dialog-header h3{color:#2c3e50;font-size:1.25rem;font-weight:600;margin:0}.close-dialog-button{background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;font-size:1.5rem;padding:4px;transition:background-color .2s}.close-dialog-button:hover{background-color:#e9ecef;color:#495057}.group-dialog-content{flex:1 1;overflow-y:auto;padding:24px}.group-creator{border-bottom:1px solid #e1e5e9;margin-bottom:24px;padding-bottom:20px}.group-creator h4{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0 0 12px}.group-input-row{align-items:center;display:flex;gap:12px}.group-name-input{border:1px solid #ced4da;border-radius:6px;flex:1 1;font-size:1rem;padding:10px 12px;transition:border-color .2s}.group-name-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.add-group-button{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 16px;transition:background-color .2s}.add-group-button:hover:not(:disabled){background:#5a6fd8}.add-group-button:disabled{background:#b8c2cc;cursor:not-allowed}.groups-list h4{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0 0 16px}.no-groups{background:#f8f9fa;border-radius:6px;color:#6c757d;font-style:italic;margin:0;padding:20px;text-align:center}.groups-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.group-item{align-items:center;background:#f8f9fa;border:1px solid #e1e5e9;border-radius:6px;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s}.group-item:hover{background:#e9ecef;border-color:#ced4da}.group-name{color:#2c3e50;font-weight:500}.remove-group-button{align-items:center;background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:24px;justify-content:center;transition:background-color .2s;width:24px}.remove-group-button:hover{background:#c82333}@media (max-width:768px){.constraint-tagging{padding:15px}.tagging-controls{flex-direction:column;gap:20px}.constraint-stats{flex-direction:column;gap:5px}.back-button{left:auto;margin-bottom:20px;position:relative;top:auto}.tagging-filters{align-items:stretch;flex-direction:column;gap:1rem}.tagging-filters .filter-group{min-width:auto}.filter-results{margin-left:0;text-align:center}.group-management-header{align-items:stretch;flex-direction:column;gap:1rem}.group-creator{flex-direction:column}.groups-grid{grid-template-columns:1fr}.group-dialog{max-height:90vh;width:95%}.group-dialog-content,.group-dialog-header{padding:16px}.group-input-row{align-items:stretch;flex-direction:column}.add-group-button{width:100%}.groups-grid{grid-template-columns:1fr}}.binning-controls{background-color:#f8f9fa;border-radius:8px;display:flex;gap:1.5rem;margin-bottom:1rem;padding:1rem}.control-group{display:flex;flex-direction:column}.control-group label{color:#6c757d;font-size:.875rem;margin-bottom:.25rem}.control-group input,.control-group select{border:1px solid #dee2e6;border-radius:4px;font-size:1rem;padding:.5rem}.interdependency-view{padding:1rem}.matrix-container{overflow-x:auto;padding-top:20px}.interdependency-view table{border-collapse:collapse;width:100%}.interdependency-view td,.interdependency-view th{border:1px solid #dee2e6;font-size:.6rem;height:35px;max-width:100px;min-width:50px;padding:.2rem;text-align:center}.interdependency-view th{background-color:#f8f9fa;font-weight:600;vertical-align:middle}.interdependency-view thead th{height:auto;padding:.5rem;text-align:center}.interdependency-view th div{font-size:.4rem;height:auto;transform:none;white-space:normal;width:auto}.interdependency-view th div span{display:inline-block;padding:0;word-break:break-all}.interdependency-view tbody th{font-size:.4rem;text-align:right;white-space:normal;word-break:break-all}.interdependency-view td{color:#fff;font-weight:700}.analysis-dashboard{min-height:100vh;padding:2rem}.back-button{align-self:flex-start;background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .3s ease}.back-button:hover{background:#5a6268;transform:translateY(-2px)}.dashboard-header h1{color:#2c3e50;font-size:2.5rem;font-weight:700;margin:0;text-align:center}.dashboard-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;min-height:600px;overflow:hidden}.view-tabs{background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;display:flex;margin:0;padding:0}.tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#6c757d;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:1rem 2rem;text-align:center;transition:all .3s ease}.tab:hover{background:#e9ecef;color:#495057}.tab.active{background:#fff;border-bottom-color:#3498db;color:#3498db}.view-content{padding:2rem}.loading-container{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;color:#2c3e50;display:flex;flex-direction:column;height:400px;justify-content:center;margin:2rem;padding:3rem}.loading-container p{color:#2c3e50;font-size:18px;font-weight:600;margin-top:1rem;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:5px solid #e9ecef;border-radius:50%;border-top-color:#007bff;height:60px;margin-bottom:1.5rem;width:60px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{color:#dc3545;padding:3rem;text-align:center}.error-container h2{color:#dc3545;margin-bottom:1rem}.overview-view{display:flex;flex-direction:column;gap:2rem}.kpi-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.kpi-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;padding:1rem;position:relative;text-align:center;transition:all .3s ease}.kpi-card:hover{box-shadow:0 8px 12px #00000026;transform:translateY(-4px)}.kpi-card.clickable{cursor:pointer;overflow:hidden;position:relative}.kpi-card.clickable:hover:after{opacity:1;transform:translateX(2px)}.kpi-card.clickable:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);box-shadow:0 8px 12px #00000026;transform:translateY(-4px)}.kpi-card[data-tooltip]{position:relative}.kpi-card.clickable:after{content:"→";font-size:1.2rem;opacity:.7;position:absolute;right:1rem;top:1rem;transition:all .3s ease;z-index:1000}.kpi-card h3{font-size:1.1rem;font-weight:600;margin:0 0 1rem;opacity:.9}.kpi-value{font-size:2.5rem;font-weight:700;height:70px;margin:0}.kpi-value-with-progress{align-items:center;display:flex;justify-content:center;margin:0}.kpi-card.critical{background:linear-gradient(135deg,#e74c3c,#c0392b)}.kpi-card.warning{background:linear-gradient(135deg,#f39c12,#e67e22)}.model-visualization h3{color:#2c3e50;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.model-controls{display:flex;margin-bottom:1rem}.model-container{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;overflow:auto;padding:1rem}.model-svg{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;min-height:600px;width:100%}.model-svg .activity-node{cursor:pointer;transition:all .3s ease}.model-svg .activity-node:hover{stroke-width:3;filter:brightness(1.1)}.model-svg .activity-label{pointer-events:none;transition:all .3s ease;-webkit-user-select:none;user-select:none}.model-svg .constraint-edge{cursor:pointer;transition:all .3s ease}.model-svg .constraint-edge:hover{stroke-width:4;filter:brightness(1.2)}.model-svg .constraint-label{transition:all .3s ease}.model-svg .constraint-label,.model-svg text{pointer-events:none;-webkit-user-select:none;user-select:none}.constraints-view{display:flex;flex-direction:column;gap:2rem}.constraints-action-bar{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:center;padding:1rem}.show-traces-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.show-traces-button:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.group-summary-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.group-summary-section h3{color:#2c3e50;font-size:1.3rem;font-weight:600;margin:0 0 1.5rem}.group-summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.group-summary-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem;transition:all .3s ease}.group-summary-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.group-summary-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.group-summary-header h4{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0}.group-severity-badge{border-radius:20px;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.group-severity-badge.critical{background:#e74c3c;color:#fff}.group-severity-badge.high{background:#f39c12;color:#fff}.group-severity-badge.medium{background:#f1c40f;color:#2c3e50}.group-severity-badge.low{background:#27ae60;color:#fff}.group-summary-stats{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}.group-stat{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;flex-direction:column;padding:.75rem .5rem;text-align:center}.group-stat .stat-label{color:#6c757d;font-size:.75rem;font-weight:500;margin-bottom:.25rem}.group-stat .stat-value{color:#2c3e50;font-size:1rem;font-weight:700}.constraint-filters{align-items:flex-start;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;flex-wrap:wrap;gap:2rem;padding:1.5rem}.constraint-filters .filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:150px}.constraint-filters .filter-group label{color:#2c3e50;font-size:.9rem;font-weight:600}.constraint-filters .filter-group input[type=number],.constraint-filters .filter-group select{background:#fff;border:1px solid #dee2e6;border-radius:4px;font-size:.9rem;padding:.5rem}.constraint-filters .filter-group input[type=checkbox]{margin-right:.5rem}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-group label{align-items:center;color:#2c3e50;cursor:pointer;display:flex;font-size:.9rem}.constraint-sort{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:1rem;padding:1rem}.constraint-sort label{color:#2c3e50;font-size:.9rem;font-weight:600}.constraint-sort select{background:#fff;border:1px solid #dee2e6;border-radius:4px;font-size:.9rem;min-width:200px;padding:.5rem}.constraints-results{padding:.5rem 0}.constraints-results p{color:#6c757d;font-size:.9rem;font-style:italic;margin:0}.constraints-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.constraint-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;flex-direction:column;height:100%;min-height:280px;padding:1.5rem;transition:all .3s ease}.constraint-card:hover{border-color:#3498db;box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.constraint-header{align-items:flex-start;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:1rem}.constraint-header h4{color:#2c3e50;flex:1 1;font-size:1.1rem;font-weight:600;margin:0 1rem 0 0}.constraint-id-code{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;color:#495057;display:inline-block;font-family:Courier New,Monaco,Menlo,Ubuntu Mono,monospace!important;font-size:11px;font-weight:500;line-height:1.3;margin:0;padding:6px 10px;word-break:break-all}.severity-badge{border-radius:20px;font-size:.8rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.severity-badge.critical{background:#e74c3c;color:#fff}.severity-badge.high{background:#f39c12;color:#fff}.severity-badge.medium{background:#f1c40f;color:#2c3e50}.severity-badge.low{background:#27ae60;color:#fff}.constraint-content{display:flex;flex:1 1;flex-direction:column;gap:1rem}.constraint-description{color:#6c757d;flex:1 1;font-size:.9rem;line-height:1.5;margin:0;min-height:3rem}.constraint-activities{background:#f8f9fa;border-left:3px solid #007bff}.constraint-activities,.constraint-group{border-radius:4px;color:#2c3e50;flex-shrink:0;font-size:.85rem;padding:.5rem}.constraint-group{background:#e8f5e8;border-left:3px solid #27ae60;margin-top:.5rem}.constraint-stats{grid-gap:.75rem;display:grid;flex-shrink:0;gap:.75rem;grid-template-columns:repeat(3,1fr);margin-top:auto}.stat{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;flex-direction:column;padding:.75rem .5rem;text-align:center}.stat-label{font-size:.75rem}.stat-value{font-size:1.1rem}.constraint-tag{background:#f8f9fa;border-radius:8px;margin-top:1rem;padding:1rem}.tag-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.priority-badge{border-radius:20px;flex-shrink:0;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.priority-badge.critical{background:#e74c3c;color:#fff}.priority-badge.high{background:#f39c12;color:#fff}.priority-badge.medium{background:#f1c40f;color:#2c3e50}.priority-badge.low{background:#27ae60;color:#fff}.tag-categories{display:flex;flex-shrink:0;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.category{border-radius:12px;font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:.25rem .5rem;text-transform:uppercase}.category.quality{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.category.efficiency{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.category.compliance{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.no-categories{background:#f8f9fa;border-radius:12px;color:#6c757d;display:inline-block;font-size:.7rem;font-style:italic;padding:.25rem .5rem}.traces-view{display:flex;flex-direction:column;gap:1rem}.trace-filters{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:2rem;padding:1.5rem}.constraint-filter-section{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;margin-bottom:1rem;padding:1.5rem}.constraint-filter-section h4{color:#856404;font-size:1rem;font-weight:600;margin:0 0 1rem}.constraint-filter-tags{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.constraint-filter-tag{align-items:center;background:#fff8e1;border:1px solid #ffd54f;border-radius:20px;color:#856404;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem .75rem;white-space:nowrap}.constraint-name{font-weight:500;white-space:nowrap}.remove-constraint-filter{align-items:center;background:#ff6b6b;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:700;height:20px;justify-content:center;transition:all .2s ease;width:20px}.remove-constraint-filter:hover{background:#ff5252;transform:scale(1.1)}.clear-all-constraints{background:#6c757d;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.clear-all-constraints:hover{background:#5a6268;transform:translateY(-1px)}.add-constraint-filter{background:#e8f5e8;border:1px solid #c3e6c3;border-radius:8px;margin-bottom:1rem;padding:1.5rem}.add-constraint-filter h4{color:#2d5a2d;font-size:1rem;font-weight:600;margin:0 0 1rem}.constraint-selector{align-items:center;display:flex;gap:1rem}.constraint-selector select{background:#fff;border:1px solid #c3e6c3;border-radius:6px;color:#2c3e50;font-size:.9rem;min-width:300px;padding:.75rem}.constraint-selector select:focus{border-color:#27ae60;box-shadow:0 0 0 2px #27ae6033;outline:none}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{color:#2c3e50;font-size:.9rem;font-weight:600}.filter-group input[type=number]{border:1px solid #dee2e6;border-radius:4px;font-size:.9rem;padding:.5rem}.filter-group input[type=checkbox]{margin-right:.5rem}.filter-group select{background:#fff;border:1px solid #dee2e6;border-radius:4px;font-size:.9rem;min-width:200px;padding:.5rem}.trace-sort{align-items:center;display:flex;gap:1rem}.trace-sort label{color:#2c3e50;font-weight:600}.trace-sort select{border:1px solid #dee2e6;border-radius:4px;font-size:.9rem;padding:.5rem}.traces-table{overflow-x:auto}.traces-results{padding:.5rem 0}.traces-results p{color:#6c757d;font-size:.9rem;font-style:italic;margin:0}.traces-table table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}.traces-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#2c3e50;font-weight:600;padding:1rem;text-align:left}.traces-table td:nth-child(2),.traces-table td:nth-child(3),.traces-table td:nth-child(4),.traces-table td:nth-child(5),.traces-table td:nth-child(6),.traces-table th:nth-child(2),.traces-table th:nth-child(3),.traces-table th:nth-child(4),.traces-table th:nth-child(5),.traces-table th:nth-child(6){text-align:center}.traces-table th.sortable{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.traces-table th.sortable:hover{background-color:#e9ecef}.traces-table .sort-indicator{color:#007bff;display:inline-block;font-size:.8em;font-weight:700;margin-right:8px;min-width:12px}.traces-table td{border-bottom:1px solid #e9ecef;padding:1rem;vertical-align:middle}.traces-table tr:hover{background:#f8f9fa}.fitness-cell{font-weight:600}.fitness-cell.low{color:#e74c3c}.fitness-cell.medium{color:#f39c12}.fitness-cell.high{color:#27ae60}.violations-cell{font-weight:600}.violations-cell.has-violations{color:#e74c3c}.detail-button{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .3s ease}.detail-button:hover{background:#2980b9;transform:translateY(-1px)}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 8px 16px #0003;max-height:80vh;max-width:1000px;overflow-y:auto}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h2{color:#2c3e50;font-size:1.5rem;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;padding:0;transition:all .3s ease;width:30px}.close-button:hover{background:#f8f9fa;color:#2c3e50}.modal-body{padding:1.5rem}.trace-summary{grid-gap:1rem;background:#f8f9fa;border-radius:8px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem;padding:1rem}.summary-item{flex-direction:column;gap:.25rem}.summary-item strong{color:#2c3e50;font-size:.9rem}.trace-alignment h3,.trace-constraints h3,.trace-events h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.events-timeline{display:flex;flex-direction:column;gap:.5rem}.event-item{background:#fff;border:1px solid #e9ecef;border-radius:6px;gap:1rem;padding:.75rem}.event-item,.event-position{align-items:center;display:flex}.event-position{background:#3498db;border-radius:50%;color:#fff;font-size:.8rem;font-weight:600;height:24px;justify-content:center;width:24px}.event-activity{color:#2c3e50;flex:1 1;font-weight:600}.event-timestamp{color:#6c757d;font-size:.9rem}.event-resource{background:#e9ecef;border-radius:4px;color:#495057;font-size:.8rem;padding:.25rem .5rem}.alignment-timeline{display:flex;flex-direction:column;gap:.5rem}.alignment-item{align-items:center;border:1px solid #e9ecef;border-radius:6px;display:flex}.alignment-item.sync{border-left:4px solid #27ae60}.alignment-item.insert{border-left:4px solid #3498db}.alignment-item.delete{border-left:4px solid #e74c3c}.alignment-type{border-radius:4px;font-size:.8rem;padding:.25rem .5rem;text-transform:uppercase}.alignment-item.sync .alignment-type{background:#d4edda;color:#155724}.alignment-item.insert .alignment-type{background:#d1ecf1;color:#0c5460}.alignment-item.delete .alignment-type{background:#f8d7da;color:#721c24}.alignment-aligned,.alignment-original{color:#2c3e50;flex:1 1}.trace-constraints{margin-bottom:2rem}.constraints-summary{grid-gap:1rem;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1.5rem;padding:1rem}.summary-stat{align-items:center;display:flex;flex-direction:column;text-align:center}.stat-label{color:#6c757d;font-size:.8rem;font-weight:500;margin-bottom:.25rem}.stat-value{color:#2c3e50;font-size:1.5rem;font-weight:700}.stat-value.violated{color:#dc2626}.stat-value.fulfilled{color:#16a34a}.stat-value.inactive{color:#6b7280}.constraints-table{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.constraints-table table{border-collapse:collapse;font-size:.9rem;width:100%}.constraints-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#2c3e50;font-size:.85rem;font-weight:600;padding:.75rem;text-align:left}.constraints-table td{border-bottom:1px solid #e9ecef;padding:.75rem;vertical-align:middle}.constraints-table tr:hover{background:#f8f9fa}.constraint-id{font-family:Courier New,monospace;font-size:.8rem;max-width:400px;min-width:350px;white-space:normal;word-break:break-all}.constraint-id code{word-wrap:break-word;background:#f1f3f4;border:1px solid #e1e5e9;border-radius:4px;color:#2c3e50;display:inline-block;max-width:100%;padding:.25rem .5rem}.activations-cell,.fulfilments-cell,.violations-cell{font-weight:600;text-align:center}.activations-cell{color:#3498db}.fulfilments-cell{color:#27ae60}.violations-cell{color:#e74c3c}.status-cell{border-radius:4px;font-size:.8rem;font-weight:600;padding:.25rem .5rem;text-align:center}.status-cell.violated{background:#fdf2f2;color:#dc2626}.status-cell.fulfilled{background:#f0fdf4;color:#16a34a}.status-cell.mixed{background:#fffbeb;color:#d97706}.status-cell.no-activity{background:#f3f4f6;color:#6b7280}.constraints-table tr.has-violations{background:#fdf2f2}.constraints-table tr.has-violations:hover{background:#fce7e7}.constraints-table tr.has-fulfilments{background:#f0fdf4}.constraints-table tr.has-fulfilments:hover{background:#dcfce7}.trace-alignment{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-top:2rem;padding:1.5rem}.alignment-description{color:#6c757d;font-size:.9rem;margin-bottom:1rem}.alignment-tabs{border-bottom:1px solid #e9ecef;display:flex;gap:0;margin-bottom:1rem}.tab-button{background:#0000;border:none;border-bottom:2px solid #0000;border-radius:0;color:#6c757d;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.tab-button:hover{background:#e9ecef;color:#495057}.tab-button.active{background:#fff;border-bottom-color:#3498db;color:#3498db}.alignment-graph{background:#fff;border:1px solid #e9ecef;border-radius:8px;margin-top:1rem;padding:1rem}.alignment-timeline{margin-bottom:1.5rem}.alignment-header{background:#e9ecef;font-weight:600}.alignment-header,.alignment-item{grid-gap:1rem;border-radius:4px;display:grid;gap:1rem;grid-template-columns:100px 1fr 1fr 1fr;margin-bottom:.5rem;padding:.75rem}.alignment-item{background:#fff;border:1px solid #dee2e6;transition:all .2s ease}.alignment-item.has-difference{background:#fff5f5;border-left:4px solid #dc3545}.alignment-item.complete,.alignment-item.synchronous{background:#f8fff8;border-left:4px solid #28a745}.alignment-item.insertion,.alignment-item.model{background:#f0f8ff;border-left:4px solid #007bff}.alignment-item.deletion,.alignment-item.log{background:#fffbf0;border-left:4px solid #ffc107}.alignment-type{font-size:.9rem;font-weight:600}.alignment-type.complete,.alignment-type.synchronous{color:#28a745}.alignment-type.insertion,.alignment-type.model{color:#007bff}.alignment-type.deletion,.alignment-type.log{color:#ffc107}.alignment-aligned,.alignment-original{background:#f8f9fa;border-radius:3px;font-family:Courier New,monospace;font-size:.9rem;padding:.25rem .5rem}.alignment-original.deleted{background:#ffe6e6;color:#dc3545;text-decoration:line-through}.alignment-aligned.inserted{background:#e6f3ff;color:#007bff;font-weight:600}.alignment-difference{color:#6c757d;font-size:.8rem;font-style:italic}.alignment-summary{grid-gap:1rem;background:#fff;border:1px solid #dee2e6;border-radius:4px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:1rem}.summary-item{align-items:center;background:#f8f9fa;border-radius:4px;display:flex;justify-content:space-between;padding:.5rem}.summary-label{color:#495057;font-weight:600}.summary-value{color:#212529;font-weight:600}.summary-value.insertion{color:#007bff}.summary-value.deletion{color:#ffc107}@media (max-width:768px){.alignment-header,.alignment-item{gap:.5rem;grid-template-columns:80px 1fr 1fr}.alignment-difference{display:none}.alignment-summary{grid-template-columns:1fr}.analysis-dashboard,.dashboard-header{padding:1rem}.dashboard-header h1{font-size:2rem}.view-tabs{border-radius:12px 12px 0 0;flex-direction:column}.tab{border-bottom:1px solid #e9ecef;padding:.75rem 1rem;width:100%}.tab.active{border-bottom-color:#3498db}.view-content{padding:1rem}.constraints-grid,.kpi-grid{grid-template-columns:1fr}.trace-filters{align-items:stretch;flex-direction:column}.traces-table{font-size:.9rem}.traces-table td,.traces-table th{padding:.5rem}.modal-content{margin:1rem;max-width:calc(100vw - 2rem)}}.variants-view{display:flex;flex-direction:column;gap:1rem}.variants-action-bar{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:center;padding:1rem}.variant-filters{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:2rem;padding:1.5rem}.variants-results{padding:.5rem 0}.variants-results p{color:#6c757d;font-size:.9rem;font-style:italic;margin:0}.variants-table{overflow-x:auto}.variants-table table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}.variants-table td{border-bottom:1px solid #e9ecef;padding:1rem;text-align:center;vertical-align:middle}.variants-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#2c3e50;font-weight:600;padding:1rem;text-align:center}.variants-table tr:hover{background:#f8f9fa}.sequence-cell{font-family:Courier New,monospace;font-size:.8rem;max-width:400px;text-align:left;white-space:normal;word-break:break-all}.sequence-display{align-items:flex-start;display:flex;gap:.5rem}.sequence-toggle{background:none;border:none;color:#3498db;cursor:pointer;flex-shrink:0;font-size:.8rem;margin:.1rem 0 0;padding:0;transition:all .2s ease}.sequence-toggle:hover{color:#2980b9;transform:scale(1.1)}.chevron{display:inline-block;transition:transform .2s ease}.chevron.expanded{transform:rotate(90deg)}.sequence-content{flex:1 1;min-width:0}.truncated-sequence{cursor:pointer}.full-sequence,.truncated-sequence{word-wrap:break-word;background:#f1f3f4;border:1px solid #e1e5e9;border-radius:4px;color:#2c3e50;display:inline-block;max-width:100%;padding:.25rem .5rem}.full-sequence{white-space:pre-wrap}.sequence-cell code{word-wrap:break-word;background:#f1f3f4;border:1px solid #e1e5e9;border-radius:4px;color:#2c3e50;display:inline-block;max-width:100%;padding:.25rem .5rem}.count-cell{border-radius:4px;color:#3498db;font-weight:600;padding:.25rem .5rem;text-align:center}.variants-table td:first-child,.variants-table td:last-child,.variants-table th:first-child,.variants-table th:last-child{text-align:left}.variants-table .fitness-cell{font-weight:600}.variants-table .fitness-cell.low{color:#e74c3c}.variants-table .fitness-cell.medium{color:#f39c12}.variants-table .fitness-cell.high{color:#27ae60}.variants-table .violations-cell{font-weight:600}.variants-table .violations-cell.has-violations{color:#e74c3c}.variants-table th.sortable{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.variants-table th.sortable:hover{background-color:#f8f9fa}.variants-table .sort-indicator{color:#007bff;font-size:.8em;font-weight:700;margin-right:8px;min-width:12px}.discovery-sections{display:flex;flex-direction:column;gap:2rem}.section{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000000d;overflow:hidden}.section-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1rem 1.25rem}.section-title{color:#2c3e50;font-size:1.25rem;font-weight:600;margin:0}.section-toggle{background:none;border:none;border-radius:4px;color:#3498db;cursor:pointer;font-size:.9rem;padding:.25rem .5rem}.section-toggle:hover{background:#e9ecef}.section-content{padding:1.25rem}@media (max-width:768px){.section-content{padding:1rem}}.app{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:2rem}.app-header{color:#fff;margin-bottom:3rem;text-align:center}.app-header h1{font-size:3rem;font-weight:700;margin-bottom:1rem;text-shadow:0 2px 4px #0000004d}.app-header p{font-size:1.2rem;margin:0;opacity:.9;text-shadow:0 1px 2px #0000004d}.app-progress{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;margin-bottom:1rem;margin-top:3rem}.progress-step{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:12px;display:flex;gap:1rem;min-width:250px;padding:1.5rem;transition:all .3s ease}.progress-step.active{background:#fff3;border-color:#fff6;transform:scale(1.05)}.progress-step.completed{background:#27ae6033;border-color:#27ae6066}.step-number{align-items:center;background:#ffffff4d;border:2px solid #ffffff80;border-radius:50%;color:#fff;display:flex;font-size:1.2rem;font-weight:700;height:40px;justify-content:center;transition:all .3s ease;width:40px}.progress-step.active .step-number{background:#3498db;border-color:#2980b9;transform:scale(1.1)}.progress-step.completed .step-number{background:#27ae60;border-color:#229954}.step-info{flex:1 1}.step-info h3{color:#fff;font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.step-info p{color:#fffc;font-size:.9rem;line-height:1.4;margin:0}.app-content{margin:0 auto;max-width:1200px}@media (max-width:768px){.app{padding:1rem}.app-header h1{font-size:2rem}.app-header p{font-size:1rem}.app-progress{align-items:center;flex-direction:column;gap:1rem}.progress-step{max-width:400px;min-width:auto;width:100%}}
/*# sourceMappingURL=main.f4d7d732.css.map*/