.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.custom-node-editor{background:#1e293b;border-radius:8px;width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}div.custom-node-editor .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #334155;background:transparent}div.custom-node-editor .modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#e6edf3}div.custom-node-editor .modal-close-btn{background:none;border:none;font-size:1.5rem;color:#94a3b8;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}div.custom-node-editor .modal-close-btn:hover{background-color:#94a3b81a;color:#e6edf3}.custom-node-editor .modal-body{flex:1;overflow-y:auto;padding:20px;background:#1e293b}.node-info-section{background:#334155;border-radius:6px;padding:16px;margin-bottom:20px}.form-field{margin-bottom:16px}.form-field:last-child{margin-bottom:0}.field-label{display:block;font-weight:600;color:#cbd5e1;margin-bottom:6px;font-size:14px}.field-input{width:100%;padding:10px 12px;border:1px solid #475569;border-radius:6px;font-size:14px;background:#1e293b;color:#e6edf3;transition:border-color .2s}.field-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.field-textarea{width:100%;padding:10px 12px;border:1px solid #475569;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;background:#1e293b;color:#e6edf3;transition:border-color .2s}.field-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.info-row{display:flex;margin-bottom:8px}.info-row:last-child{margin-bottom:0}.info-label{font-weight:600;color:#cbd5e1;min-width:100px}.info-value{color:#e6edf3}.selected-entities-section{margin-bottom:20px}.selected-entities-section h3{font-size:16px;margin-bottom:12px;color:#e6edf3}.selected-entities-list{display:flex;flex-wrap:wrap;gap:8px}.selected-entity-chip{display:inline-flex;align-items:center;background:#e7f3ff;border:1px solid #2196f3;border-radius:16px;padding:6px 12px;font-size:14px;color:#1976d2}.selected-entity-chip span{margin-right:8px}.remove-entity-btn{background:none;border:none;color:#1976d2;font-size:18px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.remove-entity-btn:hover{background-color:#2196f31a}.add-entities-section{margin-top:20px}.add-entities-section h3{font-size:16px;margin-bottom:12px;color:#e6edf3}.search-input{width:100%;padding:10px 12px;border:1px solid #475569;border-radius:6px;font-size:14px;background:#1e293b;color:#e6edf3;margin-bottom:12px;transition:border-color .2s}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.entities-list{max-height:300px;overflow-y:auto;border:1px solid #475569;border-radius:6px;background:#0f172a}.entity-group{border-bottom:1px solid #334155}.entity-group:last-child{border-bottom:none}.entity-group-header{background:#1e293b;padding:10px 12px;font-weight:600;font-size:14px;color:#cbd5e1;border-left:4px solid;position:sticky;top:0;z-index:1}.entity-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;transition:background-color .2s;border-bottom:1px solid #334155;background:#0f172a}.entity-item:last-child{border-bottom:none}.entity-item:hover{background-color:#1e293b}.entity-item.selected{background-color:#1e3a5f}.entity-item-content{display:flex;align-items:center;gap:12px}.entity-name{font-size:14px;color:#e6edf3}.entity-type{font-size:12px;color:#94a3b8;background:#334155;padding:2px 8px;border-radius:4px}.check-icon{color:#2196f3;font-weight:700;font-size:16px}.entities-list::-webkit-scrollbar{width:8px}.entities-list::-webkit-scrollbar-track{background:#1e293b}.entities-list::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}.entities-list::-webkit-scrollbar-thumb:hover{background:#64748b}div.custom-node-editor .modal-footer{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-top:2px solid #334155;background:#1e293b;gap:1rem}.data-product-flow-container{width:100%;height:100%;display:flex;flex-direction:column;background-color:var(--canvas-bg-color);background-image:radial-gradient(circle,var(--canvas-bg-dot-color) var(--canvas-bg-dot-size),transparent var(--canvas-bg-dot-size));background-size:var(--canvas-bg-grid-size) var(--canvas-bg-grid-size);position:relative}.flow-toolbar{position:absolute;top:.75rem;left:.75rem;right:.75rem;z-index:100;display:flex;align-items:center;gap:.375rem}.btn-create-dp{background:#3498db;color:#fff;border:none;padding:.563rem 1.125rem;border-radius:4.5px;font-size:.675rem;font-weight:600;cursor:pointer;transition:background .2s;box-shadow:0 1.5px 6px #0000001a}.btn-create-dp:hover{background:#2980b9}.btn-back{padding:.563rem 1.125rem;background-color:#0d3b4f;color:#8b949e;border:.75px solid #1e5a6d;border-radius:4.5px;font-size:.675rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 1.5px 6px #0000001a}.btn-back:hover{background-color:#1a1a1a;border-color:#9ca3af}.data-product-flow-view{flex:1;width:100%;background:#1a1a1a}.react-flow__pane{background-color:var(--canvas-bg-color)!important}.react-flow__attribution{opacity:.3}.flow-view-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:.656rem}.custom-node{border-radius:6px;padding:9px 12px;box-shadow:0 1.5px 6px #00000026;min-width:165px;max-width:240px;border:1.5px solid}.custom-node .node-header{margin-bottom:6px;font-size:11.25px;line-height:1.4}.custom-node .node-description{font-size:9.75px;opacity:.85;line-height:1.3;margin-bottom:6px}.custom-node .node-details{margin-top:6px}.custom-node .node-meta{font-size:9px;opacity:.9;margin-top:3px}.custom-node .node-badge{display:inline-block;padding:2.25px 7.5px;border-radius:9px;font-size:8.25px;font-weight:600;margin-top:4.5px;text-transform:capitalize}.dp-node{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;border-color:#2c3e50}.dp-node .node-consumers{margin-top:7.5px;padding-top:7.5px;border-top:.75px solid rgba(255,255,255,.3)}.dp-node .consumers-label{font-size:9px;font-weight:600;margin-bottom:4.5px}.dp-node .consumers-tags{display:flex;flex-wrap:wrap;gap:3px}.dp-node .consumer-tag{background:#ffffff40;padding:2.25px 7.5px;border-radius:9px;font-size:8.25px;font-weight:500;border:.75px solid rgba(255,255,255,.4)}.report-node{background:#e3f2fd;color:#1565c0;border-color:#3498db}.report-node .report-badge{background:#3498db;color:#fff}.report-node .node-metrics-list{margin-top:7.5px;padding-top:7.5px;border-top:.75px solid rgba(52,152,219,.3)}.report-node .metrics-list-label{font-size:8.25px;font-weight:600;margin-bottom:4.5px;text-transform:uppercase;letter-spacing:.375px;opacity:.8}.report-node .metrics-list{list-style:none;padding:0;margin:0}.report-node .metric-list-item{font-size:9px;padding:3px 6px;margin-bottom:2.25px;background:#3498db26;border-radius:3px;border-left:1.5px solid #3498db}.metric-node{background:#ecf0f1;color:#2c3e50;border-color:#7f8c8d}.entity-node{background:#d6eaf8;color:#1a5490;border-color:#5dade2;padding:7.5px 10.5px}.entity-node .entity-badge{background:#5dade2;color:#fff}.cube-node{background:#e0e7ff;color:#4338ca;border-color:#818cf8}.cube-node .node-metrics-list{margin-top:7.5px;padding-top:7.5px;border-top:.75px solid rgba(129,140,248,.3)}.cube-node .metrics-list-label{font-size:8.25px;font-weight:600;margin-bottom:4.5px;text-transform:uppercase;letter-spacing:.375px;opacity:.8}.cube-node .metrics-list{list-style:none;padding:0;margin:0}.cube-node .metric-list-item{font-size:9px;padding:3px 6px;margin-bottom:2.25px;background:#818cf826;border-radius:3px;border-left:1.5px solid #818cf8}.node-editor-panel{position:absolute;top:15px;right:15px;width:300px;max-height:calc(100vh - 150px);background:#0d3b4f;border-radius:6px;box-shadow:0 3px 9px #00000026;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.node-editor-header{padding:.75rem 1.125rem;background:#2c3e50;color:#fff;display:flex;justify-content:space-between;align-items:center;border-bottom:.75px solid #1e5a6d}.node-editor-header h3{margin:0;font-size:.825rem;font-weight:600}.btn-close{background:transparent;border:none;color:#fff;font-size:1.125rem;cursor:pointer;padding:0;width:22.5px;height:22.5px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background .2s}.btn-close:hover{background:#ffffff1a}.node-editor-content{padding:1.125rem;overflow-y:auto;flex:1}.editor-section{margin-bottom:1.125rem}.editor-section:last-child{margin-bottom:0}.info-section{background:#1a1a1a;padding:.75rem;border-radius:4.5px;margin-bottom:1.125rem}.info-section p{margin:.375rem 0;font-size:.675rem;color:#8b949e}.form-section{margin-top:.75rem}.form-section h4{margin:0 0 .563rem;font-size:.712rem;font-weight:600;color:#e6edf3}.node-editor-panel .entity-list li{background:transparent!important;color:#e0e0e0;border-bottom:1px solid #3a3a3a}.node-editor-panel .entity-list li:hover,.node-editor-panel .edit-entity-form,.node-editor-panel .edit-group-form{background:#2a2a2a!important}.form-section input,.form-section select,.form-section textarea{width:100%;padding:.375rem;border:.75px solid #1e5a6d;border-radius:3px;font-size:.675rem;margin-bottom:.375rem;font-family:inherit}.form-section textarea{resize:vertical;min-height:45px}.form-section input:focus,.form-section select:focus,.form-section textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2.25px #3498db1a}.btn-add{background:#3498db;color:#fff;border:none;padding:.45rem .75rem;border-radius:3px;font-size:.675rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;margin-top:.375rem}.btn-add:hover{background:#2980b9}.btn-delete{background:#e74c3c;color:#fff;border:none;padding:.45rem .75rem;border-radius:3px;font-size:.675rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;margin-top:.75rem}.btn-delete:hover{background:#c0392b}.list-section{margin-top:.75rem}.list-section h4{margin:0 0 .563rem;font-size:.712rem;font-weight:600;color:#e6edf3}.list-item{display:flex;justify-content:space-between;align-items:center;padding:.563rem;background:#1a1a1a;border-radius:3px;margin-bottom:.375rem;font-size:.675rem}.list-item span{color:#8b949e}.btn-remove-small{background:transparent;border:.75px solid #1e5a6d;color:#6b7280;padding:.188rem .375rem;border-radius:2.25px;font-size:.6rem;cursor:pointer;transition:all .2s}.btn-remove-small:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.empty-list{text-align:center;padding:1.5rem .75rem;color:#9ca3af;font-size:.675rem}.react-flow__controls{display:flex;flex-direction:column;gap:0;box-shadow:0 1.5px 6px #0000001a;border-radius:3px;overflow:hidden}.react-flow__controls-button{background:#0d3b4f;border:none;border-bottom:.75px solid #1e5a6d;padding:6px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls-button:hover{background:#f3f4f6}.react-flow__controls-button svg{width:15px;height:15px}.column-header-node{background:transparent;border:none;padding:0;box-shadow:none;pointer-events:none}.column-header-label{font-size:.563rem;font-weight:700;color:#6b7280;letter-spacing:.075em;text-align:center;padding:.375rem .75rem;background:#f3f4f6;border-radius:3px;border:1.5px solid #1e5a6d;box-shadow:0 .75px 2.25px #0000001a}.lane-container-node{border:2px dashed;border-radius:6px;pointer-events:auto;background:transparent!important;transition:all .3s ease}.lane-container-node:hover{border-width:3px;box-shadow:0 0 0 2.25px #3498db1a}.lane-container-node:hover .lane-add-hint{opacity:.6!important}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-content{background:#0d3b4f;border-radius:6px;padding:1.125rem;width:90%;max-width:375px;box-shadow:0 15px 18.75px -3.75px #0000001a,0 7.5px 7.5px -3.75px #0000000a}div.modal-content .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.125rem;background:transparent;padding:0}div.modal-content .modal-header h3{margin:0;font-size:.938rem;color:#e6edf3;background:transparent}.modal-close:hover{background-color:#f3f4f6;color:#e6edf3}.modal-content .form-section{margin-bottom:.75rem}.modal-content .form-section label{display:block;font-size:.656rem;font-weight:500;color:#8b949e;margin-bottom:.375rem}.modal-content .form-section input,.modal-content .form-section select{width:100%;padding:.375rem;border:.75px solid #1e5a6d;border-radius:3px;font-size:.656rem}.modal-action-button{padding:0!important;margin:0!important;border-radius:4.5px!important;font-size:.656rem!important;font-weight:500!important;cursor:pointer!important;transition:all .2s!important;box-sizing:border-box!important;height:31.5px!important;width:97.5px!important;border-width:.75px!important;border-style:solid!important;line-height:31.5px!important;display:inline-block!important;text-align:center!important;vertical-align:middle!important}.modal-action-button.btn-delete{background-color:#e74c3c!important;color:#fff!important;border-color:#e74c3c!important}.modal-action-button.btn-delete:hover{background-color:#c0392b!important;border-color:#c0392b!important}.modal-action-button.btn-cancel{background-color:#0d3b4f!important;color:#8b949e!important;border-color:#d1d5db!important}.modal-action-button.btn-cancel:hover{background-color:#1a1a1a!important;border-color:#9ca3af!important}.modal-action-button.btn-primary{background-color:#3498db!important;color:#fff!important;border-color:#3498db!important}.modal-action-button.btn-primary:hover{background-color:#2980b9!important;border-color:#2980b9!important}.btn-cancel{padding:.375rem .75rem;background-color:#0d3b4f;color:#8b949e;border:.75px solid #1e5a6d;border-radius:3px;font-size:.656rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-cancel:hover{background-color:#1a1a1a}.btn-create:disabled{background-color:#9ca3af;cursor:not-allowed}.node-delete-btn{position:absolute;top:3px;right:3px;background:#e74c3ce6;color:#fff;border:none;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;font-weight:700;line-height:1;opacity:0;transition:opacity .2s,background .2s,transform .2s;z-index:10}.entity-node{position:relative}.entity-node:hover .node-delete-btn{opacity:1}.custom-lane-node{background:#fef3c7;color:#92400e;border-color:#f59e0b}.custom-lane-node .node-type-badge{display:inline-block;padding:2.25px 7.5px;border-radius:9px;font-size:8.25px;font-weight:600;margin-top:4.5px;background:#f59e0b;color:#fff;text-transform:capitalize}.data-product-portfolio-container{display:flex;flex-direction:column;height:100%;width:100%}.portfolio-toolbar{position:absolute;top:.75rem;left:.75rem;z-index:1000;display:flex;justify-content:flex-start;align-items:center;gap:.375rem;pointer-events:none}.portfolio-toolbar button{pointer-events:auto}.portfolio-view{flex:1;position:relative;background:#0a2a38}.portfolio-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#6b7280;font-size:.844rem}.data-product-card{width:375px;background:#0d3b4f;border:1.5px solid #1e5a6d;border-radius:9px;padding:1.125rem;box-shadow:0 .75px 2.25px #0000001a;transition:all .2s}.data-product-card:hover{border-color:#3b82f6;box-shadow:0 3px 9px #3b82f626}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.563rem}.card-header h3{margin:0;font-size:.844rem;font-weight:600;color:#e6edf3;flex:1}.btn-edit-small{background:transparent;border:none;font-size:.75rem;cursor:pointer;padding:.188rem;opacity:.6;transition:opacity .2s}.btn-edit-small:hover{opacity:1}.card-description{font-size:.656rem;color:#6b7280;margin:0 0 .75rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-stats{margin-bottom:.75rem}.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(52.5px,1fr));gap:.375rem}.stat-item-small{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.45rem .3rem;background:#0a2a38;border-radius:4.5px;border:.75px solid #1e5a6d;min-height:45px}.stat-item{display:flex;flex-direction:column;gap:.188rem}.stat-item-small .stat-label{font-size:.469rem;color:#6b7280;text-transform:uppercase;letter-spacing:.015em;text-align:center;line-height:1.2;margin-bottom:.225rem;white-space:nowrap}.stat-item-small .stat-value{font-size:.938rem;font-weight:600;color:#e6edf3;line-height:1}.stat-label{font-size:.563rem;color:#6b7280;text-transform:uppercase;letter-spacing:.038em}.stat-value{font-size:.938rem;font-weight:600;color:#e6edf3}.card-dependencies{margin-bottom:.563rem;font-size:.656rem;color:#6b7280}.dependencies-label{display:inline-block;padding:.188rem .375rem;background:#1a4d5f;border-radius:3px}.btn-view-details{width:100%;padding:.563rem;background:#3b82f6;color:#fff;border:none;border-radius:4.5px;font-weight:500;cursor:pointer;transition:background .2s}.btn-view-details:hover{background:#2563eb}.edit-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.edit-panel{background:#0d3b4f;border-radius:9px;width:90%;max-width:450px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 15px 18.75px -3.75px #0000001a}.edit-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1.125rem;border-bottom:.75px solid #1e5a6d}.edit-panel-header h3{margin:0;font-size:.938rem;font-weight:600;color:#e6edf3}.edit-panel-content{flex:1;overflow-y:auto;padding:1.125rem}.edit-panel-actions{display:flex;justify-content:space-between;padding-top:1.125rem;margin-top:1.125rem;border-top:.75px solid #1e5a6d}.dependency-list{display:flex;flex-direction:column;gap:.375rem}.dependency-item{display:flex;justify-content:space-between;align-items:center;padding:.563rem;background:#0a2a38;border-radius:4.5px;border:.75px solid #1e5a6d}.dependency-item span{font-size:.656rem;color:#8b949e}.btn-remove-small{background:transparent;border:none;font-size:.938rem;color:#ef4444;cursor:pointer;padding:0 .375rem;line-height:1;transition:color .2s}.btn-remove-small:hover{color:#dc2626}.empty-message{font-size:.656rem;color:#9ca3af;font-style:italic}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#0d3b4f;border-radius:9px;width:90%;max-width:375px;padding:0;box-shadow:0 15px 18.75px -3.75px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.125rem;border-bottom:.75px solid #1e5a6d}.modal-header h3{margin:0;font-size:.938rem;font-weight:600}.modal-close{background:transparent;border:none;font-size:1.125rem;cursor:pointer;color:#6b7280;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background .2s}.modal-close:hover{background:#1a4d5f}.form-section{padding:.75rem 1.125rem}.form-section label{display:block;font-weight:500;margin-bottom:.375rem;color:#8b949e}.form-section input,.form-section textarea,.form-section select{width:100%;padding:.563rem;border:.75px solid #1e5a6d;border-radius:4.5px;font-size:.656rem;transition:border-color .2s}.form-section input:focus,.form-section textarea:focus,.form-section select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2.25px #3b82f61a}.modal-actions{display:flex;justify-content:flex-end;gap:.563rem;padding:1.125rem;border-top:.75px solid #1e5a6d}.btn-create-dp,.btn-primary,.btn-create{padding:.563rem 1.125rem;background:#3b82f6;color:#fff;border:none;border-radius:4.5px;font-weight:500;cursor:pointer;transition:background .2s}.btn-create-dp:hover,.btn-primary:hover,.btn-create:hover{background:#2563eb}.btn-create-dp:disabled,.btn-primary:disabled,.btn-create:disabled{background:#9ca3af;cursor:not-allowed}.btn-cancel{padding:.563rem 1.125rem;background:transparent;color:#6b7280;border:.75px solid #1e5a6d;border-radius:4.5px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#0a2a38;border-color:#9ca3af}.btn-delete{padding:.563rem 1.125rem;background:#ef4444;color:#fff;border:none;border-radius:4.5px;font-weight:500;cursor:pointer;transition:background .2s}.btn-delete:hover{background:#dc2626}.btn-add{padding:.375rem .75rem;background:#10b981;color:#fff;border:none;border-radius:4.5px;font-weight:500;font-size:.656rem;cursor:pointer;transition:background .2s}.btn-add:hover{background:#059669}.btn-add:disabled{background:#9ca3af;cursor:not-allowed}.btn-close{background:transparent;border:none;font-size:1.125rem;cursor:pointer;color:#6b7280;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background .2s}.btn-close:hover{background:#1a4d5f}.estimating-full-layout *{-webkit-tap-highlight-color:transparent!important;outline:none!important}.estimating-full-layout *:before,.estimating-full-layout *:after{-webkit-tap-highlight-color:transparent!important}.estimating-full-layout{display:grid;grid-template-columns:1fr 300px;gap:1.125rem;height:calc(100vh - 105px);overflow:hidden;padding:1.125rem;width:100%;margin:0;box-sizing:border-box;background:#1a1a1a}.estimation-tabs{display:flex;gap:.375rem;margin-bottom:1.125rem;border-bottom:1.5px solid #1e5a6d}.tab-button{padding:.563rem 1.125rem;background:transparent;border:none;border-bottom:2.25px solid transparent;font-size:.703rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s;margin-bottom:-1.5px}.tab-button:hover{color:#3498db;background:#1a4d5f}.tab-button.active{color:#3498db;border-bottom-color:#3498db;background:transparent}.estimating-analysis-panel{display:flex;flex-direction:column;overflow-y:auto;padding-right:.75rem}.estimating-analysis-panel h2{margin:0 0 1.125rem;font-size:1.125rem;color:#e6edf3}.estimating-analysis-panel h3{margin:0 0 .75rem;font-size:.844rem;color:#8b949e}.estimation-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem}.estimation-stat-card{background:#0d3b4f;padding:.938rem;border-radius:6px;border:.75px solid #1e5a6d;text-align:center}.estimation-stat-card .stat-label{font-size:.563rem;text-transform:uppercase;letter-spacing:.038em;color:#6b7280;font-weight:600;margin-bottom:.375rem}.estimation-stat-card .stat-value{font-size:1.5rem;font-weight:700;color:#e6edf3;margin-bottom:.188rem}.estimation-stat-card .stat-detail{font-size:.563rem;color:#6b7280}.estimation-insights{margin-bottom:1.5rem}.insight-card{display:flex;gap:.75rem;padding:.75rem;border-radius:6px;margin-bottom:.563rem;border:1.5px solid}.insight-card .insight-content{flex:1}.insight-card .insight-content strong{display:block;margin-bottom:.188rem;color:inherit;font-size:.703rem}.insight-card .insight-content p{margin:0;font-size:.656rem;line-height:1.5;color:inherit}.insight-warning{background:#1a3a1a;border-color:#d97706;color:#fbbf24}.insight-error{background:#3a1a1a;border-color:#dc2626;color:#fca5a5}.insight-info{background:#1a2a3a;border-color:#3498db;color:#93c5fd}.insight-success{background:#1a3a2a;border-color:#10b981;color:#6ee7b7}.entity-estimation-list{flex:1;min-height:0}.entity-list-container,.source-list-container,.report-list-container{display:flex;flex-direction:column;gap:.375rem}.entity-list-item{background:#0d3b4f;border:1.5px solid #1e5a6d;border-radius:6px;padding:.75rem;cursor:pointer;transition:all .2s;margin-bottom:.375rem;outline:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative}.entity-list-item:before,.entity-list-item:after{display:none!important}.entity-list-item:hover{border-color:#3498db;box-shadow:0 1.5px 3px #0000000d}.entity-list-item:focus{outline:none;box-shadow:none}.entity-list-item:active{outline:none;box-shadow:none}.entity-list-item *{outline:none;-webkit-tap-highlight-color:transparent}.entity-list-item.selected{border-color:#3498db;background:#1a4d5f}.entity-list-item.not-estimated{border-style:solid;border-color:#1e5a6d;background:#0a2a38}.entity-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}.entity-list-header strong{font-size:.703rem;color:#e6edf3}.entity-group-badge{display:inline-block;margin-left:.375rem;padding:.094rem .375rem;background:#e5e7eb;color:#6b7280;border-radius:3px;font-size:.563rem;font-weight:500}.entity-estimate-badge{display:flex;gap:.375rem;align-items:center}.estimate-hours{font-weight:600;color:#e6edf3;font-size:.656rem}.estimate-complexity{padding:.188rem .375rem;border-radius:3px;font-size:.563rem;font-weight:600;color:#fff;text-transform:capitalize}.no-estimate-badge{padding:.188rem .563rem;background:#fef3c7;color:#92400e;border-radius:3px;font-size:.563rem;font-weight:600}.entity-list-details{display:flex;gap:.75rem;font-size:.609rem;color:#6b7280}.resolution-badge{padding:.094rem .375rem;background:#fef3c7;color:#92400e;border-radius:3px;font-size:.563rem;font-weight:600}.estimating-side-panel{background:#0d3b4f;border-radius:6px;border:.75px solid #1e5a6d;padding:1.125rem;overflow-y:auto}.estimating-side-panel h3{margin:0 0 1.125rem;font-size:.844rem;color:#e6edf3}.estimation-form{display:flex;flex-direction:column;gap:.938rem}.selected-entity-info{background:#0a2a38;padding:.75rem;border-radius:4.5px;margin-bottom:.375rem;border:.75px solid #1e5a6d}.selected-entity-info h4{margin:0 0 .375rem;font-size:.75rem;color:#e6edf3}.entity-meta{margin:0;display:flex;gap:.375rem;font-size:.656rem}.entity-type-badge{padding:.094rem .375rem;background:#dbeafe;color:#1e40af;border-radius:3px;font-size:.563rem;font-weight:600;text-transform:capitalize}.entity-group-name{color:#6b7280}.form-alert{padding:.563rem;border-radius:4.5px;margin-top:.375rem;font-size:.656rem}.form-alert strong{display:block;margin-bottom:.188rem}.form-alert p{margin:0}.form-alert-warning{background:#1a3a1a;border:1.5px solid #d97706;color:#fbbf24}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.656rem;font-weight:600;color:#8b949e}.form-group input,.form-group select,.form-group textarea{padding:.469rem;border:.75px solid #1e5a6d;border-radius:4.5px;font-size:.656rem;transition:border-color .2s;background:#0a2a38;color:#e6edf3}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db}.form-hint{font-size:.563rem;color:#6b7280;margin-top:-.188rem}.form-actions{display:flex;gap:.375rem;margin-top:.375rem}.btn-primary{flex:1;background:#3498db;color:#fff;border:none;padding:.469rem .938rem;border-radius:4.5px;font-size:.656rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{background:#2980b9}.btn-secondary{background:#1a4d5f;color:#8b949e;border:.75px solid #1e5a6d;padding:.469rem .938rem;border-radius:4.5px;font-size:.656rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#e5e7eb}.no-selection-state{padding:1.5rem;text-align:center;color:#6b7280}.no-selection-state p{margin:0 0 1.125rem}.quick-actions{background:#0a2a38;padding:.75rem;border-radius:4.5px;text-align:left}.quick-actions p{margin:0 0 .375rem;font-size:.656rem;color:#8b949e}.quick-actions ul{list-style:none;padding:0;margin:0}.quick-actions li{margin-bottom:.188rem}.link-button{background:none;border:none;color:#3498db;text-decoration:underline;cursor:pointer;font-size:.656rem;padding:0;text-align:left}.link-button:hover{color:#2980b9}.more-items{color:#6b7280;font-size:.609rem;font-style:italic;margin-top:.188rem}.entity-groups-container{display:flex;flex-direction:column;gap:.75rem}.entity-group-section{background:#0d3b4f;border:.75px solid #1e5a6d;border-radius:6px;overflow:hidden}.entity-group-header{display:flex;justify-content:space-between;align-items:center;padding:.656rem .75rem;background:#0a2a38;border-left:3px solid #3498db;cursor:pointer;transition:background .2s;outline:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative}.entity-group-header:before,.entity-group-header:after{display:none!important}.entity-group-header:hover{background:#1a4d5f}.entity-group-header:focus{outline:none;box-shadow:none}.entity-group-header:active{outline:none;box-shadow:none}.entity-group-header *{outline:none;-webkit-tap-highlight-color:transparent}.group-header-left{display:flex;align-items:center;gap:.563rem}.group-expand-icon{font-size:.563rem;color:#6b7280;width:12px}.group-color-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.group-estimate-count{color:#6b7280;font-size:.656rem;font-weight:400;margin-left:.375rem}.group-header-right{font-size:.656rem;color:#6b7280;font-weight:500}.entity-group-items{padding:.375rem;background:#0a2a38}.entity-type-badge-small{display:inline-block;padding:.094rem .375rem;border-radius:9px;font-size:.525rem;font-weight:600;text-transform:uppercase;margin-left:.375rem;background:#1e5a6d;color:#8b949e;border:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:2px solid #e5e7eb;background:#f9fafb}.modal-header h2{margin:0;font-size:1.25rem;font-weight:700;color:#1f2937}.modal-close-btn{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease;line-height:1}.modal-close-btn:hover{background:#e5e7eb;color:#374151}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-field{margin-bottom:1.5rem}.modal-field:last-child{margin-bottom:0}.modal-label{display:block;font-size:.875rem;font-weight:600;color:#374151;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.modal-value{font-size:1rem;color:#1f2937;padding:.75rem;background:#f9fafb;border-radius:6px;border:2px solid #e5e7eb}.modal-status-select{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:6px;font-size:1rem;font-weight:500;color:#374151;background:#fff;cursor:pointer;transition:all .2s ease}.modal-status-select:hover{border-color:#d1d5db}.modal-status-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-top:2px solid #e5e7eb;background:#f9fafb;gap:1rem}.modal-footer-right{display:flex;gap:.75rem;margin-left:auto}.modal-btn{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.modal-btn-delete{background:#ef4444;color:#fff}.modal-btn-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 6px #ef444440}.modal-btn-cancel{background:#fff;color:#374151;border:2px solid #e5e7eb}.modal-btn-cancel:hover{background:#f9fafb;border-color:#d1d5db}.modal-btn-save{background:#6366f1;color:#fff}.modal-btn-save:hover{background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 6px #6366f140}.modal-date-input{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:6px;font-size:1rem;font-weight:500;color:#374151;background:#fff;cursor:pointer;transition:all .2s ease}.modal-date-input:hover{border-color:#d1d5db}.modal-date-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.modal-helper-text{font-size:.875rem;color:#6b7280;font-style:italic}.professional-gantt{width:100%;background:#0d3b4f;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000004d}.gantt-empty{padding:3rem;text-align:center;color:#8b949e;font-size:.95rem}.gantt-header{display:flex;border-bottom:2px solid #1e5a6d;background:#0a2a38;position:sticky;top:0;z-index:10}.gantt-header-labels{display:flex;border-right:2px solid #1e5a6d;width:300px;min-width:300px}.gantt-header-label-task{flex:1;padding:1rem;font-weight:600;color:#e6edf3;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.gantt-header-timeline{flex:1;display:flex;overflow-x:hidden;min-width:0}.gantt-timeline-column{flex:1;min-width:0;padding:.75rem .5rem;text-align:center;font-weight:600;border-right:1px solid #1e5a6d;display:flex;flex-direction:column;justify-content:center;gap:.25rem}.gantt-timeline-date{color:#e6edf3;font-size:.8rem;font-weight:700;white-space:nowrap}.gantt-timeline-secondary{color:#8b949e;font-size:.7rem;font-weight:500;white-space:nowrap}.gantt-body{max-height:600px;overflow-y:auto}.gantt-row{display:flex;border-bottom:1px solid #1e5a6d;transition:background-color .15s ease,opacity .15s ease,transform .15s ease}.gantt-row:hover,.gantt-row.hovered{background-color:#0a2a38}.gantt-row.dragging{opacity:.5}.gantt-row.drag-over{border-top:3px solid #3498db;background-color:#1a4d5f}.gantt-row-labels{display:flex;border-right:2px solid #1e5a6d;align-items:center;width:380px;min-width:380px;max-width:380px;overflow:hidden}.gantt-row-label-task{flex:1;padding:1rem;display:flex;align-items:center;gap:.5rem;min-height:60px;cursor:grab;overflow:hidden}.gantt-row-label-task:active{cursor:grabbing}.task-drag-handle{color:#6b7280;font-size:1rem;cursor:grab;padding:0 .25rem;-webkit-user-select:none;user-select:none;transition:color .15s ease}.task-drag-handle:hover{color:#8b949e}.gantt-row.dragging .task-drag-handle{cursor:grabbing}.task-index{color:#6b7280;font-size:.875rem;font-weight:500;min-width:2rem}.task-name{font-weight:500;color:#e6edf3;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;margin-right:.5rem;line-height:1.3;cursor:pointer;transition:color .15s ease;min-width:0}.task-name:hover{color:#3498db;text-decoration:underline}.task-status-badge{padding:.2rem .5rem;border-radius:3px;font-size:.6rem;font-weight:600;color:#fff;text-transform:capitalize;white-space:nowrap;flex-shrink:0;max-width:90px;overflow:hidden;text-overflow:ellipsis}.gantt-row-timeline{flex:1;position:relative;display:flex;min-height:60px;overflow-x:hidden;min-width:0}.gantt-timeline-cell{flex:1;min-width:0;border-right:1px solid #1a4d5f;position:relative}.gantt-task-bar{position:absolute;top:50%;transform:translateY(-50%);height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:ew-resize;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;min-width:40px}.gantt-task-bar:hover{transform:translateY(-50%) scale(1.02);box-shadow:0 4px 6px #00000026;z-index:5}.gantt-task-bar.timeline-dragging{cursor:ew-resize;box-shadow:0 6px 12px #00000040;z-index:10;opacity:.9}.gantt-task-bar-label{color:#fff;font-size:.75rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2);white-space:nowrap;padding:0 .5rem}.gantt-body::-webkit-scrollbar{height:8px;width:8px}.gantt-body::-webkit-scrollbar-track{background:#1a4d5f}.gantt-body::-webkit-scrollbar-thumb{background:#3498db;border-radius:4px}.gantt-body::-webkit-scrollbar-thumb:hover{background:#2980b9}.roadmapping-container{height:calc(100vh - 105px);overflow:hidden;width:100%;margin:0;box-sizing:border-box;display:flex;flex-direction:column;position:relative}.roadmapping-gantt{overflow:auto;padding:1.125rem;background:#1a1a1a;flex:1}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.btn-icon{background:none;border:none;font-size:.938rem;cursor:pointer;padding:.188rem;border-radius:3px;transition:background .2s}.btn-icon:hover{background:#1a4d5f}.settings-panel{background:#0a2a38;padding:.75rem;border-radius:4.5px;margin-bottom:.75rem}.roadmap-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.563rem;margin-top:.75rem}.stat-item{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:#0d3b4f;border:.75px solid #1e5a6d;border-radius:6px;color:#e6edf3}.stat-item strong{font-size:1.125rem;font-weight:700;color:#3498db}.stat-item span{font-size:.563rem;color:#6b7280;margin-top:.188rem;text-transform:uppercase;letter-spacing:.038em;font-weight:600}.gantt-container{background:#0d3b4f;border-radius:6px;overflow-x:auto;overflow-y:auto;min-height:300px;width:100%;position:relative}.gantt-header{padding:.75rem;border-bottom:1.5px solid #1e5a6d;position:sticky;top:0;background:#0d3b4f;z-index:10}.gantt-timeline{display:flex;justify-content:space-between;font-weight:600;color:#8b949e}.timeline-date{font-size:.656rem}.gantt-body{padding:.75rem}.gantt-tasks-container{position:relative;min-height:100%}.dependency-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.dependency-lines{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.dependency-lines line{transition:opacity .2s}.dependency-lines line:hover{opacity:.8!important}.gantt-phase{margin-bottom:1.5rem;border-left:3px solid #3498db;padding-left:.75rem}.phase-header{display:flex;align-items:center;gap:.563rem;margin-bottom:.75rem;padding:.563rem;background:#0a2a38;border-radius:4.5px}.phase-color{width:.75rem;height:.75rem;border-radius:1.5px}.phase-dates{font-size:.563rem;color:#6b7280;margin-left:auto}.phase-tasks{display:flex;flex-direction:column;gap:.375rem}.gantt-task-row{display:grid;grid-template-columns:150px 1fr 112.5px;gap:.75rem;align-items:center;padding:.375rem;background:#0d3b4f;border-radius:3px;border:.75px solid #1e5a6d}.gantt-task-row:hover{background:#0a2a38}.task-label{font-size:.656rem;font-weight:500;color:#8b949e;display:flex;flex-direction:column;gap:.281rem;min-width:0;overflow:hidden}.task-header-row{display:flex;align-items:center;gap:.375rem}.task-name{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-bar-container{position:relative;height:24px;background:#1a4d5f;border-radius:3px;overflow:hidden}.task-bar{position:absolute;height:100%;background:#3498db;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.563rem;font-weight:600;transition:all .3s;cursor:pointer}.task-bar:hover{opacity:.9;transform:scaleY(1.1)}.task-hours{white-space:nowrap;text-shadow:0 .75px 1.5px rgba(0,0,0,.2)}.task-status{display:flex;align-items:center;justify-content:center}.status-select{width:100%;padding:.281rem .375rem;font-size:.563rem;border:.75px solid #1e5a6d;border-radius:3px;background:#0a2a38;color:#e6edf3;cursor:pointer;transition:border-color .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-select:focus{outline:none;border-color:#3498db}.status-badge{padding:.25rem .5rem;border-radius:3px;font-size:.563rem;font-weight:600;text-align:center;white-space:nowrap}.status-badge.not-started{background:#6b728033;color:#9ca3af;border:.75px solid rgba(107,114,128,.4)}.status-badge.in-progress{background:#3498db33;color:#3498db;border:.75px solid rgba(52,152,219,.4)}.status-badge.completed{background:#10b98133;color:#10b981;border:.75px solid rgba(16,185,129,.4)}.empty-state{text-align:center;padding:2.25rem;color:#6b7280;font-size:.656rem}.data-product-group{margin-bottom:1.5rem;border-left:3px solid #10b981;padding-left:.375rem}.data-product-header{display:flex;align-items:center;gap:.563rem;padding:.563rem .75rem;background:#10b98126;border-radius:4.5px;margin-bottom:.563rem;border:.75px solid rgba(16,185,129,.3)}.data-product-badge{padding:.188rem .375rem;background:#10b981;color:#fff;border-radius:3px;font-size:.488rem;font-weight:700;text-transform:uppercase;letter-spacing:.038em}.data-product-name{font-size:.75rem;font-weight:700;color:#10b981;flex:1}.data-product-count{font-size:.563rem;color:#10b981;font-weight:600;padding:.188rem .375rem;background:#10b98133;border-radius:9px}.btn-tab{padding:.375rem .563rem;border:.75px solid #1e5a6d;background:#0d3b4f;cursor:pointer;font-size:.656rem;transition:all .2s;white-space:nowrap;flex-shrink:0}.btn-tab:first-child{border-radius:4.5px 0 0 4.5px}.btn-tab:last-child{border-radius:0 4.5px 4.5px 0}.btn-tab.active{background:#3498db;color:#fff;border-color:#3498db}.btn-tab:not(.active):hover{background:#1a4d5f}.task-order{color:#6b7280;margin-right:.375rem;font-size:.656rem}.task-type-badge{display:inline-block;margin-right:.375rem;padding:.094rem .281rem;background:#6366f133;color:#a5b4fc;border-radius:2.25px;font-size:.525rem;font-weight:600;text-transform:uppercase;letter-spacing:.019em}.btn-remove{margin-left:auto;background:none;border:none;color:#ef4444;font-size:.938rem;cursor:pointer;padding:0 .188rem;opacity:.6;transition:opacity .2s}.btn-remove:hover{opacity:1}.task-reorder{display:flex;gap:.188rem}.task-reorder .btn-icon{font-size:.75rem;padding:.094rem .188rem}.gantt-task-row{display:grid;grid-template-columns:280px minmax(300px,1fr) 100px 45px;gap:.75rem;align-items:center;padding:.375rem;background:#0d3b4ff2;border-radius:3px;border:.75px solid #1e5a6d;position:relative;z-index:5;margin-bottom:.375rem}.task-relationships{display:flex;flex-direction:column;gap:.281rem;margin-top:.188rem}.task-dependency-list,.task-dependent-list{display:flex;flex-wrap:wrap;gap:.188rem}.dependency-pill{display:inline-flex;align-items:center;padding:.094rem .375rem;background:#fbbf2433;color:#fbbf24;border:.75px solid rgba(251,191,36,.3);border-radius:9px;font-size:.525rem;font-weight:500;white-space:nowrap}.dependency-pill:before{content:"← ";margin-right:.094rem;font-weight:600}.dependent-pill{display:inline-flex;align-items:center;padding:.094rem .375rem;background:#3b82f633;color:#60a5fa;border:.75px solid rgba(59,130,246,.3);border-radius:9px;font-size:.525rem;font-weight:500;white-space:nowrap}.dependent-pill:before{content:"→ ";margin-right:.094rem;font-weight:600}.coverage-section{margin-bottom:1.125rem}.coverage-section h4{font-size:.656rem;font-weight:600;color:#8b949e;margin-bottom:.375rem}.coverage-bar{display:flex;width:100%;height:18px;background:#1a4d5f;border-radius:4.5px;overflow:hidden;margin-bottom:.375rem}.coverage-segment{height:100%;transition:width .3s ease;display:flex;align-items:center;justify-content:center;font-size:.525rem;font-weight:600;color:#fff;text-shadow:0 .75px 1.5px rgba(0,0,0,.2)}.coverage-segment.not-started{background:#6b7280}.coverage-segment.in-progress{background:#3498db}.coverage-segment.completed{background:#10b981}.coverage-labels{display:flex;flex-direction:column;gap:.188rem}.coverage-label{font-size:.563rem;font-weight:500;display:flex;align-items:center;gap:.281rem}.coverage-label:before{content:"";width:9px;height:9px;border-radius:1.5px;flex-shrink:0}.coverage-label.not-started{color:#6b7280}.coverage-label.not-started:before{background:#6b7280}.coverage-label.in-progress{color:#3498db}.coverage-label.in-progress:before{background:#3498db}.coverage-label.completed{color:#10b981}.coverage-label.completed:before{background:#10b981}.filter-select{padding:.375rem;background-color:#3498db;color:#fff;border:none;border-radius:3px;font-size:.656rem;font-weight:500;cursor:pointer;transition:background-color .2s;width:100%;overflow-y:auto}.filter-select:hover{background-color:#2980b9}.filter-select option{background:#0d3b4f;color:#8b949e;padding:.375rem}.filter-select option:checked{background:#3498db;color:#fff}.filter-select::-webkit-scrollbar{width:6px}.filter-select::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.filter-select::-webkit-scrollbar-thumb{background:#ffffff80;border-radius:3px}.filter-select::-webkit-scrollbar-thumb:hover{background:#ffffffb3}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:.75rem;overflow:hidden}.timeline-controls{display:flex;gap:.375rem;align-items:center;min-width:0;flex:1;max-width:525px}.timeline-filter-input{padding:.375rem .75rem;border:1.5px solid #1e5a6d;border-radius:4.5px;font-size:.656rem;flex:1;min-width:112.5px;max-width:300px;transition:all .2s ease;background:#0a2a38;color:#e6edf3}.timeline-filter-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2.25px #6366f11a}.timeline-filter-input::placeholder{color:#9ca3af}.search-input{width:100%;padding:.563rem;border:1.5px solid #1e5a6d;border-radius:4.5px;font-size:.656rem;transition:all .2s;background:#0a2a38;color:#e6edf3}.search-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2.25px #3498db1a}.search-results{margin-top:.375rem;max-height:300px;overflow-y:auto;border:.75px solid #1e5a6d;border-radius:4.5px;background:#0d3b4f}.search-result-list{display:flex;flex-direction:column}.search-result-item{padding:.563rem;border-bottom:.75px solid #1e5a6d;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.281rem}.search-result-item:last-child{border-bottom:none}.search-result-item:hover:not(.disabled){background:#0a2a38}.search-result-item.disabled{opacity:.5;cursor:not-allowed;background:#0a2a38}.search-result-main{display:flex;align-items:center;gap:.375rem}.search-result-name{font-weight:600;color:#e6edf3;flex:1}.search-result-type{padding:.094rem .281rem;background:#6366f133;color:#a5b4fc;border-radius:2.25px;font-size:.488rem;font-weight:600;text-transform:uppercase;letter-spacing:.019em}.search-result-meta{display:flex;align-items:center;gap:.375rem;font-size:.563rem;color:#6b7280}.search-result-group{flex:1}.search-result-estimate{font-weight:600;color:#3498db}.search-result-added{color:#10b981;font-weight:600}.search-no-results{padding:1.5rem;text-align:center;color:#6b7280;font-size:.656rem}.search-result-more{padding:.563rem;text-align:center;color:#6b7280;font-size:.563rem;font-style:italic;background:#0a2a38;border-top:.75px solid #1e5a6d}.search-results::-webkit-scrollbar{width:6px}.search-results::-webkit-scrollbar-track{background:#1a4d5f;border-radius:3px}.search-results::-webkit-scrollbar-thumb{background:#3498db;border-radius:3px}.search-results::-webkit-scrollbar-thumb:hover{background:#2980b9}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.auth-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:400px;overflow:hidden}.auth-header{background:#2c3e50;color:#fff;padding:2rem;text-align:center}.auth-header h1{margin:0;font-size:1.8rem;font-weight:600}.auth-header p{margin:.5rem 0 0;font-size:.9rem;opacity:.9}.auth-form{padding:2rem}.auth-form h2{margin:0 0 1.5rem;font-size:1.5rem;color:#2c3e50;text-align:center}.auth-message{padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.auth-message.error{background:#fee;color:#c33;border:1px solid #fcc}.auth-message.success{background:#efe;color:#3c3;border:1px solid #cfc}.auth-form .form-group{margin-bottom:1.25rem}.auth-form .form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;font-weight:500;color:#555}.auth-form .form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s}.auth-form .form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-form .btn-primary{width:100%;margin-bottom:1rem}.auth-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:#999;font-size:.9rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid #ddd}.auth-divider span{padding:0 1rem}.btn-google{width:100%;padding:.75rem;background:#fff;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-weight:500;color:#444;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.btn-google:hover{background:#f8f9fa;border-color:#ccc;box-shadow:0 1px 3px #0000001a}.btn-google:disabled{opacity:.6;cursor:not-allowed}.btn-google svg{flex-shrink:0}.btn-link{background:none;border:none;color:#667eea;font-size:.9rem;cursor:pointer;padding:.5rem;width:100%;text-align:center;transition:color .2s}.btn-link:hover{color:#5568d3;text-decoration:underline}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;transition:width .2s ease;position:relative;z-index:100;height:100vh;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{padding:1rem;border-bottom:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between;min-height:60px;gap:.5rem}.sidebar-logo{display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:1.125rem;color:var(--text-primary);overflow:hidden;flex:1;min-width:0}.logo-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-icon.collapsed{width:24px;height:24px}.sidebar.collapsed .sidebar-header{padding:1rem .5rem;justify-content:center}.logo-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.sidebar.collapsed .logo-text{display:none}.sidebar-section{padding:.75rem;border-bottom:1px solid var(--border-primary)}.sidebar-toggle{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary);width:21px;height:21px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.675rem;transition:all .2s}.sidebar-toggle:hover{background:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.sidebar.collapsed .sidebar-toggle{margin:0 auto}.sidebar-toggle-collapsed{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary);width:21px;height:21px;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.675rem;transition:all .2s;margin:.375rem auto}.sidebar-toggle-collapsed:hover{background:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.sidebar-nav{flex:1;padding:.75rem .375rem;overflow-y:auto;min-height:0}.sidebar-nav-item{width:100%;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);padding:.563rem .75rem;margin-bottom:.188rem;cursor:pointer;display:flex;align-items:center;gap:.563rem;font-size:.713rem;font-weight:500;transition:all .2s;text-align:left}.sidebar-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--bg-active);color:var(--text-primary);border-left:2px solid var(--accent-blue)}.sidebar.collapsed .sidebar-nav-item{justify-content:center;padding:.563rem}.nav-icon{font-size:.9rem;flex-shrink:0;width:18px;display:flex;align-items:center;justify-content:center}.nav-label{white-space:nowrap;overflow:hidden}.sidebar.collapsed .nav-label{display:none}.sidebar-git-section{margin-top:auto;border-top:1px solid var(--border-primary);padding:.75rem .375rem;flex-shrink:0;background:var(--bg-secondary)}.sidebar-git-button{width:100%;display:flex;align-items:center;gap:.75rem;padding:.563rem .75rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:4px;color:var(--text-primary);cursor:pointer;transition:all .2s;font-size:.813rem}.sidebar-git-button:hover{background:#3b82f626;border-color:#3b82f64d}.sidebar-git-button.collapsed{justify-content:center;padding:.563rem}.git-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.git-label{font-size:.656rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em;font-weight:600}.git-branch{font-size:.75rem;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{border-top:1px solid var(--border-primary);padding:.75rem .375rem}.sidebar-user-info{padding:.563rem .75rem;margin-bottom:.375rem;border-radius:4px;background:var(--bg-tertiary)}.user-email{font-size:.638rem;color:var(--text-secondary);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-signout{width:100%;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);padding:.563rem .75rem;cursor:pointer;display:flex;align-items:center;gap:.563rem;font-size:.713rem;font-weight:500;transition:all .2s;text-align:left}.sidebar-signout:hover{background:var(--bg-hover);color:var(--accent-red)}.sidebar.collapsed .sidebar-signout{justify-content:center;padding:.563rem}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:2px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--border-secondary)}.mermaid-container{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.mermaid-diagram{width:100%;height:100%;overflow:hidden;cursor:grab}.mermaid-diagram:active{cursor:grabbing}.mermaid-diagram svg{width:100%;height:auto}.diagram-header{position:absolute;top:1rem;left:1rem;right:1rem;display:flex;justify-content:space-between;align-items:flex-start;z-index:10;gap:1rem}.diagram-legend{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:.75rem;box-shadow:0 2px 8px #0000001a}.export-buttons{display:flex;gap:.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:.5rem;box-shadow:0 2px 8px #0000001a}.btn-export{padding:.5rem 1rem;background:#667eea;color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-export:hover{background:#5568d3}.legend-item{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.legend-item:last-child{margin-bottom:0}.legend-color{width:20px;height:20px;border-radius:4px;border:2px solid;flex-shrink:0}.legend-label{font-size:.75rem;color:#374151;font-weight:500}.zoom-hint{position:absolute;bottom:1rem;right:1rem;background:#000000b3;color:#fff;padding:.5rem 1rem;border-radius:4px;font-size:.85rem;pointer-events:none}.empty-state{text-align:center;color:#999;font-size:1.1rem;padding:3rem}.error{color:#e74c3c;padding:1rem;background:#fee;border-radius:4px;text-align:center}.conceptual-viz-wrapper{width:100%;height:100%;max-height:calc(100vh - 105px);position:relative;background-color:var(--canvas-bg-color);background-image:radial-gradient(circle,var(--canvas-bg-dot-color) var(--canvas-bg-dot-size),transparent var(--canvas-bg-dot-size));background-size:var(--canvas-bg-grid-size) var(--canvas-bg-grid-size);overflow:hidden;display:flex;flex-direction:column}.search-bar{position:absolute;top:.75rem;right:.75rem;z-index:100;display:flex;align-items:center;gap:.375rem}.search-clear{position:absolute;right:.375rem;background:transparent;border:none;color:#6b7280;font-size:1.125rem;width:22.5px;height:22.5px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;transition:all .2s}.viz-controls{position:absolute;bottom:.75rem;left:.75rem;display:flex;flex-direction:column;gap:0;z-index:100;box-shadow:0 1.5px 6px #0000001a;border-radius:3px;overflow:hidden}.viz-btn{background:#0d3b4f;color:#e6edf3;border:none;border-bottom:.75px solid #1e5a6d;padding:6px;width:30px;height:30px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.viz-btn:last-child{border-bottom:none}.viz-btn:hover{background:#1a4d5f}.viz-btn-create{position:absolute;top:.75rem;left:.75rem;background:#3498db;color:#fff;border:none;border-radius:4.5px;padding:.563rem 1.125rem;font-size:.675rem;font-weight:600;cursor:pointer;transition:background .2s;z-index:100;box-shadow:0 1.5px 6px #0000001a}.viz-btn-create:hover{background:#2980b9}.conceptual-viz-grid{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;align-items:flex-start;min-width:fit-content;cursor:grab}.conceptual-viz-grid:active{cursor:grabbing}.conceptual-entity-card{background:#0d3b4f;border:2.25px solid;border-radius:9px;padding:1.125rem;min-width:240px;max-width:270px;box-shadow:0 3px 9px #0000004d;transition:all .2s;cursor:pointer}.conceptual-entity-card:hover{transform:translateY(-3px);box-shadow:0 6px 15px #0006}.entity-card-header{display:flex;align-items:center;gap:.563rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1.5px solid #1e5a6d}.entity-card-color{width:9px;height:9px;border-radius:50%;flex-shrink:0}.entity-card-header h3{flex:1;margin:0;font-size:.9rem;color:#e6edf3}.overall-score-badge{background:#2c3e50;color:#fff;padding:.3rem .6rem;border-radius:15px;font-size:.75rem;font-weight:700;min-width:37.5px;text-align:center;box-shadow:0 1.5px 6px #2c3e504d}.entity-list{margin:.75rem 0;padding:.75rem;background:#0a2a38;border-radius:6px}.entity-section-divider{margin:.75rem 0 .375rem;padding-top:.563rem;border-top:1.5px solid #e5e7eb;font-size:.563rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.375px}.entity-item{display:flex;align-items:center;gap:.375rem;padding:.375rem;margin-bottom:.375rem;background:#0d3b4f;border-radius:3px;font-size:.675rem;cursor:pointer;transition:background .2s;border:none}.entity-item:hover{background:#1a4d5f}.conceptual-entity-card .entity-type-indicator{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;min-width:21px;min-height:21px;max-width:21px;max-height:21px;border-radius:50%;font-size:.6rem;line-height:1;font-weight:700;color:#fff;flex-shrink:0;padding:0;box-sizing:border-box}.conceptual-entity-card .entity-type-indicator.metric{background:#3498db}.conceptual-entity-card .entity-type-indicator.entity{background:#7f8c8d}.conceptual-entity-card .entity-type-indicator.derivation{background:#9b59b6}.entity-name{flex:1;color:#e6edf3}.entity-more{text-align:center;color:#7f8c8d;font-size:.637rem;font-style:italic;padding:.375rem}.entity-metrics{display:flex;flex-direction:column;gap:.563rem}.metric-row{display:flex;flex-direction:column;gap:.188rem}.metric-label{font-size:.563rem;color:#7f8c8d;text-transform:uppercase;letter-spacing:.375px;font-weight:600}.metric-bar-container{position:relative;height:18px;width:100%;background:#e5e7eb;border-radius:3px;overflow:hidden}.metric-bar{position:absolute;top:0;left:0;height:100%;background:#3498db;transition:width .3s ease;min-width:3px;z-index:0}.metric-value{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:.563rem;font-weight:600;color:#e6edf3;z-index:2}.empty-viz-state{text-align:center;padding:3rem 1.5rem;color:#7f8c8d}.empty-viz-icon{font-size:3rem;margin-bottom:.75rem}.empty-viz-state h3{font-size:1.125rem;color:#e6edf3;margin-bottom:.375rem}.empty-viz-state p{font-size:.75rem}.logical-viz-wrapper{width:100%;height:100%;position:relative;background-color:var(--canvas-bg-color);background-image:radial-gradient(circle,var(--canvas-bg-dot-color) var(--canvas-bg-dot-size),transparent var(--canvas-bg-dot-size));background-size:var(--canvas-bg-grid-size) var(--canvas-bg-grid-size);overflow:hidden;display:flex;flex-direction:column}.logical-toolbar{position:absolute;top:.75rem;left:.75rem;right:.75rem;z-index:100;display:flex;justify-content:flex-start;align-items:center;gap:.375rem}.search-bar{position:relative;margin-left:auto}.search-input{padding:.563rem .75rem;border:.75px solid #1e5a6d;border-radius:4.5px;font-size:.675rem;width:225px;background:#0d3b4f;color:#e6edf3;box-shadow:0 1.5px 6px #0000001a;transition:all .2s}.search-input:focus{outline:none;border-color:#3498db;box-shadow:0 1.5px 9px #3498db33}.search-input::placeholder{color:#6e7681}.search-clear{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#6b7280;font-size:1.125rem;width:22.5px;height:22.5px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;transition:all .2s}.search-clear:hover{background:#1a4d5f;color:#e6edf3}.btn-create-logical{background:#3498db;color:#fff;border:none;padding:.563rem 1.125rem;border-radius:4.5px;font-size:.675rem;font-weight:600;cursor:pointer;transition:background .2s;box-shadow:0 1.5px 6px #0000001a}.btn-create-logical:hover{background:#2980b9}.btn-layout-toggle{background:#10b981;color:#fff;border:none;padding:.563rem 1.125rem;border-radius:4.5px;font-size:.675rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 1.5px 6px #0000001a}.btn-layout-toggle:hover{background:#059669;transform:translateY(-.75px)}.logical-viz-content{flex:1;overflow:auto}.logical-flow-view{flex:1;width:100%;min-height:450px;background:#1a1a1a}.dfd-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#6b7280}.dfd-empty-state h3{font-size:1.125rem;color:#e6edf3;margin-bottom:.375rem}.dfd-empty-state p{font-size:.75rem;color:#9ca3af}.dfd-source-node{background:#0d3b4f;border:1.5px solid #6c757d;border-radius:37.5px;min-width:120px;box-shadow:0 1.5px 6px #0000004d;overflow:hidden;position:relative}.dfd-source-header{padding:.375rem .75rem;background:#6c757d;color:#fff;text-align:center}.dfd-source-type{font-size:.525rem;font-weight:700;text-transform:uppercase;letter-spacing:.375px}.dfd-source-body{padding:.563rem .75rem;text-align:center}.dfd-source-body strong{font-size:.675rem;color:#e6edf3;display:block}.dfd-source-desc{font-size:.563rem;color:#6b7280;margin:.188rem 0 0;line-height:1.3}.node-delete-btn{position:absolute;top:3px;right:3px;background:#e74c3ce6;color:#fff;border:none;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;font-weight:700;line-height:1;padding:0;opacity:0;transition:all .2s;z-index:10}.dfd-source-node:hover .node-delete-btn,.dfd-entity-node:hover .node-delete-btn{opacity:1}.dfd-entity-node{background:#0d3b4f;border:1.5px solid #3498db;border-radius:6px;min-width:135px;box-shadow:0 1.5px 6px #0000004d;overflow:hidden;position:relative}.dfd-entity-header{padding:.563rem .75rem;background:#3498db;color:#fff;display:flex;align-items:center;gap:.375rem}.dfd-entity-type{width:18px;height:18px;border-radius:50%;background:#ffffff4d;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.563rem;flex-shrink:0}.dfd-entity-header strong{font-size:.712rem;flex:1}.dfd-entity-body{padding:.563rem .75rem;display:flex;flex-direction:column;gap:.188rem}.dfd-entity-group{font-size:.563rem;color:#6b7280;font-weight:500}.dfd-table-name{font-size:.563rem;color:#e6edf3;font-family:Courier New,monospace;background:#0a2a38;padding:.188rem .375rem;border-radius:2.25px;align-self:flex-start}.logical-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.logical-modal{background:#0d3b4f;border-radius:6px;box-shadow:0 3px 9px #00000080;width:90%;max-width:375px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.logical-modal-header{padding:.75rem 1.125rem;background:#2c3e50;color:#fff;display:flex;justify-content:space-between;align-items:center}.logical-modal-header h3{margin:0;font-size:.825rem;font-weight:600}.btn-close-modal{background:transparent;border:none;color:#fff;font-size:1.125rem;cursor:pointer;padding:0;width:22.5px;height:22.5px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background .2s}.btn-close-modal:hover{background:#ffffff1a}.logical-modal-content{padding:1.125rem;overflow-y:auto;flex:1}.logical-modal-content .form-group{margin-bottom:.75rem}.logical-modal-content .form-group:last-of-type{margin-bottom:1.125rem}.logical-modal-content label{display:block;margin-bottom:.375rem;font-weight:600;color:#e6edf3;font-size:.675rem}.logical-modal-content input,.logical-modal-content select,.logical-modal-content textarea{width:100%;padding:.375rem;border:.75px solid #1e5a6d;border-radius:3px;font-size:.675rem;font-family:inherit;background:#0a2a38;color:#e6edf3}.logical-modal-content textarea{resize:vertical;min-height:45px}.logical-modal-content input:focus,.logical-modal-content select:focus,.logical-modal-content textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2.25px #3498db1a}.btn-submit{background:#3498db;color:#fff;border:none;padding:.45rem .75rem;border-radius:3px;font-size:.675rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%}.btn-submit:hover{background:#2980b9}.logical-grid-container{padding:1.5rem;min-width:fit-content}.logical-section{margin-bottom:2.25rem}.section-title{font-size:.9rem;font-weight:600;color:#e6edf3;margin-bottom:1.125rem;padding-bottom:.375rem;border-bottom:1.5px solid #1e5a6d}.logical-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:1.125rem}.logical-card{background:#0d3b4f;border:1.5px solid #1e5a6d;border-radius:6px;padding:.938rem;cursor:pointer;transition:all .2s;box-shadow:0 1.5px 3px #0000004d}.logical-card:hover{transform:translateY(-1.5px);box-shadow:0 3px 9px #0006;border-color:#3498db}.source-card{border-left:3px solid #6c757d}.entity-card{border-left:3px solid}.logical-card-header{display:flex;align-items:center;gap:.563rem;margin-bottom:.563rem}.logical-card-header h4{margin:0;font-size:.75rem;color:#e6edf3;font-weight:600}.entity-type-badge-small{width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.563rem;flex-shrink:0}.entity-group-label{font-size:.563rem;color:#6b7280;font-weight:500}.logical-card-description{font-size:.637rem;color:#6b7280;margin:.375rem 0;line-height:1.4}.logical-card-meta{font-size:.6rem;color:#9ca3af;margin-top:.375rem}.logical-card-body{margin-top:.563rem}.source-mappings{display:flex;flex-direction:column;gap:.375rem}.mappings-label{font-size:.563rem;color:#6b7280;font-weight:600;text-transform:uppercase;letter-spacing:.375px}.mapping-item{display:flex;align-items:center;gap:.375rem;padding:.375rem;background:#0a2a38;border-radius:3px;font-size:.637rem}.mapping-source{font-weight:600;color:#e6edf3}.mapping-table{font-family:Courier New,monospace;color:#6b7280;font-size:.6rem}.no-mappings-msg{text-align:center;color:#9ca3af;font-size:.637rem;padding:.563rem;font-style:italic}.empty-state{text-align:center;padding:1.5rem;color:#9ca3af;font-size:.675rem}.empty-state p{margin:0}.logical-editor-panel{position:absolute;top:52.5px;right:15px;width:300px;max-height:calc(100vh - 150px);background:#0d3b4f;border-radius:6px;box-shadow:0 3px 9px #00000080;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.logical-editor-header{padding:.75rem 1.125rem;background:#2c3e50;color:#fff;display:flex;justify-content:space-between;align-items:center}.logical-editor-header h3{margin:0;font-size:.75rem;font-weight:600}.btn-close-editor{background:transparent;border:none;color:#fff;font-size:1.125rem;cursor:pointer;padding:0;width:22.5px;height:22.5px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background .2s}.btn-close-editor:hover{background:#ffffff1a}.logical-editor-content{padding:1.125rem;overflow-y:auto;flex:1}.editor-form .form-group{margin-bottom:.75rem}.editor-form label{display:block;margin-bottom:.375rem;font-weight:600;color:#e6edf3;font-size:.675rem}.editor-form input,.editor-form select,.editor-form textarea{width:100%;padding:.375rem;border:.75px solid #1e5a6d;border-radius:3px;font-size:.675rem;font-family:inherit;background:#0a2a38;color:#e6edf3}.editor-form textarea{resize:vertical;min-height:45px}.editor-form input:focus,.editor-form select:focus,.editor-form textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2.25px #3498db1a}.btn-save{background:#3498db;color:#fff;border:none;padding:.45rem .75rem;border-radius:3px;font-size:.675rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;margin-top:.375rem}.btn-save:hover{background:#2980b9}.btn-delete-editor{background:#e74c3c;color:#fff;border:none;padding:.45rem .75rem;border-radius:3px;font-size:.675rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;margin-top:.75rem}.btn-delete-editor:hover{background:#c0392b}.info-section{background:#0a2a38;padding:.75rem;border-radius:4.5px;margin-bottom:1.125rem}.info-section p{margin:.375rem 0;font-size:.675rem;color:#4b5563}.info-section p:first-child{margin-top:0}.info-section strong{color:#e6edf3;font-weight:600}.mappings-section h4{margin:0 0 .563rem;font-size:.712rem;font-weight:600;color:#e6edf3}.mappings-list{margin-bottom:.75rem}.mapping-list-item{display:flex;justify-content:space-between;align-items:center;padding:.563rem;background:#0a2a38;border-radius:3px;margin-bottom:.375rem;font-size:.675rem;color:#e6edf3}.table-name-display{font-family:Courier New,monospace;color:#6b7280;font-size:.637rem}.btn-remove-mapping{background:transparent;border:.75px solid #e5e7eb;color:#6b7280;padding:.188rem .375rem;border-radius:2.25px;font-size:.675rem;cursor:pointer;transition:all .2s}.btn-remove-mapping:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.no-mappings-text{color:#9ca3af;font-size:.637rem;font-style:italic;margin:.75rem 0}.btn-add-mapping{background:#3498db;color:#fff;border:none;padding:.45rem .75rem;border-radius:3px;font-size:.675rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%;margin-top:.375rem}.btn-add-mapping:hover{background:#2980b9}.add-mapping-form{margin-top:.75rem;padding:.75rem;background:#0a2a38;border-radius:4.5px}.form-buttons{display:flex;gap:.375rem;margin-top:.563rem}.btn-save-small{background:#3498db;color:#fff;border:none;padding:.375rem .75rem;border-radius:3px;font-size:.637rem;font-weight:500;cursor:pointer;transition:background .2s;flex:1}.btn-save-small:hover{background:#2980b9}.btn-cancel-small{background:#e5e7eb;color:#4b5563;border:none;padding:.375rem .75rem;border-radius:3px;font-size:.637rem;font-weight:500;cursor:pointer;transition:background .2s;flex:1}.btn-cancel-small:hover{background:#d1d5db}.no-data{padding:.75rem;text-align:center;color:#9ca3af;font-style:italic}.logical-entity-card{background:#0d3b4f;border:2.25px solid #3498db;border-radius:9px;padding:1.125rem;min-width:255px;max-width:285px;box-shadow:0 3px 9px #3498db4d;transition:all .2s}.logical-entity-card:hover{transform:translateY(-3px);box-shadow:0 6px 15px #3498db66}.logical-card-header{display:flex;align-items:center;gap:.563rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1.5px solid #1e5a6d}.source-type-badge{background:#3498db;color:#fff;padding:.225rem .45rem;border-radius:4.5px;font-size:.525rem;font-weight:700;letter-spacing:.375px;flex-shrink:0}.logical-card-header h3{flex:1;margin:0;font-size:.862rem;color:#e6edf3;font-family:Courier New,monospace}.source-description{background:#0a2a38;padding:.563rem;border-radius:4.5px;font-size:.637rem;color:#8b949e;line-height:1.5;margin-bottom:.75rem;border-left:2.25px solid #3498db}.mapped-entities-section{margin:.75rem 0;padding:.75rem;background:#0a2a38;border-radius:6px}.section-header{font-weight:600;color:#e6edf3;margin-bottom:.563rem;font-size:.637rem;text-transform:uppercase;letter-spacing:.375px}.mapped-entities-list{display:flex;flex-direction:column;gap:.375rem;max-height:135px;overflow-y:auto}.mapped-entity-item{display:flex;align-items:center;gap:.375rem;padding:.375rem;background:#0d3b4f;border-radius:3px;font-size:.637rem}.entity-color-dot{width:7.5px;height:7.5px;border-radius:50%;flex-shrink:0}.mapped-entity-name{flex:1;color:#e6edf3;font-weight:500}.table-name{color:#7f8c8d;font-family:Courier New,monospace;font-size:.563rem}.no-mappings{text-align:center;color:#7f8c8d;font-size:.637rem;padding:.75rem;font-style:italic}.logical-metrics{display:flex;flex-direction:column;gap:.563rem;margin-top:.75rem}.dfd-diagram{position:relative;display:flex;flex-direction:column;gap:2.25rem;min-width:fit-content}.dfd-layer{display:flex;flex-direction:column;gap:.75rem}.layer-label{font-size:.563rem;font-weight:700;color:#8b949e;text-transform:uppercase;letter-spacing:.75px;padding:.375rem .75rem;background:#0a2a38;border-left:3px solid #3498db;border-radius:3px}.layer-nodes{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;align-items:flex-start;padding:0 .75rem}.relationship-lines{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.source-node{background:#0d3b4f;border:1.5px solid #6c757d;border-radius:37.5px;min-width:135px;max-width:165px;box-shadow:0 1.5px 6px #0000004d;transition:all .2s;position:relative;z-index:2;overflow:hidden}.source-node:hover{box-shadow:0 3px 9px #00000026}.source-header{padding:.563rem .75rem;background:#6c757d;color:#fff;text-align:center}.source-header h3{margin:0;font-size:.675rem;font-weight:600}.source-body{padding:.563rem .75rem;display:flex;flex-direction:column;align-items:center;gap:.375rem}.source-type-badge{background:#e9ecef;color:#495057;padding:.15rem .375rem;border-radius:2.25px;font-size:.525rem;font-weight:600;text-transform:uppercase}.source-description{font-size:.525rem;color:#6c757d;text-align:center;line-height:1.3}.er-entity-box{background:#0d3b4f;border:1.5px solid #2c3e50;border-radius:3px;min-width:150px;max-width:180px;box-shadow:0 1.5px 6px #0000004d;transition:all .2s;position:relative;z-index:2;overflow:hidden}.er-entity-box:hover{box-shadow:0 3px 9px #00000026}.er-entity-header{padding:.563rem .75rem;background:#2c3e50;color:#fff;text-align:center}.er-entity-header h3{margin:0;font-size:.712rem;font-weight:600;font-family:Courier New,monospace}.er-entity-body{padding:.75rem;background:#0d3b4f;display:flex;flex-direction:column;gap:.375rem}.entity-meta{display:flex;justify-content:center;align-items:center}.entity-type-badge{background:#e9ecef;color:#495057;padding:.15rem .375rem;border-radius:2.25px;font-size:.525rem;font-weight:600;text-transform:uppercase}.entity-sources{margin-top:.375rem}.sources-label{font-size:.525rem;color:#6c757d;font-weight:600;text-transform:uppercase;margin-bottom:.188rem}.source-item{font-size:.563rem;color:#495057;padding:.188rem 0;display:flex;align-items:center;gap:.188rem}.table-name{font-size:.525rem;color:#6c757d;font-family:Courier New,monospace}.entity-relationships{font-size:.563rem;color:#3498db;font-weight:500;text-align:center;padding-top:.375rem;margin-top:.375rem;border-top:.75px solid #e9ecef}.btn-relationship-active{background:#3498db!important;color:#fff!important}.relationship-status{display:flex;align-items:center;gap:.75rem;background:#dbeafe;padding:.563rem .75rem;border-radius:4.5px;font-size:.675rem;color:#1e3a8a;border:.75px solid #3498db}.relationship-status strong{color:#1e40af;font-weight:600}.btn-cancel-relationship{background:#ef4444;color:#fff;border:none;padding:.375rem .75rem;border-radius:3px;font-size:.637rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-cancel-relationship:hover{background:#dc2626}.dfd-group-header-node{min-width:200px;background:#1a1a1a;border:2px solid;border-radius:6px;overflow:hidden;box-shadow:0 2px 8px #0003;transition:all .2s}.dfd-group-header-node:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-1px)}.dfd-group-header-content{padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:600;font-size:.875rem}.dfd-group-toggle{font-size:.75rem;opacity:.8}.dfd-group-count{margin-left:auto;opacity:.7;font-size:.75rem;font-weight:400}.physical-viz-wrapper{width:100%;height:100%;display:flex;flex-direction:column;background:var(--canvas-bg-color, #0a0a0a);position:relative}.physical-toolbar{display:flex;gap:.75rem;padding:1rem;background:#0d3b4f4d;border-bottom:1px solid rgba(52,152,219,.2);align-items:center;flex-shrink:0}.btn-create-physical{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-create-physical:hover{background:#2980b9;transform:translateY(-1px);box-shadow:0 4px 8px #3498db4d}.btn-layout-toggle{background:#3498db1a;color:#3498db;border:1px solid rgba(52,152,219,.3);padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-layout-toggle:hover{background:#3498db33;border-color:#3498db80}.search-bar{display:flex;align-items:center;flex:1;max-width:400px;position:relative;margin-left:auto}.search-input{flex:1;padding:.5rem 2rem .5rem 1rem;background:#0d3b4f;border:1px solid rgba(52,152,219,.3);border-radius:6px;color:#fff;font-size:.875rem;outline:none;transition:all .2s}.search-input::placeholder{color:#ffffff80}.search-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.search-clear{position:absolute;right:.5rem;background:none;border:none;color:#fff9;font-size:1.5rem;line-height:1;cursor:pointer;padding:.25rem;transition:color .2s}.search-clear:hover{color:#fff}.physical-flow-view{flex:1;position:relative;min-height:0}.physical-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#ffffff80;text-align:center;padding:2rem}.physical-empty-state h3{margin:0 0 .5rem;font-size:1.25rem;color:#ffffffb3}.physical-empty-state p{margin:0;font-size:.875rem}.physical-table-node{background:#1a1a1a;border:2px solid #3498db;border-radius:8px;min-width:250px;max-width:300px;font-size:.875rem;box-shadow:0 4px 12px #0000004d;position:relative;transition:all .2s}.physical-table-node:hover{box-shadow:0 6px 16px #3498db66;transform:translateY(-2px)}.physical-table-header{background:#3498db;color:#fff;padding:.75rem;border-radius:6px 6px 0 0;font-weight:600;font-size:.9rem;display:flex;align-items:center;justify-content:center}.physical-table-body{padding:.75rem;background:#1a1a1a;border-radius:0 0 6px 6px}.physical-entity-group{display:block;font-size:.75rem;color:#ffffff80;margin-bottom:.5rem;font-style:italic}.physical-fields-list{display:flex;flex-direction:column;gap:.25rem}.physical-field-item{display:flex;justify-content:space-between;align-items:center;padding:.375rem .5rem;background:#3498db0d;border-radius:4px;border-left:2px solid rgba(52,152,219,.3);transition:all .2s}.physical-field-item:hover{background:#3498db1a;border-left-color:#3498db}.field-name{font-weight:500;color:#fff;font-size:.8rem;display:flex;align-items:center;gap:.25rem}.pk-indicator,.fk-indicator{font-size:.7rem}.field-type{font-family:Courier New,monospace;font-size:.75rem;color:#fff9;white-space:nowrap}.node-delete-btn{position:absolute;top:-8px;right:-8px;background:#e74c3c;color:#fff;border:2px solid #1a1a1a;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:all .2s;z-index:10}.physical-table-node:hover .node-delete-btn{opacity:1}.node-delete-btn:hover{background:#c0392b;transform:scale(1.1)}.physical-table-node .react-flow__handle{width:12px;height:12px;background:#3498db;border:2px solid #1a1a1a;border-radius:50%}.physical-table-node .react-flow__handle-left{left:-6px}.physical-table-node .react-flow__handle-right{right:-6px}.physical-table-node .react-flow__handle:hover{background:#2ecc71;transform:scale(1.3)}.physical-editor-panel{position:absolute;top:0;right:0;width:400px;height:100%;background:#1a1a1a;border-left:1px solid rgba(52,152,219,.3);box-shadow:-4px 0 16px #0000004d;display:flex;flex-direction:column;z-index:100}.physical-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#0d3b4f4d;border-bottom:1px solid rgba(52,152,219,.2)}.physical-editor-header h3{margin:0;font-size:1rem;color:#fff;font-weight:600}.btn-close-editor{background:none;border:none;color:#fff9;font-size:1.75rem;line-height:1;cursor:pointer;padding:0;transition:color .2s}.btn-close-editor:hover{color:#fff}.physical-editor-content{flex:1;overflow-y:auto;padding:1rem}.editor-form{display:flex;flex-direction:column;gap:1rem}.form-group label{font-size:.875rem;font-weight:600;color:#ffffffe6}.form-group input,.form-group select,.form-group textarea{padding:.5rem;background:#0d3b4f;border:1px solid rgba(52,152,219,.3);border-radius:4px;color:#fff;font-size:.875rem;outline:none;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.form-group input::placeholder,.form-group textarea::placeholder{color:#fff6}.form-group-inline{display:flex;flex-wrap:wrap;gap:1rem;margin:.5rem 0}.form-group-inline label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#ffffffe6;cursor:pointer;white-space:nowrap;flex-shrink:0}.form-group-inline input[type=checkbox]{width:auto;cursor:pointer;margin:0;flex-shrink:0}.btn-save{background:#27ae60;color:#fff;border:none;padding:.625rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-save:hover{background:#229954;transform:translateY(-1px);box-shadow:0 4px 8px #27ae604d}.fields-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(52,152,219,.2)}.fields-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.fields-section h4{margin:0;font-size:.9rem;color:#ffffffe6;font-weight:600;flex-shrink:0}.field-search-bar{position:relative;flex:1;max-width:200px}.field-search-input{width:100%;padding:.4rem 1.75rem .4rem .5rem;background:#3498db1a;border:1px solid rgba(52,152,219,.3);border-radius:4px;color:#fff;font-size:.75rem;outline:none;transition:all .2s}.field-search-input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a}.field-search-clear{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff9;cursor:pointer;font-size:1.2rem;line-height:1;padding:.25rem;transition:color .2s}.field-search-clear:hover{color:#fff}.fields-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;max-height:400px;overflow-y:auto}.field-list-item{background:#3498db0d;border:1px solid rgba(52,152,219,.2);border-radius:6px;transition:all .2s;overflow:hidden}.field-list-item.expanded{background:#3498db14}.field-item-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.field-item-header:hover{background:#3498db1a}.field-item-main{display:flex;align-items:center;gap:.5rem;flex:1;flex-wrap:wrap}.field-expand-icon{color:#ffffff80;font-size:.7rem;width:12px;flex-shrink:0}.field-name{color:#fff;font-size:.875rem;font-weight:600}.field-type-display{font-family:Courier New,monospace;font-size:.75rem;color:#fff9;margin-left:.5rem}.badge-pk,.badge-fk,.badge-not-null,.badge-unique,.badge-indexed,.badge-warning{display:inline-block;font-size:.625rem;padding:.125rem .375rem;border-radius:3px;font-weight:600;white-space:nowrap}.badge-pk{background:#f39c12;color:#fff}.badge-fk{background:#9b59b6;color:#fff}.badge-not-null{background:#e74c3c;color:#fff}.badge-unique{background:#16a085;color:#fff}.badge-indexed{background:#2980b9;color:#fff}.badge-warning{background:#e67e22;color:#fff}.field-description{font-size:.75rem;color:#fff9;margin:.25rem 0 0;font-style:italic}.field-item-details{padding:.75rem;background:#0003;border-top:1px solid rgba(52,152,219,.2);display:flex;flex-direction:column;gap:.5rem}.field-detail-row{display:flex;align-items:flex-start;gap:.5rem;font-size:.75rem}.field-detail-label{color:#fff9;font-weight:600;min-width:80px;flex-shrink:0}.field-detail-value{color:#ffffffe6;flex:1;word-break:break-word}.field-detail-value.code{font-family:Courier New,monospace;background:#0000004d;padding:.25rem .5rem;border-radius:3px;font-size:.7rem}.no-fields-text{font-size:.875rem;color:#ffffff80;font-style:italic;margin:0 0 1rem}.btn-add-field{background:#3498db1a;color:#3498db;border:1px solid rgba(52,152,219,.3);padding:.5rem .75rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.btn-add-field:hover{background:#3498db33;border-color:#3498db80}.add-field-form{background:#3498db0d;padding:1rem;border-radius:6px;border:1px solid rgba(52,152,219,.2);margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.form-buttons{display:flex;gap:.5rem;margin-top:.5rem}.btn-save-small{flex:1;background:#27ae60;color:#fff;border:none;padding:.5rem .75rem;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-save-small:hover{background:#229954}.btn-cancel-small{flex:1;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);padding:.5rem .75rem;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel-small:hover{background:#ffffff26;border-color:#ffffff4d}.field-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.btn-edit-field{background:none;border:none;color:#3498db;font-size:1.1rem;line-height:1;cursor:pointer;padding:0 .25rem;transition:all .2s}.btn-edit-field:hover{color:#2ecc71;transform:scale(1.1)}.btn-remove-field{background:none;border:none;color:#e74c3c;font-size:1.25rem;line-height:1;cursor:pointer;padding:0 .25rem;transition:all .2s}.btn-remove-field:hover{color:#c0392b;transform:scale(1.1)}.form-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(52,152,219,.2)}.btn-delete-editor{background:#e74c3c;color:#fff;border:none;padding:.625rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.btn-delete-editor:hover{background:#c0392b;transform:translateY(-1px);box-shadow:0 4px 8px #e74c3c4d}.physical-flow-view .react-flow{background:radial-gradient(circle at 50% 50%,#3498db08,#0a0a0a80),radial-gradient(circle,rgba(52,152,219,.05) 1px,transparent 1px);background-size:100% 100%,20px 20px}.physical-flow-view .react-flow__background{opacity:.3}.physical-flow-view .react-flow__edge{transition:all .2s}.physical-flow-view .react-flow__edge.animated{animation:dashFlow .5s linear infinite}@keyframes dashFlow{to{stroke-dashoffset:-24}}.physical-editor-content::-webkit-scrollbar{width:8px}.physical-editor-content::-webkit-scrollbar-track{background:#0003}.physical-editor-content::-webkit-scrollbar-thumb{background:#3498db4d;border-radius:4px}.physical-editor-content::-webkit-scrollbar-thumb:hover{background:#3498db80}.project-selector{display:flex;gap:.563rem;align-items:center}.project-selector-label{font-size:.656rem;font-weight:600;color:#8b949e;text-transform:uppercase;letter-spacing:.038em}.project-dropdown{padding:.469rem .75rem;border:.75px solid rgba(255,255,255,.1);border-radius:4.5px;background-color:#ffffff0d;font-size:.712rem;color:#e6edf3;cursor:pointer;min-width:165px;transition:all .2s}.project-dropdown:hover{border-color:#fff3;background-color:#ffffff14}.project-dropdown:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2.25px #3b82f626}.btn-new-project{padding:.469rem .938rem;background:#3b82f6;color:#fff;border:none;border-radius:4.5px;font-size:.712rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-new-project:hover{background:#2563eb;transform:translateY(-.75px)}.btn-export-mml{padding:.469rem .938rem;background:#10b981;color:#fff;border:none;border-radius:4.5px;font-size:.712rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-export-mml:hover{background:#059669;transform:translateY(-.75px)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:6px;padding:1.125rem;width:90%;max-width:375px;box-shadow:0 15px 18.75px -3.75px #0000001a,0 7.5px 7.5px -3.75px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.125rem}.modal-header h2{margin:0;font-size:.938rem;color:#1f2937}.modal-close{background:none;border:none;font-size:1.125rem;color:#6b7280;cursor:pointer;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:3px}.modal-close:hover{background-color:#f3f4f6;color:#1f2937}.modal-content .form-group{margin-bottom:.75rem}.modal-content .form-group label{display:block;font-size:.656rem;font-weight:500;color:#374151;margin-bottom:.188rem}.modal-content .form-group input,.modal-content .form-group textarea{width:100%;padding:.375rem;border:.75px solid #d1d5db;border-radius:3px;font-size:.656rem}.modal-content .form-group textarea{resize:vertical;font-family:inherit}.modal-actions{display:flex;gap:.375rem;justify-content:flex-end;margin-top:1.125rem}.btn-cancel{padding:.375rem .75rem;background-color:#fff;color:#374151;border:.75px solid #d1d5db;border-radius:3px;font-size:.656rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-cancel:hover{background-color:#f9fafb}.btn-create{padding:.375rem .75rem;background-color:#3498db;color:#fff;border:none;border-radius:3px;font-size:.656rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-create:hover{background-color:#2980b9}.btn-delete-project{padding:.469rem .938rem;background:#ef4444;color:#fff;border:none;border-radius:4.5px;font-size:.712rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-delete-project:hover{background:#dc2626;transform:translateY(-.75px)}.modal-delete{max-width:450px}.modal-body{font-size:.656rem;color:#374151}.warning-message{background-color:#fef2f2;border:.75px solid #fecaca;border-radius:3px;padding:.563rem;margin-bottom:.75rem;color:#991b1b}.project-name-highlight{background-color:#f3f4f6;padding:.375rem;border-radius:3px;font-family:monospace;margin:.375rem 0}.deletion-list{margin:.75rem 0;padding-left:1.125rem}.deletion-list li{margin-bottom:.375rem;color:#6b7280}.confirmation-input{width:100%;padding:.375rem;border:1.5px solid #d1d5db;border-radius:3px;font-size:.656rem;margin-top:.375rem;font-family:monospace}.confirmation-input:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 2.25px #ef44441a}.btn-delete-confirm{padding:.375rem .75rem;background-color:#ef4444;color:#fff;border:none;border-radius:3px;font-size:.656rem;font-weight:500;cursor:pointer;transition:background-color .2s,opacity .2s}.btn-delete-confirm:hover:not(:disabled){background-color:#dc2626}.btn-delete-confirm:disabled{opacity:.5;cursor:not-allowed}.dashboard-container{padding:0;width:100%;margin:0;background:#0a1929;min-height:calc(100vh - 105px);box-sizing:border-box;overflow-x:hidden}.dashboard-container>.project-selector{padding:1.125rem 1.5rem;background:#ffffff05;border-bottom:.75px solid rgba(255,255,255,.05);margin-bottom:0}.dashboard-header{margin:0;padding:1.5rem 1.5rem 1.125rem;border-bottom:none}.dashboard-header h1{font-size:1.313rem;font-weight:600;color:#e6edf3;margin-bottom:.375rem;margin-top:0}.dashboard-subtitle{color:#8b949e;font-size:.703rem}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem;max-width:100%;padding:0 1.5rem}.dashboard-card{background:#0d1b2a;border:.75px solid rgba(255,255,255,.08);border-radius:6px;padding:.75rem;transition:all .2s ease;min-width:0;overflow:hidden;position:relative;display:flex;flex-direction:column;min-height:280px}.dashboard-card:hover{background:#132638}.card-header{margin-bottom:.75rem;padding-bottom:0;border-bottom:none}.card-header h3{font-size:.656rem;font-weight:600;color:#8b949e;margin:0;text-transform:uppercase;letter-spacing:.5px}.card-body{display:flex;flex-direction:column;gap:.375rem;flex:1}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:.375rem .563rem;width:100%;max-width:100%;background:#1e293b66;border-radius:4.5px;border-left:2.25px solid rgba(59,130,246,.5);transition:all .2s ease}.metric-row:hover{background:#1e293b99;border-left-color:#3b82f6}.metric-label{color:#8b949e;font-size:.656rem;font-weight:500;flex:1;min-width:0;text-transform:none}.metric-value-container{display:flex;align-items:baseline;gap:.375rem;flex-shrink:0;margin-left:auto}.dashboard-container .metric-value{color:#e6edf3;font-size:.844rem;font-weight:700;white-space:nowrap;position:static;transform:none;right:auto;top:auto}.metric-percentage{color:#8b949e;font-size:.609rem;font-weight:500}.chart-container{margin-top:auto;padding-top:.75rem}.chart-container-full{flex:1;display:flex;align-items:center;justify-content:center;min-height:250px}.action-item,.quality-issue{display:flex;justify-content:space-between;align-items:center;padding:.563rem .75rem;border-radius:4.5px;transition:all .2s ease;border-left:2.25px solid transparent}.action-item.warning{background:#1e293b66;border-left-color:#f59e0b}.action-item.success{background:#1e293b66;border-left-color:#059669}.quality-issue.error{background:#1e293b66;border-left-color:#dc2626}.quality-issue.success{background:#1e293b66;border-left-color:#059669}.action-label,.issue-label{font-size:.656rem;font-weight:500;color:#8b949e;text-transform:none}.action-value,.issue-value{font-size:.844rem;font-weight:700;color:#e6edf3;white-space:nowrap}.success-message{text-align:center;color:#059669;font-weight:500;padding:.563rem .75rem;font-size:.656rem;background:#1e293b66;border-radius:4.5px;border-left:2.25px solid #059669}.dashboard-section{background:#0d1b2a;border:none;border-radius:6px;padding:1.5rem;margin:1.5rem 1.5rem 0}.dashboard-section h2{font-size:.938rem;font-weight:600;color:#e6edf3;margin-bottom:1.125rem;text-transform:uppercase;letter-spacing:.375px}.issues-panel{margin-bottom:1.5rem;padding:1.125rem;background:#ffffff08;border:none;border-radius:4.5px}.issues-panel:last-child{margin-bottom:0}.issues-panel h3{font-size:.75rem;font-weight:600;color:#e6edf3;margin-bottom:.375rem}.issues-description{color:#8b949e;font-size:.656rem;margin-bottom:.75rem;line-height:1.5}.issues-table{width:100%;border-collapse:collapse;font-size:.609rem}.issues-table thead{background:#ffffff05}.issues-table th{padding:.563rem .75rem;text-align:left;font-weight:600;color:#8b949e;border-bottom:.75px solid rgba(255,255,255,.08);text-transform:uppercase;font-size:.563rem;letter-spacing:.375px}.issues-table td{padding:.563rem .75rem;color:#8b949e;border-bottom:.75px solid rgba(255,255,255,.05)}.issues-table tbody tr:hover{background:#ffffff05}.issues-table tbody tr:last-child td{border-bottom:none}@media (max-width: 1400px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 576px){.dashboard-container{padding:.75rem}.issues-table{font-size:.563rem}.issues-table th,.issues-table td{padding:.375rem}}.unsaved-changes-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.unsaved-changes-modal{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;box-shadow:0 20px 60px #000000b3;max-width:500px;width:90%;overflow:hidden}.unsaved-changes-modal .modal-header{background:var(--bg-tertiary);padding:1.5rem;border-bottom:1px solid var(--border-primary)}.unsaved-changes-modal .modal-header h2{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.unsaved-changes-modal .modal-content{padding:2rem;color:var(--text-primary)}.unsaved-changes-modal .modal-content p{margin:0 0 1rem;line-height:1.6;font-size:1rem}.unsaved-changes-modal .modal-content .warning-text{color:var(--accent-yellow);font-weight:500;background:#d299221a;border-left:3px solid var(--accent-yellow);padding:.75rem 1rem;border-radius:4px;margin-top:1.5rem}.unsaved-changes-modal .modal-actions{padding:1.5rem;background:var(--bg-primary);border-top:1px solid var(--border-primary);display:flex;gap:.75rem;justify-content:flex-end}.unsaved-changes-modal .btn-primary,.unsaved-changes-modal .btn-secondary,.unsaved-changes-modal .btn-danger{padding:.75rem 1.5rem;border-radius:6px;border:none;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.unsaved-changes-modal .btn-primary{background:var(--accent-blue);color:var(--bg-primary);border:1px solid var(--accent-blue)}.unsaved-changes-modal .btn-primary:hover{background:var(--accent-blue-hover);border-color:var(--accent-blue-hover)}.unsaved-changes-modal .btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.unsaved-changes-modal .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.unsaved-changes-modal .btn-danger{background:var(--accent-red);color:#fff;border:1px solid var(--accent-red)}.unsaved-changes-modal .btn-danger:hover{background:#ff6b6b;border-color:#ff6b6b;opacity:.9}.unsaved-changes-modal .btn-primary:active,.unsaved-changes-modal .btn-danger:active{transform:scale(.98)}.conflict-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.conflict-modal{background:var(--bg-secondary);border:1px solid var(--accent-yellow);border-radius:8px;box-shadow:0 20px 60px #000000b3;max-width:550px;width:90%;overflow:hidden}.conflict-modal .modal-header{background:var(--bg-tertiary);padding:1.5rem;border-bottom:1px solid var(--accent-yellow)}.conflict-modal .modal-header h2{margin:0;color:var(--accent-yellow);font-size:1.25rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.conflict-modal .modal-content{padding:2rem;color:var(--text-primary)}.conflict-modal .modal-content p{margin:0 0 1rem;line-height:1.6;font-size:1rem}.conflict-modal .modal-content .warning-main{color:var(--accent-yellow);font-weight:600;font-size:1.1rem;margin-bottom:1.5rem}.conflict-modal .warning-options{background:#d299221a;border-left:3px solid var(--accent-yellow);padding:1rem 1.25rem;border-radius:4px;margin-top:1.5rem}.conflict-modal .warning-options strong{color:var(--text-primary);display:block;margin-bottom:.75rem}.conflict-modal .warning-options ul{margin:0;padding-left:1.5rem;color:var(--text-secondary)}.conflict-modal .warning-options li{margin-bottom:.5rem;line-height:1.5}.conflict-modal .warning-options li:last-child{margin-bottom:0}.conflict-modal .warning-options li strong{display:inline;color:var(--text-primary)}.conflict-modal .modal-actions{padding:1.5rem;background:var(--bg-primary);border-top:1px solid var(--border-primary);display:flex;gap:.75rem;justify-content:flex-end}.conflict-modal .btn-secondary,.conflict-modal .btn-danger{padding:.75rem 1.5rem;border-radius:6px;border:none;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.conflict-modal .btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.conflict-modal .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.conflict-modal .btn-danger{background:var(--accent-red);color:#fff;border:1px solid var(--accent-red)}.conflict-modal .btn-danger:hover{background:#ff6b6b;border-color:#ff6b6b;opacity:.9}.conflict-modal .btn-secondary:active,.conflict-modal .btn-danger:active{transform:scale(.98)}.git-manager-trigger{margin-left:.5rem;display:none;align-items:center;gap:.5rem}.git-manager-trigger .branch-indicator{display:flex;align-items:center;gap:.25rem;font-size:.9rem;color:var(--text-secondary)}.git-manager-trigger .branch-name{font-weight:600;color:var(--text-primary)}.git-manager-modal{max-width:1600px!important;width:98vw!important;max-height:90vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.git-manager-modal .modal-header{flex-shrink:0;padding:1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.git-manager-modal .modal-header h2{color:var(--text-primary)}.git-manager-modal>*:not(.modal-header){padding-left:1.5rem;padding-right:1.5rem}.git-manager-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border-primary);margin-bottom:1.5rem;overflow-x:auto;flex-wrap:nowrap;position:sticky;top:0;background:var(--bg-primary);z-index:10;flex-shrink:0}.git-manager-tabs .tab{padding:.75rem 1rem;border:none;background:none;cursor:pointer;font-size:.9rem;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap;flex-shrink:0}.git-manager-tabs .tab:hover{color:var(--text-primary);background:var(--bg-hover)}.git-manager-tabs .tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue);font-weight:600}.git-panel{display:flex;flex-direction:column;gap:1.5rem;flex:1;overflow:auto;padding-bottom:1.5rem;min-height:0}.status-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:1rem}.status-section h3{margin-top:0;margin-bottom:1rem;font-size:1rem;color:var(--text-primary)}.status-info{display:flex;flex-direction:column;gap:.5rem}.status-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.status-item .label{color:var(--text-secondary);min-width:120px}.status-item .value{color:var(--text-primary);font-weight:500}.status-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:4px;font-size:.85rem;font-weight:500}.status-badge.clean{background:#42b88333;color:var(--accent-green);border:1px solid var(--accent-green)}.status-badge.dirty{background:#d2992233;color:var(--accent-yellow);border:1px solid var(--accent-yellow)}.changes-list{margin-top:.5rem;padding-left:1.5rem;font-size:.85rem;color:var(--text-secondary)}.branches-section{flex:1;display:flex;flex-direction:column;min-height:0}.branches-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.branches-header h3{margin:0;font-size:1rem;color:var(--text-primary);flex:0 0 auto}.branches-header .branches-actions{display:flex;gap:.5rem;align-items:center}.branches-header button{white-space:nowrap;flex-shrink:0;flex-grow:0;width:auto}.branches-list{flex:1;overflow:auto;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-tertiary)}.branch-item{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border-primary);cursor:pointer;transition:background .2s}.branch-item:last-child{border-bottom:none}.branch-item:hover{background:var(--bg-hover)}.branch-item.active{background:var(--bg-active);border-left:3px solid var(--accent-blue);padding-left:calc(1rem - 3px)}.branch-indicator-icon{font-size:1.2rem;color:var(--accent-blue);margin-right:.5rem}.branch-info{flex:1;min-width:0}.branch-name-text{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.branch-meta{font-size:.8rem;color:var(--text-secondary);display:flex;gap:1rem}.branch-actions{display:flex;gap:.5rem}.btn-icon{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;font-size:1rem;transition:color .2s}.btn-icon:hover{color:var(--text-primary)}.btn-icon.danger:hover{color:var(--accent-red)}.commit-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:1rem}.commit-section h3{margin-top:0;margin-bottom:1rem;font-size:1rem;color:var(--text-primary)}.commit-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;color:var(--text-primary);font-weight:500}.form-group input,.form-group textarea{padding:.5rem;border:1px solid var(--border-primary);border-radius:4px;font-size:.9rem;font-family:inherit;background:var(--bg-tertiary);color:var(--text-primary)}.form-group textarea{min-height:80px;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #58a6ff33}.history-section{flex:1;display:flex;flex-direction:column;min-height:0}.history-section h3{margin-top:0;margin-bottom:1rem;font-size:1rem;color:var(--text-primary)}.commit-history{flex:1;overflow:auto;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-tertiary)}.commit-item{padding:1rem;border-bottom:1px solid var(--border-primary)}.commit-item:last-child{border-bottom:none}.commit-hash{font-family:Monaco,Menlo,Consolas,monospace;font-size:.8rem;color:var(--text-secondary);margin-bottom:.25rem}.commit-message{font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.commit-author{font-size:.85rem;color:var(--text-secondary)}.commit-files{margin-top:.5rem;padding-left:1rem;font-size:.8rem;color:var(--text-secondary)}.pr-section{display:flex;flex-direction:column;gap:1.5rem}.pr-info{background:#58a6ff1a;border:1px solid var(--accent-blue);border-radius:6px;padding:1rem}.pr-info h3{margin-top:0;margin-bottom:.5rem;color:var(--accent-blue);font-size:1rem}.pr-info p{margin:.5rem 0;color:var(--text-primary);font-size:.9rem}.pr-form{display:flex;flex-direction:column;gap:1rem}.base-branch-selector{display:flex;align-items:center;gap:1rem}.base-branch-selector label{font-size:.9rem;color:var(--text-primary);font-weight:500}.base-branch-selector select{flex:1;padding:.5rem;border:1px solid var(--border-primary);border-radius:4px;font-size:.9rem;background:var(--bg-tertiary);color:var(--text-primary)}.new-branch-form{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.new-branch-options{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:1rem}.new-branch-options h4{margin-top:0;margin-bottom:.75rem;font-size:.9rem;color:var(--text-primary)}.new-branch-options label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-primary);margin-bottom:.5rem}.message{padding:1rem;border-radius:6px;font-size:.9rem}.message.error{background:#f8514926;border:1px solid var(--accent-red);color:var(--accent-red)}.message.success{background:#42b88326;border:1px solid var(--accent-green);color:var(--accent-green)}.message.warning{background:transparent;border:1px solid var(--border-primary);color:var(--text-primary);font-weight:500}.publish-section{padding:1.5rem}.publish-info{margin-bottom:2rem}.publish-info h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.2rem}.publish-info p{color:var(--text-secondary);margin:0 0 1rem;line-height:1.5}.publish-info .message{margin-top:1rem}.publish-info .message a{color:inherit;text-decoration:underline;font-weight:600}.publish-form{margin-bottom:2rem}.production-versions{margin-top:2rem;border-top:1px solid var(--border-primary);padding-top:1.5rem}.production-versions h4{margin:0 0 1rem;color:var(--text-primary);font-size:1rem;font-weight:600}.versions-list{display:flex;flex-direction:column;gap:.75rem}.version-item{padding:1rem;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-secondary);display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:border-color .2s}.version-item:hover{border-color:var(--border-secondary);background:var(--bg-hover)}.version-header{display:flex;align-items:center;gap:.75rem}.version-number{font-weight:700;color:var(--accent-blue);font-size:1rem}.version-date{font-size:.85rem;color:var(--text-secondary)}.version-details{flex:1;display:flex;gap:1rem;font-size:.85rem;color:var(--text-secondary)}.version-sha{font-family:Monaco,Menlo,Consolas,monospace;font-size:.8rem}.version-link{color:var(--accent-blue);text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap;transition:color .2s}.version-link:hover{color:var(--accent-blue-hover);text-decoration:underline}.spinner{border:3px solid var(--border-primary);border-top:3px solid var(--accent-blue);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.app{min-height:100vh;display:flex;background:var(--bg-primary)}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);padding:.75rem 1.5rem;display:flex;align-items:center;min-height:52px}.header-content{display:flex;align-items:center;gap:1.5rem;width:100%}.app-container{flex:1;display:flex;overflow:hidden;background:#000}.app-container.dashboard-active{display:flex;justify-content:center;align-items:flex-start;padding:1.5rem;overflow-y:auto}.preview-panel{flex:1;overflow:auto;background:#000;padding:1.125rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-secondary)}button{font-family:inherit}.btn{background:var(--accent-blue);color:#fff;border:none;padding:.375rem .75rem;border-radius:3px;cursor:pointer;font-size:.675rem;font-weight:500;transition:background .2s}.btn:hover{background:var(--accent-blue-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.btn-danger{background:var(--accent-red)}.btn-danger:hover{background:#c9302c}.btn-text{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;font-size:.9rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s;border-radius:6px}.btn-text:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-secondary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}input[type=text],input[type=number],input[type=email],input[type=password],textarea,select{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-primary);padding:.375rem .563rem;border-radius:3px;font-size:.675rem;font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-blue)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}.card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:4px;padding:1.125rem}.card-header{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary)}.card-title{font-size:.938rem;font-weight:600;color:var(--text-primary);margin:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal,.modal-content{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;max-width:450px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 30px #0000004d;color:var(--text-primary)}.modal-header{padding:1.125rem;border-bottom:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:.938rem;font-weight:600;color:var(--text-primary);margin:0}.modal-body{padding:1.125rem}.modal-footer{padding:1.125rem;border-top:1px solid var(--border-primary);display:flex;gap:.75rem;justify-content:flex-end}.form-group{margin-bottom:.75rem}.form-group label{display:block;margin-bottom:.375rem;color:var(--text-secondary);font-size:.675rem;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%}table{width:100%;border-collapse:collapse}th{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;text-align:left;padding:.563rem .75rem;border-bottom:1px solid var(--border-primary);font-size:.675rem}td{padding:.563rem .75rem;border-bottom:1px solid var(--border-primary);color:var(--text-primary)}tr:hover{background:var(--bg-hover)}.loading{display:flex;align-items:center;justify-content:center;min-height:150px;color:var(--text-secondary)}.empty-state{text-align:center;padding:2.25rem 1.5rem;color:var(--text-secondary)}.empty-state h3{color:var(--text-primary);margin-bottom:.375rem}.badge{display:inline-block;padding:.188rem .375rem;border-radius:3px;font-size:.6rem;font-weight:500}.badge-primary{background:var(--accent-blue);color:#fff}.badge-success{background:var(--accent-green);color:#fff}.badge-danger{background:var(--accent-red);color:#fff}.badge-warning{background:var(--accent-yellow);color:var(--bg-primary)}@media (max-width: 768px){.app-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-content{flex-direction:column;align-items:flex-start}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #1c2128;--bg-hover: #21262d;--bg-active: #2d333b;--border-primary: #30363d;--border-secondary: #21262d;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-tertiary: #6e7681;--accent-blue: #58a6ff;--accent-blue-hover: #79c0ff;--accent-green: #42b883;--accent-red: #f85149;--accent-yellow: #d29922;--sidebar-width: 188px;--sidebar-collapsed-width: 45px;--canvas-bg-color: #1a1a1a;--canvas-bg-dot-color: #2a2a2a;--canvas-bg-dot-size: 1px;--canvas-bg-grid-size: 20px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary)}#root{min-height:100vh}
