/**
 * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 *
 * Heritage styling for the grouped dashboard pages.
 */

.heritage-dashboard.hd-page {
    --dbc-text-light: var(--hd-ink);
    --dbc-text-light-muted: var(--hd-muted);
    --dbc-text-dark: var(--hd-ink);
    --dbc-text-muted: var(--hd-muted);
    --dbc-font-serif: var(--hd-serif);
    --dbc-font-sans: var(--hd-sans);
    --dashboard-anchor-offset: calc(var(--nav-height, 72px) + 96px);
    min-height: 100vh;
    font-family: var(--hd-sans);
    padding-top: calc(var(--nav-height, 72px) + 8px);
}

.heritage-dashboard .hd-container { padding-top: 8px; }
.heritage-dashboard .hd-btn { min-height: 44px; }
.heritage-dashboard .hd-hero__card { min-width: 0; }
.heritage-dashboard .dashboard-stats dd { text-align: right; overflow-wrap: anywhere; }
.heritage-dashboard .hd-eyebrow { color: #806735; }

.dashboard-stats { margin: 16px 0; }
.dashboard-stats > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-top: 1px solid var(--hd-border);
}
.dashboard-stats dt { color: var(--hd-muted); font-size: 0.88rem; font-weight: 500; }
.dashboard-stats dd { margin: 0; color: var(--hd-forest); font-size: 1.25rem; font-weight: 600; }

.heritage-dashboard .dbc-section {
    margin-bottom: 48px;
    scroll-margin-top: var(--dashboard-anchor-offset);
}
.heritage-dashboard .dbc-section-header { margin-bottom: 24px; gap: 0; }
.heritage-dashboard .dbc-section-content { min-width: 0; }
.heritage-dashboard .dbc-section-label {
    padding: 0;
    margin-bottom: 8px;
    border: 0;
    background: none;
    box-shadow: none;
    color: #526b5a;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
}
.heritage-dashboard .dbc-section-title {
    padding-bottom: 0;
    margin-bottom: 8px;
    font-family: var(--hd-serif);
    font-size: clamp(1.75rem, 3.5vw, 2.25rem);
    font-weight: 500;
    color: var(--hd-charcoal);
}
.heritage-dashboard .dbc-section-desc { max-width: 65ch; color: var(--hd-muted); font-size: 0.95rem; }
.heritage-dashboard .dbc-section-marker,
.heritage-dashboard .dbc-section-title::after,
.heritage-dashboard .dbc-section::before,
.heritage-dashboard #featured-reports::before,
.heritage-dashboard .dbc-category::before { display: none; }

.heritage-dashboard .dbc-category,
.heritage-dashboard .dbc-category:hover {
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    transform: none;
    overflow: visible;
}
.heritage-dashboard .dbc-category-header {
    gap: 16px;
    padding-bottom: 12px;
    margin-bottom: 20px;
    border-color: var(--hd-border);
}
.heritage-dashboard .dbc-category-title-wrap { min-width: 0; gap: 12px; }
.heritage-dashboard .dbc-category-icon {
    flex-shrink: 0;
    background: var(--hd-sage);
    color: var(--hd-forest);
    border: 0;
    box-shadow: none;
    border-radius: 10px;
}
.heritage-dashboard .dbc-category-title { color: var(--hd-ink); font-size: 1.2rem; font-weight: 500; }
.heritage-dashboard .dbc-category-count {
    flex-shrink: 0;
    background: var(--hd-sand);
    color: var(--hd-ink);
    border: 0;
    border-radius: 999px;
    backdrop-filter: none;
}
.heritage-dashboard .dbc-featured-grid,
.heritage-dashboard .dbc-compact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 0;
}

/* The shared tile partials keep their routes and lock badges. Their artwork
   becomes a separate media area above the white report content on this page. */
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual),
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual):hover {
    justify-content: flex-start;
    min-height: 0;
    aspect-ratio: auto;
    padding: 0;
    border: 1px solid var(--hd-border);
    border-radius: var(--hd-radius);
    background: var(--hd-surface);
    color: var(--hd-ink);
    box-shadow: none;
    transform: none;
    transition: border-color 0.2s ease;
}
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual):hover { border-color: var(--hd-sand-strong); }
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual)::before,
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual)::after { display: none; }
.heritage-dashboard :is(.dbc-card-featured-bg, .dbc-card-visual-bg),
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual):hover :is(.dbc-card-featured-bg, .dbc-card-visual-bg) {
    position: relative;
    inset: auto;
    flex-shrink: 0;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: var(--hd-cream);
    filter: none;
    transform: none;
    transition: none;
}
.heritage-dashboard :is(.dbc-card-featured-content, .dbc-card-visual-content) { flex: 1; padding: 20px; }
.heritage-dashboard :is(.dbc-card-featured-title, .dbc-card-visual-title) {
    color: var(--hd-charcoal);
    font-family: var(--hd-serif);
    font-size: 1.5rem;
    font-weight: 600;
    text-shadow: none;
}
.heritage-dashboard :is(.dbc-card-featured-desc, .dbc-card-visual-desc) {
    display: block;
    color: var(--hd-muted);
    font-size: 0.9rem;
    line-height: 1.6;
    overflow: visible;
    -webkit-line-clamp: unset;
    text-shadow: none;
}
.heritage-dashboard .dbc-card-featured-era,
.heritage-dashboard .dbc-card-visual-badge {
    background: var(--hd-sage);
    color: var(--hd-forest);
    border: 0;
    backdrop-filter: none;
    letter-spacing: 0.04em;
}
.heritage-dashboard .dbc-card-visual-badge { padding: 8px 10px; }
.heritage-dashboard :is(.dbc-card-featured-arrow, .dbc-card-visual-arrow),
.heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual):hover :is(.dbc-card-featured-arrow, .dbc-card-visual-arrow) {
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--hd-forest);
    backdrop-filter: none;
    transform: none;
}
.heritage-dashboard .dbc-badge {
    border: 1px solid var(--hd-border);
    background: var(--hd-sand);
    color: var(--hd-ink);
    box-shadow: none;
}
.dashboard-empty-state { padding: 24px; border: 1px solid var(--hd-border); border-radius: 12px; color: var(--hd-muted); }

.dashboard-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 32px;
    border: 1px solid var(--hd-border);
    border-radius: var(--hd-radius);
    background: var(--hd-sand);
}
.dashboard-footer > div:first-child { flex: 1 1 400px; min-width: 0; }
.heritage-dashboard .hd-section-sub { max-width: 65ch; }

/* Sand callouts preserve each dashboard's existing actions. */
.heritage-dashboard .dbc-cta {
    padding: 28px 32px;
    margin-top: 0;
    border: 1px solid var(--hd-border);
    border-radius: var(--hd-radius);
    background: var(--hd-sand);
    box-shadow: none;
    text-align: left;
}
.heritage-dashboard .dbc-cta::before { display: none; }
.heritage-dashboard .dbc-cta-content { max-width: none; }
.heritage-dashboard .dbc-cta-title { color: var(--hd-charcoal); font-family: var(--hd-serif); font-size: 2rem; font-weight: 500; }
.heritage-dashboard .dbc-cta-desc { color: var(--hd-muted); max-width: 65ch; margin: 0 0 20px; }
.heritage-dashboard .dbc-cta-buttons { justify-content: flex-start; gap: 12px; }
.heritage-dashboard .dbc-btn,
.heritage-dashboard .dbc-btn:hover {
    min-height: 44px;
    padding: 12px 22px;
    border: 1px solid var(--hd-border);
    border-radius: 10px;
    background: var(--hd-surface);
    color: var(--hd-ink);
    box-shadow: none;
    transform: none;
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.92rem;
}
.heritage-dashboard .dbc-btn--primary,
.heritage-dashboard .dbc-btn--primary:hover { background: var(--hd-forest); border-color: var(--hd-forest); color: #fff; }
.heritage-dashboard .dbc-btn::before { display: none; }

/* G25 workflows, catalog controls, and the shared DNA tool cards. */
.heritage-dashboard :is(.g25-workflow-grid, .g25-recommended-grid, .g25-tool-grid, .g25-catalog-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.heritage-dashboard :is(.g25-workflow-card, .g25-tool-card, .g25-tool-row),
.heritage-dashboard :is(.g25-workflow-card, .g25-tool-card, .g25-tool-row):is(:hover, :focus) {
    min-height: 0;
    border: 1px solid var(--hd-border);
    border-radius: var(--hd-radius);
    background: var(--hd-surface);
    color: var(--hd-ink);
    box-shadow: none;
    transform: none;
    text-decoration: none;
}
.heritage-dashboard .g25-tool-card { flex-direction: column; }
.heritage-dashboard :is(.g25-workflow-card, .g25-tool-card)::before,
.heritage-dashboard :is(.g25-workflow-card, .g25-tool-card)::after { display: none; }
.heritage-dashboard .g25-tool-card .g25-tool-card__image,
.heritage-dashboard .g25-tool-card:is(:hover, :focus) .g25-tool-card__image {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
    background-color: var(--hd-cream);
    filter: none;
    transform: none;
}
/* Poster artwork places the headline at the top. The shared 16:9 frame stays; the crop keeps that headline. */
.heritage-dashboard--dnatools .g25-tool-card .g25-tool-card__image,
.heritage-dashboard--dnatools .g25-tool-card:is(:hover, :focus) .g25-tool-card__image {
    background-position: center top;
}
.heritage-dashboard .g25-tool-card__content { padding: 20px; flex: 1; }
.heritage-dashboard .g25-tool-card__meta { position: static; margin-bottom: 12px; gap: 12px; }
.heritage-dashboard .g25-tool-card__category,
.heritage-dashboard .g25-workflow-card__eyebrow { color: #526b5a; }
.heritage-dashboard .g25-tool-card__title,
.heritage-dashboard .g25-workflow-card__title,
.heritage-dashboard .g25-tool-row__title { color: var(--hd-charcoal); font-family: var(--hd-serif); font-size: 1.5rem; line-height: 1.2; }
.heritage-dashboard .g25-tool-card__description { display: block; overflow: visible; -webkit-line-clamp: unset; color: var(--hd-muted); line-height: 1.6; }
.heritage-dashboard .g25-workflow-card__text,
.heritage-dashboard .g25-tool-row__description { color: var(--hd-muted); }
.heritage-dashboard .g25-workflow-card__cta { color: var(--hd-forest); }
.heritage-dashboard :is(.g25-workflow-card__icon, .g25-tool-row__icon, .g25-tool-card__icon) { background: var(--hd-sage); color: var(--hd-forest); border: 0; backdrop-filter: none; }
.heritage-dashboard :is(.g25-tool-card__badge, .g25-tool-row__badge) { color: var(--hd-ink); background: var(--hd-sand); border: 0; letter-spacing: 0.03em; }
.heritage-dashboard .g25-tool-card__arrow,
.heritage-dashboard .g25-tool-card:is(:hover, :focus) .g25-tool-card__arrow { opacity: 1; transform: none; color: var(--hd-forest); background: rgba(255, 255, 255, 0.94); border: 0; backdrop-filter: none; }
.heritage-dashboard .g25-tool-card.is-hidden { display: none; }
.heritage-dashboard .g25-tool-finder { flex-wrap: wrap; background: var(--hd-surface); border-color: var(--hd-border); }
.heritage-dashboard .g25-tool-finder__search { min-width: 0; background: var(--hd-bg); border-color: var(--hd-border); color: var(--hd-forest); }
.heritage-dashboard .g25-tool-finder__search input { color: var(--hd-ink); min-width: 0; }
.heritage-dashboard .g25-tool-finder__search input::placeholder { color: var(--hd-muted); }
.heritage-dashboard .g25-filter-btn { min-height: 44px; color: var(--hd-ink); background: var(--hd-sand); border-color: var(--hd-border); }
.heritage-dashboard .g25-filter-btn:hover,
.heritage-dashboard .g25-filter-btn.active { color: #fff; background: var(--hd-forest); border-color: var(--hd-forest); }
.heritage-dashboard .g25-empty-state { background: var(--hd-surface); border-color: var(--hd-border); color: var(--hd-muted); }
.heritage-dashboard .g25-empty-state h3 { color: var(--hd-charcoal); }
.heritage-dashboard .g25-empty-state .dna-icon { color: var(--hd-forest); }

/* The older DNA Tools Studio keeps its compact, icon-based tool lists. */
.heritage-dashboard .g25-tools-grid { display: grid; gap: 0; }
.heritage-dashboard .g25-tools-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.heritage-dashboard .g25-category-title { color: var(--hd-charcoal); font-family: var(--hd-serif); font-size: 2rem; margin-bottom: 24px; }
.heritage-dashboard--dnastudio .g25-tool-card { display: flex; flex-direction: row; align-items: center; gap: 16px; padding: 20px; }
.heritage-dashboard .g25-tool-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 44px; height: 44px; border-radius: 10px; background: var(--hd-sage); color: var(--hd-forest); }
.heritage-dashboard .g25-tool-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.heritage-dashboard .g25-tool-title { color: var(--hd-ink); font-weight: 600; }
.heritage-dashboard .g25-tool-desc { color: var(--hd-muted); font-size: 0.88rem; }
.heritage-dashboard .g25-badge { padding: 4px 8px; border-radius: 999px; background: var(--hd-sand); color: var(--hd-ink); font-size: 0.68rem; }

/* Service states remain visible through their badges and border accents. */
.heritage-dashboard .msv-page { background: transparent; min-height: 0; padding: 0; }
.heritage-dashboard .msv-page::before { display: none; }
.heritage-dashboard .msv-container { max-width: none; padding: 0; }
.heritage-dashboard .msv-card,
.heritage-dashboard .msv-card:hover { background: var(--hd-surface); border-color: var(--hd-border); padding: 28px; opacity: 1; transform: none; animation: none; box-shadow: none; backdrop-filter: none; }
.heritage-dashboard .msv-card::before,
.heritage-dashboard .msv-card-icon::before { display: none; }
.heritage-dashboard .msv-card--active { border-left-color: #526b5a; }
.heritage-dashboard .msv-card--expiring { border-left-color: #9c6916; }
.heritage-dashboard .msv-card--expired { border-left-color: #777; }
.heritage-dashboard .msv-card--unlimited { border-left-color: #806735; }
.heritage-dashboard .msv-card-title { color: var(--hd-charcoal); font-family: var(--hd-serif); font-size: 1.5rem; letter-spacing: 0; text-transform: none; }
.heritage-dashboard .msv-card-desc,
.heritage-dashboard .msv-metric-detail { color: var(--hd-muted); }
.heritage-dashboard .msv-metric-value,
.heritage-dashboard .msv-metric-value i { color: var(--hd-forest); }
.heritage-dashboard .msv-metric-value span { color: var(--hd-muted); }
.heritage-dashboard .msv-card-icon { background: var(--hd-sage); box-shadow: none; }
.heritage-dashboard .msv-card-icon i { color: var(--hd-forest); }
.heritage-dashboard .msv-card-icon-svg { filter: none; }
.heritage-dashboard .msv-status { background: var(--hd-sage); color: var(--hd-forest); border-color: var(--hd-border); }
.heritage-dashboard .msv-status--expired { background: #efefed; color: #53534e; }
.heritage-dashboard .msv-status--expiring { background: #fbefcf; color: #78500c; }
.heritage-dashboard :is(.msv-status--admin, .msv-status--unlimited) { background: var(--hd-sand); color: #6d562d; }
.heritage-dashboard .msv-progress { background: var(--hd-sand); }
.heritage-dashboard .msv-progress-bar { background: var(--hd-forest); transition: none; }
.heritage-dashboard .msv-progress-bar--warning { background: #9c6916; }
.heritage-dashboard .msv-progress-bar::after { display: none; }
.heritage-dashboard .msv-card-action { min-height: 44px; color: var(--hd-forest); border-color: var(--hd-border); }
.heritage-dashboard .msv-card-action:hover { color: var(--hd-forest); }
.heritage-dashboard .dbc-bottom-nav-item .dna-icon { width: 18px; height: 18px; color: currentColor; }

.heritage-dashboard.hd-page :is(.dbc-btn, .g25-tool-card, .g25-tool-row, .g25-workflow-card, .g25-filter-btn, .msv-card-action):focus-visible,
.heritage-dashboard .g25-tool-finder__search:focus-within { outline: 2px solid var(--hd-forest); outline-offset: 3px; }
.heritage-dashboard .g25-category-title:focus { outline: 2px solid var(--hd-forest) !important; outline-offset: 3px; }

@media (max-width: 1199.98px) {
    .heritage-dashboard :is(.g25-workflow-grid, .g25-recommended-grid, .g25-tool-grid, .g25-catalog-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .heritage-dashboard :is(.g25-workflow-grid, .g25-recommended-grid, .g25-tool-grid, .g25-catalog-grid, .g25-tools-list, .msv-grid) { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .heritage-dashboard .g25-tool-finder__search { flex-basis: 100%; }
    .heritage-dashboard .g25-tool-finder__filters { justify-content: flex-start; }
    .heritage-dashboard .g25-tool-row { grid-template-columns: auto minmax(0, 1fr); }
    .heritage-dashboard .g25-tool-row__badge { grid-column: 2; justify-self: start; }
    .heritage-dashboard .msv-card { padding: 20px; }
    .heritage-dashboard .dbc-cta { padding: 24px 20px; }
}

@media (max-width: 575.98px) {
    .heritage-dashboard .dbc-cta-buttons,
    .heritage-dashboard .dbc-cta-buttons .dbc-btn { width: 100%; }
    .heritage-dashboard .dbc-cta-buttons .dbc-btn { justify-content: center; }
}

@media (max-width: 767.98px) {
    .heritage-dashboard.hd-page {
        --dashboard-anchor-offset: calc(var(--nav-height-mobile, 64px) + 24px);
        padding-top: calc(var(--nav-height-mobile, 64px) + 8px);
    }
    .heritage-dashboard .hd-container { padding-top: 0; padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
    .heritage-dashboard .dbc-section { margin-bottom: 36px; }
    .heritage-dashboard .dbc-featured-grid,
    .heritage-dashboard .dbc-compact-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .heritage-dashboard .dbc-category-header { gap: 8px; }
    .heritage-dashboard .dbc-category-title-wrap { gap: 8px; }
    .heritage-dashboard .dbc-category-title { font-size: 1.05rem; }
    .heritage-dashboard .dbc-category-count { padding: 4px 10px; font-size: 0.75rem; }
    .dashboard-footer { padding: 24px 20px; }
}

@media (max-width: 575.98px) {
    .heritage-dashboard .hd-hero__actions,
    .heritage-dashboard .hd-hero__actions .hd-btn { width: 100%; }
    .heritage-dashboard .hd-hero__actions .hd-btn { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .heritage-dashboard *, .heritage-dashboard *::before, .heritage-dashboard *::after { animation: none !important; transition: none !important; }
}

@media print {
    .heritage-dashboard.hd-page { padding-top: 0; }
    .heritage-dashboard .dashboard-section-nav, .heritage-dashboard .dbc-bottom-nav { display: none !important; }
    .heritage-dashboard .hd-container { padding-bottom: 0; }
    .heritage-dashboard :is(.dbc-card-featured, .dbc-card-visual) { break-inside: avoid; }
}
