/** * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 * 
 * Custom SVG Icon System
 * Replaces Font Awesome icons with custom duotone SVGs.
 * Uses CSS masking to inherit currentColor for automatic theming.
 * 
 * Usage:
 *   <span class="dna-icon dna-icon-crown" aria-hidden="true"></span>
 *   <span class="dna-icon dna-icon-lg dna-icon-map-marker" aria-hidden="true"></span>
 */

/* ==========================================================================
   Base Icon Styles - Using CSS Mask for Color Inheritance
   ========================================================================== */

.dna-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    /* CSS Mask allows the icon to inherit currentColor */
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    /* The icon color comes from background-color which inherits currentColor */
    background-color: currentColor;
    /* Smooth transitions for hover effects */
    transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

/* Ensure icons work well in flex containers */
.dna-icon-fw {
    width: 1.25em;
    text-align: center;
}

/* ==========================================================================
   Size Modifiers (similar to Font Awesome sizing)
   ========================================================================== */

.dna-icon-xs {
    width: 0.75em;
    height: 0.75em;
}

.dna-icon-sm {
    width: 0.875em;
    height: 0.875em;
}

.dna-icon-lg {
    width: 1.33em;
    height: 1.33em;
    vertical-align: -0.225em;
}

.dna-icon-xl {
    width: 1.5em;
    height: 1.5em;
    vertical-align: -0.25em;
}

.dna-icon-2x {
    width: 2em;
    height: 2em;
}

.dna-icon-3x {
    width: 3em;
    height: 3em;
}

.dna-icon-4x {
    width: 4em;
    height: 4em;
}

.dna-icon-5x {
    width: 5em;
    height: 5em;
}

/* ==========================================================================
   Navigation Icons
   ========================================================================== */

.dna-icon-chevron-up {
    -webkit-mask-image: url('/img/icons/reports/navigation/chevron-up.svg');
    mask-image: url('/img/icons/reports/navigation/chevron-up.svg');
}

.dna-icon-times {
    -webkit-mask-image: url('/img/icons/reports/navigation/times.svg');
    mask-image: url('/img/icons/reports/navigation/times.svg');
}

.dna-icon-plus {
    -webkit-mask-image: url('/img/icons/reports/navigation/plus.svg');
    mask-image: url('/img/icons/reports/navigation/plus.svg');
}

.dna-icon-minus {
    -webkit-mask-image: url('/img/icons/reports/navigation/minus.svg');
    mask-image: url('/img/icons/reports/navigation/minus.svg');
}

.dna-icon-bars {
    -webkit-mask-image: url('/img/icons/reports/navigation/bars.svg');
    mask-image: url('/img/icons/reports/navigation/bars.svg');
}

.dna-icon-search {
    -webkit-mask-image: url('/img/icons/reports/navigation/search.svg');
    mask-image: url('/img/icons/reports/navigation/search.svg');
}

.dna-icon-arrow-down {
    -webkit-mask-image: url('/img/icons/reports/navigation/arrow-down.svg');
    mask-image: url('/img/icons/reports/navigation/arrow-down.svg');
}

.dna-icon-arrow-right {
    -webkit-mask-image: url('/img/icons/cinematic/core/arrow-right.svg');
    mask-image: url('/img/icons/cinematic/core/arrow-right.svg');
}

.dna-icon-filter {
    -webkit-mask-image: url('/img/icons/reports/navigation/filter.svg');
    mask-image: url('/img/icons/reports/navigation/filter.svg');
}

.dna-icon-sort {
    -webkit-mask-image: url('/img/icons/reports/navigation/sort.svg');
    mask-image: url('/img/icons/reports/navigation/sort.svg');
}

.dna-icon-list {
    -webkit-mask-image: url('/img/icons/reports/navigation/list.svg');
    mask-image: url('/img/icons/reports/navigation/list.svg');
}

.dna-icon-th-large {
    -webkit-mask-image: url('/img/icons/reports/navigation/th-large.svg');
    mask-image: url('/img/icons/reports/navigation/th-large.svg');
}

.dna-icon-code-branch {
    -webkit-mask-image: url('/img/icons/reports/navigation/code-branch.svg');
    mask-image: url('/img/icons/reports/navigation/code-branch.svg');
}

/* ==========================================================================
   Geography/Map Icons
   ========================================================================== */

.dna-icon-map-marker,
.dna-icon-map-marker-alt {
    -webkit-mask-image: url('/img/icons/reports/geography/map-marker.svg');
    mask-image: url('/img/icons/reports/geography/map-marker.svg');
}

.dna-icon-map-marked,
.dna-icon-map-marked-alt {
    -webkit-mask-image: url('/img/icons/reports/geography/map-marked.svg');
    mask-image: url('/img/icons/reports/geography/map-marked.svg');
}

.dna-icon-compass {
    -webkit-mask-image: url('/img/icons/reports/geography/compass.svg');
    mask-image: url('/img/icons/reports/geography/compass.svg');
}

.dna-icon-route {
    -webkit-mask-image: url('/img/icons/reports/geography/route.svg');
    mask-image: url('/img/icons/reports/geography/route.svg');
}

.dna-icon-mountain {
    -webkit-mask-image: url('/img/icons/reports/geography/mountain.svg');
    mask-image: url('/img/icons/reports/geography/mountain.svg');
}

.dna-icon-globe-americas {
    -webkit-mask-image: url('/img/icons/reports/geography/globe-americas.svg');
    mask-image: url('/img/icons/reports/geography/globe-americas.svg');
}

.dna-icon-globe-asia {
    -webkit-mask-image: url('/img/icons/reports/geography/globe-asia.svg');
    mask-image: url('/img/icons/reports/geography/globe-asia.svg');
}

.dna-icon-anchor {
    -webkit-mask-image: url('/img/icons/reports/geography/anchor.svg');
    mask-image: url('/img/icons/reports/geography/anchor.svg');
}

.dna-icon-gopuram {
    -webkit-mask-image: url('/vendor/fontawesome-free/svgs/solid/gopuram.svg');
    mask-image: url('/vendor/fontawesome-free/svgs/solid/gopuram.svg');
}

.dna-icon-city {
    -webkit-mask-image: url('/vendor/fontawesome-free/svgs/solid/city.svg');
    mask-image: url('/vendor/fontawesome-free/svgs/solid/city.svg');
}

.dna-icon-torii-gate {
    -webkit-mask-image: url('/vendor/fontawesome-free/svgs/solid/torii-gate.svg');
    mask-image: url('/vendor/fontawesome-free/svgs/solid/torii-gate.svg');
}

.dna-icon-baobab-tree {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-sub-saharan-africa.svg');
    mask-image: url('/img/icons/megamenu/ancient-sub-saharan-africa.svg');
}

/* ==========================================================================
   Data/Analysis Icons
   ========================================================================== */

.dna-icon-chart-bar {
    -webkit-mask-image: url('/img/icons/reports/data/chart-bar.svg');
    mask-image: url('/img/icons/reports/data/chart-bar.svg');
}

.dna-icon-chart-line {
    -webkit-mask-image: url('/img/icons/reports/data/chart-line.svg');
    mask-image: url('/img/icons/reports/data/chart-line.svg');
}

.dna-icon-info-circle {
    -webkit-mask-image: url('/img/icons/reports/data/info-circle.svg');
    mask-image: url('/img/icons/reports/data/info-circle.svg');
}

.dna-icon-question-circle {
    -webkit-mask-image: url('/img/icons/reports/data/question-circle.svg');
    mask-image: url('/img/icons/reports/data/question-circle.svg');
}

.dna-icon-lightbulb {
    -webkit-mask-image: url('/img/icons/reports/data/lightbulb.svg');
    mask-image: url('/img/icons/reports/data/lightbulb.svg');
}

.dna-icon-magic,
.dna-icon-sparkles {
    -webkit-mask-image: url('/img/icons/reports/data/magic.svg');
    mask-image: url('/img/icons/reports/data/magic.svg');
}

.dna-icon-project-diagram {
    -webkit-mask-image: url('/img/icons/reports/data/project-diagram.svg');
    mask-image: url('/img/icons/reports/data/project-diagram.svg');
}

.dna-icon-balance-scale {
    -webkit-mask-image: url('/img/icons/reports/data/balance-scale.svg');
    mask-image: url('/img/icons/reports/data/balance-scale.svg');
}

.dna-icon-comment-dots {
    -webkit-mask-image: url('/img/icons/reports/data/comment-dots.svg');
    mask-image: url('/img/icons/reports/data/comment-dots.svg');
}

/* ==========================================================================
   Action Icons
   ========================================================================== */

.dna-icon-print {
    -webkit-mask-image: url('/img/icons/reports/actions/print.svg');
    mask-image: url('/img/icons/reports/actions/print.svg');
}

.dna-icon-share,
.dna-icon-share-alt {
    -webkit-mask-image: url('/img/icons/reports/actions/share-alt.svg');
    mask-image: url('/img/icons/reports/actions/share-alt.svg');
}

.dna-icon-eye {
    -webkit-mask-image: url('/img/icons/reports/actions/eye.svg');
    mask-image: url('/img/icons/reports/actions/eye.svg');
}

.dna-icon-unlock {
    -webkit-mask-image: url('/img/icons/reports/actions/unlock.svg');
    mask-image: url('/img/icons/reports/actions/unlock.svg');
}

.dna-icon-file-csv {
    -webkit-mask-image: url('/img/icons/reports/actions/file-csv.svg');
    mask-image: url('/img/icons/reports/actions/file-csv.svg');
}

.dna-icon-file-pdf {
    -webkit-mask-image: url('/img/icons/reports/actions/file-pdf.svg');
    mask-image: url('/img/icons/reports/actions/file-pdf.svg');
}

.dna-icon-ban {
    -webkit-mask-image: url('/img/icons/reports/actions/ban.svg');
    mask-image: url('/img/icons/reports/actions/ban.svg');
}

.dna-icon-trash,
.dna-icon-trash-alt {
    -webkit-mask-image: url('/img/icons/cinematic/commerce/trash.svg');
    mask-image: url('/img/icons/cinematic/commerce/trash.svg');
}

.dna-icon-thumbs-up {
    -webkit-mask-image: url('/img/icons/reports/actions/thumbs-up.svg');
    mask-image: url('/img/icons/reports/actions/thumbs-up.svg');
}

.dna-icon-redo {
    -webkit-mask-image: url('/img/icons/reports/actions/redo.svg');
    mask-image: url('/img/icons/reports/actions/redo.svg');
}

.dna-icon-bolt {
    -webkit-mask-image: url('/img/icons/reports/actions/bolt.svg');
    mask-image: url('/img/icons/reports/actions/bolt.svg');
}

.dna-icon-tools {
    -webkit-mask-image: url('/img/icons/reports/actions/tools.svg');
    mask-image: url('/img/icons/reports/actions/tools.svg');
}

.dna-icon-tags {
    -webkit-mask-image: url('/img/icons/reports/actions/tags.svg');
    mask-image: url('/img/icons/reports/actions/tags.svg');
}

/* ==========================================================================
   Status/Ranking Icons
   ========================================================================== */

.dna-icon-crown {
    -webkit-mask-image: url('/img/icons/reports/status/crown.svg');
    mask-image: url('/img/icons/reports/status/crown.svg');
}

.dna-icon-trophy {
    -webkit-mask-image: url('/img/icons/reports/status/trophy.svg');
    mask-image: url('/img/icons/reports/status/trophy.svg');
}

.dna-icon-exclamation-triangle,
.dna-icon-warning {
    -webkit-mask-image: url('/img/icons/reports/status/exclamation-triangle.svg');
    mask-image: url('/img/icons/reports/status/exclamation-triangle.svg');
}

.dna-icon-ruler {
    -webkit-mask-image: url('/img/icons/reports/status/ruler.svg');
    mask-image: url('/img/icons/reports/status/ruler.svg');
}

.dna-icon-graduation-cap {
    -webkit-mask-image: url('/img/icons/reports/status/graduation-cap.svg');
    mask-image: url('/img/icons/reports/status/graduation-cap.svg');
}

.dna-icon-medal {
    -webkit-mask-image: url('/img/icons/reports/status/medal.svg');
    mask-image: url('/img/icons/reports/status/medal.svg');
}

/* ==========================================================================
   History/Cultural Icons
   ========================================================================== */

.dna-icon-calendar,
.dna-icon-calendar-alt {
    -webkit-mask-image: url('/img/icons/reports/history/calendar-alt.svg');
    mask-image: url('/img/icons/reports/history/calendar-alt.svg');
}

.dna-icon-calendar-check {
    -webkit-mask-image: url('/img/icons/reports/history/calendar-check.svg');
    mask-image: url('/img/icons/reports/history/calendar-check.svg');
}

.dna-icon-landmark {
    -webkit-mask-image: url('/img/icons/reports/history/landmark.svg');
    mask-image: url('/img/icons/reports/history/landmark.svg');
}

.dna-icon-monument {
    -webkit-mask-image: url('/img/icons/reports/history/monument.svg');
    mask-image: url('/img/icons/reports/history/monument.svg');
}

.dna-icon-mosque {
    -webkit-mask-image: url('/img/icons/reports/history/mosque.svg');
    mask-image: url('/img/icons/reports/history/mosque.svg');
}

.dna-icon-history {
    -webkit-mask-image: url('/img/icons/reports/history/history.svg');
    mask-image: url('/img/icons/reports/history/history.svg');
}

.dna-icon-venus {
    -webkit-mask-image: url('/img/icons/reports/history/venus.svg');
    mask-image: url('/img/icons/reports/history/venus.svg');
}

.dna-icon-mars {
    -webkit-mask-image: url('/img/icons/reports/history/mars.svg');
    mask-image: url('/img/icons/reports/history/mars.svg');
}

.dna-icon-shield,
.dna-icon-shield-alt {
    -webkit-mask-image: url('/img/icons/reports/history/shield-alt.svg');
    mask-image: url('/img/icons/reports/history/shield-alt.svg');
}

.dna-icon-ship {
    -webkit-mask-image: url('/img/icons/reports/history/ship.svg');
    mask-image: url('/img/icons/reports/history/ship.svg');
}

/* ==========================================================================
   Existing Cinematic Icons (aliases for convenience)
   ========================================================================== */

.dna-icon-dna {
    -webkit-mask-image: url('/img/icons/cinematic/science/dna.svg');
    mask-image: url('/img/icons/cinematic/science/dna.svg');
}

.dna-icon-brain {
    -webkit-mask-image: url('/img/icons/cinematic/science/brain.svg');
    mask-image: url('/img/icons/cinematic/science/brain.svg');
}

.dna-icon-headset {
    -webkit-mask-image: url('/img/icons/reports/status/headset.svg');
    mask-image: url('/img/icons/reports/status/headset.svg');
}

.dna-icon-calendar-plus {
    -webkit-mask-image: url('/img/icons/reports/history/calendar-plus.svg');
    mask-image: url('/img/icons/reports/history/calendar-plus.svg');
}

.dna-icon-chart-pie {
    -webkit-mask-image: url('/img/icons/cinematic/science/chart-pie.svg');
    mask-image: url('/img/icons/cinematic/science/chart-pie.svg');
}

.dna-icon-star {
    -webkit-mask-image: url('/img/icons/cinematic/core/star.svg');
    mask-image: url('/img/icons/cinematic/core/star.svg');
}

.dna-icon-chevron-down {
    -webkit-mask-image: url('/img/icons/cinematic/core/chevron-down.svg');
    mask-image: url('/img/icons/cinematic/core/chevron-down.svg');
}

.dna-icon-check {
    -webkit-mask-image: url('/img/icons/cinematic/core/check.svg');
    mask-image: url('/img/icons/cinematic/core/check.svg');
}

.dna-icon-check-circle {
    -webkit-mask-image: url('/img/icons/cinematic/core/check-circle.svg');
    mask-image: url('/img/icons/cinematic/core/check-circle.svg');
}

.dna-icon-clock {
    -webkit-mask-image: url('/img/icons/cinematic/time/clock.svg');
    mask-image: url('/img/icons/cinematic/time/clock.svg');
}

.dna-icon-hourglass,
.dna-icon-hourglass-half {
    -webkit-mask-image: url('/img/icons/cinematic/time/hourglass.svg');
    mask-image: url('/img/icons/cinematic/time/hourglass.svg');
}

.dna-icon-lock {
    -webkit-mask-image: url('/img/icons/cinematic/security/lock.svg');
    mask-image: url('/img/icons/cinematic/security/lock.svg');
}

.dna-icon-globe {
    -webkit-mask-image: url('/img/icons/cinematic/features/globe.svg');
    mask-image: url('/img/icons/cinematic/features/globe.svg');
}

.dna-icon-globe-europe {
    -webkit-mask-image: url('/img/icons/cinematic/features/globe-europe.svg');
    mask-image: url('/img/icons/cinematic/features/globe-europe.svg');
}

.dna-icon-user {
    -webkit-mask-image: url('/img/icons/cinematic/traits/user.svg');
    mask-image: url('/img/icons/cinematic/traits/user.svg');
}

.dna-icon-user-shield,
.dna-icon-user-check {
    -webkit-mask-image: url('/img/icons/cinematic/security/user-check.svg');
    mask-image: url('/img/icons/cinematic/security/user-check.svg');
}

.dna-icon-users {
    -webkit-mask-image: url('/img/icons/cinematic/traits/users.svg');
    mask-image: url('/img/icons/cinematic/traits/users.svg');
}

.dna-icon-download {
    -webkit-mask-image: url('/img/icons/cinematic/actions/download.svg');
    mask-image: url('/img/icons/cinematic/actions/download.svg');
}

.dna-icon-scroll,
.dna-icon-book-open {
    -webkit-mask-image: url('/img/icons/cinematic/documents/scroll.svg');
    mask-image: url('/img/icons/cinematic/documents/scroll.svg');
}

.dna-icon-microscope {
    -webkit-mask-image: url('/img/icons/cinematic/science/microscope.svg');
    mask-image: url('/img/icons/cinematic/science/microscope.svg');
}

.dna-icon-flask {
    -webkit-mask-image: url('/img/icons/cinematic/science/flask.svg');
    mask-image: url('/img/icons/cinematic/science/flask.svg');
}

.dna-icon-upload {
    -webkit-mask-image: url('/img/icons/cinematic/actions/upload.svg');
    mask-image: url('/img/icons/cinematic/actions/upload.svg');
}

.dna-icon-database {
    -webkit-mask-image: url('/img/icons/megamenu/database.svg');
    mask-image: url('/img/icons/megamenu/database.svg');
}

.dna-icon-sitemap {
    -webkit-mask-image: url('/img/icons/reports/data/sitemap.svg');
    mask-image: url('/img/icons/reports/data/sitemap.svg');
}

.dna-icon-calculator {
    -webkit-mask-image: url('/img/icons/megamenu/calculator.svg');
    mask-image: url('/img/icons/megamenu/calculator.svg');
}

/* ==========================================================================
   Additional Icons for Reports
   ========================================================================== */

.dna-icon-wind {
    -webkit-mask-image: url('/img/icons/reports/history/wind.svg');
    mask-image: url('/img/icons/reports/history/wind.svg');
}

.dna-icon-gem {
    -webkit-mask-image: url('/img/icons/reports/status/gem.svg');
    mask-image: url('/img/icons/reports/status/gem.svg');
}

.dna-icon-palette {
    -webkit-mask-image: url('/img/icons/reports/history/palette.svg');
    mask-image: url('/img/icons/reports/history/palette.svg');
}

.dna-icon-language {
    -webkit-mask-image: url('/img/icons/reports/data/language.svg');
    mask-image: url('/img/icons/reports/data/language.svg');
}

.dna-icon-external-link,
.dna-icon-external-link-alt {
    -webkit-mask-image: url('/img/icons/reports/actions/external-link.svg');
    mask-image: url('/img/icons/reports/actions/external-link.svg');
}

.dna-icon-comment {
    -webkit-mask-image: url('/img/icons/reports/data/comment.svg');
    mask-image: url('/img/icons/reports/data/comment.svg');
}

.dna-icon-table {
    -webkit-mask-image: url('/img/icons/reports/data/table.svg');
    mask-image: url('/img/icons/reports/data/table.svg');
}

.dna-icon-equals {
    -webkit-mask-image: url('/img/icons/reports/data/equals.svg');
    mask-image: url('/img/icons/reports/data/equals.svg');
}

.dna-icon-puzzle-piece {
    -webkit-mask-image: url('/img/icons/reports/data/puzzle-piece.svg');
    mask-image: url('/img/icons/reports/data/puzzle-piece.svg');
}

.dna-icon-tag {
    -webkit-mask-image: url('/img/icons/reports/data/tag.svg');
    mask-image: url('/img/icons/reports/data/tag.svg');
}

.dna-icon-quote {
    -webkit-mask-image: url('/img/icons/cinematic/core/quote.svg');
    mask-image: url('/img/icons/cinematic/core/quote.svg');
}

.dna-icon-quote-left {
    -webkit-mask-image: url('/img/icons/reports/data/quote-left.svg');
    mask-image: url('/img/icons/reports/data/quote-left.svg');
}

.dna-icon-sword {
    -webkit-mask-image: url('/img/icons/reports/history/sword.svg');
    mask-image: url('/img/icons/reports/history/sword.svg');
}

.dna-icon-home {
    -webkit-mask-image: url('/img/icons/reports/navigation/home.svg');
    mask-image: url('/img/icons/reports/navigation/home.svg');
}

.dna-icon-undo {
    -webkit-mask-image: url('/img/icons/reports/actions/undo.svg');
    mask-image: url('/img/icons/reports/actions/undo.svg');
}

.dna-icon-percentage {
    -webkit-mask-image: url('/img/icons/reports/data/percentage.svg');
    mask-image: url('/img/icons/reports/data/percentage.svg');
}

.dna-icon-award {
    -webkit-mask-image: url('/img/icons/reports/status/award.svg');
    mask-image: url('/img/icons/reports/status/award.svg');
}

.dna-icon-layer-group {
    -webkit-mask-image: url('/img/icons/reports/data/layer-group.svg');
    mask-image: url('/img/icons/reports/data/layer-group.svg');
}

.dna-icon-skull {
    -webkit-mask-image: url('/img/icons/reports/history/skull.svg');
    mask-image: url('/img/icons/reports/history/skull.svg');
}

.dna-icon-fire {
    -webkit-mask-image: url('/img/icons/reports/status/fire.svg');
    mask-image: url('/img/icons/reports/status/fire.svg');
}

.dna-icon-snowflake {
    -webkit-mask-image: url('/img/icons/reports/geography/snowflake.svg');
    mask-image: url('/img/icons/reports/geography/snowflake.svg');
}

.dna-icon-link {
    -webkit-mask-image: url('/img/icons/reports/data/link.svg');
    mask-image: url('/img/icons/reports/data/link.svg');
}

.dna-icon-heartbeat {
    -webkit-mask-image: url('/img/icons/reports/status/heartbeat.svg');
    mask-image: url('/img/icons/reports/status/heartbeat.svg');
}

.dna-icon-bone {
    -webkit-mask-image: url('/img/icons/reports/history/bone.svg');
    mask-image: url('/img/icons/reports/history/bone.svg');
}

.dna-icon-shield-virus {
    -webkit-mask-image: url('/img/icons/reports/status/shield-virus.svg');
    mask-image: url('/img/icons/reports/status/shield-virus.svg');
}

.dna-icon-fingerprint {
    -webkit-mask-image: url('/img/icons/reports/data/fingerprint.svg');
    mask-image: url('/img/icons/reports/data/fingerprint.svg');
}

.dna-icon-vial {
    -webkit-mask-image: url('/img/icons/reports/data/vial.svg');
    mask-image: url('/img/icons/reports/data/vial.svg');
}

.dna-icon-heart {
    -webkit-mask-image: url('/img/icons/reports/status/heart.svg');
    mask-image: url('/img/icons/reports/status/heart.svg');
}

.dna-icon-times-circle {
    -webkit-mask-image: url('/img/icons/reports/data/times-circle.svg');
    mask-image: url('/img/icons/reports/data/times-circle.svg');
}

.dna-icon-book {
    -webkit-mask-image: url('/img/icons/reports/data/book.svg');
    mask-image: url('/img/icons/reports/data/book.svg');
}

.dna-icon-star-of-david {
    -webkit-mask-image: url('/img/icons/megamenu/jewish-ancestry.svg');
    mask-image: url('/img/icons/megamenu/jewish-ancestry.svg');
}

.dna-icon-chart-area {
    -webkit-mask-image: url('/img/icons/reports/data/chart-area.svg');
    mask-image: url('/img/icons/reports/data/chart-area.svg');
}

.dna-icon-map-pin {
    -webkit-mask-image: url('/img/icons/reports/geography/map-pin.svg');
    mask-image: url('/img/icons/reports/geography/map-pin.svg');
}

.dna-icon-campground {
    -webkit-mask-image: url('/img/icons/reports/history/campground.svg');
    mask-image: url('/img/icons/reports/history/campground.svg');
}

.dna-icon-seedling {
    -webkit-mask-image: url('/img/icons/reports/history/seedling.svg');
    mask-image: url('/img/icons/reports/history/seedling.svg');
}

.dna-icon-bell {
    -webkit-mask-image: url('/img/icons/reports/history/bell.svg');
    mask-image: url('/img/icons/reports/history/bell.svg');
}

.dna-icon-hammer {
    -webkit-mask-image: url('/img/icons/reports/history/hammer.svg');
    mask-image: url('/img/icons/reports/history/hammer.svg');
}

.dna-icon-gem {
    -webkit-mask-image: url('/img/icons/reports/data/gem.svg');
    mask-image: url('/img/icons/reports/data/gem.svg');
}

.dna-icon-chess-rook {
    -webkit-mask-image: url('/img/icons/reports/history/chess-rook.svg');
    mask-image: url('/img/icons/reports/history/chess-rook.svg');
}

.dna-icon-ruler-combined {
    -webkit-mask-image: url('/img/icons/reports/data/ruler-combined.svg');
    mask-image: url('/img/icons/reports/data/ruler-combined.svg');
}

.dna-icon-dice {
    -webkit-mask-image: url('/img/icons/reports/data/dice.svg');
    mask-image: url('/img/icons/reports/data/dice.svg');
}

.dna-icon-arrow-left {
    -webkit-mask-image: url('/img/icons/reports/navigation/arrow-left.svg');
    mask-image: url('/img/icons/reports/navigation/arrow-left.svg');
}

.dna-icon-calendar {
    -webkit-mask-image: url('/img/icons/reports/history/calendar-alt.svg');
    mask-image: url('/img/icons/reports/history/calendar-alt.svg');
}

.dna-icon-download {
    -webkit-mask-image: url('/img/icons/reports/actions/download.svg');
    mask-image: url('/img/icons/reports/actions/download.svg');
}

.dna-icon-star {
    -webkit-mask-image: url('/img/icons/reports/data/star.svg');
    mask-image: url('/img/icons/reports/data/star.svg');
}

.dna-icon-users {
    -webkit-mask-image: url('/img/icons/reports/data/users.svg');
    mask-image: url('/img/icons/reports/data/users.svg');
}

.dna-icon-flask {
    -webkit-mask-image: url('/img/icons/reports/data/flask.svg');
    mask-image: url('/img/icons/reports/data/flask.svg');
}

.dna-icon-hourglass {
    -webkit-mask-image: url('/img/icons/reports/data/hourglass.svg');
    mask-image: url('/img/icons/reports/data/hourglass.svg');
}

.dna-icon-user-circle {
    -webkit-mask-image: url('/img/icons/reports/data/user-circle.svg');
    mask-image: url('/img/icons/reports/data/user-circle.svg');
}

.dna-icon-appearance {
    -webkit-mask-image: url('/img/icons/megamenu/appearance.svg');
    mask-image: url('/img/icons/megamenu/appearance.svg');
}

/* Alias: shield points to shield-alt */
.dna-icon-shield {
    -webkit-mask-image: url('/img/icons/reports/history/shield-alt.svg');
    mask-image: url('/img/icons/reports/history/shield-alt.svg');
}

.dna-icon-clock {
    -webkit-mask-image: url('/img/icons/reports/data/clock.svg');
    mask-image: url('/img/icons/reports/data/clock.svg');
}

.dna-icon-check-circle {
    -webkit-mask-image: url('/img/icons/reports/data/check-circle.svg');
    mask-image: url('/img/icons/reports/data/check-circle.svg');
}

.dna-icon-lock {
    -webkit-mask-image: url('/img/icons/reports/actions/lock.svg');
    mask-image: url('/img/icons/reports/actions/lock.svg');
}

.dna-icon-shopping-cart {
    -webkit-mask-image: url('/img/icons/reports/actions/shopping-cart.svg');
    mask-image: url('/img/icons/reports/actions/shopping-cart.svg');
}

.dna-icon-water {
    -webkit-mask-image: url('/img/icons/reports/data/water.svg');
    mask-image: url('/img/icons/reports/data/water.svg');
}

.dna-icon-umbrella-beach {
    -webkit-mask-image: url('/img/icons/reports/data/umbrella-beach.svg');
    mask-image: url('/img/icons/reports/data/umbrella-beach.svg');
}

.dna-icon-chart-pie {
    -webkit-mask-image: url('/img/icons/reports/data/chart-pie.svg');
    mask-image: url('/img/icons/reports/data/chart-pie.svg');
}

.dna-icon-sync {
    -webkit-mask-image: url('/img/icons/reports/actions/sync.svg');
    mask-image: url('/img/icons/reports/actions/sync.svg');
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

/* Rotate icons */
.dna-icon-rotate-90 {
    transform: rotate(90deg);
}

.dna-icon-rotate-180 {
    transform: rotate(180deg);
}

.dna-icon-rotate-270 {
    transform: rotate(270deg);
}

/* Flip icons */
.dna-icon-flip-horizontal {
    transform: scaleX(-1);
}

.dna-icon-flip-vertical {
    transform: scaleY(-1);
}

/* Pulse animation for emphasis */
.dna-icon-pulse {
    animation: dna-icon-pulse 1s ease-in-out infinite;
}

@keyframes dna-icon-pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

/* Spin animation (for loading states - prefer FA spinners but this is available) */
.dna-icon-spin {
    animation: dna-icon-spin 1s linear infinite;
}

@keyframes dna-icon-spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

/* ==========================================================================
   Spacing Helpers (to replace mr-1, mr-2 patterns)
   ========================================================================== */

.dna-icon-mr-1 {
    margin-right: 0.25rem;
}

.dna-icon-mr-2 {
    margin-right: 0.5rem;
}

.dna-icon-ml-1 {
    margin-left: 0.25rem;
}

.dna-icon-ml-2 {
    margin-left: 0.5rem;
}

/* ==========================================================================
   Color Override Classes (for special cases)
   ========================================================================== */

/* Explicit white color */
.dna-icon-white {
    background-color: #ffffff;
}

/* Explicit dark color */
.dna-icon-dark {
    background-color: #1a1a2e;
}

/* Gold/Accent color */
.dna-icon-gold {
    background-color: #c9a430;
}

/* Success/Green color */
.dna-icon-success {
    background-color: #28a745;
}

/* Warning/Yellow color */
.dna-icon-warning {
    background-color: #ffc107;
}

/* Danger/Red color */
.dna-icon-danger {
    background-color: #dc3545;
}

/* Info/Blue color */
.dna-icon-info {
    background-color: #17a2b8;
}

/* Muted/Subdued appearance */
.dna-icon-muted {
    opacity: 0.6;
}

/* ==========================================================================
   Additional Icons for Ancient Composition Report
   ========================================================================== */

.dna-icon-play-circle {
    -webkit-mask-image: url('/img/icons/reports/actions/play-circle.svg');
    mask-image: url('/img/icons/reports/actions/play-circle.svg');
}

.dna-icon-tree {
    -webkit-mask-image: url('/img/icons/reports/geography/tree.svg');
    mask-image: url('/img/icons/reports/geography/tree.svg');
}

.dna-icon-horse {
    -webkit-mask-image: url('/img/icons/reports/history/horse.svg');
    mask-image: url('/img/icons/reports/history/horse.svg');
}

.dna-icon-helmet-battle {
    -webkit-mask-image: url('/img/icons/reports/history/helmet-battle.svg');
    mask-image: url('/img/icons/reports/history/helmet-battle.svg');
}

.dna-icon-columns {
    -webkit-mask-image: url('/img/icons/reports/history/columns.svg');
    mask-image: url('/img/icons/reports/history/columns.svg');
}

.dna-icon-not-equal {
    -webkit-mask-image: url('/img/icons/reports/data/not-equal.svg');
    mask-image: url('/img/icons/reports/data/not-equal.svg');
}

.dna-icon-infinity {
    -webkit-mask-image: url('/img/icons/cinematic/time/infinity.svg');
    mask-image: url('/img/icons/cinematic/time/infinity.svg');
}

.dna-icon-sync-alt {
    -webkit-mask-image: url('/img/icons/reports/actions/sync.svg');
    mask-image: url('/img/icons/reports/actions/sync.svg');
}

/* ==========================================================================
   Additional Icons for Modal Drawers and Timelines
   ========================================================================== */

.dna-icon-cogs {
    -webkit-mask-image: url('/img/icons/cinematic/features/cogs.svg');
    mask-image: url('/img/icons/cinematic/features/cogs.svg');
}

.dna-icon-plus-circle {
    -webkit-mask-image: url('/img/icons/reports/actions/plus-circle.svg');
    mask-image: url('/img/icons/reports/actions/plus-circle.svg');
}

.dna-icon-handshake {
    -webkit-mask-image: url('/img/icons/reports/data/handshake.svg');
    mask-image: url('/img/icons/reports/data/handshake.svg');
}

.dna-icon-pray {
    -webkit-mask-image: url('/img/icons/reports/history/pray.svg');
    mask-image: url('/img/icons/reports/history/pray.svg');
}

.dna-icon-chain {
    -webkit-mask-image: url('/img/icons/reports/history/chain.svg');
    mask-image: url('/img/icons/reports/history/chain.svg');
}

.dna-icon-circle {
    -webkit-mask-image: url('/img/icons/reports/status/circle.svg');
    mask-image: url('/img/icons/reports/status/circle.svg');
}

/* ==========================================================================
   Shared Roots Feature Icons
   ========================================================================== */

.dna-icon-ancient-connections {
    -webkit-mask-image: url('/img/icons/reports/data/ancient-connections.svg');
    mask-image: url('/img/icons/reports/data/ancient-connections.svg');
}

.dna-icon-civilization-spotlight {
    -webkit-mask-image: url('/img/icons/reports/history/civilization-spotlight.svg');
    mask-image: url('/img/icons/reports/history/civilization-spotlight.svg');
}

.dna-icon-visual-timeline {
    -webkit-mask-image: url('/img/icons/reports/history/visual-timeline.svg');
    mask-image: url('/img/icons/reports/history/visual-timeline.svg');
}

.dna-icon-chromosome-heatmap {
    -webkit-mask-image: url('/img/icons/reports/data/chromosome-heatmap.svg');
    mask-image: url('/img/icons/reports/data/chromosome-heatmap.svg');
}

.dna-icon-ancestry-flow {
    -webkit-mask-image: url('/img/icons/reports/data/ancestry-flow.svg');
    mask-image: url('/img/icons/reports/data/ancestry-flow.svg');
}

.dna-icon-geographic-narrative {
    -webkit-mask-image: url('/img/icons/reports/geography/geographic-narrative.svg');
    mask-image: url('/img/icons/reports/geography/geographic-narrative.svg');
}

.dna-icon-haplogroup-connections {
    -webkit-mask-image: url('/img/icons/reports/data/haplogroup-connections.svg');
    mask-image: url('/img/icons/reports/data/haplogroup-connections.svg');
}

.dna-icon-ai-insights {
    -webkit-mask-image: url('/img/icons/reports/data/ai-insights.svg');
    mask-image: url('/img/icons/reports/data/ai-insights.svg');
}

/* ---------- Navigation: arrow-up ---------- */
.dna-icon-arrow-up {
    -webkit-mask-image: url('/img/icons/reports/navigation/arrow-up.svg');
    mask-image: url('/img/icons/reports/navigation/arrow-up.svg');
}

/* ---------- Navigation: chevron-right (cinematic) ---------- */
.dna-icon-chevron-right {
    -webkit-mask-image: url('/img/icons/cinematic/core/chevron-right.svg');
    mask-image: url('/img/icons/cinematic/core/chevron-right.svg');
}

/* ---------- Data: hashtag ---------- */
.dna-icon-hashtag {
    -webkit-mask-image: url('/img/icons/reports/data/hashtag.svg');
    mask-image: url('/img/icons/reports/data/hashtag.svg');
}

/* ---------- Data: font ---------- */
.dna-icon-font {
    -webkit-mask-image: url('/img/icons/reports/data/font.svg');
    mask-image: url('/img/icons/reports/data/font.svg');
}

/* ---------- Data: object-group ---------- */
.dna-icon-object-group {
    -webkit-mask-image: url('/img/icons/reports/data/object-group.svg');
    mask-image: url('/img/icons/reports/data/object-group.svg');
}

/* ---------- Actions: sliders-h ---------- */
.dna-icon-sliders-h {
    -webkit-mask-image: url('/img/icons/reports/actions/sliders-h.svg');
    mask-image: url('/img/icons/reports/actions/sliders-h.svg');
}

/* ---------- Actions: check-double ---------- */
.dna-icon-check-double {
    -webkit-mask-image: url('/img/icons/reports/actions/check-double.svg');
    mask-image: url('/img/icons/reports/actions/check-double.svg');
}

/* ---------- Actions: edit ---------- */
.dna-icon-edit {
    -webkit-mask-image: url('/img/icons/reports/actions/edit.svg');
    mask-image: url('/img/icons/reports/actions/edit.svg');
}

/* ---------- Geography: map ---------- */
.dna-icon-map {
    -webkit-mask-image: url('/img/icons/reports/geography/map.svg');
    mask-image: url('/img/icons/reports/geography/map.svg');
}

/* ---------- Status: wifi ---------- */
.dna-icon-wifi {
    -webkit-mask-image: url('/img/icons/reports/status/wifi.svg');
    mask-image: url('/img/icons/reports/status/wifi.svg');
}

/* ---------- Actions: play (cinematic) ---------- */
.dna-icon-play {
    -webkit-mask-image: url('/img/icons/cinematic/actions/play.svg');
    mask-image: url('/img/icons/cinematic/actions/play.svg');
}

/* ---------- Science: crosshairs (cinematic) ---------- */
.dna-icon-crosshairs {
    -webkit-mask-image: url('/img/icons/cinematic/science/crosshairs.svg');
    mask-image: url('/img/icons/cinematic/science/crosshairs.svg');
}

/* ---------- Data: envelope ---------- */
.dna-icon-envelope {
    -webkit-mask-image: url('/img/icons/reports/data/envelope.svg');
    mask-image: url('/img/icons/reports/data/envelope.svg');
}

/* ---------- Data: phone ---------- */
.dna-icon-phone {
    -webkit-mask-image: url('/img/icons/reports/data/phone.svg');
    mask-image: url('/img/icons/reports/data/phone.svg');
}

/* ---------- Actions: key ---------- */
.dna-icon-key {
    -webkit-mask-image: url('/img/icons/reports/actions/key.svg');
    mask-image: url('/img/icons/reports/actions/key.svg');
}

/* ---------- Data: desktop ---------- */
.dna-icon-desktop {
    -webkit-mask-image: url('/img/icons/reports/data/desktop.svg');
    mask-image: url('/img/icons/reports/data/desktop.svg');
}

/* ---------- Features: cube (cinematic) ---------- */
.dna-icon-cube {
    -webkit-mask-image: url('/img/icons/cinematic/features/cube.svg');
    mask-image: url('/img/icons/cinematic/features/cube.svg');
}

/* ---------- Data: file-alt ---------- */
.dna-icon-file-alt {
    -webkit-mask-image: url('/img/icons/reports/data/file-alt.svg');
    mask-image: url('/img/icons/reports/data/file-alt.svg');
}

/* ---------- Geography: flag ---------- */
.dna-icon-flag {
    -webkit-mask-image: url('/img/icons/reports/geography/flag.svg');
    mask-image: url('/img/icons/reports/geography/flag.svg');
}

/* ---------- Data: cubes ---------- */
.dna-icon-cubes {
    -webkit-mask-image: url('/img/icons/reports/data/cubes.svg');
    mask-image: url('/img/icons/reports/data/cubes.svg');
}

/* ---------- Data: user-tag ---------- */
.dna-icon-user-tag {
    -webkit-mask-image: url('/img/icons/reports/data/user-tag.svg');
    mask-image: url('/img/icons/reports/data/user-tag.svg');
}

/* ---------- Data: book-reader ---------- */
.dna-icon-book-reader {
    -webkit-mask-image: url('/img/icons/reports/data/book-reader.svg');
    mask-image: url('/img/icons/reports/data/book-reader.svg');
}

/* ---------- Status: exclamation-circle ---------- */
.dna-icon-exclamation-circle {
    -webkit-mask-image: url('/img/icons/reports/status/exclamation-circle.svg');
    mask-image: url('/img/icons/reports/status/exclamation-circle.svg');
}

/* ---------- Navigation: th (grid) ---------- */
.dna-icon-th {
    -webkit-mask-image: url('/img/icons/reports/navigation/th.svg');
    mask-image: url('/img/icons/reports/navigation/th.svg');
}

/* ==========================================================================
   G25 Studio Icons
   ========================================================================== */

/* ---------- Navigation: chevron-left ---------- */
.dna-icon-chevron-left {
    -webkit-mask-image: url('/img/icons/cinematic/core/chevron-left.svg');
    mask-image: url('/img/icons/cinematic/core/chevron-left.svg');
}

/* ---------- Navigation: arrows-alt-h ---------- */
.dna-icon-arrows-alt-h {
    -webkit-mask-image: url('/img/icons/reports/navigation/arrows-alt-h.svg');
    mask-image: url('/img/icons/reports/navigation/arrows-alt-h.svg');
}

/* ---------- Actions: rocket ---------- */
.dna-icon-rocket {
    -webkit-mask-image: url('/img/icons/reports/actions/rocket.svg');
    mask-image: url('/img/icons/reports/actions/rocket.svg');
}

/* ---------- Actions: gift ---------- */
.dna-icon-gift {
    -webkit-mask-image: url('/img/icons/reports/actions/gift.svg');
    mask-image: url('/img/icons/reports/actions/gift.svg');
}

/* ---------- Actions: coins ---------- */
.dna-icon-coins {
    -webkit-mask-image: url('/img/icons/reports/actions/coins.svg');
    mask-image: url('/img/icons/reports/actions/coins.svg');
}

/* ---------- Actions: thumbs-down ---------- */
.dna-icon-thumbs-down {
    -webkit-mask-image: url('/img/icons/reports/actions/thumbs-down.svg');
    mask-image: url('/img/icons/reports/actions/thumbs-down.svg');
}

/* ---------- Data: image ---------- */
.dna-icon-image {
    -webkit-mask-image: url('/img/icons/reports/data/image.svg');
    mask-image: url('/img/icons/reports/data/image.svg');
}

/* ---------- Data: circle-nodes ---------- */
.dna-icon-circle-nodes {
    -webkit-mask-image: url('/img/icons/reports/data/circle-nodes.svg');
    mask-image: url('/img/icons/reports/data/circle-nodes.svg');
}

/* ---------- Data: arrow-up-right-dots ---------- */
.dna-icon-arrow-up-right-dots {
    -webkit-mask-image: url('/img/icons/reports/data/arrow-up-right-dots.svg');
    mask-image: url('/img/icons/reports/data/arrow-up-right-dots.svg');
}

/* ---------- Data: poll-h ---------- */
.dna-icon-poll-h {
    -webkit-mask-image: url('/img/icons/reports/data/poll-h.svg');
    mask-image: url('/img/icons/reports/data/poll-h.svg');
}

/* ---------- Actions: cog ---------- */
.dna-icon-cog {
    -webkit-mask-image: url('/img/icons/reports/actions/cog.svg');
    mask-image: url('/img/icons/reports/actions/cog.svg');
}

/* ---------- Actions: eraser ---------- */
.dna-icon-eraser {
    -webkit-mask-image: url('/img/icons/reports/actions/eraser.svg');
    mask-image: url('/img/icons/reports/actions/eraser.svg');
}

/* ---------- Actions: copy ---------- */
.dna-icon-copy {
    -webkit-mask-image: url('/img/icons/reports/actions/copy.svg');
    mask-image: url('/img/icons/reports/actions/copy.svg');
}

/* ---------- Actions: camera ---------- */
.dna-icon-camera {
    -webkit-mask-image: url('/img/icons/reports/actions/camera.svg');
    mask-image: url('/img/icons/reports/actions/camera.svg');
}

/* ---------- Actions: paste ---------- */
.dna-icon-paste {
    -webkit-mask-image: url('/img/icons/reports/actions/paste.svg');
    mask-image: url('/img/icons/reports/actions/paste.svg');
}

/* ---------- Actions: folder-open ---------- */
.dna-icon-folder-open {
    -webkit-mask-image: url('/img/icons/reports/actions/folder-open.svg');
    mask-image: url('/img/icons/reports/actions/folder-open.svg');
}

/* ---------- Actions: check-square ---------- */
.dna-icon-check-square {
    -webkit-mask-image: url('/img/icons/reports/actions/check-square.svg');
    mask-image: url('/img/icons/reports/actions/check-square.svg');
}

/* ---------- Actions: exchange-alt ---------- */
.dna-icon-exchange-alt {
    -webkit-mask-image: url('/img/icons/reports/actions/exchange-alt.svg');
    mask-image: url('/img/icons/reports/actions/exchange-alt.svg');
}

/* ---------- Actions: hand-paper ---------- */
.dna-icon-hand-paper {
    -webkit-mask-image: url('/img/icons/reports/actions/hand-paper.svg');
    mask-image: url('/img/icons/reports/actions/hand-paper.svg');
}

/* ---------- Actions: vector-square ---------- */
.dna-icon-vector-square {
    -webkit-mask-image: url('/img/icons/reports/actions/vector-square.svg');
    mask-image: url('/img/icons/reports/actions/vector-square.svg');
}

/* ---------- Actions: draw-polygon ---------- */
.dna-icon-draw-polygon {
    -webkit-mask-image: url('/img/icons/reports/actions/draw-polygon.svg');
    mask-image: url('/img/icons/reports/actions/draw-polygon.svg');
}

/* ---------- Actions: mouse-pointer ---------- */
.dna-icon-mouse-pointer {
    -webkit-mask-image: url('/img/icons/reports/actions/mouse-pointer.svg');
    mask-image: url('/img/icons/reports/actions/mouse-pointer.svg');
}

/* ---------- Actions: compress-arrows-alt ---------- */
.dna-icon-compress-arrows-alt {
    -webkit-mask-image: url('/img/icons/reports/actions/compress-arrows-alt.svg');
    mask-image: url('/img/icons/reports/actions/compress-arrows-alt.svg');
}

/* ---------- Actions: expand-arrows-alt ---------- */
.dna-icon-expand-arrows-alt {
    -webkit-mask-image: url('/img/icons/reports/actions/expand-arrows-alt.svg');
    mask-image: url('/img/icons/reports/actions/expand-arrows-alt.svg');
}

/* ---------- Data: code ---------- */
.dna-icon-code {
    -webkit-mask-image: url('/img/icons/reports/data/code.svg');
    mask-image: url('/img/icons/reports/data/code.svg');
}

/* ---------- Data: list-ol ---------- */
.dna-icon-list-ol {
    -webkit-mask-image: url('/img/icons/reports/data/list-ol.svg');
    mask-image: url('/img/icons/reports/data/list-ol.svg');
}

/* ---------- Data: utensils ---------- */
.dna-icon-utensils {
    -webkit-mask-image: url('/img/icons/reports/data/utensils.svg');
    mask-image: url('/img/icons/reports/data/utensils.svg');
}

/* ---------- Data: ghost ---------- */
.dna-icon-ghost {
    -webkit-mask-image: url('/img/icons/reports/data/ghost.svg');
    mask-image: url('/img/icons/reports/data/ghost.svg');
}

/* ---------- Data: id-badge ---------- */
.dna-icon-id-badge {
    -webkit-mask-image: url('/img/icons/reports/data/id-badge.svg');
    mask-image: url('/img/icons/reports/data/id-badge.svg');
}

/* ---------- Data: hat-wizard ---------- */
.dna-icon-hat-wizard {
    -webkit-mask-image: url('/img/icons/reports/data/hat-wizard.svg');
    mask-image: url('/img/icons/reports/data/hat-wizard.svg');
}

/* ---------- Data: bezier-curve ---------- */
.dna-icon-bezier-curve {
    -webkit-mask-image: url('/img/icons/reports/data/bezier-curve.svg');
    mask-image: url('/img/icons/reports/data/bezier-curve.svg');
}

/* ---------- Data: atom ---------- */
.dna-icon-atom {
    -webkit-mask-image: url('/img/icons/reports/data/atom.svg');
    mask-image: url('/img/icons/reports/data/atom.svg');
}

/* ---------- Data: microchip ---------- */
.dna-icon-microchip {
    -webkit-mask-image: url('/img/icons/reports/data/microchip.svg');
    mask-image: url('/img/icons/reports/data/microchip.svg');
}

/* ---------- Data: ruler-horizontal ---------- */
.dna-icon-ruler-horizontal {
    -webkit-mask-image: url('/img/icons/reports/data/ruler-horizontal.svg');
    mask-image: url('/img/icons/reports/data/ruler-horizontal.svg');
}

/* ---------- Data: arrows-alt ---------- */
.dna-icon-arrows-alt {
    -webkit-mask-image: url('/img/icons/reports/data/arrows-alt.svg');
    mask-image: url('/img/icons/reports/data/arrows-alt.svg');
}

/* ---------- History: flag-checkered ---------- */
.dna-icon-flag-checkered {
    -webkit-mask-image: url('/img/icons/reports/history/flag-checkered.svg');
    mask-image: url('/img/icons/reports/history/flag-checkered.svg');
}

/* ---------- Navigation: search-plus ---------- */
.dna-icon-search-plus {
    -webkit-mask-image: url('/img/icons/reports/navigation/search-plus.svg');
    mask-image: url('/img/icons/reports/navigation/search-plus.svg');
}

/* ---------- Data: bullseye ---------- */
.dna-icon-bullseye {
    -webkit-mask-image: url('/img/icons/reports/data/bullseye.svg');
    mask-image: url('/img/icons/reports/data/bullseye.svg');
}

/* ---------- Actions: user-edit ---------- */
.dna-icon-user-edit {
    -webkit-mask-image: url('/img/icons/reports/actions/user-edit.svg');
    mask-image: url('/img/icons/reports/actions/user-edit.svg');
}

/* ---------- Data: id-card ---------- */
.dna-icon-id-card {
    -webkit-mask-image: url('/img/icons/reports/data/id-card.svg');
    mask-image: url('/img/icons/reports/data/id-card.svg');
}

/* ---------- Data: ticket ---------- */
.dna-icon-ticket {
    -webkit-mask-image: url('/img/icons/reports/data/ticket.svg');
    mask-image: url('/img/icons/reports/data/ticket.svg');
}

/* ---------- Actions: box ---------- */
.dna-icon-box {
    -webkit-mask-image: url('/img/icons/reports/actions/box.svg');
    mask-image: url('/img/icons/reports/actions/box.svg');
}

/* ---------- Actions: box-open ---------- */
.dna-icon-box-open {
    -webkit-mask-image: url('/img/icons/reports/actions/box-open.svg');
    mask-image: url('/img/icons/reports/actions/box-open.svg');
}

/* ---------- Data: receipt ---------- */
.dna-icon-receipt {
    -webkit-mask-image: url('/img/icons/reports/data/receipt.svg');
    mask-image: url('/img/icons/reports/data/receipt.svg');
}

/* ---------- Data: tachometer ---------- */
.dna-icon-tachometer {
    -webkit-mask-image: url('/img/icons/reports/data/tachometer.svg');
    mask-image: url('/img/icons/reports/data/tachometer.svg');
}

/* ---------- Actions: sign-out ---------- */
.dna-icon-sign-out {
    -webkit-mask-image: url('/img/icons/reports/actions/sign-out.svg');
    mask-image: url('/img/icons/reports/actions/sign-out.svg');
}

/* ---------- Data: percent (alias for percentage) ---------- */
.dna-icon-percent {
    -webkit-mask-image: url('/img/icons/reports/data/percentage.svg');
    mask-image: url('/img/icons/reports/data/percentage.svg');
}

/* ---------- Data: info (plain, no circle) ---------- */
.dna-icon-info {
    -webkit-mask-image: url('/img/icons/reports/data/info.svg');
    mask-image: url('/img/icons/reports/data/info.svg');
}

/* ---------- Data: facebook ---------- */
.dna-icon-facebook {
    -webkit-mask-image: url('/img/icons/reports/data/facebook.svg');
    mask-image: url('/img/icons/reports/data/facebook.svg');
}

/* ---------- Ancient Americas stepped pyramid ---------- */
.dna-icon-ancient-americas {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-americas.svg');
    mask-image: url('/img/icons/megamenu/ancient-americas.svg');
}

.dna-icon-ancient-near-east {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-near-east.svg');
    mask-image: url('/img/icons/megamenu/ancient-near-east.svg');
}

.dna-icon-ancient-southeast-asia-oceania {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-southeast-asia-oceania.svg');
    mask-image: url('/img/icons/megamenu/ancient-southeast-asia-oceania.svg');
}

.dna-icon-ancient-balkans-southeast-europe {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-balkans-southeast-europe.svg');
    mask-image: url('/img/icons/megamenu/ancient-balkans-southeast-europe.svg');
}

.dna-icon-ancient-central-europe {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-central-europe.svg');
    mask-image: url('/img/icons/megamenu/ancient-central-europe.svg');
}

.dna-icon-ancient-western-europe {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-western-europe.svg');
    mask-image: url('/img/icons/megamenu/ancient-western-europe.svg');
}

.dna-icon-ancient-eastern-europe-baltic {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-eastern-europe-baltic.svg');
    mask-image: url('/img/icons/megamenu/ancient-eastern-europe-baltic.svg');
}

.dna-icon-fish {
    -webkit-mask-image: url('/img/icons/reports/history/fish.svg');
    mask-image: url('/img/icons/reports/history/fish.svg');
}

.dna-icon-church {
    -webkit-mask-image: url('/img/icons/reports/history/church.svg');
    mask-image: url('/img/icons/reports/history/church.svg');
}

.dna-icon-yurt {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-central-asia.svg');
    mask-image: url('/img/icons/megamenu/ancient-central-asia.svg');
}

.dna-icon-outrigger {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-southeast-asia-oceania.svg');
    mask-image: url('/img/icons/megamenu/ancient-southeast-asia-oceania.svg');
}

.dna-icon-runestone {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-scandinavia-germanic.svg');
    mask-image: url('/img/icons/megamenu/ancient-scandinavia-germanic.svg');
}

.dna-icon-sun {
    -webkit-mask-image: url('/img/icons/reports/status/sun.svg');
    mask-image: url('/img/icons/reports/status/sun.svg');
}

.dna-icon-horse-head {
    -webkit-mask-image: url('/img/icons/reports/history/horse-head.svg');
    mask-image: url('/img/icons/reports/history/horse-head.svg');
}

.dna-icon-chess {
    -webkit-mask-image: url('/img/icons/reports/status/chess.svg');
    mask-image: url('/img/icons/reports/status/chess.svg');
}

/* ========================================
   British Islands Culture Icons
   ======================================== */
.dna-icon-bell-beaker {
    -webkit-mask-image: url('/img/icons/british-islands/bell-beaker.svg');
    mask-image: url('/img/icons/british-islands/bell-beaker.svg');
}

.dna-icon-megalithic {
    -webkit-mask-image: url('/img/icons/british-islands/megalithic.svg');
    mask-image: url('/img/icons/british-islands/megalithic.svg');
}

.dna-icon-anglo-saxon {
    -webkit-mask-image: url('/img/icons/british-islands/anglo-saxon.svg');
    mask-image: url('/img/icons/british-islands/anglo-saxon.svg');
}

.dna-icon-viking-norse {
    -webkit-mask-image: url('/img/icons/british-islands/viking-norse.svg');
    mask-image: url('/img/icons/british-islands/viking-norse.svg');
}

.dna-icon-romano-british {
    -webkit-mask-image: url('/img/icons/british-islands/romano-british.svg');
    mask-image: url('/img/icons/british-islands/romano-british.svg');
}

.dna-icon-celtic-iron-age {
    -webkit-mask-image: url('/img/icons/british-islands/celtic-iron-age.svg');
    mask-image: url('/img/icons/british-islands/celtic-iron-age.svg');
}

/* ========================================
   Additional Report Icons
   ======================================== */
.dna-icon-leaf {
    -webkit-mask-image: url('/img/icons/reports/history/leaf.svg');
    mask-image: url('/img/icons/reports/history/leaf.svg');
}

.dna-icon-images {
    -webkit-mask-image: url('/img/icons/reports/data/images.svg');
    mask-image: url('/img/icons/reports/data/images.svg');
}

.dna-icon-paint-brush {
    -webkit-mask-image: url('/img/icons/reports/actions/paint-brush.svg');
    mask-image: url('/img/icons/reports/actions/paint-brush.svg');
}

.dna-icon-book-medical {
    -webkit-mask-image: url('/img/icons/reports/data/book-medical.svg');
    mask-image: url('/img/icons/reports/data/book-medical.svg');
}

/* ========================================
   Megamenu Icons
   ======================================== */

/* Ancestry Core */
.dna-icon-ancestry-dna {
    -webkit-mask-image: url('/img/icons/megamenu/ancestry-dna.svg');
    mask-image: url('/img/icons/megamenu/ancestry-dna.svg');
}

.dna-icon-maternal-lineage {
    -webkit-mask-image: url('/img/icons/megamenu/maternal-lineage.svg');
    mask-image: url('/img/icons/megamenu/maternal-lineage.svg');
}

.dna-icon-paternal-lineage {
    -webkit-mask-image: url('/img/icons/megamenu/paternal-lineage.svg');
    mask-image: url('/img/icons/megamenu/paternal-lineage.svg');
}

.dna-icon-ancient-origins {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-origins.svg');
    mask-image: url('/img/icons/megamenu/ancient-origins.svg');
}

.dna-icon-world-map {
    -webkit-mask-image: url('/img/icons/megamenu/world-map.svg');
    mask-image: url('/img/icons/megamenu/world-map.svg');
}

.dna-icon-deep-ancestry {
    -webkit-mask-image: url('/img/icons/megamenu/deep-ancestry.svg');
    mask-image: url('/img/icons/megamenu/deep-ancestry.svg');
}

.dna-icon-shared-roots {
    -webkit-mask-image: url('/img/icons/megamenu/shared-roots.svg');
    mask-image: url('/img/icons/megamenu/shared-roots.svg');
}

/* Ancestry Deep */
.dna-icon-deep-prehistoric {
    -webkit-mask-image: url('/img/icons/megamenu/deep-prehistoric.svg');
    mask-image: url('/img/icons/megamenu/deep-prehistoric.svg');
}

.dna-icon-deep-historic {
    -webkit-mask-image: url('/img/icons/megamenu/deep-historic.svg');
    mask-image: url('/img/icons/megamenu/deep-historic.svg');
}

.dna-icon-modern-connections {
    -webkit-mask-image: url('/img/icons/megamenu/modern-connections.svg');
    mask-image: url('/img/icons/megamenu/modern-connections.svg');
}

.dna-icon-hla-analysis {
    -webkit-mask-image: url('/img/icons/megamenu/hla-analysis.svg');
    mask-image: url('/img/icons/megamenu/hla-analysis.svg');
}

.dna-icon-migration-path {
    -webkit-mask-image: url('/img/icons/megamenu/migration-path.svg');
    mask-image: url('/img/icons/megamenu/migration-path.svg');
}

.dna-icon-dna-low-coverage {
    -webkit-mask-image: url('/img/icons/megamenu/dna-low-coverage.svg');
    mask-image: url('/img/icons/megamenu/dna-low-coverage.svg');
}

.dna-icon-x-chromosome {
    -webkit-mask-image: url('/img/icons/megamenu/x-chromosome.svg');
    mask-image: url('/img/icons/megamenu/x-chromosome.svg');
}

.dna-icon-hgdp-global {
    -webkit-mask-image: url('/img/icons/megamenu/hgdp-global.svg');
    mask-image: url('/img/icons/megamenu/hgdp-global.svg');
}

/* Ancestry Specialized (regional) */
.dna-icon-british-islands {
    -webkit-mask-image: url('/img/icons/megamenu/british-islands.svg');
    mask-image: url('/img/icons/megamenu/british-islands.svg');
}

.dna-icon-iberian {
    -webkit-mask-image: url('/img/icons/megamenu/iberian.svg');
    mask-image: url('/img/icons/megamenu/iberian.svg');
}

.dna-icon-ancient-italy {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-italy.svg');
    mask-image: url('/img/icons/megamenu/ancient-italy.svg');
}

.dna-icon-ancient-south-asia {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-south-asia.svg');
    mask-image: url('/img/icons/megamenu/ancient-south-asia.svg');
}

.dna-icon-ancient-east-asia {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-east-asia.svg');
    mask-image: url('/img/icons/megamenu/ancient-east-asia.svg');
}

.dna-icon-ancient-scandinavia-germanic {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-scandinavia-germanic.svg');
    mask-image: url('/img/icons/megamenu/ancient-scandinavia-germanic.svg');
}

.dna-icon-ancient-central-asia {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-central-asia.svg');
    mask-image: url('/img/icons/megamenu/ancient-central-asia.svg');
}

.dna-icon-ancient-sub-saharan-africa {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-sub-saharan-africa.svg');
    mask-image: url('/img/icons/megamenu/ancient-sub-saharan-africa.svg');
}

.dna-icon-ancient-near-east {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-near-east.svg');
    mask-image: url('/img/icons/megamenu/ancient-near-east.svg');
}

.dna-icon-ancient-southeast-asia-oceania {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-southeast-asia-oceania.svg');
    mask-image: url('/img/icons/megamenu/ancient-southeast-asia-oceania.svg');
}

.dna-icon-ancient-balkans-southeast-europe {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-balkans-southeast-europe.svg');
    mask-image: url('/img/icons/megamenu/ancient-balkans-southeast-europe.svg');
}

.dna-icon-ancient-americas {
    -webkit-mask-image: url('/img/icons/megamenu/ancient-americas.svg');
    mask-image: url('/img/icons/megamenu/ancient-americas.svg');
}

/* Ancestry Specialized (thematic) */
.dna-icon-celtic {
    -webkit-mask-image: url('/img/icons/megamenu/celtic.svg');
    mask-image: url('/img/icons/megamenu/celtic.svg');
}

.dna-icon-denisovan {
    -webkit-mask-image: url('/img/icons/megamenu/denisovan.svg');
    mask-image: url('/img/icons/megamenu/denisovan.svg');
}

.dna-icon-farmer-hunter {
    -webkit-mask-image: url('/img/icons/megamenu/farmer-hunter.svg');
    mask-image: url('/img/icons/megamenu/farmer-hunter.svg');
}

.dna-icon-neanderthal {
    -webkit-mask-image: url('/img/icons/megamenu/neanderthal.svg');
    mask-image: url('/img/icons/megamenu/neanderthal.svg');
}

.dna-icon-viking {
    -webkit-mask-image: url('/img/icons/megamenu/viking.svg');
    mask-image: url('/img/icons/megamenu/viking.svg');
}

.dna-icon-jewish-ancestry {
    -webkit-mask-image: url('/img/icons/megamenu/jewish-ancestry.svg');
    mask-image: url('/img/icons/megamenu/jewish-ancestry.svg');
}

.dna-icon-shared-modern-origins {
    -webkit-mask-image: url('/img/icons/megamenu/modern-connections.svg');
    mask-image: url('/img/icons/megamenu/modern-connections.svg');
}

/* Studio / Tools */
.dna-icon-g25-studio {
    -webkit-mask-image: url('/img/icons/megamenu/g25-studio.svg');
    mask-image: url('/img/icons/megamenu/g25-studio.svg');
}

.dna-icon-dna-tools {
    -webkit-mask-image: url('/img/icons/megamenu/dna-tools.svg');
    mask-image: url('/img/icons/megamenu/dna-tools.svg');
}

.dna-icon-file-converter {
    -webkit-mask-image: url('/img/icons/megamenu/file-converter.svg');
    mask-image: url('/img/icons/megamenu/file-converter.svg');
}

.dna-icon-imputation {
    -webkit-mask-image: url('/img/icons/megamenu/imputation.svg');
    mask-image: url('/img/icons/megamenu/imputation.svg');
}

.dna-icon-phasing {
    -webkit-mask-image: url('/img/icons/megamenu/phasing.svg');
    mask-image: url('/img/icons/megamenu/phasing.svg');
}

.dna-icon-specialized-report {
    -webkit-mask-image: url('/img/icons/megamenu/specialized-report.svg');
    mask-image: url('/img/icons/megamenu/specialized-report.svg');
}

/* Traits / Research */
.dna-icon-traits {
    -webkit-mask-image: url('/img/icons/megamenu/traits.svg');
    mask-image: url('/img/icons/megamenu/traits.svg');
}

.dna-icon-blood-type {
    -webkit-mask-image: url('/img/icons/megamenu/blood-type.svg');
    mask-image: url('/img/icons/megamenu/blood-type.svg');
}

.dna-icon-dna-matches {
    -webkit-mask-image: url('/img/icons/megamenu/dna-matches.svg');
    mask-image: url('/img/icons/megamenu/dna-matches.svg');
}

.dna-icon-ai-assistant {
    -webkit-mask-image: url('/img/icons/megamenu/ai-assistant.svg');
    mask-image: url('/img/icons/megamenu/ai-assistant.svg');
}

.dna-icon-podcast {
    -webkit-mask-image: url('/img/icons/megamenu/podcast.svg');
    mask-image: url('/img/icons/megamenu/podcast.svg');
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .dna-icon {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
