.navbar{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:100}.navbar-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.navbar-brand{align-items:baseline;display:flex;gap:1rem}.navbar-brand h2{font-size:1.5rem;font-weight:700;margin:0}.navbar-subtitle{font-size:.85rem;opacity:.9}.navbar-user{align-items:center;display:flex;gap:1rem}.user-name{font-size:.95rem;opacity:.95}.logout-button{background-color:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s,border-color .2s}.logout-button:hover{background-color:#ffffff4d;border-color:#ffffff80}.model-list-container{margin:0 auto;max-width:1200px;padding:2rem}.header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.header h1{color:#333;margin:0}.btn-primary{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.btn-secondary:hover{background-color:#5a6268}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:500px;padding:2rem;width:90%}.modal h2{color:#333;margin-top:0}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem}.form-group input,.form-group textarea{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#007bff;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end}.models-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.model-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;padding:1.5rem;transition:transform .2s,box-shadow .2s}.model-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.model-card h3{color:#333;margin:0 0 .5rem}.model-card .description{color:#666;font-size:.9rem;margin:0 0 1rem}.model-meta{border-top:1px solid #f0f0f0;color:#888;display:flex;font-size:.85rem;justify-content:space-between;padding-top:1rem}.empty-state{color:#888}.empty-state,.loading{padding:3rem;text-align:center}.loading{color:#666;font-size:1.2rem}.model-detail-container{margin:0 auto;max-width:1200px;padding:2rem}.model-header{align-items:flex-start;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.model-header h1{color:#333;margin:0 0 .5rem}.model-header .description{color:#666;margin:0}.versions-section h2{color:#333;margin-bottom:1.5rem}.versions-table{background-color:#fff;border:1px solid #e0e0e0;border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.versions-table thead{background-color:#f8f9fa}.versions-table th{border-bottom:2px solid #e0e0e0;color:#333;font-weight:600;padding:1rem;text-align:left}.versions-table td{border-bottom:1px solid #f0f0f0;color:#666;padding:1rem}.versions-table tbody tr:hover{background-color:#f8f9fa}.versions-table tbody tr:last-child td{border-bottom:none}.versions-table .action-buttons{display:flex;gap:.5rem}.versions-table .btn-download,.versions-table .btn-preview,.versions-table .btn-view-analysis{background-color:#fff;border:1px solid #007bff;border-radius:4px;color:#007bff;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:all .2s}.versions-table .btn-download:hover,.versions-table .btn-preview:hover{background-color:#007bff;color:#fff}.versions-table .btn-view-analysis{border-color:#28a745;color:#28a745;font-weight:600}.versions-table .btn-view-analysis:hover{background-color:#28a745;color:#fff}.versions-list{display:flex;flex-direction:column;gap:1.5rem}.version-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem}.version-header{margin-bottom:1rem}.version-header h3{color:#333;margin:0 0 .5rem}.filename{font-size:.9rem;margin:0 0 .25rem}.upload-date{font-size:.85rem;margin:0}.version-actions{align-items:center;display:flex;gap:1rem}.status-badge{border-radius:12px;font-size:.85rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.status-pending{background-color:#ffeaa7;color:#d63031}.status-processing{background-color:#74b9ff;color:#0984e3}.status-completed{background-color:#55efc4;color:#00b894}.status-failed{background-color:#ff7675;color:#d63031}.btn-download{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.btn-download:hover{background-color:#218838}.btn-preview{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.btn-preview:hover{background-color:#0056b3}.excel-preview-modal{background:#fff;border-radius:8px;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;overflow:hidden;width:1200px}.excel-preview-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:1.5rem}.excel-preview-header h3{color:#333;font-size:1.2rem;margin:0 0 .25rem}.preview-meta{color:#666;font-size:.85rem;margin:0}.btn-close{background:none;border:none;color:#666;cursor:pointer;padding:.25rem;transition:color .2s}.btn-close:hover{color:#333}.excel-sheet-tabs{background-color:#f1f3f5;border-bottom:1px solid #e0e0e0;display:flex;gap:.25rem;overflow-x:auto;padding:.5rem 1rem}.sheet-tab{background-color:initial;border:none;border-radius:4px 4px 0 0;color:#666;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.sheet-tab:hover{background-color:#e9ecef;color:#333}.sheet-tab.active{background-color:#fff;border-bottom:2px solid #007bff;color:#007bff;font-weight:600}.excel-sheet-content{background-color:#fff;flex:1 1;overflow:auto;padding:1rem}.empty-sheet{color:#999;font-size:1rem;padding:3rem;text-align:center}.excel-table-wrapper{overflow-x:auto}.excel-table{border:1px solid #dee2e6;border-collapse:collapse;font-size:.9rem;width:100%}.excel-table thead{background-color:#f8f9fa;position:-webkit-sticky;position:sticky;top:0;z-index:10}.excel-table th{background-color:#f8f9fa;border-bottom:2px solid #dee2e6;border-right:1px solid #dee2e6;color:#495057;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.75rem;text-align:left;text-transform:uppercase;white-space:nowrap}.excel-table tbody tr{transition:background-color .15s}.excel-table tbody tr:hover{background-color:#f1f3f5}.excel-table td{border-bottom:1px solid #dee2e6;border-right:1px solid #dee2e6;color:#212529;padding:.5rem .75rem;white-space:nowrap}.excel-table tbody tr:nth-child(2n){background-color:#fafbfc}.excel-preview-footer{background-color:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem}.engine-output{background-color:#f8f9fa;border-radius:4px;margin-top:1rem;padding:1rem}.engine-output h4{color:#333;margin:0 0 1rem}.engine-output h5{color:#555;font-size:1rem;margin:1.5rem 0 .75rem}.change-report,.model-description{margin-bottom:1.5rem;padding:1rem}.change-report h5{color:#d63031;margin-top:0}.change-report-content{color:#333;line-height:1.6}.change-report-content h2{border-bottom:2px solid #ff6b6b;color:#d63031;font-size:1.5rem;margin:1rem 0 .75rem;padding-bottom:.5rem}.change-report-content h3{color:#e17055;font-size:1.2rem;font-weight:600;margin:1.25rem 0 .75rem}.change-report-content h4{color:#fd79a8;font-size:1.1rem;margin:1rem 0 .5rem}.change-report-content table{background-color:#fff;border-collapse:collapse;margin:1rem 0;width:100%}.change-report-content table th{border:1px solid #e17055;color:#fff;font-weight:600;padding:.75rem;text-align:left}.change-report-content table td{border:1px solid #fab1a0;padding:.75rem}.change-report-content table tr:nth-child(2n){background-color:#fff5f5}.change-report-content strong{color:#d63031;font-weight:700}.change-report-content ol,.change-report-content ul{margin:.75rem 0;padding-left:2rem}.change-report-content li{line-height:1.7;margin:.5rem 0}.description-text{color:#333;line-height:1.6}.description-text p{margin:.5rem 0}.markdown-content em{font-style:italic}.markdown-content blockquote{border-left:4px solid #007bff;color:#666;font-style:italic;margin:1rem 0;padding-left:1rem}.output-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem}.stat{gap:.25rem}.stat .label{font-size:.85rem}.stat .value{font-size:1.5rem}.logic-details{overflow-x:auto;padding:1rem}.logic-details,.output-details{margin-top:1rem}.output-details pre{background-color:#fff;margin-top:.5rem}.error{font-size:1.2rem;padding:3rem;text-align:center}.collapsible-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;overflow:hidden;transition:box-shadow .2s ease}.collapsible-section:hover{box-shadow:0 2px 6px #00000026}.section-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #0000;cursor:pointer;display:flex;padding:1rem 1.25rem;transition:all .2s ease;-webkit-user-select:none;user-select:none}.section-header:hover{background:#e9ecef}.severity-high .section-header{border-left:4px solid #dc3545}.severity-medium .section-header{border-left:4px solid #ffc107}.severity-low .section-header{border-left:4px solid #28a745}.collapse-icon{color:#6c757d;display:inline-block;font-size:.875rem;margin-right:.75rem;transition:transform .2s ease;width:16px}.section-title{color:#333;flex:1 1;font-size:1.1rem;font-weight:600;margin:0}.section-badge{background:#e9ecef;border-radius:12px;color:#495057;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.section-badge.severity-high{background:#f8d7da;color:#721c24}.section-badge.severity-medium{background:#fff3cd;color:#856404}.section-badge.severity-low{background:#d4edda;color:#155724}.section-warning{align-items:flex-start;background:#fff3cd;border-left:4px solid #ffc107;color:#856404;display:flex;font-size:.9rem;font-style:italic;gap:.5rem;padding:.75rem 1.25rem}.warning-icon{flex-shrink:0;font-size:1rem}.section-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out}.section-content.expanded{max-height:10000px;transition:max-height .5s ease-in}.section-content.collapsed{max-height:0}.change-report-hierarchical{padding:1rem 0}.report-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.report-header h2{color:#333;font-size:1.75rem;margin:0}.expand-collapse-controls{display:flex;gap:.5rem}.btn-control{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s ease}.btn-control:hover{background:#f8f9fa;border-color:#999}.executive-summary-card{background:#fff;border-left:4px solid #007bff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.executive-summary-card h3{color:#333;font-size:1.3rem;margin:0 0 1rem}.no-changes{color:#28a745;font-size:1.1rem;font-weight:500}.summary-stats{border-bottom:1px solid #e9ecef;display:flex;gap:2rem;margin-bottom:1.5rem;padding-bottom:1rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{color:#6c757d;font-size:.875rem;font-weight:500}.stat-value{color:#333;font-size:1.5rem;font-weight:600}.stat-value.risk-high{color:#dc3545}.stat-value.risk-medium{color:#ffc107}.stat-value.risk-low{color:#28a745}.change-breakdown{display:flex;gap:2rem;margin-bottom:1.5rem}.breakdown-item{align-items:center;display:flex;gap:.5rem}.breakdown-icon{font-size:1.25rem}.breakdown-label{color:#6c757d;font-size:.9rem}.breakdown-value{color:#333;font-size:1.25rem;font-weight:600}.complexity-comparison{margin-top:1.5rem}.complexity-comparison h4{color:#495057;font-size:1rem;margin:0 0 .75rem}.complexity-comparison table{border-collapse:collapse;font-size:.9rem;width:100%}.complexity-comparison td,.complexity-comparison th{border-bottom:1px solid #e9ecef;padding:.5rem;text-align:left}.complexity-comparison th{background:#f8f9fa;color:#495057;font-weight:600}.positive-change{color:#28a745;font-weight:600}.negative-change{color:#dc3545;font-weight:600}.sections-container{margin-top:1.5rem}.change-items{padding:1rem 1.25rem}.change-item{border-bottom:1px solid #e9ecef;padding:.75rem 0}.change-item:last-child{border-bottom:none}.change-header{align-items:flex-start;display:flex;gap:.5rem;margin-bottom:.5rem}.change-icon{flex-shrink:0;font-size:1rem;margin-top:.125rem}.cell-ref{background:#f8f9fa;border-radius:3px;color:#495057;flex-shrink:0;font-size:.9rem;font-weight:600;padding:.125rem .5rem}.change-description{color:#333;font-size:.95rem}.change-detail{align-items:baseline;display:flex;gap:.5rem;margin-left:1.5rem;margin-top:.25rem}.detail-label{color:#6c757d;font-size:.85rem;font-weight:500}.detail-value{background:#fff3cd;border-radius:3px;color:#856404;font-size:.85rem;padding:.125rem .5rem}.validation-items{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.validation-item{align-items:center;display:flex;gap:.5rem}.validation-icon{font-size:1.25rem}.validation-label{color:#495057;font-weight:500;min-width:150px}.validation-status{font-weight:600}.validation-status.passed{color:#28a745}.validation-status.failed{color:#dc3545}.recommendations-list{margin:0;padding:1rem 1.25rem 1rem 3rem}.recommendations-list li{color:#333;line-height:1.5;padding:.5rem 0}.recommendations-list li.mandatory{color:#dc3545;font-weight:600}.recommendations-list li.mandatory::marker{color:#dc3545;font-size:1.2rem}.version-detail-container{background-color:#f5f5f5;min-height:100vh}.content{margin:0 auto;max-width:1200px;padding:2rem}.btn-back{background:none;border:none;color:#007bff;cursor:pointer;font-size:1rem;margin-bottom:1rem;padding:.5rem 0}.btn-back:hover{text-decoration:underline}.version-header{align-items:flex-start;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.version-header h1{color:#333;margin:0 0 .5rem}.filename{color:#666;font-size:1.1rem;font-weight:500;margin:.25rem 0}.upload-date{color:#888;font-size:.9rem;margin:.25rem 0 0}.analysis-content{display:flex;flex-direction:column;gap:2rem}.change-report{background-color:#fff;border-left:4px solid #ff6b6b;border-radius:4px;box-shadow:0 1px 3px #0000001a;padding:2rem}.change-report h2{color:#d63031;font-size:1.75rem;margin-bottom:1.5rem;margin-top:0}.model-description{background-color:#fff;border-left:4px solid #007bff;border-radius:4px;box-shadow:0 1px 3px #0000001a;padding:2rem}.model-description h2{color:#007bff;font-size:1.75rem;margin-bottom:1.5rem;margin-top:0}.output-summary{background-color:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;padding:2rem}.output-summary h2{color:#333;font-size:1.5rem;margin-bottom:1.5rem;margin-top:0}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat{display:flex;flex-direction:column;gap:.5rem}.stat .label{color:#666;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.stat .value{color:#007bff;font-size:2rem;font-weight:700}.stat .value.success{color:#28a745}.stat .value.error{color:#dc3545}.logic-details{background-color:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;padding:2rem}.logic-details h2{color:#333;font-size:1.5rem;margin-bottom:1.5rem;margin-top:0}.table-wrapper{overflow-x:auto}.logic-details table{border-collapse:collapse;font-size:.9rem;width:100%}.logic-details th{background-color:#007bff;color:#fff;font-weight:600;padding:.75rem;text-align:left}.logic-details td{border-bottom:1px solid #e0e0e0;padding:.75rem}.logic-details tr:hover{background-color:#f8f9fa}.logic-details code{background-color:#f1f3f5;border-radius:3px;font-family:Courier New,monospace;font-size:.85rem;padding:.2rem .4rem}.output-details{background-color:#fff;border-radius:4px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.output-details summary{color:#007bff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:.5rem 0}.output-details summary:hover{text-decoration:underline}.output-details pre{background-color:#f8f9fa;border:1px solid #ddd;border-radius:4px;font-size:.85rem;margin-top:1rem;overflow-x:auto;padding:1rem}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-top:1rem;padding:1rem}.processing-message{background-color:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;color:#0c5460;margin-top:1rem;padding:1rem;text-align:center}.error,.loading{font-size:1.2rem;padding:3rem;text-align:center}.error{color:#dc3545}.markdown-content h2{border-bottom:2px solid #007bff;color:#333;font-size:1.5rem;margin:1.5rem 0 1rem;padding-bottom:.5rem}.markdown-content h3{color:#555;font-size:1.2rem;font-weight:600;margin:1.25rem 0 .75rem}.markdown-content h4{color:#666;font-size:1.1rem;margin:1rem 0 .5rem}.markdown-content p{line-height:1.7;margin:.75rem 0}.markdown-content ol,.markdown-content ul{margin:.75rem 0;padding-left:2rem}.markdown-content li{line-height:1.6;margin:.4rem 0}.markdown-content code{background-color:#f1f3f5;border-radius:3px;color:#d63031;font-family:Courier New,monospace;font-size:.9em;padding:.2rem .4rem}.markdown-content pre{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;margin:1rem 0;overflow-x:auto;padding:1rem}.markdown-content pre code{background-color:initial;color:inherit;padding:0}.markdown-content strong{color:#d63031;font-weight:700}.markdown-content table{border-collapse:collapse;margin:1rem 0;width:100%}.markdown-content table th{background-color:#007bff;color:#fff;font-weight:600;padding:.75rem;text-align:left}.markdown-content table td{border-bottom:1px solid #e0e0e0;padding:.75rem}.markdown-content table tr:hover{background-color:#f8f9fa}.change-report-content h2{border-bottom-color:#ff6b6b}.change-report-content table th{background-color:#ff6b6b}.change-report-content table tr:hover{background-color:#ffe0e0}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{background-color:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:2.5rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-header h1{color:#333;font-size:2rem;font-weight:700;margin:0 0 .5rem}.login-header p{color:#666;font-size:.95rem;margin:0}.login-form{gap:1.5rem}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#555;font-size:.9rem;font-weight:600}.form-group input{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:.875rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:.9rem;padding:.875rem;text-align:center}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:transform .2s,box-shadow .2s}.login-button:hover:not(:disabled){box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{cursor:not-allowed;opacity:.6}.demo-credentials{border-top:1px solid #e0e0e0;margin-top:2rem;padding-top:2rem}.demo-label{color:#888;font-size:.75rem;letter-spacing:.5px;margin:0 0 .75rem;text-align:center;text-transform:uppercase}.demo-info{background-color:#f8f9fa;border-radius:8px;color:#555;display:flex;flex-direction:column;font-size:.85rem;gap:.5rem;padding:1rem}.demo-info strong{color:#333}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.App{min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.f1cb5698.css.map*/