/* section-vep.css, §3 Variant effect predictor demo: two-row sequence display (original above, click-editable mutation below) with per-row log-likelihood scores, an inline verdict sentence, the merged gene+variant description box, and the significance pills (.sig-Pathogenic / Risk / Benign) that decorate the gene chips in the toolbar. */ /* --- VEP demo (§3): two-row sequence display + inline scores --- */ .vep-window { position: relative; /* anchors the .status pill below */ background: #f7f7f7; border: 1px solid #e0e0e0; padding: 16px 20px; margin: 12px 0; text-align: left; /* The .vep-stack inside is an inline-grid whose middle column is a 60bp mono sequence (~550px wide). On narrow viewports that overflows the window, so we let the window scroll horizontally as a single unit. Critically, we do NOT introduce a line-break inside .seq-line / .arrow-line (those keep `white-space: pre`) so the original row, arrow row, and mutation row stay character-for-character aligned. */ overflow-x: auto; } /* "pending" pill in the top-right corner, aligned with the edit-hint row. Lives as a direct child of .vep-window (outside the JS-rebuilt content div) so it persists across re-renders. */ .vep-window > .status { position: absolute; top: 16px; right: 20px; margin-left: 0; background: #f7f7f7; /* occludes any wrapped edit-hint */ z-index: 1; } .vep-window .vep-stack { display: inline-grid; grid-template-columns: auto auto auto; align-items: center; column-gap: 18px; row-gap: 4px; text-align: left; margin: 10px 0; } .vep-window .vep-label { font-family: "JetBrains Mono", monospace; font-size: 10px; font-weight: 500; color: #6b7a6e; text-transform: uppercase; letter-spacing: 1.2px; white-space: nowrap; } .vep-window .vep-score { font-family: "JetBrains Mono", monospace; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; color: #888; /* "neutral" default */ } .vep-window .vep-score.more-likely { color: #317f3f; } .vep-window .vep-score.less-likely { color: #bc2e25; } .vep-window .seq-line, .vep-window .arrow-line { font-family: "JetBrains Mono", monospace; font-size: 14px; letter-spacing: 1px; white-space: pre; line-height: 1.4; } .vep-window .arrow-line { color: #bc2e25; font-weight: 700; line-height: 0.9; } .vep-window .seq-char { display: inline-block; } .vep-window .arrow-char { display: inline-block; width: auto; } /* Verdict sentence underneath the sequence block. */ .vep-window .vep-verdict { margin-top: 14px; font-size: 13px; line-height: 1.55; color: #333; max-width: 760px; } .vep-window .vep-verdict .verdict-math { font-variant-numeric: tabular-nums; font-size: 12px; color: #666; } .vep-window .vep-verdict .phrase-bad { color: #bc2e25; font-weight: 600; } .vep-window .vep-verdict .phrase-good { color: #317f3f; font-weight: 600; } .vep-window .vep-verdict .phrase-neutral { color: #444; font-weight: 600; } /* Variant position styling (the focus column in both rows) */ .vep-window .seq-char.variant-pos { font-weight: 700; } /* In the mutation row, bases that differ from the original are red */ .vep-window .seq-line.mutation .seq-char.differs { color: #bc2e25; font-weight: 700; } /* Editable mutation row */ .vep-window .seq-line.editable .seq-char { cursor: pointer; } .vep-window .seq-line.editable .seq-char:hover { background: rgba(188, 46, 37, 0.10); } .vep-window .original .seq-char { color: #1f1f1d; } .vep-window .original .seq-char.variant-pos { color: #1f1f1d; font-weight: 700; } /* Edit hint, above the stack */ .vep-window .edit-hint { margin-bottom: 12px; text-align: left; font-family: "JetBrains Mono", monospace; font-size: 10px; color: #888; letter-spacing: 0.8px; text-transform: uppercase; } .pill.sig-Pathogenic { border-left: 3px solid #bc2e25; } .pill.sig-Risk { border-left: 3px solid #e69500; } .pill.sig-Benign { border-left: 3px solid #317f3f; } /* Merged gene + variant description block displayed above the demo (replaces the old .gene-info green pill). The .meta-line below the text is a single-line strip of (mutation location · base change · ClinVar label), all set in monospace for the technical feel. */ .vep-gene-box { margin: 4px 0 14px; color: #333; font-size: 13px; line-height: 1.55; } .vep-gene-box .vep-text { margin: 0; } .vep-gene-box .gene-name { font-family: "JetBrains Mono", monospace; font-weight: 600; color: #1f5024; letter-spacing: 0.5px; } .vep-gene-box .variant-name { font-family: "JetBrains Mono", monospace; font-weight: 600; color: #1f1f1d; letter-spacing: 0.3px; } /* Single-line meta strip under the gene/variant text (no divider). */ .vep-gene-box .meta-line { margin-top: 8px; font-family: "JetBrains Mono", monospace; font-size: 11px; color: #1f1f1d; font-variant-numeric: tabular-nums; display: flex; flex-wrap: wrap; gap: 4px 22px; align-items: baseline; } .vep-gene-box .meta-line .meta-item { white-space: nowrap; } .vep-gene-box .meta-line .meta-key { color: #888; text-transform: uppercase; letter-spacing: 1px; font-size: 10px; margin-right: 6px; } .vep-gene-box .meta-line .meta-key::after { content: ":"; }