:root{color-scheme:light;font-family:IBM Plex Sans,"Source Sans 3",Segoe UI,sans-serif;--left-rail-height: calc(100dvh - 20px) ;--dashboard-left-column-width: 380px;--bg: #d7d9db;--bg-2: #cfd3d6;--panel: #f4f5f6;--panel-soft: #eceef0;--line: #b8bfc5;--ink: #172125;--muted: #5a656d;--accent: #246964;--accent-soft: #d9e8e6;--danger: #c62323;--focus: #1f6ea6;--shadow: 0 1px 3px rgba(10, 18, 22, .12)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{background:#fff;color:var(--ink);overflow-x:hidden;overflow-y:auto}.shell-root{position:relative;height:100dvh;overflow:hidden}.area-center-top{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.gene-dashboard-search-header{position:absolute;top:10px;left:10px;z-index:10;width:var(--dashboard-left-column-width);max-width:calc(100vw - 20px)}.gene-dashboard-header-row{display:flex;align-items:flex-start;gap:8px}.gene-dashboard-back-button{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}.gene-dashboard-back-button:hover{background:#f2f4f5}.panel,.left-rail{min-height:0}.panel{padding:9px 10px}.center-stack-panel{display:grid;grid-template-rows:minmax(360px,2.1fr) minmax(170px,1fr);gap:8px;padding:8px;overflow:hidden;background:#f1f2f3;border-color:#aeb5bb;box-shadow:0 2px 5px #0c141929}.center-stack-layout{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:visible}.center-stack-layout>*{min-height:0}.center-stack-panel>*{min-height:0}.panel h2,.panel h3{margin:0 0 4px;letter-spacing:.01em}.panel p{margin:0 0 8px;color:var(--muted)}.panel.compact p{margin:0}.panel-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.panel-title-row h2,.panel-title-row h3{margin:0}.mini-note{color:var(--muted);font-size:.72rem}.inline-error{color:var(--danger);font-size:.82rem}.panel-kv{display:flex;justify-content:space-between;gap:10px;font-size:.84rem;margin-bottom:4px}.panel-kv span{color:var(--muted)}.panel-kv strong{font-weight:600;overflow-wrap:anywhere}.kv-list{display:flex;flex-direction:column;gap:4px}.kv-row{display:flex;justify-content:space-between;gap:10px;font-size:.8rem}.kv-row span{color:var(--muted)}.kv-row strong{font-weight:600;overflow-wrap:anywhere}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.left-rail{display:flex;flex-direction:column;height:var(--left-rail-height);max-height:var(--left-rail-height);min-height:0;overflow:hidden}.left-controls{flex:0 0 auto;padding:8px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:7px;position:sticky;top:0;z-index:2;background:var(--panel)}.left-controls h2{margin:0}.search-label{font-size:.78rem;color:var(--muted)}.search-input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 9px;font-size:.9rem}.gene-filter-textarea{min-height:88px;resize:vertical;font-family:inherit}.search-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,white);outline-offset:1px}.histogram-card{border:1px solid var(--line);border-radius:8px;background:#eceff1;padding:7px}.histogram-svg{width:100%;height:92px;cursor:pointer;display:block}.histogram-bar{transition:fill .12s ease-out}.histogram-marker{stroke:var(--danger);stroke-width:1.8}.histogram-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.viewer-controls{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.subnetwork-filter-controls{flex:0 0 auto;padding:10px 12px;display:flex;flex-direction:column;gap:4px;background:#ffffffeb;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.subnetwork-filter-top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.subnetwork-neighbor-slider-row{display:flex;align-items:center;gap:8px}.subnetwork-neighbor-slider-row input[type=range]{flex:1 1 auto;max-width:260px;accent-color:#6e016b}.subnetwork-legends-overlay{position:absolute;left:8px;bottom:8px;z-index:5;display:flex;flex-direction:column;gap:6px;max-width:calc(100% - 16px);pointer-events:none}.subnetwork-left-overlay-stack{position:absolute;top:calc(var(--dashboard-header-height, 76px) + 18px);left:10px;bottom:10px;z-index:5;width:var(--dashboard-left-column-width);max-width:calc(100% - 20px);display:flex;flex-direction:column;gap:8px;overflow-y:auto;pointer-events:none}.subnetwork-left-overlay-stack>*{pointer-events:auto;flex:0 0 auto}.subnetwork-enrichment-overlay{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#ffffffeb;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.subnetwork-enrichment-divider{width:100%;margin:0;border:none;border-top:1px solid var(--line)}.subnetwork-fci-panel{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:#ffffffeb;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.subnetwork-literature-panel{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#ffffffeb;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.subnetwork-literature-accordion{display:flex;flex-direction:column;gap:2px}.subnetwork-literature-item+.subnetwork-literature-item{border-top:1px solid var(--line)}.subnetwork-literature-item-header{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:none;background:none;padding:6px 2px;font:inherit;font-size:.84rem;font-weight:600;color:var(--ink);cursor:pointer;text-align:left}.subnetwork-literature-item-header:hover{color:var(--accent)}.subnetwork-literature-item-chevron{display:inline-block;color:var(--muted);font-size:1.05rem;flex:0 0 auto;transition:transform .2s ease}.subnetwork-literature-item-chevron-open{transform:rotate(90deg)}.subnetwork-literature-item-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease;overflow:hidden}.subnetwork-literature-item-collapse-open{grid-template-rows:1fr}.subnetwork-literature-item-body{display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;max-height:360px;padding:0 14px 0 2px;transition:padding .22s ease}.subnetwork-literature-item-collapse-open .subnetwork-literature-item-body{padding-top:4px;padding-bottom:8px}.subnetwork-fci-title-row{display:flex;align-items:center;gap:6px}.subnetwork-fci-svg{display:block;width:100%;height:auto}.subnetwork-fci-label{font-size:16px;font-weight:600;fill:var(--ink)}.subnetwork-fci-scale-row{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.subnetwork-help-icon{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:700;line-height:1;cursor:help;-webkit-user-select:none;user-select:none;flex:0 0 auto}.subnetwork-enrichment-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.subnetwork-enrichment-title{margin:0;font-size:.85rem;font-weight:600;color:var(--ink);white-space:nowrap}.subnetwork-enrichment-tabs{display:flex;gap:4px}.subnetwork-enrichment-tabs .tab-btn{padding:3px 8px;font-size:.72rem}.subnetwork-enrichment-tabs .tab-btn.active{border-color:#6e016b;background:#6e016b1f;color:#6e016b}.subnetwork-enrichment-header-row{display:flex;align-items:baseline}.subnetwork-enrichment-header-row .subnetwork-node-list-heading{padding-left:0}.subnetwork-node-list-heading.subnetwork-enrichment-formula-label{text-transform:none}.subnetwork-enrichment-svg{display:block;width:100%}.enrichment-row-hit{cursor:default}.enrichment-row-hit:hover{fill:#0000000d}.enrichment-row-label,.enrichment-row-track,.enrichment-row-bar,.enrichment-row-value{pointer-events:none}.enrichment-row-label{font-size:1em;fill:var(--ink)}.enrichment-row-track{fill:#e8ecef}.enrichment-row-value{font-size:.85em;fill:var(--muted)}.subnetwork-edge-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.72rem;color:var(--muted);background:#ffffffe6;padding:4px 8px;border-radius:6px;width:fit-content}.subnetwork-edge-legend-item{display:inline-flex;align-items:center}.subnetwork-edge-swatch{display:inline-block;width:22px;height:0;border-top:2px solid #333333;margin-right:4px}.subnetwork-edge-swatch-dashed{border-top-style:dashed}.subnetwork-filter-grid{display:grid;grid-template-columns:1fr;gap:8px}.subnetwork-filter-label{font-size:.74rem;color:var(--muted)}.subnetwork-legend-hint{font-weight:400;opacity:.75}.subnetwork-type-legend-anchor{position:absolute;top:calc(var(--dashboard-header-height, 76px) + 12px);left:calc(var(--dashboard-left-column-width) + 8px);right:308px;z-index:6;display:flex;justify-content:center;pointer-events:none}.subnetwork-type-legend{display:flex;flex-direction:column;gap:4px;background:#ffffffeb;border:1px solid var(--line);padding:10px 12px;border-radius:8px;box-shadow:var(--shadow);width:fit-content;max-width:100%;overflow-x:auto;pointer-events:auto;animation:subnetwork-type-legend-fade-in .16s ease-out both}@keyframes subnetwork-type-legend-fade-in{0%{opacity:0}to{opacity:1}}@keyframes subnetwork-type-legend-fade-out{0%{opacity:1}to{opacity:0}}.subnetwork-type-legend-closing{animation:subnetwork-type-legend-fade-out .16s ease-in both}.subnetwork-type-legend-grid{display:flex;flex-wrap:nowrap}.subnetwork-type-legend-item{display:inline-flex;align-items:center;flex-shrink:0;white-space:nowrap;font:inherit;font-size:.72rem;color:var(--muted);background:none;border:none;margin:0;padding:5px 6px;border-radius:0;cursor:pointer;pointer-events:auto}.subnetwork-type-legend-item:hover,.subnetwork-type-legend-item:focus-visible{background:#0000000f;color:var(--ink)}.subnetwork-type-legend-item[aria-pressed=true]{background:#0000001a;color:var(--ink);font-weight:600}.subnetwork-type-legend-swatch{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}.small-action-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 8px;font-size:.75rem;color:var(--ink);cursor:pointer}.small-action-btn:hover{background:#f0f5f4}.control-block{border:1px solid var(--line);border-radius:8px;background:#eef1f3;padding:7px}.control-title{font-size:.78rem;color:var(--muted);margin-bottom:6px}.toggle-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.toggle{border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px 8px;cursor:pointer;font-size:.82rem}.toggle.active{border-color:var(--accent);background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 85%,black);font-weight:600}.checkbox-list{display:flex;flex-wrap:wrap;gap:6px 10px}.checkbox-row{display:inline-flex;align-items:center;gap:5px;font-size:.82rem}.subnetwork-contribution-toggle-row{display:flex;align-items:center;gap:6px}.gene-list-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;background:#edf0f2}.gene-list-toolbar{display:flex;justify-content:flex-end;padding:8px 10px 6px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,white);background:#e7ecef}.gene-list-save-button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:5px 10px;font-size:.74rem;color:var(--ink);cursor:pointer}.gene-list-save-button:hover:not(:disabled){background:#f3f7f8}.gene-list-save-button:disabled{cursor:default;opacity:.55}.gene-list-header{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:10px minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 14px;border-bottom:1px solid var(--line);background:#dfe5ea;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.gene-list-header-spacer{inline-size:10px}.empty-list-message{padding:14px;color:var(--muted);font-size:.86rem}.list-row-host{padding:0 6px}.list-row{width:100%;border:none;background:transparent;text-align:left;display:grid;align-items:center;padding:6px 8px;border-radius:8px}.section-row{grid-template-columns:1fr auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#dce2e7;font-size:.78rem;color:color-mix(in srgb,var(--accent) 85%,black);font-weight:700;margin-top:4px}.section-meta{color:var(--muted);font-weight:500}.group-row{grid-template-columns:1fr;gap:2px;background:#e7ebef;border:1px solid color-mix(in srgb,var(--line) 90%,white);margin-top:2px}.group-name{font-size:.83rem;font-weight:600}.group-meta{font-size:.73rem;color:var(--muted)}.gene-row{grid-template-columns:10px minmax(0,1fr) minmax(0,1fr) auto;gap:8px;cursor:pointer;margin-top:0}.gene-row:hover{background:#e3eaef}.gene-row.active{background:color-mix(in srgb,var(--accent-soft) 80%,#edf1f4);outline:1px solid color-mix(in srgb,var(--accent) 38%,white)}.gene-row-shell{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:6px;margin-top:2px}.goi-toggle-chip{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:.68rem;min-width:46px;padding:4px 6px;cursor:pointer}.goi-toggle-chip.active{border-color:var(--accent);background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 85%,black);font-weight:600}.goi-toggle-chip.primary{border-color:#b62727;color:#7c1a1a;background:#f8e5e5}.gene-row.goi-selected{border:1px solid color-mix(in srgb,var(--accent) 35%,white)}.gene-row.goi-primary{border:1px solid color-mix(in srgb,#b62727 35%,white)}.gene-row.nearest-neighbor{border-left:3px solid transparent}.gene-row.nearest-neighbor.predicted{border-left-color:#4b7bb6}.gene-row.nearest-neighbor.ground-truth{border-left-color:#b06a2c}.gene-row.nearest-neighbor.predicted .gene-main,.gene-row.nearest-neighbor.predicted .gene-secondary,.gene-row.nearest-neighbor.predicted .gene-fci{color:#294f7c}.gene-row.nearest-neighbor.ground-truth .gene-main,.gene-row.nearest-neighbor.ground-truth .gene-secondary,.gene-row.nearest-neighbor.ground-truth .gene-fci{color:#7a4516}.gene-goi-tag{grid-column:2 / span 2;justify-self:start;font-size:.64rem;color:#7c1a1a;font-weight:600}.goi-selection-hint{color:#7c1a1a}.coord-dot{width:8px;height:8px;border-radius:50%;display:inline-block;align-self:center}.coord-dot.has-coords{background:var(--accent)}.coord-dot.no-coords{background:transparent;border:1px solid var(--muted)}.gene-main{display:inline-flex;align-items:center;gap:6px;font-size:.86rem;font-weight:600}.nearest-neighbor-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;border-radius:999px;border:1px solid currentColor;padding:1px 6px;font-size:.6rem;line-height:1.2;font-weight:700;letter-spacing:.02em;background:color-mix(in srgb,currentColor 10%,white)}.gene-secondary{font-size:.76rem;color:var(--muted)}.gene-fci{font-variant-numeric:tabular-nums;font-size:.76rem;color:var(--muted)}.status-screen{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px}.status-screen h1{margin:0 0 8px}.status-screen p{margin:0;color:var(--muted)}.status-screen.error h1{color:var(--danger)}.app-loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:grid;place-items:center}.app-loading-dots{display:flex;gap:10px}.app-loading-dot{width:10px;height:10px;border-radius:50%;background:#fff;animation:app-loading-dot-wave 1.8s ease-in-out infinite}.app-loading-dot:nth-child(1){animation-delay:0s}.app-loading-dot:nth-child(2){animation-delay:.15s}.app-loading-dot:nth-child(3){animation-delay:.3s}@keyframes app-loading-dot-wave{0%,to{transform:translateY(0)}14%{transform:translateY(-10px)}28%{transform:translateY(0)}}.network-landing-page{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;overflow:hidden}.network-landing-header{position:absolute;inset:0 0 auto 0;z-index:5;padding:14px 18px;pointer-events:none;opacity:0}.network-landing-search{position:relative;pointer-events:auto;width:380px;flex:0 0 auto}.network-landing-search-input-row{display:flex;gap:6px}.network-landing-search-input{flex:1 1 auto;min-width:0;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:#111e22d9;color:#fff;padding:7px 10px;font-size:.85rem}.network-landing-search-input::placeholder{color:#aeb7bb}.network-landing-search-input:focus{outline:2px solid rgba(110,1,107,.55);outline-offset:1px}.network-landing-search-submit{flex:0 0 auto;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:#6e016b;color:#fff;padding:7px 12px;font-size:.85rem;font-weight:600;cursor:pointer}.network-landing-search-submit:disabled{background:#ffffff1f;color:#7c8388;cursor:default}.network-landing-search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:7;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:#111e22f5;border:1px solid rgba(255,255,255,.2);border-radius:8px}.network-landing-search-suggestion{display:flex;width:100%;align-items:baseline;gap:8px;border:none;background:none;color:#fff;text-align:left;padding:6px 8px;border-radius:6px;font-size:.82rem;cursor:pointer}.network-landing-search-suggestion.active,.network-landing-search-suggestion:hover{background:#6e016b59}.network-landing-search-suggestion-primary{font-weight:700}.network-landing-search-suggestion-secondary{color:#aeb7bb;font-size:.76rem}.network-landing-search-offmap-badge{background:#e0b23d2e;color:#e0b23d;border:1px solid rgba(224,178,61,.4);border-radius:999px;padding:1px 6px;font-size:.68rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;flex:0 0 auto}.network-landing-search-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.network-landing-search-chip{display:inline-flex;align-items:center;gap:4px;background:#6e016bd9;color:#fff;border-radius:999px;padding:3px 4px 3px 10px;font-size:.76rem}.network-landing-search-chip-remove{border:none;background:none;color:#fff;cursor:pointer;font-size:.9rem;line-height:1;padding:2px 6px}.network-landing-search-hint{margin:6px 0 0;color:#f0a0a0;font-size:.72rem}.network-landing-search--light{width:auto;flex:1 1 auto;min-width:0}.network-landing-search--light .network-landing-search-input{border-color:var(--line);background:#fff;color:var(--ink)}.network-landing-search--light .network-landing-search-input::placeholder{color:var(--muted)}.network-landing-search--light .network-landing-search-dropdown{background:#fff;border-color:var(--line)}.network-landing-search--light .network-landing-search-suggestion{color:var(--ink)}.network-landing-search--light .network-landing-search-suggestion-secondary{color:var(--muted)}.network-landing-search--light .network-landing-search-hint{color:var(--danger)}.network-landing-wrap{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;overflow:hidden;opacity:0}.network-landing-fade-in-ready{animation:network-landing-fade-in .55s ease-out both}@keyframes network-landing-fade-in{0%{opacity:0}to{opacity:1}}.network-landing-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab}.network-landing-canvas-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}.center-panel-shell{display:grid;grid-template-rows:auto auto;gap:8px;height:auto;min-height:0}.subnetwork-viewer-panel{width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;min-height:0;overflow:hidden}.subnetwork-viewer-panel-fullbleed{position:relative;display:block;padding:0}@keyframes dashboard-panel-fade-in{0%{opacity:0}to{opacity:1}}.subnetwork-filter-controls,.subnetwork-fci-panel,.subnetwork-enrichment-overlay,.subnetwork-literature-panel,.subnetwork-node-list,.gene-dashboard-search-header{animation:dashboard-panel-fade-in .32s ease-out both}.subnetwork-canvas-shell{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.subnetwork-loading-shell{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.subnetwork-node-list{position:absolute;top:10px;right:10px;bottom:10px;z-index:10;width:300px;max-width:calc(100% - 20px);display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.subnetwork-node-list-selected{flex:0 0 auto;display:flex;flex-direction:column;padding:6px;gap:2px;overflow-y:auto;max-height:40%}.subnetwork-node-list-separator{margin:0;border:none;border-top:1px solid var(--line)}.subnetwork-node-list-neighbors{flex:1 1 auto;display:flex;flex-direction:column;padding:6px;gap:2px;overflow-y:auto;min-height:0}.subnetwork-node-list-heading{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:4px 6px 2px}.subnetwork-node-list-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.subnetwork-node-list-heading-row .subnetwork-node-list-heading{padding:4px 6px 2px}.subnetwork-node-list-item{position:relative;display:flex;align-items:center;flex-shrink:0;gap:8px;width:100%;text-align:left;border:none;background:none;color:var(--ink);padding:8px 10px;border-radius:6px;font-size:.9rem;cursor:default;overflow:hidden}.subnetwork-node-list-item:hover{background:#f2f4f5}.subnetwork-node-list-selected .subnetwork-node-list-item{cursor:pointer}.subnetwork-node-list-item-selected{background:#6e016b1f;color:#6a2f78;font-weight:600}.subnetwork-node-list-item-selected:hover{background:#6e016b33}.subnetwork-node-list-item-hovered{background:#f2f4f5}.subnetwork-node-list-item-selected.subnetwork-node-list-item-hovered{background:#6e016b33}.subnetwork-node-list-item-name{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.subnetwork-node-list-item-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subnetwork-node-list-item-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;border-radius:5px;color:var(--muted);cursor:pointer}.subnetwork-node-list-item-link:hover{color:var(--accent);background:#0000000f}.subnetwork-node-list-item-meter{position:relative;flex:0 0 56px;width:56px;height:8px;border-radius:999px;background:#00000014;overflow:hidden;margin-left:auto}.subnetwork-node-list-item-bar{position:absolute;inset:0 0 0 auto;border-radius:999px;opacity:.85}.subnetwork-node-list-item-value{flex:0 0 30px;text-align:right;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.subnetwork-loading-dots{display:flex;gap:10px}.subnetwork-loading-dot{width:10px;height:10px;border-radius:50%;background:#1a1a1a;animation:app-loading-dot-wave 1.8s ease-in-out infinite}.subnetwork-loading-dot:nth-child(1){animation-delay:0s}.subnetwork-loading-dot:nth-child(2){animation-delay:.15s}.subnetwork-loading-dot:nth-child(3){animation-delay:.3s}.subnetwork-canvas-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab}.subnetwork-canvas-overlay{pointer-events:none}.summary-panel{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:4px}.summary-chart-list{display:flex;flex-direction:column;gap:4px}.summary-chart-controls{margin:2px 0 4px}.summary-threshold-control{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.summary-threshold-label{font-size:.72rem;color:var(--muted);white-space:nowrap}.summary-threshold-value{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.summary-threshold-control input[type=range]{width:100%}.summary-chart-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:8px}.summary-chart-label{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-chart-track{height:9px;border-radius:999px;border:1px solid var(--line);background:#e8ecef;overflow:hidden}.summary-chart-bar{height:100%;background:color-mix(in srgb,var(--accent) 72%,white)}.summary-chart-value{font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--muted)}.literature-summary-section{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.literature-summary-details summary{cursor:pointer;font-size:.84rem;font-weight:600}.literature-summary-body{margin-top:8px;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.literature-summary-block h4{margin:0 0 4px;font-size:.78rem;color:var(--muted)}.literature-summary-block p{margin:0;font-size:.82rem;line-height:1.4;text-align:justify;text-justify:inter-word}.literature-summary-list{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:6px}.literature-summary-list li{font-size:.82rem;line-height:1.4;text-align:left;color:var(--muted)}.literature-summary-list li::marker{color:var(--muted)}.ortholog-section{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.ortholog-section h3{margin:0 0 8px}.ortholog-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.ortholog-item summary{cursor:pointer;font-size:.8rem}.term-chip-wrap{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.term-chip{display:inline-flex;border:1px solid var(--line);border-radius:999px;background:#f3f8f7;font-size:.72rem;line-height:1.2;padding:4px 8px}.bottom-panel{min-height:0;overflow:visible}.neighbors-panel{display:flex;flex-direction:column;overflow:hidden}.bottom-right-stack{display:flex;flex-direction:column;gap:8px;min-height:0}.bottom-right-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start;min-height:0}.heatmap-panel{overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);align-self:start;aspect-ratio:1 / 1;width:100%}.enrichment-panel,.strain-panel{overflow:auto}.neighbors-list{margin-top:8px;border-top:1px solid var(--line);padding-top:6px;overflow:auto;display:flex;flex-direction:column;gap:4px}.neighbor-row{width:100%;border:1px solid var(--line);border-radius:8px;background:#eef1f3;text-align:left;display:grid;grid-template-columns:10px minmax(0,1fr) auto;grid-template-rows:auto auto auto;gap:3px 8px;padding:6px 8px;cursor:pointer}.neighbor-row:hover{background:#e4eaef}.neighbor-row.hovered{border-color:color-mix(in srgb,var(--accent) 45%,white)}.neighbor-row.pinned{border-color:#2f6192;background:#edf4fb}.neighbor-domain-dot{width:8px;height:8px;border-radius:50%;align-self:center;margin-top:3px}.neighbor-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;grid-column:2;grid-row:1}.neighbor-gene{font-size:.82rem;font-weight:700}.neighbor-symbol{font-size:.74rem;color:var(--muted)}.neighbor-description{grid-column:2 / span 2;grid-row:2;color:var(--muted);font-size:.74rem;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.neighbor-weight{grid-column:3;grid-row:1;justify-self:end;font-size:.75rem;font-variant-numeric:tabular-nums}.neighbor-domain-label{grid-column:2 / span 2;grid-row:3;justify-self:start;color:var(--muted);font-size:.7rem}.warning-badge{border:1px solid #d4aa4b;color:#6e5116;background:#fff8e7;border-radius:999px;font-size:.68rem;padding:2px 8px}.heatmap-shell{display:flex;flex-direction:column;gap:6px;height:100%;width:100%;min-width:0;min-height:0;overflow:hidden}.heatmap-panel-header{display:flex;flex-direction:column;gap:8px}.heatmap-top-labels{display:grid;gap:0;max-width:100%;overflow:hidden}.heatmap-main-row{display:flex;gap:6px;align-items:flex-start;min-height:0;flex:1 1 auto}.heatmap-left-labels{width:132px;display:grid;gap:0}.heatmap-label-col,.heatmap-label-row{border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0}.heatmap-label-col{font-size:var(--heatmap-col-font-size, .6rem);writing-mode:vertical-rl;transform:rotate(180deg);text-align:left;overflow:hidden;white-space:nowrap}.heatmap-label-row{text-align:right;padding-right:4px;font-size:var(--heatmap-row-font-size, .64rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heatmap-label-col:hover,.heatmap-label-row:hover,.heatmap-label-col.hovered,.heatmap-label-row.hovered{color:var(--accent)}.heatmap-label-col.goi,.heatmap-label-row.goi{color:var(--danger);font-weight:700}.heatmap-label-col.goi:hover,.heatmap-label-row.goi:hover,.heatmap-label-col.goi.hovered,.heatmap-label-row.goi.hovered,.heatmap-label-col.goi.pinned,.heatmap-label-row.goi.pinned{color:var(--danger)}.heatmap-label-col.pinned,.heatmap-label-row.pinned{color:#2f6192;font-weight:700}.heatmap-canvas-wrap{position:relative;border:1px solid var(--line);background:#f3f5f7}.heatmap-canvas{display:block}.heatmap-tooltip{position:absolute;z-index:4;pointer-events:none;background:#112120eb;color:#fff;border-radius:6px;font-size:.7rem;padding:4px 6px;transform:translate(6px,6px);white-space:nowrap}.tab-row{display:flex;gap:6px;margin:8px 0}.tab-btn{border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:#edf0f2;cursor:pointer;font-size:.75rem}.tab-btn.active{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.enrichment-bars{display:flex;flex-direction:column;gap:5px;max-height:170px;overflow:auto}.enrichment-row{display:grid;grid-template-columns:minmax(0,1fr) 72px auto;gap:6px;align-items:center}.enrichment-label{font-size:.73rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.enrichment-track{height:8px;border-radius:999px;border:1px solid var(--line);background:#e8ecef}.enrichment-bar{height:100%;border-radius:999px;background:color-mix(in srgb,var(--accent) 70%,white)}.enrichment-value{font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}.query-membership-section{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}.query-membership-section h4{margin:0 0 6px;font-size:.8rem}.query-membership-group+.query-membership-group{margin-top:6px}.query-membership-title{font-size:.72rem;color:var(--muted);margin-bottom:4px}.chip-wrap{display:flex;flex-wrap:wrap;gap:4px}.membership-chip{display:inline-flex;border:1px solid var(--line);border-radius:999px;background:#e8edf0;font-size:.68rem;line-height:1.2;padding:3px 7px}.strain-list{margin-top:6px;max-height:170px;overflow:auto;display:flex;flex-direction:column;gap:5px}.strain-row{display:grid;grid-template-columns:minmax(0,1fr) 58px auto auto;gap:5px;align-items:center}.strain-label{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strain-track{height:8px;border-radius:999px;border:1px solid var(--line);background:#e8ecef}.strain-bar{height:100%;border-radius:999px;background:color-mix(in srgb,var(--accent) 60%,#e6f3f1)}.strain-value,.strain-raw{font-size:.67rem;color:var(--muted);font-variant-numeric:tabular-nums}.domain-circle-panel{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:6px}.domain-circle-wrap{position:relative;border:1px solid var(--line);border-radius:8px;background:#eceff1;min-height:0;flex:1 1 auto;min-block-size:200px;overflow:hidden}.domain-circle-svg{width:100%;height:100%;display:block}.domain-point{opacity:.5;stroke:#ffffffb8;stroke-width:1;cursor:pointer}.domain-network-edge{stroke:#000;stroke-width:1.5;pointer-events:none}.domain-network-edge-current{stroke:#bf1e1e;stroke-width:1.5;pointer-events:none}.domain-point.neighbor{opacity:.5;stroke:color-mix(in srgb,var(--accent) 45%,white);stroke-width:1.6}.domain-point.goi{opacity:.5;stroke:#bf1e1e;stroke-width:2.4}.domain-point.hovered{opacity:.5;stroke:#0f6e67;stroke-width:2.2}.domain-point.pinned{opacity:.5;stroke:#265f95;stroke-width:2.2}.domain-hover-tooltip{position:absolute;z-index:6;pointer-events:none;max-width:220px;padding:4px 8px;border-radius:6px;background:#111e22eb;color:#fff;font-size:.7rem;line-height:1.2}.right-stack-note{padding:0 2px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[role=tab]:focus-visible,[role=option]:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.panel-error-fallback{display:flex;flex-direction:column;justify-content:center;gap:4px;background:#f4eef0}@media(max-width:1180px){body{overflow:auto}.shell-root{height:auto;min-height:100dvh;overflow:visible}.app-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto;overflow:visible}.area-left,.area-center-top,.area-right-stack,.area-info,.area-bottom-grid{grid-column:1}.area-left{grid-row:1;min-height:640px;position:static;top:auto;max-height:none}.area-center-top{grid-row:2}.area-right-stack{grid-row:3;grid-template-rows:auto auto auto}.area-info{grid-row:4}.area-bottom-grid{grid-row:5;grid-template-columns:1fr;grid-template-rows:auto auto}.neighbors-panel{grid-column:1;grid-row:auto}.bottom-right-row{grid-template-columns:1fr}.heatmap-panel{aspect-ratio:auto;min-height:420px}.heatmap-main-row{flex-direction:column}.heatmap-top-labels{margin-left:0!important}.heatmap-left-labels{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none!important;max-height:96px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:4px;gap:4px}.heatmap-label-row{text-align:left}.left-rail{height:auto;max-height:none}}
