.collection-page{position:absolute;inset:0;overflow-y:auto;padding:20px 24px 40px;background:var(--bg);z-index:5;animation:card-in var(--med) var(--ease)}.collection-header{display:flex;flex-direction:column;gap:10px;max-width:1400px;margin:0 auto 18px}.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.collection-heading h1{font-size:22px;margin:0;font-weight:650;letter-spacing:-.01em}.collection-heading h2{font-size:var(--text-lg);margin:0}.collection-description{margin:0;color:var(--muted);max-width:80ch;font-size:var(--text-md)}.collection-meta{margin:0;color:var(--text-tertiary);font-size:var(--text-sm)}.collection-meta a{color:var(--text-accent)}.collection-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.collection-search{flex:1 1 220px;max-width:340px;min-height:32px;padding:0 10px;border-radius:var(--radius);border:.5px solid var(--line);background:var(--surface-sunken);color:var(--text);font:inherit;font-size:var(--text-md)}.collection-select{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--text-sm)}.collection-select select{min-height:32px;border-radius:var(--radius);border:.5px solid var(--line);background:var(--surface-sunken);color:var(--text);font:inherit;font-size:var(--text-md);padding:0 6px}.collection-facets{display:flex;flex-direction:column;gap:6px}.collection-facet{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.collection-facet-label{min-width:72px;color:var(--text-tertiary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.collection-page .chip,.collection-crumb .chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:var(--radius-pill);border:.5px solid var(--line);background:var(--fill);color:var(--text);font:inherit;font-size:var(--text-sm);cursor:pointer;align-self:flex-start}.collection-page .chip:hover:not(:disabled){background:var(--fill-hover)}.collection-page .chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--text-accent)}.collection-page .chip:disabled{opacity:var(--dim-disabled);cursor:default}.chip-count{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.composition-key{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:var(--text-sm);color:var(--muted)}.composition-key-item{display:inline-flex;align-items:center;gap:5px}.collection-group{max-width:1400px;margin:0 auto 22px}.collection-group-title{font-size:var(--text-md);font-weight:600;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:6px}.collection-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.collection-card{min-width:0}.collection-card-open{width:100%;height:100%;display:flex;flex-direction:column;text-align:left;padding:0;border:.5px solid var(--hairline-strong, var(--line));border-radius:var(--radius-card);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;overflow:hidden;transition:transform var(--fast, .12s) var(--ease),border-color var(--fast, .12s) var(--ease)}.collection-card-open:hover{border-color:var(--accent);transform:translateY(-2px)}.collection-card-open:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.collection-thumb{position:relative;display:block;aspect-ratio:4 / 3;background:var(--stage-bg)}.collection-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.collection-thumb-empty{display:block;width:100%;height:100%;background:repeating-linear-gradient(45deg,var(--surface-sunken) 0 8px,var(--panel) 8px 16px)}.collection-card-body{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px}.collection-card-title{font-weight:600;font-size:var(--text-md);overflow-wrap:anywhere}.collection-card-fields{display:flex;flex-wrap:wrap;gap:4px}.collection-tag{font-size:var(--text-xs);padding:1px 7px;border-radius:var(--radius-pill);background:var(--fill);color:var(--muted)}.collection-card-stats{font-size:var(--text-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.composition-bar{display:flex;height:8px;border-radius:var(--radius-pill);overflow:hidden;background:var(--surface-sunken)}.composition-bar>span{min-width:1px}.collection-empty{text-align:center;color:var(--muted);margin-top:40px}.collection-sheet-scrim{position:fixed;inset:0;background:var(--scrim);z-index:20;display:flex;align-items:flex-end}.collection-sheet{width:100%;max-height:75vh;overflow-y:auto;background:var(--surface-sheet);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;animation:card-in var(--med) var(--ease)}.collection-crumb{display:inline-flex;align-items:center;gap:2px;min-width:0;padding:2px;border-radius:var(--radius-pill);background:var(--fill)}.collection-crumb .chip{border:none;background:transparent;min-height:30px}.collection-crumb .chip:hover:not(:disabled){background:var(--surface-hover)}.collection-crumb .chip:disabled{opacity:var(--dim-disabled);cursor:default}.collection-crumb-position{font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;padding:0 4px;white-space:nowrap}.collection-crumb-title{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-layout=compact] .collection-page{padding:14px 16px 32px}[data-layout=compact] .collection-heading h1{font-size:var(--text-xl)}[data-layout=compact] .collection-grid{grid-template-columns:1fr;gap:10px}[data-layout=compact] .collection-search{max-width:none;flex-basis:100%}[data-layout=compact] .collection-crumb{flex:1 1 auto;justify-content:space-between}[data-layout=compact] .collection-crumb-title{max-width:14ch}[data-pointer=coarse] .collection-page .chip,[data-pointer=coarse] .collection-crumb .chip{min-height:40px}:root{color-scheme:dark;--bg: #12110f;--panel: #191714;--panel-2: #211f1b;--panel-3: #2b2823;--line: #3a362f;--line-soft: #2a2722;--line-strong: #4d483f;--text: #f0ede7;--muted: #aaa397;--text-tertiary: #7d766b;--ok: #2ec4b9;--warn: #ffa665;--warn-rgb: 255, 166, 101;--danger: #f35c94;--accent-rgb: 130, 70, 225;--accent: rgb(var(--accent-rgb));--accent-hover: #9563e8;--accent-soft: rgba(var(--accent-rgb), .18);--on-accent: #ffffff;--on-accent-soft: rgba(255, 255, 255, .78);--text-accent: #cdb5f3;--focus: #b48fed;--measure: #cdeb05;--radius: 8px;--radius-sm: 6px;--radius-xs: 4px;--radius-card: 14px;--radius-lg: 18px;--radius-pill: 999px;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 10px;--space-6: 12px;--space-7: 16px;--space-8: 22px;--text-2xs: 10px;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--text-xl: 17px;--text-2xl: 22px;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--surface-card: rgba(25, 23, 20, .86);--surface-dock: rgba(18, 17, 15, .82);--surface-float: rgba(43, 40, 35, .94);--surface-sheet: rgba(25, 23, 20, .98);--surface-readout: rgba(18, 17, 15, .72);--surface-hover: rgba(255, 248, 235, .06);--surface-pressed: rgba(255, 248, 235, .1);--fill: rgba(255, 248, 235, .1);--fill-hover: rgba(255, 248, 235, .16);--surface-open: rgba(255, 248, 235, .035);--surface-sunken: #0e0d0b;--surface-raised: #48443c;--stage-bg: #050505;--scrim: rgba(5, 5, 5, .5);--overlay-bg: rgba(10, 9, 8, .88);--hairline: rgba(255, 248, 235, .07);--hairline-strong: rgba(255, 248, 235, .32);--blur: 24px;--blur-sm: 12px;--saturate: saturate(1.6);--shadow-1: 0 2px 8px rgba(0, 0, 0, .35);--shadow-2: 0 4px 16px rgba(0, 0, 0, .4);--shadow-3: 0 10px 30px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .3);--shadow-4: 0 24px 60px rgba(0, 0, 0, .55), 0 2px 6px rgba(0, 0, 0, .3);--shadow-sheet: 0 -8px 30px rgba(0, 0, 0, .45);--shadow-thumb: 0 1px 3px rgba(0, 0, 0, .45), 0 0 0 .5px rgba(0, 0, 0, .2);--edge: inset 0 .5px 0 rgba(255, 248, 235, .08);--dim: .55;--dim-hover: .85;--dim-disabled: .4;--btn-w: 30px;--btn-h: 28px;--icon-btn: 24px;--check: 15px;--switch-w: 28px;--switch-h: 16px;--thumb: 16px;--range-h: 20px;--track: 4px;--row-min: 36px;--legend-row: 0px;--ease: cubic-bezier(.16, 1, .3, 1);--ease-snap: cubic-bezier(.25, .9, .3, 1);--fast: .12s;--med: .2s;--slow: .32s;font-family:var(--font-sans);font-size:var(--text-md);line-height:1.38;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}::selection{background:rgba(var(--accent-rgb),.45);color:var(--text)}input,textarea{caret-color:var(--focus)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-pill);border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-track{background:transparent}*{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none}body{margin:0;background:var(--bg);color:var(--text);overscroll-behavior:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3{letter-spacing:-.01em}.app{-webkit-user-select:none;user-select:none;display:grid;grid-template-rows:46px minmax(0,1fr);grid-template-columns:minmax(0,1fr);height:100vh;height:100dvh;width:100vw;overflow:hidden}.toolbar{display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--panel);border-bottom:1px solid var(--line-soft);box-shadow:var(--edge);position:relative;z-index:10}.brand{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-md);font-weight:650;letter-spacing:-.01em;margin:0 8px 0 2px;white-space:nowrap}.brand:before{content:"";width:16px;height:16px;flex:none;background:radial-gradient(circle at 30% 34%,var(--accent) 0 3.2px,transparent 3.7px),radial-gradient(circle at 70% 30%,var(--text-accent) 0 2.4px,transparent 2.9px),radial-gradient(circle at 56% 72%,var(--muted) 0 3.6px,transparent 4.1px)}.tool-group{display:flex;gap:2px;padding:2px;background:var(--surface-sunken);border-radius:calc(var(--radius-sm) + 2px);box-shadow:inset 0 0 0 .5px var(--hairline)}.tool-btn{width:var(--btn-w);height:var(--btn-h);display:grid;place-items:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;padding:0;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--med) var(--ease-snap)}.tool-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.tool-btn:active:not(:disabled){transform:scale(.92)}.tool-btn-active,.tool-btn-active:hover:not(:disabled){background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-thumb)}.toolbar>.tool-btn-active,.menu-anchor>.tool-btn-active,.toolbar>.tool-btn-active:hover:not(:disabled){background:var(--accent-soft);color:var(--text-accent);box-shadow:none}.tool-btn:disabled{opacity:var(--dim-disabled);cursor:not-allowed}.toolbar-sep{width:1px;height:18px;background:var(--line);margin:0 4px;flex:none}.dataset-title-btn{display:block;width:100%;padding:0;background:none;border:none;color:inherit;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.dataset-title-btn:active{color:var(--text)}.dataset-title{flex:1;min-width:0;margin:0;text-align:center;font-size:var(--text-sm);font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 12px}.stage{position:relative;min-width:0;min-height:0;background:var(--stage-bg);overflow:hidden}.canvas-host{position:absolute;inset:0;touch-action:none;-webkit-touch-callout:none}input,textarea,code{-webkit-user-select:text;user-select:text}code{font-family:var(--font-mono)}.split{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr}.split>.canvas-host{position:relative;border-right:1px solid var(--line)}.rail{position:absolute;top:12px;bottom:12px;z-index:4;display:flex;flex-direction:column;justify-content:space-between;gap:8px;pointer-events:none}.rail-left{left:12px;align-items:flex-start}.rail-right{right:12px;align-items:flex-end}.rail-top,.rail-bottom{display:flex;flex-direction:column;gap:8px;min-height:0}.rail-left>*{align-items:flex-start}.rail-right>*{align-items:flex-end}.rail-top{flex:0 1 auto;overflow:hidden}.rail-bottom{flex:none}.rail,.rail-top,.rail-bottom{pointer-events:none}.rail *{pointer-events:auto}.overlay-bl{position:absolute;left:12px;bottom:12px;z-index:4}.control-panel{width:286px;max-height:100%;animation:card-in var(--slow) var(--ease);display:flex;flex-direction:column;background:var(--surface-card);border:.5px solid var(--hairline-strong);border-radius:var(--radius-card);backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-3),var(--edge);overflow:hidden}.control-panel-collapsed{width:auto;padding:4px}.panel-head{justify-content:space-between;display:flex;align-items:center;gap:8px;padding:10px 10px 6px 14px;font-size:var(--text-md);font-weight:650;color:var(--text);flex:none}.row-list{list-style:none;margin:0 8px 8px;padding:0;display:flex;flex-direction:column;background:var(--panel-2);border-radius:calc(var(--radius-card) - 6px);box-shadow:inset 0 0 0 .5px var(--hairline);overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth}.row-list li{position:relative;transition:background var(--fast) var(--ease)}.row-list li+li:before{content:"";position:absolute;top:0;left:calc(14px + var(--switch-w));right:0;height:.5px;background:var(--line)}.row-list li:hover:not(.row-expanded){background:var(--surface-hover)}.row-expanded{background:var(--surface-open)}.row-expanded .row-label,.row-expanded .row-chevron{color:var(--text-accent)}.row-off .row-label{color:var(--muted);font-weight:450}.row-off .row-status{color:var(--muted)}.row-spacer{width:var(--switch-w);flex:none}.row-head{display:flex;align-items:center;gap:10px;padding:0 10px;min-height:var(--row-min)}.row-open{flex:1;display:flex;align-items:center;gap:8px;min-width:0;background:none;border:none;color:inherit;font:inherit;font-weight:550;padding:8px 0;cursor:pointer;text-align:left}.row-open:focus-visible{outline-offset:-2px;border-radius:var(--radius-xs)}.row-label{flex:none}.row-status{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:4px;font-weight:400;font-size:var(--text-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--fast) var(--ease)}.row-status.tone-warn{color:var(--warn)}.row-chevron{flex:none;display:grid;place-items:center;color:var(--muted);transition:transform var(--med) var(--ease),color var(--fast) var(--ease)}.row-chevron-open{transform:rotate(90deg);color:var(--text)}.row-list li:hover .row-chevron{color:var(--text)}.row-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--slow) var(--ease)}.row-body-open{grid-template-rows:1fr}.row-body-inner{overflow:hidden;min-height:0}.row-body-inner>*{opacity:0;transition:opacity var(--med) var(--ease) 60ms}.row-body-open .row-body-inner>*{opacity:1}.page-body{padding:8px 12px 14px;display:flex;flex-direction:column;gap:10px}.seg{display:flex;gap:2px;padding:2px;background:var(--surface-sunken);border-radius:calc(var(--radius-sm) + 2px);box-shadow:inset 0 0 0 .5px var(--hairline)}.seg button{flex:1;min-height:calc(var(--btn-h) - 4px);background:none;border:none;border-radius:var(--radius-sm);color:var(--muted);font:inherit;font-size:var(--text-sm);font-weight:550;cursor:pointer;padding:0 6px;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.seg button:hover:not([aria-pressed=true]){color:var(--text)}.seg button[aria-pressed=true]{background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-thumb)}.floating-card{width:286px;animation:card-in-up var(--slow) var(--ease);background:var(--surface-card);border:.5px solid var(--hairline-strong);border-radius:var(--radius-card);backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-3),var(--edge);padding:10px 14px 14px;display:flex;flex-direction:column;gap:8px}.floating-card-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-md);font-weight:650;color:var(--text)}.cell-card .scroll-y{max-height:34dvh;overflow-y:auto;overscroll-behavior:contain}.panel{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel>summary{cursor:pointer;padding:9px 12px;font-weight:650;user-select:none;display:flex;justify-content:space-between;align-items:center;background:var(--panel-3);list-style:none;gap:8px}.panel>summary::-webkit-details-marker{display:none}.panel>summary:after{content:"›";color:var(--muted);font-size:var(--text-xl);line-height:1;transition:transform .15s ease}.panel[open]>summary:after{transform:rotate(90deg)}.panel>summary:hover{background:var(--surface-hover)}.channel-row{display:flex;flex-direction:column;gap:8px;padding:8px 0}.channel-row+.channel-row{border-top:.5px solid var(--line)}.channel-off{opacity:var(--dim)}.channel-head{display:flex;align-items:center;gap:7px}.image-group+.image-group{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.image-head{display:flex;align-items:center;gap:7px}.image-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.image-note{color:var(--muted);font-size:var(--text-xs);white-space:nowrap}.channel-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.channel-extra{display:flex;flex-direction:column;gap:6px;padding-top:4px;border-top:1px solid var(--line-soft)}.sub-block{display:flex;flex-direction:column;gap:6px;padding-left:8px;border-left:1px solid var(--line-soft)}.icon-btn{flex:none;width:var(--icon-btn);height:var(--icon-btn);display:grid;place-items:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--muted);font-size:var(--text-sm);line-height:1;cursor:pointer;padding:0;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--med) var(--ease-snap)}.icon-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.icon-btn:active:not(:disabled){transform:scale(.9);background:var(--surface-pressed)}.icon-btn-active{background:var(--accent-soft);color:var(--text-accent)}.icon-btn:disabled{opacity:var(--dim-disabled);cursor:not-allowed}.color-dot{flex:none;width:var(--check);height:var(--check);padding:0;border:1px solid var(--hairline-strong);border-radius:50%;background:none;cursor:pointer;overflow:hidden}.color-dot::-webkit-color-swatch-wrapper{padding:0}.color-dot::-webkit-color-swatch{border:none;border-radius:50%}.range-row{display:flex;align-items:center;gap:7px}.range-row input.range-num{width:62px;flex:none;padding:3px 5px;text-align:center;font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.range-row input.range-num::-webkit-outer-spin-button,.range-row input.range-num::-webkit-inner-spin-button{appearance:none;margin:0}.range-dual{position:relative;flex:1;height:var(--range-h);min-width:40px}.range-track,.range-fill{position:absolute;top:50%;height:var(--track);border-radius:var(--radius-pill);transform:translateY(-50%);pointer-events:none}.range-track{left:0;right:0;background:var(--line)}.range-fill{background:var(--accent)}.range-dual input[type=range]{position:absolute;inset:0;width:100%;height:var(--range-h);margin:0;padding:0;background:none;appearance:none;pointer-events:none}.range-dual input[type=range]::-webkit-slider-runnable-track{background:none}.range-dual input[type=range]::-moz-range-track{background:none}.inline-row{display:flex;align-items:center;gap:8px}.chip-list{list-style:none;display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0}.chip-list li{display:flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px 7px 2px 6px;font-size:var(--text-xs);font-family:var(--font-mono)}.swatch-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.panel-body{padding:10px 11px 11px;display:flex;flex-direction:column;gap:9px}.layer-group{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--line)}.layer-group:first-child{border-top:none;padding-top:0}.field,.number-input{display:flex;flex-direction:column;gap:4px}.field+.slider{margin-top:4px}.field-label,.number-input>span{color:var(--muted);font-size:var(--text-sm);font-weight:500}.field-hint{color:var(--muted);font-size:var(--text-xs)}input,select,textarea,button{transition:border-color var(--fast) var(--ease)}input[type=text],input[type=search],input[type=number],input[type=url],select,textarea{background:var(--surface-sunken);border:.5px solid var(--line-strong);color:var(--text);border-radius:var(--radius-sm);padding:6px 9px;font:inherit;width:100%;min-width:0;box-shadow:inset 0 1px 2px #00000040;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}input:hover:not(:disabled),select:hover,textarea:hover{border-color:var(--hairline-strong)}input[type=text]:focus-visible,input[type=search]:focus-visible,input[type=number]:focus-visible,input[type=url]:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.35)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}textarea{resize:vertical;font-family:var(--font-mono);font-size:var(--text-sm)}input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:var(--switch-w);height:var(--switch-h);margin:0;border-radius:var(--radius-pill);background:var(--line-strong);box-shadow:inset 0 0 0 .5px #0000004d;cursor:pointer;transition:background var(--med) var(--ease)}input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:calc(var(--switch-h) - 4px);height:calc(var(--switch-h) - 4px);border-radius:50%;background:#fff;box-shadow:var(--shadow-thumb);transition:transform var(--med) var(--ease-snap)}input[type=checkbox]:checked{background:var(--accent)}input[type=checkbox]:checked:before{transform:translate(calc(var(--switch-w) - var(--switch-h)))}input[type=checkbox]:active:before{width:calc(var(--switch-h) + 1px)}input[type=checkbox]:checked:active:before{transform:translate(calc(var(--switch-w) - var(--switch-h) * 2 + 3px));width:calc(var(--switch-h) + 1px)}input[type=checkbox]:disabled{opacity:var(--dim-disabled);cursor:not-allowed}input[type=range]{width:100%;height:var(--range-h);margin:0;background:none;appearance:none;-webkit-appearance:none;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:var(--track);border-radius:var(--radius-pill);background:linear-gradient(to right,var(--accent) 0 var(--fill, 0%),var(--line) var(--fill, 0%) 100%)}input[type=range]::-moz-range-track{height:var(--track);border-radius:var(--radius-pill);background:var(--line)}input[type=range]::-moz-range-progress{height:var(--track);border-radius:var(--radius-pill);background:var(--accent)}input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;pointer-events:auto;width:var(--thumb);height:var(--thumb);margin-top:calc((var(--track) - var(--thumb)) / 2);border-radius:50%;background:#fff;border:none;box-shadow:var(--shadow-thumb);cursor:grab;transition:transform var(--fast) var(--ease)}input[type=range]::-moz-range-thumb{pointer-events:auto;width:var(--thumb);height:var(--thumb);border-radius:50%;background:#fff;border:none;box-shadow:var(--shadow-thumb);cursor:grab}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12);cursor:grabbing}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:var(--shadow-thumb),0 0 0 3px rgba(var(--accent-rgb),.55)}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:var(--shadow-thumb),0 0 0 3px rgba(var(--accent-rgb),.55)}.slider{display:flex;flex-direction:column;gap:2px}.slider label{display:flex;justify-content:space-between;color:var(--muted);font-size:var(--text-sm)}.slider output{color:var(--text);font-variant-numeric:tabular-nums}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer}.row{display:flex;gap:6px;align-items:flex-end}.row.wrap{flex-wrap:wrap}.btn{background:var(--fill);border:none;color:var(--text);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--btn-h);padding:4px 12px;cursor:pointer;font:inherit;font-weight:500;white-space:nowrap;box-shadow:var(--shadow-thumb),var(--edge);transition:background var(--fast) var(--ease),transform var(--med) var(--ease-snap),opacity var(--fast) var(--ease)}.btn:hover:not(:disabled){background:var(--fill-hover)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:var(--dim-disabled);cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent);font-weight:600}.btn-primary:disabled{background:var(--fill);color:var(--text)}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.button-grid .btn{width:100%}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{color:var(--danger)}.btn-ghost{background:transparent;color:var(--text-accent);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--accent-soft)}.chip{background:var(--fill);border:none;color:var(--text);border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-h);padding:4px 12px;cursor:pointer;font:inherit;font-size:var(--text-sm);transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--med) var(--ease-snap)}.chip:hover:not(:disabled):not(.chip-active){background:var(--fill-hover)}.chip:active:not(:disabled){transform:scale(.96)}.chip-active{background:var(--accent);color:var(--on-accent);font-weight:600}.chip:disabled{opacity:var(--dim-disabled);cursor:not-allowed}.link{background:none;border:none;color:var(--text-accent);cursor:pointer;font:inherit;padding:0;text-decoration:underline;text-underline-offset:2px}.mode-grid{display:flex;gap:5px;flex-wrap:wrap}.kv{margin:0;display:flex;flex-direction:column;gap:2px}.kv-row,.kv>dt{display:contents}.kv .kv-row{display:grid;grid-template-columns:44% 1fr;gap:6px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-word}.kv:not(:has(.kv-row)){display:grid;grid-template-columns:44% 1fr;gap:2px 6px}.channel-flag{margin-left:4px;padding:0 5px;border-radius:var(--radius-xs);background:var(--panel-3);color:var(--muted);font-size:var(--text-2xs);font-weight:600}.note,.muted{color:var(--muted);font-size:var(--text-xs);margin:2px 0 0}.dataset-description{margin:8px 0 0;color:var(--text);font-size:var(--text-sm);line-height:1.45}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 0 2px}.empty-state p{margin:0;color:var(--muted);font-size:var(--text-md);line-height:1.45}.ok{color:var(--ok)}.warn,.warn-text{color:var(--warn)}.error-text{color:var(--danger)}.warnings{margin:6px 0 0;padding-left:16px;color:var(--warn);font-size:var(--text-xs)}.view-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.view-heading{margin:4px 0 0;font-size:var(--text-xs);font-weight:600;color:var(--muted);text-transform:none}.view-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.view-row{display:flex;flex-direction:column;gap:2px;padding:4px 0;border-bottom:1px solid var(--hairline)}.view-open{display:flex;gap:8px;align-items:center;background:none;border:0;padding:2px;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm)}.view-open:hover{background:var(--surface-hover)}.view-text{display:flex;flex-direction:column;gap:1px;min-width:0}.view-thumb{flex:none;width:64px;height:48px;border-radius:var(--radius-sm);object-fit:cover;background:var(--panel-3);border:1px solid var(--hairline)}.view-thumb-empty{display:block;background:linear-gradient(135deg,transparent 47%,var(--hairline) 47%,var(--hairline) 53%,transparent 53%),var(--panel-3)}.view-name{font-weight:600;word-break:break-word}.view-meta{color:var(--muted);font-size:var(--text-xs);word-break:break-all}.view-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.view-rename{display:flex;gap:4px;align-items:center}.view-rename input{flex:1;min-width:0}.view-note{margin:2px 0 0;color:var(--muted);font-size:var(--text-xs)}.link-btn{align-self:flex-start;background:none;border:0;padding:2px 0;color:var(--muted);font:inherit;font-size:var(--text-xs);text-decoration:underline;cursor:pointer}.link-btn:hover{color:var(--text)}.gene-list,.transcript-legend{list-style:none;margin:0;padding:0;max-height:240px;overflow-y:auto;overscroll-behavior:contain}.gene-list li,.transcript-legend li{display:flex;align-items:center;gap:6px;padding:2px 0;border-bottom:1px solid var(--hairline)}.gene-name{flex:1 0 auto;max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.gene-stat{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}.gene-list .chip{min-height:calc(var(--btn-h) - 4px);padding:2px 9px;font-size:var(--text-xs);flex:none}.gene-list-key{margin:0;color:var(--muted);font-size:var(--text-xs);text-align:right}.gene-stat{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.swatch{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;box-shadow:inset 0 0 0 .5px #00000059}.legend{animation:card-in var(--slow) var(--ease);max-width:240px;max-height:calc(100dvh - 330px);overflow-y:auto;background:var(--surface-card);border:.5px solid var(--hairline-strong);border-radius:var(--radius-card);padding:10px 12px;backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-3),var(--edge)}.legend-head strong,.legend-head>span:first-child{font-weight:650}.legend-inline{animation:none;max-width:none;max-height:none;overflow:visible;background:none;border:none;border-radius:0;padding:0;backdrop-filter:none;box-shadow:none}.legend-inline .legend-label{overflow:visible;white-space:normal;overflow-wrap:anywhere}.legend-inline .legend-item{padding:4px 0}.legend-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding-bottom:5px;border-bottom:1px solid var(--hairline)}.legend ul{list-style:none;margin:0;padding:0}.legend-collapsed .legend-head{margin:0;padding:0;border:0}.legend-toggle{flex:none;white-space:nowrap}.legend-item{transition:opacity var(--fast) var(--ease)}.legend-item:hover{opacity:.75}.legend li.muted .legend-label{transition:opacity var(--fast) var(--ease)}.legend-item{display:flex;align-items:center;gap:6px;flex:1;min-width:0;min-height:var(--legend-row);background:none;border:none;color:inherit;cursor:pointer;padding:1px 0;font:inherit;text-align:left}.legend li{display:flex;align-items:center;gap:var(--space-3);min-height:var(--legend-row);padding:var(--space-1) 0;border-bottom:1px solid var(--hairline)}.legend li:last-child{border-bottom:none}.legend-only{flex:none;background:none;border:none;border-radius:var(--radius-xs);color:var(--text-accent);font:inherit;font-size:var(--text-xs);cursor:pointer;padding:2px 6px;opacity:0;transition:opacity var(--fast) var(--ease),background var(--fast) var(--ease)}.legend li:hover .legend-only,.legend-only:focus-visible,.legend-only[aria-pressed=true]{opacity:1}.legend-only:hover{background:var(--accent-soft)}.legend-only[aria-pressed=true]{background:var(--accent-soft);font-weight:600}.legend-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-count{flex:none;min-width:4ch;text-align:right;padding-left:var(--space-2);color:var(--muted);font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.legend li.muted .legend-label{text-decoration:line-through;opacity:var(--dim)}.colorbar-row{display:flex;align-items:center;gap:4px;margin:6px 0 2px}.colorbar{flex:1;height:11px;border-radius:2px;border:1px solid var(--line)}.colorbar-scale{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.clip-marker{color:var(--warn);font-size:var(--text-2xs)}.legend-missing{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:var(--text-xs);color:var(--muted)}.scale-dock{position:absolute;right:12px;bottom:12px;z-index:4;pointer-events:none}.scale-bar{display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding:6px 10px 5px;background:var(--surface-readout);border-radius:var(--radius);font-variant-numeric:tabular-nums;font-size:var(--text-xs);font-weight:600;color:var(--measure);backdrop-filter:blur(var(--blur-sm))}.scale-bar-line{height:6px;min-width:40px;border:1.5px solid var(--measure);border-top:none;border-radius:0 0 1px 1px}.minimap-dock{position:absolute;left:12px;bottom:12px;z-index:4;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.minimap{animation:card-in-up var(--slow) var(--ease);transition:padding var(--med) var(--ease);background:var(--surface-dock);border:.5px solid var(--hairline-strong);border-radius:var(--radius-card);padding:6px;backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-3),var(--edge)}.minimap-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 2px 5px 6px;font-size:var(--text-xs);font-weight:600;color:var(--muted)}.minimap-canvas{display:block;border-radius:var(--radius);cursor:crosshair;background:var(--stage-bg)}.minimap-collapsed{padding:3px 6px}.readout-pill{display:flex;align-items:baseline;gap:9px;padding:4px 10px;background:var(--surface-dock);border:.5px solid var(--hairline-strong);border-radius:var(--radius);font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--measure);backdrop-filter:blur(var(--blur)) var(--saturate)}.readout-cell{color:var(--text);font-weight:600}.floating-control{position:absolute;right:12px;bottom:12px;z-index:3;display:flex;align-items:center;gap:6px;background:var(--surface-card);border:.5px solid var(--hairline-strong);border-radius:var(--radius);padding:4px 10px;font-size:var(--text-sm);color:var(--muted);backdrop-filter:blur(var(--blur)) var(--saturate)}.floating-control input{width:90px}.overlay{animation:card-in var(--med) var(--ease);position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--overlay-bg);z-index:5;padding:24px;text-align:center}.overlay.error{align-items:flex-start;text-align:left;overflow-y:auto}.overlay pre{white-space:pre-wrap;color:var(--danger);font-size:var(--text-sm);max-width:720px}.overlay .hint{color:var(--muted);max-width:720px}.overlay-progress{width:220px;height:4px}.overlay-sub{margin:0;color:var(--muted);font-size:var(--text-xs);max-width:520px;word-break:break-all}.welcome-overlay{align-items:center}.welcome{width:min(560px,100%);max-height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:14px;text-align:left;background:var(--surface-card);border:.5px solid var(--hairline-strong);border-radius:var(--radius-lg);padding:28px 28px 24px;backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-4),var(--edge);animation:welcome-in .52s var(--ease) both}@keyframes welcome-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.welcome-title{display:flex;align-items:center;gap:12px;margin:0;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em}.welcome-mark{position:relative;width:34px;height:34px;flex:none}.welcome-mark:before,.welcome-mark:after,.welcome-title:after{content:"";position:absolute;border-radius:50%;animation:cell-in .56s var(--ease-snap) both}.welcome-mark:before{left:3px;top:5px;width:14px;height:14px;background:var(--accent);animation-delay:.16s}.welcome-mark:after{left:20px;top:3px;width:10px;height:10px;background:var(--text-accent);animation-delay:.26s}.welcome-title{position:relative}.welcome-title:after{left:15px;top:19px;width:15px;height:15px;background:var(--muted);animation-delay:.36s}@keyframes cell-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}.welcome-lede{margin:0;color:var(--muted);font-size:var(--text-lg);line-height:1.5;max-width:52ch}.welcome-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.welcome-hints{margin:4px 0 0;padding:12px 0 0 16px;border-top:.5px solid var(--line);color:var(--muted);font-size:var(--text-sm);line-height:1.55}.welcome-hints li+li{margin-top:4px}.welcome code{background:var(--panel-3);border-radius:var(--radius-xs);padding:1px 5px;font-size:.92em;color:var(--text);white-space:nowrap}.welcome-hints code{white-space:normal;overflow-wrap:anywhere}.layer-notice{position:absolute;left:0;right:0;bottom:14px;margin-inline:auto;width:fit-content;z-index:5;display:flex;flex-direction:column;gap:6px;max-width:min(560px,60vw);pointer-events:none}.layer-notice-row{display:flex;align-items:flex-start;gap:9px;padding:9px 10px 9px 12px;background:var(--surface-card);border:.5px solid rgba(var(--warn-rgb),.45);border-radius:var(--radius-card);backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-2),var(--edge);font-size:var(--text-sm);pointer-events:auto;animation:card-in-up var(--slow) var(--ease)}.layer-notice-icon{color:var(--warn);display:grid;place-items:center;padding-top:1px}.layer-notice-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;background:none;border:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:default}.layer-notice-hint{color:var(--muted);font-size:var(--text-xs)}.canvas-error{position:absolute;left:12px;bottom:46px;z-index:5;display:flex;align-items:flex-start;gap:var(--space-3);color:var(--danger);background:var(--surface-card);border:.5px solid var(--hairline-strong);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border-radius:var(--radius-card);box-shadow:var(--shadow-2),var(--edge);backdrop-filter:blur(var(--blur)) var(--saturate);max-width:60%;font-size:var(--text-sm)}.spinner{width:26px;height:26px;border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes card-in{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:none}}@keyframes card-in-up{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.progress{display:flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--muted)}.progress progress{flex:1}.selection-count{margin:0;font-size:var(--text-lg)}.badge{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-pill);padding:0 6px;margin-left:6px;font-size:var(--text-2xs);font-weight:700;font-variant-numeric:tabular-nums}.cell-id{margin:0 0 6px;word-break:break-all}.method-note{font-size:var(--text-xs);color:var(--muted)}.method-note summary{cursor:pointer;color:var(--accent)}.method-note p{margin:4px 0}.panel[data-testid=diagnostics]{width:320px;max-height:62dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--surface-card);border-radius:var(--radius-card);backdrop-filter:blur(var(--blur));box-shadow:var(--shadow-3)}.diag-table{width:100%;border-collapse:collapse;font-size:var(--text-xs);margin-top:6px}.diag-table th,.diag-table td{text-align:left;padding:2px 4px;border-bottom:1px solid var(--line)}.diag-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.dataset-form{display:flex;flex-direction:column;gap:6px}@media (max-width: 1100px){.control-panel,.floating-card{width:min(268px,46vw)}.legend:not(.legend-inline){max-width:min(200px,40vw)}.brand{display:none}.dataset-title{font-size:var(--text-xs)}.minimap-dock{transform:scale(.85);transform-origin:bottom left}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.canvas-host:has(.deck-events-root:focus-visible){outline:2px solid var(--focus);outline-offset:-2px}[data-pointer=coarse]{--btn-w: 44px;--btn-h: 44px;--icon-btn: 44px;--check: 22px;--switch-w: 51px;--switch-h: 31px;--thumb: 28px;--range-h: 36px;--fab: 56px;--row-min: 52px;--legend-row: 44px;--text-xs: 12px;--text-sm: 13px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 26px}[data-pointer=coarse] .legend-only{opacity:1}[data-pointer=coarse] .toggle{min-height:var(--btn-h)}[data-pointer=coarse] input,[data-pointer=coarse] select,[data-pointer=coarse] textarea{font-size:16px}[data-pointer=coarse] button,[data-pointer=coarse] label,[data-pointer=coarse] summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}[data-pointer=coarse] .view-open{min-height:var(--row-min)}[data-pointer=coarse] .link-btn{min-height:var(--btn-h)}[data-pointer=coarse] .toolbar{gap:4px}[data-pointer=coarse] .legend-item:hover{opacity:1}[data-pointer=coarse] .legend li{border-radius:var(--radius-sm);padding:var(--space-3) 2px}[data-pointer=coarse] .legend li:active{background:var(--panel-3)}[data-pointer=coarse] .legend-only{padding:0 12px;min-height:var(--btn-h)}[data-pointer=coarse] .range-dual input[type=range]{height:var(--range-h)}[data-pointer=coarse] .row-list,[data-pointer=coarse] .gene-list,[data-pointer=coarse] .transcript-legend,[data-pointer=coarse] .cell-card .scroll-y{-webkit-overflow-scrolling:touch}[data-layout=compact] .toolbar-compact{gap:6px;padding:0 8px;padding-top:env(safe-area-inset-top,0px);height:calc(46px + env(safe-area-inset-top,0px))}[data-layout=compact] .toolbar-compact .dataset-title{display:block;padding:0 4px;font-size:var(--text-md);font-weight:600;color:var(--text)}[data-layout=compact] .toolbar-compact .tool-group{position:relative;isolation:isolate;padding:0;gap:0;background:none;box-shadow:none}[data-layout=compact] .toolbar-compact .tool-group:before{content:"";position:absolute;inset:4px 0;z-index:-2;border-radius:calc(var(--radius) + 2px);background:var(--surface-sunken);box-shadow:inset 0 0 0 .5px var(--hairline)}[data-layout=compact] .toolbar-compact .tool-group .tool-btn{position:relative;background:none;box-shadow:none}[data-layout=compact] .toolbar-compact .tool-group .tool-btn-active:before{content:"";position:absolute;inset:7px 0;z-index:-1;border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-thumb)}[data-layout=compact] .stage{--sheet-visible: 80px}[data-layout=compact] .app{grid-template-rows:calc(46px + env(safe-area-inset-top,0px)) minmax(0,1fr)}.menu-anchor{position:relative;flex:none}.menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:220px;padding:6px;display:flex;flex-direction:column;gap:0;background:var(--surface-float);border:.5px solid var(--hairline-strong);border-radius:var(--radius-card);backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-4),var(--edge);transform-origin:top right;animation:menu-in var(--med) var(--ease)}@keyframes menu-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.menu button{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;background:none;border:none;border-radius:var(--radius);color:var(--text);font:inherit;font-size:var(--text-md);text-align:left;cursor:pointer}.menu button:hover:not(:disabled){background:var(--surface-hover)}.menu button:active:not(:disabled){background:var(--surface-pressed)}.menu button:disabled{opacity:var(--dim-disabled)}[data-layout=compact] .chip-row{position:absolute;top:10px;left:10px;right:10px;z-index:4;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;pointer-events:none}[data-layout=compact] .chip-row>*{pointer-events:auto}[data-layout=compact] .chip-row .scale-bar{pointer-events:none}.legend-chip{display:inline-flex;align-items:center;gap:7px;max-width:62%;min-height:36px;padding:6px 14px 6px 12px;background:var(--surface-float);border:.5px solid var(--hairline-strong);border-radius:var(--radius-pill);color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;box-shadow:var(--shadow-2),var(--edge)}.legend-chip:active{transform:scale(.97)}.legend-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-chip-count{flex:none;color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}[data-layout=compact] .fab-cluster{position:absolute;right:12px;bottom:calc(var(--sheet-visible) + 14px);z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.fab{width:var(--fab, 56px);height:var(--fab, 56px);display:grid;place-items:center;border-radius:50%;background:var(--surface-float);border:.5px solid var(--hairline-strong);color:var(--text);box-shadow:var(--shadow-2),var(--edge);cursor:pointer;transition:transform var(--med) var(--ease-snap),background var(--fast) var(--ease)}.fab:active{transform:scale(.92)}.fab-armed{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.fab-menu{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.fab-opt{display:inline-flex;align-items:center;gap:9px;padding:6px 7px 6px 14px;border-radius:var(--radius-pill);background:var(--surface-float);border:.5px solid var(--hairline-strong);color:var(--text);font:inherit;font-size:var(--text-md);font-weight:500;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-2),var(--edge)}.fab-opt-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--panel-3);color:var(--muted)}.fab-opt[aria-pressed=true] .fab-opt-icon{background:var(--accent);color:var(--on-accent)}.mode-pill{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 15px 0 10px;border-radius:var(--radius-pill);background:var(--surface-float);border:.5px solid var(--hairline-strong);color:var(--text);font:inherit;font-size:var(--text-md);font-weight:600;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-2),var(--edge)}.mode-glyph{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--panel-3);color:var(--muted);font-family:var(--font-mono)}.mode-pill[data-mode=add] .mode-glyph{background:var(--ok);color:var(--stage-bg)}.mode-pill[data-mode=subtract] .mode-glyph{background:var(--warn);color:var(--stage-bg)}[data-layout=compact] .scrim{appearance:none;border:none;padding:0;cursor:default;position:absolute;inset:0;z-index:6;background:var(--scrim);animation:scrim-in var(--med) var(--ease)}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}[data-layout=compact] .sheet{position:absolute;left:0;right:0;bottom:0;height:92%;z-index:7;display:flex;flex-direction:column;background:var(--surface-sheet);border-top:.5px solid var(--hairline-strong);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-sheet),var(--edge);transition:transform var(--slow) var(--ease);touch-action:none}[data-layout=compact] .sheet-dragging{transition:none}.sheet-grab{flex:none;min-height:24px;padding:10px 0 6px;display:grid;place-items:center;cursor:grab;touch-action:none}.sheet-grab:before{content:"";width:36px;height:5px;border-radius:var(--radius-pill);background:var(--line-strong)}.sheet-nav{flex:none;padding:0 14px 10px;border-bottom:1px solid var(--line-soft)}.section-chips{display:flex;flex-wrap:nowrap;gap:6px}.section-chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--btn-h);padding:0 11px;border-radius:var(--radius-pill);background:var(--fill);border:1px solid transparent;color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:550;white-space:nowrap;cursor:pointer;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),opacity var(--fast) var(--ease)}.section-chip-value{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-chip[data-tone=off]{opacity:var(--dim)}.section-chip[data-tone=empty]{border-color:rgba(var(--warn-rgb),.55)}.section-chip[data-tone=empty] .section-chip-value{color:var(--warn)}.section-chip[aria-expanded=true]{opacity:1;background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.section-chip[aria-expanded=true] .section-chip-value{color:var(--on-accent-soft)}.section-chip:active{transform:scale(.97)}.sheet-head{flex:none;display:flex;align-items:center;gap:6px;padding:2px 10px 8px;border-bottom:1px solid var(--line-soft)}.sheet-head h2{margin:0;font-size:var(--text-lg);font-weight:650;letter-spacing:-.01em}.sheet-back{flex:none}.sheet-scroll{flex:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.control-panel-sheet{width:auto;max-height:none;background:none;border:none;border-radius:0;box-shadow:none;backdrop-filter:none;animation:none;overflow:visible}.control-panel-sheet .row-list{margin:8px 12px;overflow:visible}[data-layout=compact] .page-body{padding:12px 16px 16px;gap:12px}.sheet-page{display:block}[data-layout=compact] .control-panel-sheet{--sheet-head-h: 0px}[data-layout=compact] .gene-list,[data-layout=compact] .transcript-legend{max-height:none;overflow:visible}[data-layout=compact] .gene-search-row{position:sticky;top:var(--sheet-head-h, 0px);z-index:1;margin:-12px -16px 0;padding:12px 16px 8px;background:var(--panel);border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:6px}.page-switch{display:flex;align-items:center;gap:10px;min-height:var(--row-min);padding:4px 16px 8px;border-bottom:.5px solid var(--line)}.page-switch .toggle{flex:1;min-width:0;font-size:var(--text-md);font-weight:600}.page-switch .row-status{flex:none}[data-layout=compact] .page-switch span:focus{outline:none}.more-row{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--row-min);padding:0 8px 0 16px;background:var(--panel-2);border:none;border-radius:0;color:var(--text);font:inherit;font-size:var(--text-md);text-align:left;cursor:pointer}[data-layout=compact] .more-list{gap:0;padding:12px}.more-row:first-child{border-radius:var(--radius-card) var(--radius-card) 0 0}.more-row:last-child{border-radius:0 0 var(--radius-card) var(--radius-card)}.more-row:only-child{border-radius:var(--radius-card)}.more-row+.more-row{box-shadow:inset 16px .5px 0 0 var(--panel-2),inset 0 .5px 0 0 var(--line)}.more-row-label{flex:none;font-weight:550}.more-row-status{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--muted);font-size:var(--text-sm)}.more-row[data-tone=off]{opacity:var(--dim)}.more-row[data-tone=empty] .more-row-status{color:var(--warn)}.more-row:active{background:var(--surface-pressed)}.cell-sheet{display:flex;flex-direction:column;gap:7px;padding:10px 11px 12px}.cell-sheet .scroll-y{max-height:none}[data-layout=compact] .split{grid-template-columns:1fr;grid-template-rows:1fr 1fr}[data-layout=compact] .split>.canvas-host{border-right:none;border-bottom:1px solid var(--line)}[data-layout=compact] .minimap-dock,[data-layout=compact] .canvas-readout{position:absolute;left:12px;right:auto;transform:none;bottom:calc(var(--sheet-visible) + 14px);z-index:5;max-width:min(62%,260px)}[data-layout=compact] .minimap-dock{width:min(62%,260px)}[data-layout=compact] .stage[data-canvas-left] .minimap-dock{display:none}[data-layout=compact] .fab-cluster{max-width:calc(38% - 30px)}.cell-readout{display:flex;align-items:center;gap:8px;max-width:100%;min-height:var(--btn-h);padding:0 14px;background:var(--surface-float);border:.5px solid var(--hairline-strong);border-radius:var(--radius-pill);color:var(--text);font:inherit;font-size:var(--text-sm);box-shadow:var(--shadow-2),var(--edge);cursor:pointer;text-align:left}.cell-readout:active{transform:scale(.98)}.cell-readout-id{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.cell-readout-value{flex:none;font-weight:600}[data-layout=compact] .minimap-dock .readout-pill,[data-layout=compact] .minimap-collapsed{display:none}.menu-note{margin-left:auto;color:var(--muted);font-size:var(--text-xs)}[data-layout=compact] .layer-notice{bottom:calc(var(--sheet-visible) + 24px + var(--fab));max-width:calc(100% - 24px)}[data-layout=compact] .layer-notice{gap:0;pointer-events:auto;background:var(--surface-card);border:.5px solid rgba(var(--warn-rgb),.45);border-radius:var(--radius-card);backdrop-filter:blur(var(--blur)) var(--saturate);box-shadow:var(--shadow-2),var(--edge);overflow:hidden}[data-layout=compact] .layer-notice-row{font-size:var(--text-sm);align-items:center;padding:0 0 0 12px;gap:8px;background:none;border:none;border-radius:0;box-shadow:none;backdrop-filter:none;max-height:40vh;overflow-y:auto}[data-layout=compact] .layer-notice-row+.layer-notice-row{border-top:.5px solid var(--line)}[data-layout=compact] .layer-notice-icon{padding-top:0}[data-layout=compact] .welcome{width:min(560px,100%)}[data-layout=compact] .canvas-error{max-width:calc(100% - 24px)}[data-layout=compact] .row-body{transition:none}@media (prefers-reduced-transparency: reduce){.control-panel,.floating-card,.sheet{backdrop-filter:none}}[data-layout=compact] .sheet-head h2:focus{outline:none}[data-pointer=coarse] .gene-list .chip{min-height:var(--btn-h);padding:0 12px;font-size:var(--text-sm)}.layer-notice-summary{display:none}.layer-notice-details{display:flex;flex-direction:column;gap:var(--space-3)}[data-layout=compact] .layer-notice-details{gap:0}[data-layout=compact] .layer-notice-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:var(--btn-h);padding:0 var(--space-6);background:none;border:none;color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;width:100%;pointer-events:auto}[data-layout=compact] .layer-notice-summary:active{background:var(--surface-pressed)}[data-layout=compact] .layer-notice[data-expanded=true] .layer-notice-row:first-child{border-top:.5px solid var(--line)}[data-layout=compact] .layer-notice{max-height:min(35dvh,240px);max-width:calc(100% - 24px);overflow-y:auto}[data-layout=compact] .layer-notice[data-expanded=false] .layer-notice-details{display:none}[data-layout=compact] .layer-notice-row{max-height:none;overflow:visible;padding-top:var(--space-3);padding-bottom:var(--space-3)}[data-pointer=coarse] .dataset-title-btn,[data-pointer=coarse] .legend-chip{min-height:var(--btn-h)}[data-layout=compact][data-height=short] .layer-notice[data-expanded=false]{inset:68px auto auto 12px;max-width:calc(50% - 48px)}
