@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#fff;color:#2c2c2c;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;min-width:900px}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#fff;border-bottom:2px solid #1a1a1a;padding:18px 28px}.header-content h1{color:#1a1a1a;font-size:21px;font-weight:700;letter-spacing:-.3px}.subtitle{color:#777;font-size:12.5px;font-weight:400;margin-top:3px}.app-main{display:flex;flex:1 1;overflow:hidden}.controls-panel{background:#fafafa;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;gap:16px;min-width:240px;overflow-y:auto;padding:16px;width:240px}.controls-panel label{color:#888;display:block;font-size:10.5px;font-weight:600;letter-spacing:.8px;margin-bottom:6px;text-transform:uppercase}.view-tabs{display:flex;flex-wrap:wrap;gap:4px}.view-tabs button{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#666;cursor:pointer;flex:1 1;font-family:inherit;font-size:11.5px;font-weight:500;min-width:90px;padding:7px 4px;transition:all .15s}.view-tabs button:hover{background:#f5f5f5;border-color:#bbb;color:#333}.view-tabs button.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.panel-buttons{display:flex;flex-direction:column;gap:3px}.panel-buttons button{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#555;cursor:pointer;font-family:inherit;font-size:11px;padding:6px 10px;text-align:left;transition:all .15s}.panel-buttons button:hover{background:#f5f5f5;border-color:#bbb;color:#333}.panel-buttons button.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.color-toggle .toggle-buttons{display:flex;gap:4px}.toggle-buttons button{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#666;cursor:pointer;flex:1 1;font-family:inherit;font-size:11px;padding:6px 8px;transition:all .15s}.toggle-buttons button.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.column-toggle{margin-bottom:4px}.column-toggle label{color:#555;display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.toggle-chips{display:flex;flex-wrap:wrap;gap:4px}.toggle-chip{background:#fff;border:1px solid #d0d0d0;border-radius:12px;color:#888;cursor:pointer;font-family:inherit;font-size:10px;padding:4px 8px;transition:all .15s;white-space:nowrap}.toggle-chip:hover{background:#f5f5f5;border-color:#aaa}.toggle-chip.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.gene-search{position:relative}.gene-search input{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#2c2c2c;font-family:inherit;font-size:13px;outline:none;padding:8px 10px;transition:border-color .15s;width:100%}.gene-search input:focus{border-color:#1a1a1a;box-shadow:0 0 0 1px #1a1a1a}.gene-search input::placeholder{color:#aaa}.suggestions{background:#fff;border:1px solid #d0d0d0;border-radius:4px;box-shadow:0 4px 12px #00000014;left:0;list-style:none;max-height:300px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 2px);z-index:100}.suggestions li{align-items:center;cursor:pointer;display:flex;font-size:12px;gap:8px;padding:7px 10px;transition:background .1s}.suggestions li:hover{background:#f0f0f0}.suggestions .gene-name{color:#2c2c2c;font-weight:600}.suggestions .alias-tag{color:#999;font-size:10px;font-style:italic}.data-info{border-top:1px solid #e0e0e0;margin-top:auto;padding-top:12px}.data-info h4{color:#888;font-size:10.5px;font-weight:600;letter-spacing:.8px;margin-bottom:8px;text-transform:uppercase}.data-info ul{color:#777;font-size:11px;line-height:1.6;list-style:none}.data-info strong{color:#444}.gene-count{color:#999;font-size:11px;margin-top:8px}.visualization-panel{background:#fff;flex:1 1;overflow:auto;padding:20px}.dot-plot-container,.strip-plot-container,.visualization-panel,.volcano-container{align-items:center;display:flex;flex-direction:column}.strip-plot-container{width:100%}.strip-grid .js-plotly-plot{border:1px solid #e8e8e8;border-radius:3px}.strip-legend{color:#555;flex-direction:column;font-size:11px;gap:6px;justify-content:center;padding:12px 0}.legend-row,.strip-legend{align-items:center;display:flex}.legend-row{flex-wrap:wrap;gap:12px}.legend-section-label{color:#888;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.legend-item{align-items:center;display:flex;gap:4px}.legend-marker{font-size:14px}.legend-dash{border-top:2px dashed;display:inline-block;height:0;width:18px}.legend-divider{color:#ccc}.volcano-controls{align-items:flex-end;background:#fafafa;border:1px solid #e8e8e8;border-radius:6px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px;padding:10px 16px;width:880px}.volcano-control-group{display:flex;flex-direction:column;gap:4px}.volcano-control-group label{color:#555;font-size:11px;font-weight:500}.volcano-control-group select{background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;font-size:12px;padding:4px 8px}.volcano-control-group input[type=range]{accent-color:#2471a3;width:120px}.volcano-search,.volcano-search-wrapper{position:relative}.volcano-search-input{border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:12px;padding:4px 8px;width:120px}.volcano-search-input:focus{border-color:#2471a3;box-shadow:0 0 0 2px #2471a326;outline:none}.volcano-suggestions{background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #0000001a;left:0;list-style:none;margin:2px 0 0;max-height:200px;overflow-y:auto;padding:0;position:absolute;top:100%;width:180px;z-index:100}.volcano-suggestions li{align-items:center;cursor:pointer;display:flex;font-size:12px;justify-content:space-between;padding:5px 10px}.volcano-suggestions li:hover{background:#f0f4f8}.suggestion-stats{color:#999;font-size:10px;margin-left:8px}.volcano-search-miss{color:#c0392b;font-size:10px;margin-top:2px}.volcano-signatures{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;width:880px}.volcano-sig-label{color:#777;font-size:11px;font-weight:500;margin-right:2px}.volcano-sig-btn{border:1.5px solid #ccc;border-radius:14px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;padding:3px 10px;transition:all .15s}.volcano-sig-btn:hover{border-color:#999;border-color:var(--sig-color,#999);color:#333;color:var(--sig-color,#333)}.volcano-sig-btn.active{font-weight:600}.volcano-sig-count{color:#999;font-size:10px;margin-left:4px}.volcano-hint{color:#999;font-size:11px;margin-top:8px}.gene-detail{max-width:960px;width:100%}.gene-header{margin-bottom:16px}.gene-header h2{color:#1a1a1a;font-size:24px;font-weight:700}.panel-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.panel-tag{border:1px solid;border-radius:3px;color:#555;font-size:11px;padding:3px 8px}.de-status{margin-top:8px}.de-badge{border-radius:3px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px}.de-badge.up{background:#c8281e14;border:1px solid #c8281e33;color:#b22222}.de-badge.down{background:#1e50a014;border:1px solid #1e50a033;color:#1e4fa0}.de-badge.ns{background:#f5f5f5;border:1px solid #ddd;color:#888}.gene-plots{display:flex;flex-wrap:wrap;gap:16px}.gene-plot-card{background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:12px}.gene-plot-card h3{color:#555;font-size:12px;font-weight:600;letter-spacing:.3px;margin-bottom:8px;text-transform:uppercase}.gene-detail-empty{color:#999;padding:60px 20px;text-align:center}.gene-detail-empty p{margin:8px 0}.gene-detail-empty .hint{color:#bbb;font-size:12px}.example-genes{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:16px}.gene-chip{background:#fff;border:1px solid #d0d0d0;border-radius:16px;color:#444;cursor:pointer;font-family:inherit;font-size:12px;padding:5px 12px;transition:all .15s}.gene-chip:hover{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.gene-chip em{font-style:italic}.loading{align-items:center;color:#555;display:flex;flex-direction:column;gap:16px;height:100vh;justify-content:center}.spinner{animation:spin .8s linear infinite;border:2px solid #e0e0e0;border-radius:50%;border-top-color:#1a1a1a;height:36px;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.error{align-items:center;color:#b22222;display:flex;flex-direction:column;gap:8px;height:100vh;justify-content:center}.error code{background:#f5f5f5;border:1px solid #ddd;border-radius:3px;color:#333;font-size:13px;padding:4px 8px}.plot-placeholder{font-size:14px;height:300px;justify-content:center}.app-footer,.plot-placeholder{align-items:center;color:#999;display:flex}.app-footer{background:#fafafa;border-top:1px solid #e0e0e0;font-size:11px;gap:8px;padding:10px 28px}.app-footer .sep{color:#ddd}.app-footer .version{color:#bbb;font-weight:400}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#f5f5f5}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#aaa}.report-controls{display:flex;flex-direction:column;gap:12px}.gene-textarea{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#2c2c2c;font-family:inherit;font-size:12px;min-height:60px;outline:none;padding:8px 10px;resize:vertical;transition:border-color .15s;width:100%}.gene-textarea:focus{border-color:#1a1a1a;box-shadow:0 0 0 1px #1a1a1a}.gene-textarea::placeholder{color:#aaa}.report-gene-add{position:relative}.gene-tags-section{display:flex;flex-direction:column;gap:6px}.gene-count-row{color:#555;font-size:11px}.gene-count-label .invalid-count{color:#b22222}.gene-tags{display:flex;flex-wrap:wrap;gap:4px;max-height:160px;overflow-y:auto}.gene-tag{align-items:center;background:#1a1a1a;border-radius:12px;color:#fff;display:inline-flex;font-family:inherit;font-size:10.5px;gap:3px;padding:2px 8px}.gene-tag button{background:none;border:none;color:#fff9;cursor:pointer;font-family:inherit;font-size:13px;line-height:1;padding:0 1px}.gene-tag button:hover{color:#fff}.gene-tag.invalid{background:#fff;border:1px solid #b22222;color:#b22222}.gene-tag.invalid button{color:#b2222280}.gene-tag.invalid button:hover{color:#b22222}.quick-add-section{display:flex;flex-direction:column}.quick-add-buttons{display:flex;flex-wrap:wrap;gap:3px}.quick-add-buttons button{background:#fff;border:1px solid #d0d0d0;border-radius:3px;color:#555;cursor:pointer;font-family:inherit;font-size:10px;padding:3px 8px;transition:all .15s}.quick-add-buttons button:hover{background:#f0f0f0;border-color:#bbb;color:#333}.report-actions{display:flex;gap:8px}.clear-all-btn{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#888;cursor:pointer;font-family:inherit;font-size:11px;padding:6px 10px;transition:all .15s;width:100%}.clear-all-btn:hover{background:#f5f5f5;border-color:#b22222;color:#b22222}.report-builder{flex-direction:column}.report-builder,.report-header{align-items:center;display:flex;width:100%}.report-header{justify-content:space-between;margin-bottom:12px;max-width:920px}.report-header h3{color:#333;font-size:14px;font-weight:600}.download-pdf-btn{background:#1a1a1a;border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;padding:8px 18px;transition:background .15s}.download-pdf-btn:hover{background:#333}.download-pdf-btn:disabled{background:#999;cursor:not-allowed}.report-empty{color:#999;padding:60px 20px;text-align:center}.report-empty h3{color:#555;font-size:18px;font-weight:600;margin-bottom:12px}.report-empty p{font-size:13px;margin:8px 0}.report-empty .hint{color:#bbb;font-size:12px}.password-gate{align-items:center;background:#fff;display:flex;height:100vh;justify-content:center}.password-box{padding:40px;text-align:center}.password-box h2{color:#1a1a1a;font-size:20px;font-weight:700;margin-bottom:8px}.password-box>p{color:#888;font-size:13px;margin-bottom:24px}.password-box form{display:flex;gap:8px;justify-content:center}.password-box input{border:1px solid #d0d0d0;border-radius:4px;color:#2c2c2c;font-family:inherit;font-size:14px;outline:none;padding:10px 14px;width:200px}.password-box input:focus{border-color:#1a1a1a;box-shadow:0 0 0 1px #1a1a1a}.password-box button{background:#1a1a1a;border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:10px 20px;transition:background .15s}.password-box button:hover{background:#333}.password-error{color:#b22222;font-size:12px;margin-top:12px}.mutation-view{display:flex;flex-direction:column;gap:16px;max-width:960px;width:100%}.mutation-summary{display:flex;gap:12px}.mutation-summary-card{background:#fff;border:1px solid #e0e0e0;border-radius:4px;border-top:3px solid #999;flex:1 1;padding:14px 16px;text-align:center}.mutation-card-model{color:#333;font-size:13px;font-weight:600;margin-bottom:4px}.mutation-card-count{color:#1a1a1a;font-size:28px;font-weight:700;line-height:1.1}.mutation-card-label{color:#999;font-size:11px;margin-top:2px}.mutation-gene-selector{align-items:center;display:flex;gap:10px}.mutation-gene-selector label{color:#555;font-size:12px;font-weight:500}.mutation-gene-selector select{background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;font-family:inherit;font-size:12px;min-width:180px;padding:6px 10px}.mutation-lollipop{align-items:center;background:#fff;border:1px solid #e8e8e8;border-radius:4px;display:flex;flex-direction:column;padding:8px}.mutation-type-legend{color:#555;display:flex;font-size:11px;gap:14px;padding:6px 0}.mutation-type-item{align-items:center;display:flex;gap:4px}.mutation-type-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.mutation-no-lollipop{background:#fafafa;border:1px solid #e8e8e8;border-radius:4px;color:#888;font-size:13px;padding:16px;text-align:center}.mutation-filters{align-items:center;display:flex;flex-wrap:wrap;gap:20px}.mutation-filter-group{align-items:center;display:flex;gap:4px}.mutation-filter-label{color:#777;font-size:11px;font-weight:500;margin-right:4px}.mutation-filter-btn{background:#fff;border:1.5px solid #ccc;border-radius:14px;color:#666;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;padding:3px 10px;transition:all .15s}.mutation-filter-btn:hover{border-color:#999;color:#333}.mutation-filter-btn.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.mutation-table-wrap{overflow-x:auto}.mutation-table{border-collapse:collapse;font-size:12px;width:100%}.mutation-table th{background:#fafafa;border-bottom:2px solid #e0e0e0;color:#555;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.3px;padding:8px 10px;text-align:left;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.mutation-table th.sorted,.mutation-table th:hover{color:#1a1a1a}.sort-arrow{color:#999;font-size:9px}.mutation-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:7px 10px}.mutation-table td.mono{font-family:SF Mono,Fira Code,monospace;font-size:11px}.mutation-table tbody tr:hover{background:#f8f9fa}.mutation-table tbody tr.shared-mutation{border-left:3px solid #e67e22}.model-badge{border-radius:10px;color:#fff;display:inline-block;font-size:10px;font-weight:600;padding:2px 8px}.model-badge.model-a20{background:#2471a3}.model-badge.model-p0{background:#27ae60}.model-badge.model-p6{background:#e67e22}.type-badge{border-radius:10px;color:#fff;display:inline-block;font-size:10px;font-weight:500;padding:2px 8px}.type-badge.type-missense{background:#27ae60}.type-badge.type-nonsense{background:#c0392b}.type-badge.type-frameshift{background:#2c3e50}.type-badge.type-splice{background:#e67e22}.type-badge.type-fusion{background:#9b59b6}.type-badge.type-inframe-indel{background:#16a085}.type-badge.type-other{background:#95a5a6}.impact-badge{border-radius:3px;display:inline-block;font-size:10px;font-weight:500;padding:2px 6px}.impact-badge.impact-high{background:#c0392b1a;border:1px solid #c0392b33;color:#c0392b}.impact-badge.impact-moderate{background:#f39c121a;border:1px solid #f39c1233;color:#d68910}.gene-link{background:none;border:none;color:#2471a3;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:0}.gene-link:hover{text-decoration:underline}.expr-link{background:none;border:none;cursor:pointer;font-size:14px;opacity:.5;padding:2px;transition:opacity .15s}.expr-link:hover{opacity:1}.mutation-table-empty{color:#999;font-size:13px;padding:20px;text-align:center}.mutation-card-source{color:#999;font-size:9.5px;font-style:italic;line-height:1.3;margin-top:6px}.mutation-card-breakdown{color:#777;display:flex;font-size:10px;gap:8px;justify-content:center;margin-top:6px}.breakdown-item{align-items:center;display:flex;gap:3px}.breakdown-dot{border-radius:50%;display:inline-block;height:7px;width:7px}.mutation-gene-input{border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:12px;outline:none;padding:4px 8px;width:140px}.mutation-gene-input:focus{border-color:#2471a3;box-shadow:0 0 0 2px #2471a326}.mutation-gene-sets{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.mutation-geneset-btn{background:#fff;border:1.5px solid #d0d0d0;border-radius:14px;color:#555;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;padding:4px 12px;transition:all .15s}.mutation-geneset-btn:hover{border-color:#999;color:#333}.mutation-geneset-btn.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.geneset-count{font-size:10px;opacity:.7}.mutation-result-count{color:#777;font-size:12px;padding:4px 0}.mutation-pagination{align-items:center;display:flex;gap:6px;justify-content:center;padding:12px 0}.mutation-pagination button{background:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#333;cursor:pointer;font-family:inherit;font-size:13px;padding:5px 10px;transition:all .15s}.mutation-pagination button:hover:not(:disabled){background:#f5f5f5;border-color:#bbb}.mutation-pagination button:disabled{border-color:#e8e8e8;color:#ccc;cursor:not-allowed}.page-info{color:#666;font-size:12px;padding:0 8px}.transformation-view{display:flex;flex-direction:column;width:100%}.transformation-header{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;gap:16px;padding:8px 16px}.transformation-subviews{display:flex;gap:4px}.transformation-subviews button{background:#fff;border:1px solid #d0d0d0;border-radius:16px;color:#666;cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;padding:6px 14px;transition:all .15s}.transformation-subviews button:hover{background:#f5f5f5;border-color:#bbb;color:#333}.transformation-subviews button.active{background:#1a1a1a;border-color:#1a1a1a;color:#fff}.transformation-info-toggle{background:#0000;border:1px solid #d0d0d0;border-radius:4px;color:#888;cursor:pointer;font-family:inherit;font-size:11px;margin-left:auto;padding:4px 10px}.transformation-info-toggle:hover{border-color:#999;color:#333}.transformation-info-banner{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;color:#444;font-size:12px;line-height:1.6;margin:8px 16px;padding:12px 16px}.transformation-info-banner p{margin-bottom:6px}.transformation-info-banner p:last-child{margin-bottom:0}.transformation-content{flex:1 1;overflow-y:auto;padding:8px}.transformation-no-data{color:#888;padding:40px;text-align:center}.quadrant-container{align-items:center;display:flex;flex-direction:column}.quadrant-controls{align-items:flex-end;background:#fafafa;border:1px solid #e8e8e8;border-radius:6px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px;padding:10px 16px;width:880px}.quadrant-control-group{display:flex;flex-direction:column;gap:4px}.quadrant-control-group label{color:#555;font-size:11px;font-weight:500}.quadrant-control-group select{background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;font-size:12px;padding:4px 8px}.quadrant-control-group input[type=range]{accent-color:#2471a3;width:120px}.quadrant-control-group input[type=checkbox]{accent-color:#27ae60;margin-right:4px}.quadrant-container .search-wrapper,.quadrant-container .volcano-search{position:relative}.quadrant-container .search-wrapper input{border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:12px;padding:4px 8px;width:120px}.quadrant-container .search-wrapper input:focus{border-color:#2471a3;box-shadow:0 0 0 2px #2471a326;outline:none}.quadrant-container .search-suggestions{background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #0000001a;left:0;list-style:none;margin:2px 0 0;max-height:200px;overflow-y:auto;padding:0;position:absolute;top:100%;width:180px;z-index:100}.quadrant-container .search-suggestions li{cursor:pointer;font-size:12px;padding:5px 10px}.quadrant-container .search-suggestions li:hover{background:#f0f4f8}.quadrant-container .search-miss{color:#c0392b;font-size:10px;margin-top:2px}.quadrant-container .volcano-signatures{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.quadrant-container .volcano-signatures button{background:#0000;border:1.5px solid #ccc;border-radius:14px;color:#555;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;padding:3px 10px;transition:all .15s}.quadrant-container .volcano-signatures button:hover{opacity:.8}.quadrant-container .volcano-signatures button.active{color:#fff;font-weight:600}.enrichment-container{margin:0 auto;max-width:960px;width:100%}.enrichment-tabs{border-bottom:2px solid #e8e8e8;display:flex;gap:0;margin-bottom:12px}.enrichment-tabs button{align-items:center;background:#0000;border:none;border-bottom:3px solid #0000;color:#aaa;cursor:pointer;display:flex;font-family:inherit;font-size:12px;font-weight:500;gap:6px;padding:8px 16px;transition:all .15s}.enrichment-tabs button:hover{color:#555}.enrichment-tabs button.active{font-weight:600}.enrichment-count{background:#eee;border-radius:8px;color:#666;display:inline-block;font-size:10px;font-weight:600;padding:1px 6px}.enrichment-controls{align-items:center;display:flex;gap:16px;margin-bottom:8px;padding:0 4px}.enrichment-filter label{color:#777;font-size:11px;font-weight:500;margin-right:6px}.enrichment-filter select{background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;font-family:inherit;font-size:11px;padding:3px 8px}.enrichment-summary{color:#888;font-size:11px;margin-left:auto}.enrichment-table-wrapper{overflow-x:auto}.enrichment-table{border-collapse:collapse;font-size:12px;width:100%}.enrichment-table thead th{background:#fafafa;border-bottom:2px solid #ddd;color:#555;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.4px;padding:8px 10px;text-align:left;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.enrichment-table thead th:hover{background:#f0f0f0;color:#333}.enrichment-th-term{min-width:200px}.enrichment-th-num{min-width:80px;text-align:right}.enrichment-th-score{min-width:120px}.enrichment-row{cursor:pointer;transition:background .1s}.enrichment-row:hover{background:#f8f9fb}.enrichment-row.expanded{background:#f0f4f8}.enrichment-row td{border-bottom:1px solid #f0f0f0;padding:6px 10px;vertical-align:middle}.enrichment-term{color:#333;font-weight:500}.enrichment-expand{color:#aaa;display:inline-block;font-size:10px;margin-right:4px;width:14px}.enrichment-source{color:#888;font-size:10px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enrichment-num{font-feature-settings:"tnum";color:#555;font-variant-numeric:tabular-nums;text-align:right}.enrichment-score-cell{align-items:center;display:flex;gap:8px}.enrichment-score-bar-bg{background:#f0f0f0;border-radius:5px;flex:1 1;height:10px;overflow:hidden}.enrichment-score-bar{border-radius:5px;height:100%;transition:width .2s}.enrichment-score-cell span{font-feature-settings:"tnum";color:#555;font-size:11px;font-variant-numeric:tabular-nums;min-width:30px;text-align:right}.enrichment-genes-row td{background:#f8f9fb;border-bottom:1px solid #e0e0e0;padding:8px 10px 12px 28px}.enrichment-genes{display:flex;flex-wrap:wrap;gap:4px}.enrichment-gene-btn{background:#fff;border:1px solid #d0d0d0;border-radius:10px;color:#2471a3;cursor:pointer;font-family:inherit;font-size:11px;padding:2px 8px;transition:all .15s}.enrichment-gene-btn:hover{background:#2471a3;border-color:#2471a3;color:#fff}.gna-container{margin:0 auto;max-width:1100px;width:100%}.gna-header{margin-bottom:12px;padding:0 4px}.gna-header h3{color:#1a1a1a;font-size:16px;font-weight:700}.gna-subtitle{color:#888;font-size:12px;margin-top:4px}.gna-table-wrapper{overflow-x:auto}.gna-table{border-collapse:collapse;font-size:11.5px;width:100%}.gna-table thead th{background:#fafafa;border-bottom:2px solid #ddd;color:#555;cursor:pointer;font-size:10px;font-weight:600;letter-spacing:.4px;padding:8px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:5}.gna-table thead th:hover{background:#f0f0f0;color:#333}.gna-th-gene{min-width:70px}.gna-th-desc{min-width:140px}.gna-th-mut{min-width:80px}.gna-th-tpm{min-width:60px;text-align:right}.gna-th-fc{min-width:55px;text-align:right}.gna-th-sens{min-width:80px}.gna-th-h3k{min-width:60px}.gna-th-mech{min-width:140px}.gna-group-header td{background:#f8f8f8;border-bottom:1px solid #ddd;color:#1a1a1a;font-size:12px;font-weight:700;padding:10px 8px 6px}.gna-category-dot{border-radius:50%;display:inline-block;height:8px;margin-right:6px;vertical-align:middle;width:8px}.gna-row td{border-bottom:1px solid #f0f0f0;padding:5px 8px;vertical-align:middle}.gna-row:hover td{background:#f8f9fb}.gna-gene-btn{background:none;border:none;color:#2471a3;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:0}.gna-gene-btn:hover{color:#1a5276;text-decoration:underline}.gna-desc{color:#666;font-size:10.5px}.gna-desc,.gna-mut-badge{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gna-mut-badge{background:#fdf2e9;border:1px solid #e67e22;border-radius:3px;color:#a04000;display:inline-block;font-family:SF Mono,Consolas,monospace;font-size:10px;padding:1px 6px}.gna-tpm-cell{align-items:center;display:flex;gap:4px;justify-content:flex-end}.gna-tpm-cell span{font-feature-settings:"tnum";font-size:10.5px;font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.gna-tpm-bar{background:#2471a3;border-radius:3px;height:6px;max-width:40px;min-width:0;opacity:.35}.gna-fc{font-feature-settings:"tnum";font-size:11px;font-variant-numeric:tabular-nums;text-align:right}.gna-fc.neg{color:#2471a3}.gna-fc.pos{color:#c0392b}.gna-sens-badge{border-radius:8px;color:#fff;display:inline-block;font-size:10px;font-weight:600;padding:1px 6px;white-space:nowrap}.gna-h3k{font-size:11px;white-space:nowrap}.gna-h3k-dot{background:#aaa;border-radius:50%;display:inline-block;height:7px;margin-right:4px;vertical-align:middle;width:7px}.gna-h3k-dot.responsive{background:#27ae60}.gna-mech{color:#666;font-size:10px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gna-na{color:#ccc}
/*# sourceMappingURL=main.6b613220.css.map*/