/**
 * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 * Heritage sample comparison and chromosome-position research workspaces.
 */
.htw-comparison .tcs-selection { margin-bottom:22px; }
.htw-comparison .tcs-selection-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:end; gap:18px; }
.htw-comparison .tcs-selection-grid label, .htw-comparison .tcs-filter-bar > label { display:flex; flex-direction:column; gap:8px; margin:0; min-width:0; color:var(--hd-forest); font-size:13px; font-weight:600; }
.htw-comparison :is(.tcs-selection-grid select,.tcs-filter-bar input,.tcs-filter-bar select) { width:100%; padding:10px 12px; }
.htw-comparison .tcs-selection-status { color:#805333; font-size:14px; margin:14px 0 0; }
.htw-comparison .tcs-selection-status:empty { display:none; }
.htw-comparison .tcs-context dd { font-size:26px; }
.htw-comparison .tcs-scope-note { color:var(--hd-muted); font-size:13px; margin:-12px 0 24px; }
.htw-comparison :is(.tcs-highlights,.tcs-guidance) { margin:22px 0; border:1px solid var(--hd-border); border-radius:10px; padding:0 22px; background:var(--hd-surface); }
.htw-comparison summary { min-height:46px; padding:12px 0; cursor:pointer; color:var(--hd-forest); font-size:14px; font-weight:600; }
.htw-comparison .tcs-highlight-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:8px 0 22px; }
.htw-comparison .tcs-highlight-grid a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; border:1px solid var(--hd-border); background:var(--hd-bg); border-radius:8px; font-size:14px; text-decoration:none; }
.htw-comparison .tcs-highlight-grid a span:first-child { overflow-wrap:anywhere; }
.htw-comparison .tcs-highlight-grid .dna-icon { flex-shrink:0; }
.htw-comparison .tcs-filter-bar { display:grid; grid-template-columns:minmax(180px,1fr) minmax(160px,.8fr) auto auto; gap:16px; align-items:end; border:1px solid var(--hd-border); border-radius:10px; background:var(--hd-surface); padding:22px; margin-bottom:22px; }
.htw-comparison .tcs-view-toggle { display:flex; align-items:stretch; gap:5px; }
.htw-comparison .tcs-view-toggle button { min-height:46px; padding:10px 16px; border:1px solid var(--hd-border); border-radius:6px; background:var(--hd-bg); color:var(--hd-forest); font-size:14px; }
.htw-comparison .tcs-view-toggle button[aria-pressed='true'] { background:var(--hd-forest); border-color:var(--hd-forest); color:#fff; }
.htw-comparison .tcs-filter-count { grid-column:1/-1; color:var(--hd-muted); font-size:13px; margin:0; }
.htw-comparison .tcs-comparison-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.htw-comparison .tcs-comparison-card { min-width:0; background:var(--hd-surface); border:1px solid var(--hd-border); border-radius:12px; padding:24px; display:flex; flex-direction:column; gap:22px; }
.htw-comparison .tcs-comparison-card > header { display:flex; align-items:start; justify-content:space-between; gap:16px; }
.htw-comparison .tcs-comparison-card h3 { font-size:25px; margin:0; overflow-wrap:anywhere; }
.htw-comparison .tcs-badge { display:inline-block; padding:4px 9px; background:var(--hd-sand); border:1px solid var(--hd-border); border-radius:5px; color:var(--hd-forest); font-size:12px; font-weight:500; white-space:nowrap; }
.htw-comparison .tcs-sample-pair, .htw-comparison .tcs-individual-samples { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.htw-comparison .tcs-sample-pair > div + div { border-left:1px solid var(--hd-border); padding-left:18px; }
.htw-comparison .tcs-sample-result { min-width:0; }
.htw-comparison .tcs-sample-name { color:var(--hd-muted); margin:0 0 12px; font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.htw-comparison .tcs-sample-result > strong { color:var(--hd-forest); font-size:16px; font-weight:600; }
.htw-comparison .tcs-sample-result p { font-size:14px; color:var(--hd-muted); margin:10px 0; }
.htw-comparison .tcs-sample-result .htw-prose { font-size:14px; margin-top:10px; }
.htw-comparison .tcs-comparison-card > .hd-btn { margin-top:auto; align-self:start; }
.htw-comparison .tcs-comparison-list { background:var(--hd-surface); }
.htw-comparison .tcs-comparison-list table { min-width:850px; }
.htw-comparison .tcs-comparison-list caption { caption-side:bottom; text-align:left; padding:12px 16px; color:var(--hd-muted); font-size:12px; }
.htw-comparison .tcs-comparison-list th[scope='row'] { background:var(--hd-surface); font-family:var(--hd-serif); font-size:20px; font-weight:500; width:23%; min-width:180px; overflow-wrap:anywhere; }
.htw-comparison .tcs-comparison-list td { min-width:180px; }
.htw-comparison .tcs-comparison-list td:nth-last-child(-n+2) { min-width:105px; }
.htw-comparison .tcs-comparison-list .tcs-sample-name { display:none; }
.htw-comparison .tcs-details-link { min-height:44px; display:inline-flex; align-items:center; padding:8px 12px; border:1px solid var(--hd-border); border-radius:5px; font-size:13px; }
.htw-comparison .tcs-individual-samples { margin:24px 0; }
.htw-comparison .tcs-individual-samples > .htw-panel { margin:0; }
.htw-comparison .tcs-trait-description { margin-bottom:24px; }
.htw-comparison .tcs-sensitive-result { padding:0 16px; border:1px solid var(--hd-border); background:var(--hd-bg); border-radius:8px; }
.htw-comparison .tcs-sensitive-result .htw-prose { padding-bottom:12px; }
.htw-comparison .tcs-gene-list { margin:0; }
.htw-comparison .tcs-gene-list > div { border-top:1px solid var(--hd-border); padding:14px 0; }
.htw-comparison .tcs-gene-list dt { font-size:14px; color:var(--hd-forest); }
.htw-comparison .tcs-gene-list dd { color:var(--hd-muted); margin:7px 0 0; font-size:13px; }
.htw-comparison .tcs-individual-actions { margin-top:22px; }
.htw-comparison .tcs-guidance .htw-prose { padding:14px 0 22px; }
.htw-comparison .tcs-guidance h3 { font-size:22px; margin:18px 0 8px; }
/* Existing selected score positions, with solid Heritage presentation. */
.htw-comparison { --ti-terracotta-dark:#8b6547; --ti-terracotta:#a47d57; --ti-terracotta-light:#b29773; --ti-sage:#69816c; --ti-sage-dark:#355b47; }
.htw-comparison .ti-scale-container { margin:18px 0; padding:18px 24px; border:1px solid var(--hd-border); background:var(--hd-bg); border-radius:8px; }
.htw-comparison .ti-scale-track-wrapper { position:relative; padding-bottom:8px; }
.htw-comparison .ti-scale-labels { display:flex; justify-content:space-between; gap:20px; margin-bottom:16px; font-size:12px; color:var(--hd-muted); }
.htw-comparison .ti-scale-track { height:9px; border-radius:5px; background:var(--hd-sand); }
.htw-comparison .ti-scale-indicator { position:absolute; top:calc(100% - 12px); width:22px; height:22px; border:4px solid var(--indicator-color,var(--hd-forest)); background:var(--hd-surface); border-radius:50%; transform:translate(-50%,-50%); }
.htw-comparison .ti-scale-indicator[data-position='0'] { left:0; }
.htw-comparison .ti-scale-indicator[data-position='1'] { left:25%; }
.htw-comparison .ti-scale-indicator[data-position='2'] { left:50%; }
.htw-comparison .ti-scale-indicator[data-position='3'] { left:75%; }
.htw-comparison .ti-scale-indicator[data-position='4'] { left:100%; }
.htw-comparison .ti-scale-track[data-segments='3'] ~ .ti-scale-indicator[data-position='1'] { left:50%; }
.htw-comparison .ti-scale-track[data-segments='3'] ~ .ti-scale-indicator[data-position='2'] { left:100%; }
.htw-comparison .ti-scale-track[data-segments='2'] ~ .ti-scale-indicator[data-position='1'] { left:100%; }
.htw-comparison .ti-scale-footer { display:flex; justify-content:center; margin-top:18px; }
.htw-comparison .ti-scale-badge { padding:5px 12px; background:var(--hd-sand); border-radius:5px; color:var(--hd-forest); font-size:14px; }
.htw-comparison .ti-scale-container i { display:none; }
/* Position overlap research: a work surface, not a cinematic report. */
.htw-cross .tac-section { margin-bottom:30px; }
.htw-cross .tac-section > .container { max-width:none; padding:0; }
.htw-cross .tac-section .mb-4:empty { display:none; }
.htw-cross .tac-section-header { margin-bottom:22px; }
.htw-cross .tac-section-label { display:block; color:var(--hd-gold); font-size:11px; font-weight:600; letter-spacing:1.7px; text-transform:uppercase; margin-bottom:7px; }
.htw-cross .tac-section-title { margin:0 0 12px; font-size:31px; }
.htw-cross .tac-section-subtitle { color:var(--hd-muted); font-size:14px; margin:0; overflow-wrap:anywhere; }
.htw-cross .tac-sample-context { display:block; margin-top:5px; }
.htw-cross .tac-upload-card { display:grid; grid-template-columns:240px minmax(0,1fr); border:1px solid var(--hd-border); border-radius:12px; background:var(--hd-surface); overflow:hidden; }
.htw-cross .tac-upload-header { padding:26px; background:var(--hd-sand); }
.htw-cross .tac-upload-header h4 { font-size:25px; margin:0; }
.htw-cross .tac-upload-header .dna-icon { display:block; margin-bottom:16px; width:26px; height:26px; }
.htw-cross .tac-upload-body { padding:26px; min-width:0; }
.htw-cross .tac-upload-body form { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:22px; }
.htw-cross .tac-form-group { min-width:0; }
.htw-cross .tac-form-group:last-child { grid-column:1/-1; text-align:right !important; }
.htw-cross .tac-form-label { display:block; color:var(--hd-forest); font-size:14px; font-weight:600; margin-bottom:9px; }
.htw-cross .tac-form-label .dna-icon { display:none; }
.htw-cross .tac-form-control { padding:10px 12px; width:100%; }
.htw-cross .tac-form-hint { margin-top:9px; color:var(--hd-muted); font-size:12px; line-height:1.7; }
.htw-cross .tac-form-hint .dna-icon { display:none; }
.htw-cross .tac-custom-file-input { width:100%; padding:10px; border:1px dashed #c8bda9; background:var(--hd-bg); font-size:13px; }
.htw-cross .tac-custom-file-input::file-selector-button { padding:6px 10px; border:1px solid var(--hd-border); border-radius:4px; color:var(--hd-forest); background:var(--hd-sand); margin-right:10px; }
.htw-cross .tac-custom-file-label { display:block; font-size:12px; color:var(--hd-muted); margin-top:8px; overflow-wrap:anywhere; }
.htw-cross :is(.tac-btn-success,.tac-btn-outline,.tac-filter-clear,.export-snp-csv) { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; min-width:0; padding:10px 16px; border:1px solid var(--hd-border); border-radius:7px; background:var(--hd-surface); color:var(--hd-forest); font:600 14px/1.5 var(--hd-sans); }
.htw-cross .tac-btn-success { color:#fff; background:var(--hd-forest); border-color:var(--hd-forest); }
.htw-cross .tac-error-alert { display:flex; gap:12px; padding:16px; border:1px solid #d8b2a5; border-radius:8px; background:#fbf1ed; color:#784634; margin-bottom:22px; }
.htw-cross .tac-error-alert p { margin:0; }
.htw-cross .tac-stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; padding:22px 26px; margin-bottom:22px; border-radius:10px; background:var(--hd-sand); border:1px solid var(--hd-border); }
.htw-cross .tac-stat-card { min-width:0; }
.htw-cross .stat-icon { display:none; }
.htw-cross .stat-value { color:var(--hd-forest); font-size:27px; font-weight:600; }
.htw-cross .stat-label { color:var(--hd-muted); font-size:12px; }
.htw-cross .tac-legend-card { padding:20px 24px; background:var(--hd-surface); border:1px solid var(--hd-border); border-radius:10px; }
.htw-cross .tac-legend-title { color:var(--hd-forest); margin:0 0 14px; font:600 14px/1.5 var(--hd-sans); }
.htw-cross :is(.tac-ancestry-legend,.tac-trait-ancestries) { display:flex; flex-wrap:wrap; gap:8px; }
.htw-cross :is(.tac-legend-item,.tac-trait-ancestry) { display:inline-flex; align-items:center; gap:7px; min-width:0; padding:5px 9px; color:var(--hd-ink); border:1px solid var(--hd-border); background:var(--hd-bg); border-radius:5px; font-size:12px; overflow-wrap:anywhere; }
.htw-cross :is(.tac-legend-swatch,.tac-trait-ancestry-swatch,.tac-ancestry-tag-swatch) { display:inline-block; position:relative; width:14px; height:14px; flex-shrink:0; border-radius:3px; background:#808080; }
.htw-cross.cb-patterns :is(.tac-legend-swatch,.tac-trait-ancestry-swatch)::after { content:'+'; display:block; color:white; font:bold 15px/14px monospace; text-align:center; }
.htw-cross .tac-filter-bar { padding:22px 24px; background:var(--hd-surface); border:1px solid var(--hd-border); border-radius:10px; margin-bottom:24px; }
.htw-cross .tac-filter-header { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom:16px; }
.htw-cross .tac-filter-title { font:600 15px/1.5 var(--hd-sans); color:var(--hd-forest); margin:0; }
.htw-cross .tac-ethnicity-grid { max-height:240px; overflow:auto; }
.htw-cross .tac-ethnicity-grid > .row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px 20px; margin:0; }
.htw-cross .tac-ethnicity-grid .row > div { width:100%; max-width:none; min-width:0; padding:0; }
.htw-cross .tac-choice { display:flex; align-items:center; gap:9px; min-width:0; min-height:44px; }
.htw-cross .tac-choice input { width:18px; height:18px; flex-shrink:0; }
.htw-cross .tac-choice label { display:flex; align-items:center; min-height:44px; font-size:13px; margin:0; cursor:pointer; overflow-wrap:anywhere; }
.htw-cross .tac-filter-options { display:flex; flex-wrap:wrap; gap:12px 24px; border-top:1px solid var(--hd-border); margin-top:16px; padding-top:14px; align-items:center; }
.htw-cross .tac-filter-count { flex:1 1 200px; color:var(--hd-muted); font-size:13px; }
.htw-cross .tac-results-header { margin-bottom:18px; }
.htw-cross .tac-results-title { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:0; font-size:24px; }
.htw-cross .tac-results-badge { font:500 12px/1.5 var(--hd-sans); color:var(--hd-muted); }
.htw-cross .tac-traits-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.htw-cross .trait-card { min-width:0; }
.htw-cross .tac-trait-card { height:100%; padding:24px; border:1px solid var(--hd-border); background:var(--hd-surface); border-radius:12px; }
.htw-cross .tac-trait-card-body { display:flex; flex-direction:column; min-height:100%; gap:16px; }
.htw-cross .tac-trait-title { color:var(--hd-forest); font:500 25px/1.25 var(--hd-serif); margin:0; overflow-wrap:anywhere; }
.htw-cross .tac-trait-badges { display:flex; flex-wrap:wrap; gap:7px; }
.htw-cross :is(.tac-trait-badge,.tac-confidence-badge) { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border-radius:4px; background:var(--hd-sand); color:var(--hd-forest); font-size:12px; font-weight:500; }
.htw-cross .tac-confidence-high { background:var(--hd-sage); }
.htw-cross .tac-confidence-medium { background:var(--hd-cream); }
.htw-cross .tac-trait-summary { color:var(--hd-muted); font-size:14px; margin:0; }
.htw-cross .tac-trait-action { margin-top:auto; padding-top:6px; }
/* Responsive research drawers keep controls and dense evidence contained. */
.htw-cross .trait-drawer { width:calc(100% - 64px); max-width:1416px; margin:24px auto; background:var(--hd-surface); border:1px solid var(--hd-border); border-radius:12px; overflow:hidden; }
.htw-cross[data-cross-enhanced='true'] .trait-drawer { position:fixed; inset:0; z-index:1100; width:auto; max-width:none; margin:0; border:0; border-radius:0; }
.htw-cross .trait-drawer-backdrop { display:none; }
.htw-cross[data-cross-enhanced='true'] .trait-drawer-backdrop { display:block; position:absolute; inset:0; background:rgba(25,42,33,.45); }
.htw-cross[data-cross-enhanced='true'] .trait-drawer-panel { position:absolute; right:0; top:0; width:min(78vw,1120px); height:100dvh; background:var(--hd-bg); border-radius:16px 0 0 16px; display:flex; flex-direction:column; transform:translateX(100%); transition:transform .24s ease; overflow:hidden; }
.htw-cross[data-cross-enhanced='true'] .trait-drawer.open .trait-drawer-panel { transform:translateX(0); }
.htw-cross .trait-drawer-header { display:flex; align-items:center; justify-content:space-between; gap:20px; background:var(--hd-sand); border-bottom:1px solid var(--hd-border); padding:20px 24px; flex-shrink:0; }
.htw-cross .trait-drawer-title { margin:0; color:var(--hd-forest); font:500 28px/1.2 var(--hd-serif); overflow-wrap:anywhere; }
.htw-cross .trait-drawer-title .dna-icon { display:none; }
.htw-cross .trait-drawer-close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; flex-shrink:0; background:var(--hd-surface); border:1px solid var(--hd-border); color:var(--hd-forest); border-radius:6px; }
.htw-cross .trait-drawer-body { padding:24px; overflow:auto; min-height:0; }
.htw-cross .tac-drawer-section { margin-bottom:24px; min-width:0; }
.htw-cross .tac-drawer-summary p { font-size:15px; color:var(--hd-muted); margin:0 0 16px; }
.htw-cross .tac-drawer-summary > div { gap:8px; }
.htw-cross .tac-drawer-section-title { margin:0 0 14px; color:var(--hd-forest); font:600 17px/1.5 var(--hd-sans); }
.htw-cross .tac-drawer-toolbar { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; margin-bottom:16px; }
.htw-cross .tac-drawer-search { display:flex; align-items:center; gap:8px; flex:1 1 220px; }
.htw-cross .snp-search { width:100%; padding:10px 12px; }
.htw-cross .tac-drawer-search > .dna-icon { display:none; }
.htw-cross .table-responsive { width:100%; max-width:100%; overflow:auto; border:1px solid var(--hd-border); border-radius:8px; background:var(--hd-surface); }
.htw-cross .table { min-width:1040px; font-size:13px; border-collapse:collapse; margin:0; }
.htw-cross .table :is(th,td) { padding:12px; border-bottom:1px solid var(--hd-border); vertical-align:top; }
.htw-cross .table caption { caption-side:bottom; padding:12px; color:var(--hd-muted); text-align:left; font-size:12px; }
.htw-cross .table th { background:var(--hd-sand); color:var(--hd-forest); }
.htw-cross .table th button { border:0; background:transparent; color:inherit; padding:0; min-height:44px; font:600 13px/1.5 var(--hd-sans); text-align:left; }
.htw-cross .tac-ancestry-tag { display:flex; align-items:center; gap:7px; }
.htw-cross .tac-ancestry-tag-meta { color:var(--hd-muted); font-size:11px; margin-top:6px; }
.htw-cross :is(.tac-cell-mono,.tac-cell-mono-bold) { font-family:Consolas,monospace; }
.htw-cross .tac-cell-mono-bold { font-weight:600; }
.htw-cross .tac-chromosome-browser { padding:16px; max-width:100%; overflow:auto; background:var(--hd-surface); border:1px solid var(--hd-border); border-radius:8px; }
@media(max-width:1099px) {
    .htw-comparison .tcs-filter-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .htw-comparison .tcs-highlight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .htw-cross .tac-traits-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .htw-cross .tac-upload-card { grid-template-columns:180px minmax(0,1fr); }
    .htw-cross .tac-ethnicity-grid > .row { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:767px) {
    .htw-comparison :is(.tcs-selection-grid,.tcs-comparison-grid,.tcs-individual-samples) { grid-template-columns:minmax(0,1fr); }
    .htw-comparison .tcs-selection-grid > button { justify-content:center; }
    .htw-cross .tac-upload-card { grid-template-columns:minmax(0,1fr); }
    .htw-cross .tac-upload-header { padding:18px 22px; }
    .htw-cross .tac-upload-header h4 { font-size:23px; }
    .htw-cross .tac-upload-header .dna-icon { display:none; }
    .htw-cross .tac-upload-body { padding:22px; }
    .htw-cross .tac-stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:20px; }
    .htw-cross .tac-ethnicity-grid > .row { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .htw-cross[data-cross-enhanced='true'] .trait-drawer-panel { top:auto; bottom:0; width:100%; height:90dvh; border-radius:18px 18px 0 0; transform:translateY(100%); }
    .htw-cross[data-cross-enhanced='true'] .trait-drawer.open .trait-drawer-panel { transform:translateY(0); }
    .htw-cross .trait-drawer-header { padding-top:24px; position:relative; }
    .htw-cross .trait-drawer-header::before { content:''; position:absolute; top:9px; left:calc(50% - 20px); width:40px; height:4px; background:#c3b99f; border-radius:2px; }
}
@media(max-width:479px) {
    .htw-comparison :is(.tcs-filter-bar,.tcs-highlight-grid,.tcs-sample-pair) { grid-template-columns:minmax(0,1fr); }
    .htw-comparison .tcs-sample-pair > div + div { padding:18px 0 0; border:0; border-top:1px solid var(--hd-border); }
    .htw-comparison .tcs-comparison-card { padding:20px; }
    .htw-comparison .tcs-comparison-card > header { flex-direction:column; gap:10px; }
    .htw-comparison .tcs-view-toggle button { flex:1 1 auto; }
    .htw-cross .tac-upload-body form, .htw-cross .tac-traits-grid { grid-template-columns:minmax(0,1fr); }
    .htw-cross .tac-upload-body, .htw-cross .tac-filter-bar { padding:20px; }
    .htw-cross .tac-form-group:last-child > button { width:100%; }
    .htw-cross .tac-filter-header { align-items:start; flex-direction:column; gap:10px; }
    .htw-cross .tac-ethnicity-grid > .row { grid-template-columns:minmax(0,1fr); }
    .htw-cross .trait-drawer-header { padding:24px 18px 18px; }
    .htw-cross .trait-drawer-title { font-size:24px; }
    .htw-cross .trait-drawer-body { padding:18px; }
}
@media(prefers-reduced-motion:reduce) { .htw-cross[data-cross-enhanced='true'] .trait-drawer-panel { transition:none; } }
@media print {
    .htw-comparison :is(.tcs-selection,.tcs-filter-bar,.tcs-guidance,.tcs-highlights), .htw-cross :is(.tac-upload-card,.tac-filter-bar,.trait-drawer) { display:none !important; }
    .htw-comparison .tcs-comparison-list { overflow:visible; }
    .htw-comparison .tcs-comparison-list table { min-width:0; }
}
