/* First-class alternative representations for the Rheum–Derm Immune Atlas.
 * All views share the parent atlas tokens, state grammar, and canonical ordering.
 */
.local-mode-switch.representation-switch{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:0;margin:12px 0 14px;border:1px solid var(--line);background:var(--bg2)}
.representation-switch button{min-width:0;min-height:44px;border:0;border-right:1px solid var(--line);border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted);padding:8px 10px;text-align:left;overflow-wrap:anywhere;white-space:normal;cursor:pointer;font-weight:700}
.representation-switch button:last-child{border-right:0}.representation-switch button.active{background:var(--panel);border-bottom-color:var(--accent);color:var(--text)}
.representation-switch button:focus-visible,.alternative-toolbar select:focus-visible,[data-alt-mark]:focus-visible,[data-volume-cell]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.alternative-panel{min-width:0}.alternative-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:12px;border-bottom:1px solid var(--line);padding-bottom:12px}.alternative-heading h4{margin:4px 0 5px;font-size:20px}.alternative-heading p{max-width:72ch;margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.alternative-toolbar{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 12px}.alternative-toolbar label{display:grid;gap:4px;min-width:190px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.alternative-toolbar .control{min-height:44px;width:100%;text-transform:none;letter-spacing:normal}
.alternative-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:stretch}.alternative-viz-shell{min-width:0;max-width:100%;overflow:auto;border:1px solid var(--line);background:var(--bg2);scrollbar-gutter:stable}.alternative-viz-shell svg{display:block;min-width:960px;width:100%;height:auto;min-height:480px}.alternative-inspector{min-height:180px;border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--panel);padding:13px;overflow:auto}.alternative-inspector h5{margin:0 0 6px;font-size:15px}.alternative-inspector p{margin:5px 0;color:var(--muted);font-size:11px;line-height:1.5}.alternative-inspector dl{display:grid;grid-template-columns:auto 1fr;gap:5px 9px;margin:10px 0;font-size:11px}.alternative-inspector dt{color:var(--faint)}.alternative-inspector dd{margin:0;color:var(--text)}
.alternative-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin:10px 0;color:var(--muted);font-size:10px}.alternative-legend span{display:inline-flex;align-items:center;gap:6px}.alt-legend-mark{display:inline-grid;place-items:center;width:18px;height:18px;border:2px solid var(--line);background:var(--panel);font:800 9px/1 var(--font-mono)}.alt-legend-mark.direct{border-radius:50%;border-color:var(--good);background:var(--good);color:var(--bg)}.alt-legend-mark.derived{border-style:dashed;border-color:var(--accent2);color:var(--accent2)}.alt-legend-mark.zero{border-color:var(--accent);color:var(--accent)}.alt-legend-mark.filtered{border-style:dotted;border-color:var(--muted);color:var(--muted)}.alt-legend-mark.unknown{border:0;border-radius:50%;background:var(--faint);color:var(--panel)}.alt-legend-mark.unavailable{border-style:double;border-color:var(--faint);color:var(--faint)}
.alternative-table-shell{max-width:100%;max-height:420px;overflow:auto;border:1px solid var(--line);margin-top:10px;scrollbar-gutter:stable}.alternative-table-shell table{min-width:820px;margin:0}.alternative-table-shell caption{position:sticky;left:0;padding:9px 11px;background:var(--panel2);color:var(--text);font-weight:800;text-align:left}.alternative-table-shell thead{position:sticky;top:0;z-index:1}.alternative-table-shell th{background:var(--panel);white-space:nowrap}.alternative-table-shell td{font-size:10px;vertical-align:top}.alternative-table-shell tbody tr:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.alternative-table-shell button{border:0;background:transparent;color:var(--text);padding:5px;text-align:left;text-decoration:underline;text-decoration-color:var(--line);cursor:pointer}
.alt-axis-label{fill:var(--muted);font:700 10px var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.alt-row-label{fill:var(--text);font:700 11px "IBM Plex Sans",sans-serif}.alt-column-label{fill:var(--muted);font:600 9px "IBM Plex Sans",sans-serif}.alt-rule{stroke:var(--line);stroke-width:1}.alt-mark-direct{fill:var(--good);stroke:var(--good)}.alt-mark-derived{fill:var(--panel);stroke:var(--accent2);stroke-width:2;stroke-dasharray:4 3}.alt-mark-zero{fill:none;stroke:var(--accent);stroke-width:2}.alt-mark-filtered{fill:none;stroke:var(--muted);stroke-width:2;stroke-dasharray:2 3}.alt-mark-unknown{fill:var(--faint);stroke:none}.alt-mark-structurally-unavailable{fill:none;stroke:var(--faint);stroke-width:3;stroke-dasharray:1 3}.alt-mark-selected{filter:none;stroke:var(--text);stroke-width:3}.alt-link{fill:none;stroke:var(--good);stroke-width:1.6;opacity:.72}.alt-link.derived{stroke:var(--accent2);stroke-dasharray:6 5}.alt-link.filtered{stroke:var(--muted);stroke-dasharray:2 4}.alt-node{fill:var(--panel);stroke:var(--line);stroke-width:1.5}.alt-node.source{stroke:var(--accent)}.alt-node.pathway{stroke:var(--good)}.alt-node.endpoint{stroke:var(--accent2)}.alt-node-label{fill:var(--text);font:600 10px "IBM Plex Sans",sans-serif}.alt-node-meta{fill:var(--muted);font:9px var(--font-mono)}
.alt-link.selected{stroke:var(--text);stroke-width:3;opacity:1}.alt-link.context-muted,.bipartite-node-group.context-muted{opacity:.12}
.difference-cell .difference-frame{fill:var(--panel);stroke:var(--line)}.difference-cell.shared .difference-frame{stroke:var(--good);stroke-width:3}.difference-cell.a-only .difference-frame{stroke:var(--accent);stroke-width:3}.difference-cell.b-only .difference-frame{stroke:var(--accent2);stroke-width:3;stroke-dasharray:5 3}.difference-cell.filtered .difference-frame{stroke:var(--muted);stroke-width:3;stroke-dasharray:2 4}.difference-cell.explicit-zero .difference-frame{stroke:var(--accent);stroke-width:3;stroke-dasharray:8 3}.difference-cell.unavailable .difference-frame{stroke:var(--faint);stroke-width:4;stroke-dasharray:1 3}.difference-cell.unresolved .difference-frame{stroke:var(--muted);stroke-dasharray:2 4}.difference-symbol{fill:var(--text);font:800 13px var(--font-mono)}
.coverage-volume-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px}.volume-overview svg{min-height:600px}.volume-axis{fill:none;stroke:var(--muted);stroke-width:1.5;marker-end:url(#volumeArrow)}.volume-plane{fill:var(--panel);stroke:var(--line);opacity:.72}.volume-point{fill:var(--good);stroke:var(--bg);stroke-width:1.5}.volume-point.derived{fill:var(--accent2)}.coverage-slice-shell{max-width:100%;overflow:auto;border:1px solid var(--line);margin-top:12px}.coverage-slice-grid{display:grid;min-width:max-content;background:var(--bg2);gap:1px;padding:1px}.coverage-slice-label,.coverage-slice-cell{min-width:28px;min-height:28px;background:var(--panel);display:grid;place-items:center}.coverage-slice-label{position:sticky;z-index:2;color:var(--muted);font:700 9px var(--font-mono)}.coverage-slice-label.row{left:0;min-width:150px;justify-content:start;padding:0 8px}.coverage-slice-label.column{top:0;writing-mode:vertical-rl;transform:rotate(180deg);min-height:150px;padding:6px 0}.coverage-slice-cell{border:0;cursor:pointer;color:var(--muted);font:800 9px var(--font-mono)}.coverage-slice-cell.direct{background:var(--good);color:var(--bg)}.coverage-slice-cell.derived{border:2px dashed var(--accent2);color:var(--accent2)}.coverage-slice-cell.explicit-zero{border:2px solid var(--accent);color:var(--accent)}.coverage-slice-cell.filtered{border:2px dotted var(--muted)}.coverage-slice-cell.unknown{color:var(--faint)}.coverage-slice-cell.structurally-unavailable{border:3px double var(--faint);color:var(--faint)}
.mobile-visual-list,.mobile-visual-denominator{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1200px){.local-mode-switch.representation-switch{grid-template-columns:repeat(4,minmax(150px,1fr))}.representation-switch button:nth-child(4){border-right:0}.alternative-layout,.coverage-volume-grid{grid-template-columns:1fr}.alternative-inspector{min-height:0}}
@media(max-width:760px){.local-mode-switch.representation-switch{grid-template-columns:repeat(3,minmax(0,1fr));position:sticky;top:0;z-index:12;margin-inline:-3px;background:var(--bg2)}.representation-switch button{border-right:1px solid var(--line);padding:6px 5px;font-size:10px;line-height:1.25;text-align:center}.representation-switch button:nth-child(3n){border-right:0}.representation-switch button:last-child{grid-column:auto}.alternative-heading{display:block;margin-bottom:9px;padding-bottom:9px}.alternative-heading h4{font-size:18px}.alternative-heading p{font-size:13px;line-height:1.5}.alternative-heading .comparison-denominator{margin-top:9px}.comparison-denominator{max-width:100%;overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:5px;scroll-snap-type:x proximity}.comparison-denominator .denominator-stat{min-width:max-content;scroll-snap-align:start}.alternative-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.alternative-toolbar label{min-width:0;font-size:9px}.alternative-toolbar label:first-child:nth-last-child(3),.alternative-toolbar label:first-child:nth-last-child(3)~label:last-child{grid-column:auto}.alternative-toolbar .control{font-size:16px}.alternative-layout,.coverage-volume-grid{display:flex;flex-direction:column;gap:8px}.alternative-inspector{order:-1;max-height:290px;min-height:0;padding:11px}.alternative-inspector h5{font-size:14px}.alternative-inspector p,.alternative-inspector dl{font-size:12px}.alternative-viz-shell{overflow:hidden}.alternative-viz-shell svg{display:block;min-width:0!important;min-height:0!important;width:100%;height:auto}.alternative-viz-shell #bipartiteSvg:not([data-mobile-projection]){min-width:760px!important}.alternative-legend{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px;scroll-snap-type:x proximity}.alternative-legend span{min-width:max-content;scroll-snap-align:start}.volume-overview svg{min-width:0!important;min-height:0!important}.volume-overview{overflow:hidden}.coverage-slice-shell{scroll-snap-type:x proximity;overscroll-behavior-inline:contain}.coverage-slice-grid{grid-template-columns:116px repeat(27,26px)}.coverage-slice-label,.coverage-slice-cell{min-width:26px;min-height:32px}.coverage-slice-label.row{min-width:116px;padding:0 6px}.coverage-slice-label.column{min-height:126px}.alternative-table-shell{max-height:520px;overflow:auto}.alternative-table-shell table[data-mobile-table="cards"]{display:block;min-width:0;width:100%}.alternative-table-shell table[data-mobile-table="cards"] caption{display:block;position:sticky;top:0;left:auto;z-index:3}.alternative-table-shell table[data-mobile-table="cards"] thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.alternative-table-shell table[data-mobile-table="cards"] tbody{display:block}.alternative-table-shell table[data-mobile-table="cards"] tr{display:block;border-bottom:1px solid var(--line);padding:7px 9px;background:var(--panel)}.alternative-table-shell table[data-mobile-table="cards"] tr:nth-child(even){background:var(--panel2)}.alternative-table-shell table[data-mobile-table="cards"] td{display:grid;grid-template-columns:minmax(84px,.34fr) minmax(0,1fr);gap:8px;padding:5px 0;border:0;font-size:11px;overflow-wrap:anywhere}.alternative-table-shell table[data-mobile-table="cards"] td::before{content:attr(data-label);color:var(--faint);font:700 9px/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.alternative-table-shell table[data-mobile-table="cards"] button{min-height:44px;padding:0}.mobile-pan-controls{display:grid}}
@media(max-width:760px){.table-shell table[data-mobile-table="cards"]{display:block;min-width:0!important;width:100%}.table-shell table[data-mobile-table="cards"] thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.table-shell table[data-mobile-table="cards"] tbody{display:block}.table-shell table[data-mobile-table="cards"] tr{display:block;border-bottom:1px solid var(--line);padding:7px 9px;background:var(--panel)}.table-shell table[data-mobile-table="cards"] tr:nth-child(even){background:var(--panel2)}.table-shell table[data-mobile-table="cards"] td{display:grid;grid-template-columns:minmax(84px,.34fr) minmax(0,1fr);gap:8px;padding:6px 0;border:0;font-size:12px;overflow-wrap:anywhere}.table-shell table[data-mobile-table="cards"] td::before{content:attr(data-label);color:var(--faint);font:700 9px/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.mobile-visual-list,.mobile-visual-denominator{position:static;width:auto;height:auto;clip-path:none;white-space:normal;overflow:visible;border:initial}.mobile-visual-denominator{display:block;margin:4px 0 8px;padding:8px;border:0;border-left:3px solid var(--accent);background:var(--panel2);color:var(--muted);font:700 10px/1.4 var(--font-mono)}.mobile-visual-list{display:grid;gap:7px;margin:9px 0 0;padding:0}.mobile-visual-list details,.mobile-visual-record{border:1px solid var(--line);background:var(--panel2)}.mobile-visual-list summary,.mobile-visual-record>strong{display:flex;justify-content:space-between;gap:8px;min-height:44px;align-items:center;padding:9px 10px;color:var(--text);cursor:pointer}.mobile-visual-list summary span{color:var(--muted);font:700 9px var(--font-mono)}.mobile-visual-list details>div,.mobile-visual-record>div,#radarMobileList{display:grid;gap:0}.mobile-visual-list details span,.mobile-visual-record span,#radarMobileList>span{display:grid;grid-template-columns:minmax(100px,.45fr) minmax(0,1fr);gap:8px;padding:7px 10px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.mobile-visual-list [data-state="unknown"]{background:repeating-linear-gradient(135deg,transparent,transparent 5px,var(--line) 5px,var(--line) 6px)}.mobile-visual-list [data-state="unknown"] b{color:var(--faint)}.coverage-lane-shell{display:none}}
@media(prefers-reduced-motion:reduce){.representation-switch button,[data-alt-mark],[data-volume-cell]{transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media print{.representation-switch,.alternative-toolbar{display:none}.alternative-layout,.coverage-volume-grid{display:block}.alternative-viz-shell{overflow:visible}.alternative-viz-shell svg{min-width:0;width:100%;max-height:680px}.alternative-inspector{margin-top:10px}.alternative-table-shell{max-height:none;overflow:visible}.coverage-slice-shell{display:none}}
