:root{--bg:#0e1116;--panel:#161b22;--panel2:#1f2630;--fg:#e6edf3;--muted:#8b949e;--accent:#40c4ff;--border:#30363d;--warn:#f0883e;color:var(--fg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}.app{width:100%;height:100%;position:relative}.map{position:absolute;inset:0 0 26px}.map.with-sidebar{right:320px}.map canvas{outline:none;top:0!important;left:0!important}.map>div{position:absolute;top:0;left:0}.sidebar{background:color-mix(in srgb, var(--panel) 92%, transparent);border-left:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-direction:column;width:320px;display:flex;position:absolute;top:0;bottom:26px;right:0}.sidebar.collapsed{border:none;width:0}.sidebar .collapse{border:1px solid var(--border);background:var(--panel);cursor:pointer;width:22px;height:28px;color:var(--muted);border-right:none;border-radius:6px 0 0 6px;position:absolute;top:8px;left:-22px}.sidebar-inner{padding:12px 14px 20px;overflow-y:auto}.sidebar header h1{margin:0 0 4px;font-size:16px}.sidebar header p{margin:0 0 6px}section{border-top:1px solid var(--border);padding:10px 0}section h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:6px;margin:0 0 8px;font-size:11px;display:flex}.muted{color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}.small{font-size:11px}.tabs{gap:4px;margin-bottom:8px;display:flex}.tabs button,.legend-actions button,.overlay button{background:var(--panel2);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:4px 10px}.tabs button.on{background:var(--accent);color:#041018;border-color:var(--accent);font-weight:600}.legend-actions{gap:4px;margin-left:auto;display:flex}.legend-actions button{padding:1px 7px;font-size:11px}select,.genesearch input,.overlay input{background:var(--panel2);border:1px solid var(--border);border-radius:6px;outline:none;width:100%;padding:6px 8px}select:focus,.genesearch input:focus{border-color:var(--accent)}.genesearch{position:relative}.gs-list{z-index:5;background:var(--panel2);border:1px solid var(--border);border-radius:6px;max-height:260px;margin:2px 0 0;padding:4px 0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.gs-list li{cursor:pointer;padding:4px 10px}.gs-list li.hi{background:color-mix(in srgb, var(--accent) 25%, transparent)}.controls label,.sidebar section>label{color:var(--muted);margin:8px 0 0;display:block}.controls label select{margin-top:3px}label small{color:var(--fg);margin-left:4px}label.check{align-items:center;gap:6px;display:flex}input[type=range]{width:100%;accent-color:var(--accent);margin:2px 0}.range{color:var(--muted);margin-top:8px}.range-label small{color:var(--fg)}.legend{padding:6px 0 0}.legend-head{align-items:center;gap:6px;margin-bottom:6px;font-weight:600;display:flex}.cats{max-height:280px;margin:0;padding:0;list-style:none;overflow-y:auto}.cats li{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;padding:2px 4px;display:flex}.cats li:hover{background:var(--panel2)}.cats li.off{opacity:.35}.swatch{border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #ffffff26}.cat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cat-n{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.ramp{border-radius:4px;height:10px}.ramp-labels{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:2px;font-size:11px;display:flex}.hist{background:var(--panel2);border-radius:4px;align-items:flex-end;gap:1px;height:44px;margin-top:8px;padding:2px;display:flex}.hist .bar{background:var(--border);flex:1;min-height:1px}.hist .bar.on{background:var(--accent)}.samples{margin:0;padding:0;list-style:none}.samples li{border-radius:6px;align-items:center;gap:6px;padding:2px 4px;display:flex}.samples li.sel{background:var(--panel2)}.samples li.focus{outline:1px solid var(--accent)}.samples li.off .sample-btn{opacity:.4}.samples li.loading .s-meta:after{content:" · loading…";color:var(--warn)}.samples li.error .s-meta:after{content:" · failed";color:#ff6b6b}.sample-btn{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;padding:3px 4px;display:flex}.s-meta{color:var(--muted);font-size:11px}.focus-btn{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:0 0;border-radius:4px;padding:0 6px}.focus-btn:hover{color:var(--fg);border-color:var(--accent)}.tooltip{pointer-events:none;background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--border);z-index:10;border-radius:6px;min-width:120px;padding:6px 8px;font-size:12px;position:absolute;box-shadow:0 6px 20px #00000073}.tt-sample{color:var(--muted);font-size:11px}.tt-row{justify-content:space-between;gap:12px;display:flex}.tt-id{color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:11px}.statusbar{background:var(--panel);border-top:1px solid var(--border);height:26px;color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:14px;padding:0 12px;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0}.statusbar .grow{flex:1}.statusbar .dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.statusbar .dot.ready{background:#3fb950}.statusbar .dot.loading{background:var(--warn)}.statusbar .dot.error{background:#ff6b6b}.statusbar .pending{color:var(--warn)}.statusbar .warn{color:#ff6b6b}.overlay{text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex;position:absolute;inset:0}.overlay.error{background:color-mix(in srgb, var(--bg) 85%, transparent)}.overlay h1{letter-spacing:-.02em;margin:0;font-size:32px}.overlay h2{margin:0}.overlay p{max-width:560px;color:var(--muted);margin:0}.overlay form{gap:8px;width:min(640px,90vw);display:flex}.overlay code{background:var(--panel2);border-radius:4px;padding:1px 5px}.overlay a{color:var(--accent)}.platformbar{background:color-mix(in srgb, var(--panel) 90%, transparent);border:1px solid var(--border);z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:8px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:10px;left:12px}.platformbar button{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:3px 9px}.platformbar button.on{background:var(--panel2);color:var(--fg);border-color:var(--border)}.platformbar button .n{color:var(--muted);margin-left:3px;font-size:11px}.platformbar .split-ctl{border-left:1px solid var(--border);align-items:center;gap:2px;margin-left:8px;padding-left:8px;display:flex}.platformbar .split-ctl .muted{margin-right:4px;font-size:11px}.divider{cursor:col-resize;z-index:4;justify-content:center;align-items:center;width:8px;display:flex;position:absolute;top:0;bottom:0}.divider:before{content:"";background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:3px}.divider:hover:before{background:var(--accent)}.divider .swap{background:var(--panel);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:6px;width:22px;height:22px;font-size:12px;line-height:1;position:relative}.divider .swap:hover{color:var(--fg);border-color:var(--accent)}.grouplist input{background:var(--panel2);border:1px solid var(--border);border-radius:6px;outline:none;width:100%;margin-bottom:4px;padding:6px 8px}.grouplist ul{border:1px solid var(--border);border-radius:6px;max-height:220px;margin:0;padding:0;list-style:none;overflow-y:auto}.grouplist li{cursor:pointer;padding:4px 8px}.grouplist li:hover{background:var(--panel2)}.grouplist li.on{background:color-mix(in srgb, var(--accent) 25%, transparent)}.samples li.subhead{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:6px;font-size:11px}.tt-label{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.tooltip .swatch{width:9px;height:9px}.tt-row b{font-variant-numeric:tabular-nums;margin-left:10px}.selection .kv{border-collapse:collapse;margin:6px 0}.selection .kv td{color:var(--muted);padding:1px 8px 1px 0}.selection .kv td b{color:var(--fg)}.comp{margin-top:6px}.comp-head{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:11px}.comp-row{grid-template-columns:10px 1fr 70px 34px;align-items:center;gap:6px;padding:1px 0;font-size:12px;display:grid}.comp-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.comp-bar{background:var(--panel2);border-radius:3px;height:8px;overflow:hidden}.comp-bar span{height:100%;display:block}.comp-n{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.platformbar button.tool{border-color:var(--border);margin-right:6px}.platformbar button.tool.on{background:var(--accent);color:#041018}.dotplot{margin-top:6px}.dp-head,.dp-row{grid-template-columns:10px 1fr 88px 44px;align-items:center;gap:6px;font-size:12px;display:grid}.dp-head{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:2px;font-size:10px}.dp-row{cursor:pointer;border-radius:4px;padding:1px 2px}.dp-row:hover{background:var(--panel2)}.dp-row.on{background:color-mix(in srgb, var(--accent) 22%, transparent)}.dp-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dp-bar{background:var(--panel2);border-radius:3px;height:10px;position:relative;overflow:hidden}.dp-bar span{background:var(--accent);opacity:.8;height:100%;display:block}.dp-bar em{color:var(--fg);font-size:10px;font-style:normal;position:absolute;top:-2px;right:4px}.dp-dot{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:11px;display:inline-flex}.dp-dot i{background:var(--fg);opacity:.8;border-radius:50%;display:inline-block}.heat{margin-top:6px;overflow-x:auto}.heat table{border-collapse:collapse;font-size:11px}.heat th{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:70px;padding:2px 4px;font-weight:400;overflow:hidden}.heat td{text-align:center;font-variant-numeric:tabular-nums;padding:2px 4px}.heat td:first-child{text-align:left;white-space:nowrap}.geneset{margin-bottom:10px}.geneset-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.chips{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.chip{background:var(--panel2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:2px;padding:1px 4px 1px 8px;font-size:12px;display:inline-flex}.chip.unknown{border-color:var(--warn);color:var(--warn)}.chip button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:13px;line-height:1}.chip button:hover{color:var(--fg)}.blend label{color:var(--muted);margin-top:4px;display:block}.blend label select{margin-top:3px}.blend-grid{grid-template-rows:96px auto;grid-template-columns:auto 96px;align-items:end;gap:6px;margin:4px 0;display:grid}.blend-grid canvas{border:1px solid var(--border);image-rendering:auto;border-radius:4px}.blend-y{writing-mode:vertical-rl;color:var(--muted);align-items:center;gap:4px;max-height:96px;font-size:11px;display:flex;overflow:hidden;transform:rotate(180deg)}.blend-x{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:flex}.map>.scalebar{background:var(--fg);opacity:.9;pointer-events:none;z-index:3;border-radius:1px;height:4px;position:absolute;top:auto;bottom:52px}.scalebar:before,.scalebar:after{content:"";background:var(--fg);width:2px;height:10px;position:absolute;bottom:0}.scalebar:before{left:0}.scalebar:after{right:0}.scalebar span{color:var(--fg);text-shadow:0 0 4px var(--bg), 0 0 2px var(--bg);white-space:nowrap;font-size:11px;position:absolute;bottom:8px;left:0}.map>.pointsize{z-index:3;background:color-mix(in srgb, var(--panel) 85%, transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;display:flex;position:absolute;top:auto;bottom:14px}.pointsize .cap{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;margin-right:2px;font-size:10px}.pointsize input[type=range]{width:90px;margin:0}.pointsize .dot{background:var(--muted);border-radius:50%;width:5px;height:5px}.pointsize .dot.big{width:9px;height:9px}.pointsize small{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:34px;font-size:10px}.overlay.gallery{justify-content:flex-start;gap:24px;padding:48px 32px 32px;overflow-y:auto}.gallery-head{flex-direction:column;align-items:center;gap:12px;max-width:760px;display:flex}.gallery-head form{width:min(680px,90vw)}.cards{text-align:left;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:18px;width:min(1320px,100%);display:grid}@media (max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.cards{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;transition:transform .12s,border-color .12s;display:flex;overflow:hidden}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card.soon{cursor:default;opacity:.75}.card.soon:hover{border-color:var(--border);transform:none}.card-art{aspect-ratio:1;background:#11151b;position:relative}.card-art svg{width:100%;height:100%;display:block;position:absolute;inset:0}.card-art .status{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--border);background:#0e1116cc;border-radius:999px;padding:2px 7px;font-size:10px;position:absolute;top:8px;right:8px}.card-art .status.live{color:#3fb950;border-color:#3fb950}.card-art .status.local{color:var(--accent);border-color:var(--accent)}.card-body{flex-direction:column;flex:1;gap:8px;padding:12px 14px 14px;display:flex}.card-body p{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card-body .paper{margin-top:auto}.card-body h2{margin:0;font-size:14px}.card-body p{color:var(--muted);max-width:none;margin:0;font-size:12px;line-height:1.4}.card .meta{flex-wrap:wrap;gap:4px;display:flex}.pill{background:var(--panel2);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:11px}.card .nums{color:var(--muted);gap:12px;font-size:11px;display:flex}.card .nums b{color:var(--fg);font-variant-numeric:tabular-nums}.card .paper{color:var(--muted);font-size:11px}.card .paper a{color:var(--accent)}.gallery-foot{text-align:center;max-width:700px;font-size:12px}.topnav{background:var(--panel);border-bottom:1px solid var(--border);z-index:8;align-items:center;gap:14px;height:40px;padding:0 14px;font-size:13px;display:flex;position:absolute;top:0;left:0;right:0}.topnav a{color:var(--muted);text-decoration:none}.topnav a:hover,.topnav a.on{color:var(--fg)}.topnav .brand{color:var(--fg);letter-spacing:-.01em;align-items:center;gap:8px;font-weight:700;display:flex}.topnav .brand img{height:22px}.topnav .crumb{align-items:center;gap:8px;display:flex}.topnav .sep{color:var(--border)}.topnav select{width:auto;padding:3px 8px;font-size:12px}.topnav .grow{flex:1}.app.with-nav .map,.app.with-nav .sidebar{top:40px}.app.with-nav .platformbar{top:50px}.app.with-nav .overlay{top:40px}.card-art img{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.hdr-row{align-items:flex-start;gap:8px;display:flex}.hdr-row h1{flex:1}.hdr-actions{margin-top:2px}.chips.recent{margin-top:6px}.chips.recent .chip{cursor:pointer;color:var(--muted);padding:1px 8px}.chips.recent .chip:hover{color:var(--fg);border-color:var(--accent)}.notmeasured{align-items:center;gap:6px;margin-top:6px;display:flex}.statusbar .helpbtn{background:var(--panel2);border:1px solid var(--border);cursor:pointer;width:18px;height:18px;color:var(--muted);border-radius:50%;padding:0;font-size:11px;line-height:1}.statusbar .helpbtn:hover{color:var(--fg);border-color:var(--accent)}.help-backdrop{z-index:20;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.help{background:var(--panel);border:1px solid var(--border);border-radius:10px;min-width:360px;padding:18px 22px;box-shadow:0 16px 48px #00000080}.help h2{margin:0 0 10px;font-size:14px}.help table{border-collapse:collapse}.help td{vertical-align:top;padding:3px 10px 3px 0}.help kbd{background:var(--panel2);border:1px solid var(--border);white-space:nowrap;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:12px}.help p{margin:10px 0 0}.genecount{margin-top:4px}
