

.omniscan-header { text-align: center; margin-bottom: 12px; }
.omniscan-header-icon { margin-bottom: 4px; display: flex; justify-content: center; }


.omni-upload-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px; margin-top: 10px;
}
.omni-upload-zone {
  border: 2px dashed #ced4da; border-radius: 10px; padding: 24px 16px;
  text-align: center; cursor: pointer; transition: border-color .2s, background .2s;
  background: #f8f9fa;
}
.omni-upload-zone:hover, .omni-upload-zone:focus-visible {
  border-color: #6f42c1; background: #f3efff;
}
.omni-upload-zone.drag-over {
  border-color: #28a745; background: #e8f5e9;
}
.omni-upload-icon { display: flex; justify-content: center; margin-bottom: 6px; }
.omni-upload-label { font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.omni-upload-hint { font-size: 12px; color: #6c757d; }
.omni-upload-status { margin-top: 6px; font-size: 12px; font-weight: 600; }


.omni-scanning-overlay {
  display: none; flex-direction: column; align-items: center; justify-content: center;
  padding: 40px 20px; min-height: 420px;
}
.omni-scan-anim { text-align: center; }
.omni-scan-text { font-size: 16px; font-weight: 600; color: #343a40; margin-bottom: 10px; }
.omni-scan-progress {
  width: 280px; height: 8px; background: #e9ecef; border-radius: 4px;
  margin: 0 auto 14px; overflow: hidden;
}
.omni-scan-progress-fill {
  height: 100%; width: 0; border-radius: 4px;
  background: linear-gradient(90deg, #6f42c1, #dc3545);
  transition: width .4s ease;
}
.omni-scan-modules { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; max-width: 520px; margin: 0 auto; }
.omni-mod-item {
  font-size: 12px; padding: 5px 10px; background: #f8f9fa; border-radius: 6px;
  display: flex; align-items: center; gap: 5px; border: 1px solid #dee2e6;
  transition: border-color .3s, background .3s;
}
.omni-mod-item.omni-mod-done { border-color: #28a745; background: #d4edda; }
.omni-mod-icon {
  font-size: 11px; font-weight: 700; min-width: 22px; height: 22px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #6f42c1; color: #fff; border-radius: 4px; letter-spacing: .5px;
}
.omni-mod-state {
  font-size: 11px; min-width: 44px; text-align: center; font-weight: 600;
  color: #6c757d; text-transform: uppercase; letter-spacing: .3px;
}


.omni-risk-hero {
  display: flex; gap: 30px; align-items: center; flex-wrap: wrap;
  background: linear-gradient(135deg, #f5f0ff 0%, #fff5f5 100%);
  border-radius: 14px; padding: 28px 32px; margin-bottom: 24px;
  box-shadow: 0 2px 12px rgba(111,66,193,.1);
}
.omni-risk-hero-left { display: flex; flex-direction: column; align-items: center; min-width: 200px; }
.omni-risk-dial { margin-bottom: 8px; }
.omni-risk-label { font-size: 18px; font-weight: 700; }
.omni-risk-hero-right { flex: 1; min-width: 260px; }


.omni-bar-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.omni-bar-label { width: 110px; font-size: 13px; font-weight: 500; text-align: right; color: #495057; }
.omni-bar-track { flex: 1; height: 10px; background: #e9ecef; border-radius: 5px; overflow: hidden; }
.omni-bar-fill { height: 100%; border-radius: 5px; transition: width .6s ease; }
.omni-bar-val { width: 50px; font-size: 12px; font-weight: 600; color: #495057; }


.omni-section { margin-bottom: 28px; }
.omni-section-title {
  font-size: 17px; font-weight: 700; margin-bottom: 6px; color: #343a40;
  padding-left: 12px; border-left: 3px solid #6f42c1;
}
.omni-section-desc { font-size: 13px; color: #6c757d; margin-bottom: 14px; padding-left: 12px; }


.omni-modality-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
.omni-modality-card {
  background: #fff; border: 1px solid #e9ecef; border-radius: 10px;
  padding: 14px; text-align: center; transition: box-shadow .2s;
}
.omni-modality-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.omni-modality-icon {
  font-size: 14px; font-weight: 700; width: 36px; height: 36px;
  display: inline-flex; align-items: center; justify-content: center;
  background: #6f42c1; color: #fff; border-radius: 8px; margin-bottom: 4px;
  letter-spacing: .5px;
}
.omni-modality-name { font-weight: 600; font-size: 13px; margin-bottom: 4px; }
.omni-modality-score { font-size: 20px; font-weight: 700; }
.omni-modality-bar { height: 5px; background: #e9ecef; border-radius: 3px; overflow: hidden; margin: 6px 0 4px; }
.omni-modality-status { font-size: 11px; color: #6c757d; }


.omni-pedigree-wrap {
  background: #fff; border: 1px solid #e9ecef; border-radius: 10px;
  padding: 20px; overflow-x: auto;
}
.omni-pedigree-wrap svg { display: block; margin: 0 auto; max-width: 760px; }
.omni-pedigree-legend {
  display: flex; flex-wrap: wrap; gap: 14px; justify-content: center;
  margin-top: 14px; padding-top: 12px; border-top: 1px solid #e9ecef;
}
.omni-ped-legend-item {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; color: #495057; white-space: nowrap;
}

[data-theme="dark"] .omni-pedigree-wrap { background: #1a1b23; border-color: #2d2e3a; }
[data-theme="dark"] .omni-pedigree-legend { border-top-color: #2d2e3a; }
[data-theme="dark"] .omni-ped-legend-item { color: #ccc; }


.omni-recs {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.omni-rec-card {
  display: flex; gap: 12px; background: #fff; border: 1px solid #e9ecef;
  border-radius: 10px; padding: 16px; transition: box-shadow .2s;
}
.omni-rec-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.omni-rec-icon {
  font-size: 13px; font-weight: 700; flex-shrink: 0;
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  background: #e9ecef; color: #495057; border-radius: 8px; letter-spacing: .3px;
}
.omni-rec-icon-screening { background: #cce5ff; color: #004085; }
.omni-rec-icon-genetic { background: #e8daef; color: #6f42c1; }
.omni-rec-icon-lifestyle { background: #d4edda; color: #155724; }
.omni-rec-icon-treatment { background: #f8d7da; color: #721c24; }
.omni-rec-icon-monitoring { background: #fff3cd; color: #856404; }
.omni-rec-title { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.omni-rec-text { font-size: 13px; color: #495057; line-height: 1.45; margin-bottom: 4px; }
.omni-rec-priority { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }


[data-theme="dark"] .omni-upload-zone { background: #1a1b23; border-color: #3a3b48; color: #e0e0e0; }
[data-theme="dark"] .omni-upload-zone:hover { border-color: #6f42c1; background: #22202e; }
[data-theme="dark"] .omni-upload-zone.drag-over { border-color: #28a745; background: #1a2e1a; }
[data-theme="dark"] .omni-upload-label { color: #e0e0e0; }
[data-theme="dark"] .omni-upload-hint { color: #a0a0b0; }
[data-theme="dark"] .omni-upload-status { color: #a0a0b0; }
[data-theme="dark"] .omni-risk-hero { background: linear-gradient(135deg, #1a1530 0%, #251520 100%); }
[data-theme="dark"] .omni-risk-hero #omni-risk-pct { fill: #e0e0e0; }
[data-theme="dark"] .omni-modality-card { background: #1a1b23; border-color: #2d2e3a; }
[data-theme="dark"] .omni-modality-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.3); }
[data-theme="dark"] .omni-modality-name { color: #e0e0e0; }
[data-theme="dark"] .omni-modality-status { color: #a0a0b0; }
[data-theme="dark"] .omni-modality-bar { background: #2d2e3a; }
[data-theme="dark"] .omni-rec-card { background: #1a1b23; border-color: #2d2e3a; color: #e0e0e0; }
[data-theme="dark"] .omni-rec-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.3); }
[data-theme="dark"] .omni-rec-title { color: #f0f0f0; }
[data-theme="dark"] .omni-rec-text { color: #c0c0c0; }
[data-theme="dark"] .omni-rec-icon { background: #2d2e3a; color: #a0a0b0; }
[data-theme="dark"] .omni-rec-icon-screening { background: #1a2a40; color: #6da3ff; }
[data-theme="dark"] .omni-rec-icon-genetic { background: #2a1a3a; color: #b08ee8; }
[data-theme="dark"] .omni-rec-icon-lifestyle { background: #1a2e1a; color: #5cb85c; }
[data-theme="dark"] .omni-rec-icon-treatment { background: #2e1a1a; color: #e88; }
[data-theme="dark"] .omni-rec-icon-monitoring { background: #2e2a1a; color: #d4a04a; }
[data-theme="dark"] .omni-mod-item { background: #23242d; border-color: #2d2e3a; }
[data-theme="dark"] .omni-mod-item.omni-mod-done { border-color: #28a745; background: #1a2e1a; }
[data-theme="dark"] .omni-mod-state { color: #a0a0b0; }
[data-theme="dark"] .omni-scan-text { color: #e0e0e0; }
[data-theme="dark"] .omni-scan-progress { background: #2d2e3a; }
[data-theme="dark"] .omni-bar-label { color: #c0c0c0; }
[data-theme="dark"] .omni-bar-track { background: #2d2e3a; }
[data-theme="dark"] .omni-bar-val { color: #c0c0c0; }
[data-theme="dark"] .omni-section-title { color: #f0f0f0; }
[data-theme="dark"] .omni-section-desc { color: #a0a0b0; }
[data-theme="dark"] .omniscan-header { color: #e0e0e0; }


@media (max-width: 600px) {
  .omni-risk-hero { flex-direction: column; padding: 18px; }
  .omni-upload-grid { grid-template-columns: 1fr; }
  .omni-recs { grid-template-columns: 1fr; }
}
