:root{color:#dfe8eb;font-synthesis:none;--muted:#9aaab4;--line:#2b3943;--accent:#81d8c1;background:#10171d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;overflow:hidden}button,input,select{font:inherit}button,select,input[type=number]{color:#e2ecef;background:#202d36;border:1px solid #3c4c57;border-radius:6px;min-height:34px}button{cursor:pointer;padding:6px 12px;transition:background .15s}button:hover{background:#344953}button:disabled,select:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}select{text-overflow:ellipsis;width:100%;padding:5px 8px}input[type=range]{width:100%;accent-color:var(--accent)}input[type=number]{width:100%;padding:5px;font-size:12px}label{color:#b6c5ce;font-size:12px;display:block}label select{margin-top:6px}input[type=color]{cursor:pointer;background:0 0;border:0;width:25px;height:25px;padding:0}h1,h2,p{margin:0}h2{font-size:14px;font-weight:600}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand{color:#edf7f7;align-items:center;gap:9px;padding:12px 0;font-size:15px;font-weight:600;text-decoration:none;display:flex}.brand-logo{object-fit:contain;width:78px;height:42px}.privacy{color:#b1c9c4;font-size:11px}.privacy i{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.quiet{background:0 0;font-size:12px}main{grid-template-columns:290px minmax(0,1fr);height:100dvh;display:grid}.sidebar,.workspace{min-height:0;overflow:auto}.sidebar{border-right:1px solid var(--line);background:#172129;padding:0 14px 16px}.sidebar-toolbar{min-height:38px;color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.sidebar-toolbar button{min-height:26px;padding:3px 7px;font-size:10px}.sidebar-footer{padding-top:16px}.sidebar-tabs{border:1px solid var(--line);background:#101920;border-radius:8px;grid-template-columns:1fr 1fr 1fr;gap:3px;padding:3px;display:grid}.sidebar-tabs button{background:0 0;border:0;padding:7px 4px;font-size:12px}.sidebar-tabs button[aria-selected=true]{color:#b8f5df;background:#305046}#view-controls>label,#section-roi .section-body>label{margin:10px 0}input[type=text]{color:#e2ecef;background:#202d36;border:1px solid #3c4c57;border-radius:6px;width:100%;margin-top:6px;padding:7px}#workspace-controls{margin:6px 0 12px}#roi-shortcuts{grid-template-columns:1fr 1fr;gap:5px;max-height:340px;margin:12px 0;display:grid;overflow:auto}.roi-shortcut{text-align:left;overflow-wrap:anywhere;padding:7px;font-size:11px}.roi-shortcut.unvisited{color:#baf2cf;background:#224e3c}.roi-shortcut.partial{color:#f9d592;background:#534426}.roi-shortcut.visited{color:#a8b4bc;background:#323e47}.roi-shortcut[aria-current=true]{outline:2px solid var(--accent);outline-offset:-2px}.visit-key{flex-wrap:wrap;gap:7px;font-size:10px;display:flex}.visit-key .unvisited{color:#9fe1b4}.visit-key .partial{color:#f9d592}.visit-key .visited,#roi option[data-visited=visited]{color:#a8b4bc}#roi option[data-visited=unvisited]{color:#9fe1b4}#roi option[data-visited=partial]{color:#f9d592}.workspace-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.workspace-actions button,.workspace-actions .file-picker{justify-content:center;min-width:0;margin:0;padding:7px 5px;font-size:11px}.workspace-note{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;margin:7px 0;font-size:11px;line-height:1.5}#cancel-workspace{min-height:28px;font-size:11px}#reset{margin-top:12px;font-size:11px}.control-section{border-bottom:1px solid var(--line)}.section-heading{color:#dfe8eb;align-items:center;gap:9px;padding:12px 0;list-style:none;display:flex}.section-heading::-webkit-details-marker{display:none}.review-heading::-webkit-details-marker{display:none}.section-heading:after,.review-heading:after{content:"›";color:var(--muted);margin-left:auto;font-size:18px;line-height:1}.control-section[open]>.section-heading:after,#review-panels[open]>.review-heading:after{transform:rotate(90deg)}.section-heading:hover,.review-heading:hover{color:var(--accent)}.section-heading.with-visibility{padding:7px 0}.section-heading.with-visibility:after{margin-left:0}.visibility-toggle{width:28px;height:28px;min-height:28px;color:var(--muted);background:0 0;border:0;flex:none;place-items:center;margin-left:auto;padding:5px;display:grid}.visibility-toggle:hover{background:#344953}.visibility-toggle[aria-pressed=true]{color:var(--accent)}.visibility-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.visibility-toggle[aria-pressed=true] .eye-closed,.visibility-toggle[aria-pressed=false] .eye-open{display:none}.section-body{padding-bottom:14px}.section-body>.muted:first-child{margin-top:0}.step{letter-spacing:1px;color:#8ac9b9;font-size:10px}.muted{color:var(--muted);margin:8px 0 12px;font-size:12px;line-height:1.6}.file-picker{color:#ecf3f4;cursor:pointer;border:1px solid #3d4c55;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;min-height:36px;margin-top:6px;padding:8px;display:flex;position:relative;overflow:hidden}.file-picker:hover{border-color:var(--accent);background:#22333a}.file-picker:focus-within{outline:2px solid var(--accent)}.file-picker span{color:#a3b9bc;white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;overflow:hidden}.file-picker input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}summary{cursor:pointer;color:var(--muted);padding:14px 0 4px;font-size:12px}.mapping label,.mapping button{margin-top:10px}.mapping label input{margin-top:5px}.input-error{color:#f0c78b;margin:8px 0;font-size:11px;line-height:1.5}.channel-source{color:var(--accent);overflow-wrap:anywhere;margin:5px 0;font-size:10px;line-height:1.5}.roi-nav{gap:6px;display:flex}.roi-nav select{min-width:0}.roi-nav button{padding:5px 10px}.channel{border-top:1px solid #283740;margin-top:12px;padding-top:10px}.channel:first-child{border-top:0;margin-top:0;padding-top:0}.channel-heading{align-items:center;gap:8px;margin-bottom:5px;display:flex}.channel-heading input[type=checkbox]{accent-color:var(--accent);cursor:pointer;margin:0}.channel-muted>select,.channel-muted>.contrast{opacity:.5}.remove-channel{border-color:#0000;min-height:25px;margin-left:auto;padding:0 7px;font-size:18px}.channel-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.channel-actions .muted{margin:0;font-size:11px}.channel-actions button{min-height:30px;font-size:11px}.contrast{grid-template-columns:1fr 1fr 45px auto;align-items:end;gap:6px;margin-top:7px;display:grid}.contrast label{font-size:10px}.contrast input{margin-top:4px}.contrast button{padding:5px 7px;font-size:10px}.two-columns{grid-template-columns:1fr 1fr;gap:12px;margin:13px 0;display:grid}#expression-label{margin-top:10px}.legend{max-height:200px;margin-top:15px;overflow:auto}.legend-row{align-items:center;gap:8px;margin:7px 0;font-size:12px;display:flex}.legend-row i{border-radius:2px;flex-shrink:0;width:8px;height:8px}.legend-row span{overflow-wrap:anywhere}.legend-row small{color:var(--muted);margin-left:auto}.gradient{background:linear-gradient(90deg,#303469,#ffe835);border-radius:4px;height:7px}.range-label{color:var(--muted);margin-top:5px;font-size:11px}.workspace{flex-direction:column;min-width:0;display:flex}.tools{border:1px solid var(--line);background:#162129e8;border-radius:8px;gap:5px;padding:5px;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 2px 10px #0005}.tools button{min-height:28px;padding:3px 9px;font-size:11px}#viewport{background:#080d11;flex:1 0 180px;width:100%;position:relative;overflow:hidden}#tissue{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}#pane-grid{grid-template-rows:1fr;grid-template-columns:1fr;gap:3px;display:grid;position:absolute;inset:0}#pane-grid[data-count="2"]{grid-template-columns:1fr 1fr}#pane-grid[data-count="3"]{grid-template-columns:1fr 1fr 1fr}#pane-grid[data-count="4"]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.view-pane{outline-offset:-1px;outline:1px solid #2b3943;min-width:0;min-height:0;position:relative;overflow:hidden}.view-pane.selected{outline:2px solid var(--accent);outline-offset:-2px}.view-pane:after{content:"";pointer-events:none;border:2px solid #0000;position:absolute;inset:0}.view-pane.selected:after{border-color:var(--accent)}.tissue-canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.pane-label{text-overflow:ellipsis;white-space:nowrap;background:#14221de6;max-width:calc(100% - 16px);min-height:25px;padding:3px 8px;font-size:11px;position:absolute;top:8px;left:8px;overflow:hidden}.pane-label[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.tools button{place-items:center;width:30px;height:30px;padding:4px;font-size:17px;display:grid}.tools svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round;width:18px;height:18px}.tools button[aria-pressed=false]{opacity:.5;background:#10171d}.tools button[aria-pressed=true]{color:var(--accent)}#empty-state{text-align:center;pointer-events:none;background:radial-gradient(#1c3032 0,#0a1117 65%);flex-direction:column;justify-content:center;align-items:center;padding:22px;display:flex;position:absolute;inset:0}#empty-state[hidden]{display:none}#empty-state h2{letter-spacing:-.5px;margin:17px 0 12px;font-size:23px;font-weight:450}#empty-state p{color:#a0b2bb;font-size:13px;line-height:1.9}.welcome-logo{width:220px;max-width:70%;height:auto}.format-tags{gap:8px;margin-top:23px;display:flex}.format-tags span{color:#9cbab4;border:1px solid #314a47;border-radius:5px;padding:5px 9px;font-size:10px}#view-scale{color:#b2c7cd;pointer-events:none;background:#122129d9;border-radius:4px;padding:4px 7px;font-size:11px;position:absolute;bottom:12px;left:12px}#view-scale:empty{display:none}#status{color:#a3b8c0;flex-shrink:0;padding:4px 8px;font-size:11px;line-height:1.5}#warning{color:#f0c78b;background:#352c20;border:1px solid #655031;border-radius:5px;flex-shrink:0;max-height:70px;margin:0 8px 5px;padding:5px 8px;font-size:11px;line-height:1.5;overflow:auto}#review-panels{border-top:1px solid var(--line);flex-shrink:0;margin:0 8px 8px}.review-heading{color:#c2d3d9;align-items:center;gap:10px;min-height:28px;padding:5px 2px;list-style:none;display:flex}.review-heading .when-open,.review-heading .when-closed{color:var(--muted);margin-left:auto;font-size:10px}.review-heading:after{margin-left:0}#review-panels[open] .when-closed,#review-panels:not([open]) .when-open{display:none}.lower-panels{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:8px;height:clamp(175px,25vh,245px);display:grid}.lower-panels section{border:1px solid var(--line);background:#172129;border-radius:6px;flex-direction:column;min-width:0;min-height:0;padding:10px;display:flex;overflow:auto}.panel-heading{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.panel-heading select{max-width:150px;min-height:28px;font-size:11px}.panel-heading h2{font-size:12px}#cell-badge{color:#9dc3b9;background:#263c36;border-radius:4px;padding:4px 7px;font-size:10px}#cell-details{grid-template-columns:minmax(70px,1fr) minmax(0,1.3fr);margin:0;font-size:11px;display:grid;overflow:auto}dt,dd{overflow-wrap:anywhere;border-bottom:1px solid #26343d;margin:0;padding:7px 0}dt{color:#96aab4;padding-right:12px}#embedding-canvas{cursor:crosshair;background:#101920;border-radius:5px;flex:1 1 0;width:100%;height:0;min-height:60px;display:block}.embedding-panel .muted{margin:8px 0 0;font-size:10px}@media (max-width:1000px){main{grid-template-columns:260px minmax(0,1fr)}.sidebar{padding:0 10px 12px}.brand{font-size:13px}.panel-heading{flex-wrap:wrap}}@media (max-width:600px){body{overflow:auto}main{grid-template-columns:1fr;height:auto}.sidebar{border-right:0;max-height:45dvh}.workspace{grid-row:2;height:85dvh;min-height:600px}#viewport{min-height:240px}.lower-panels{height:200px}.panel-heading select{max-width:100%}#cell-badge{padding:3px}.format-tags{flex-wrap:wrap;justify-content:center}}
