/**
 * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 *
 * Population Atlas adaptations of the Historical Atlas foundation and profile components.
 */
.pat-page {
    padding-top: calc(var(--nav-height, 72px) + 8px);
    padding-bottom: 5rem;
    overflow-x: clip;
    color-scheme: dark;
}

.pat-page a { text-underline-offset: .2em; }
.pat-page :focus-visible { outline: 2px solid var(--hat-gold-light); outline-offset: 4px; }
.pat-page [hidden] { display: none !important; }
.pat-page .hat-kicker { color: var(--hat-gold-light); }
.pat-page .hat-button { font-family: inherit; cursor: pointer; }
.pat-page .hat-text-link { min-height: 44px; }
.pat-page .hat-region-filter { min-height: 44px; text-decoration: none; }
.pat-page .hat-button:hover,
.pat-page .hat-button:focus,
.pat-page .hat-collection-card:hover { transform: none; }

.pat-directory-hero { min-height: 560px; }
.pat-directory-hero .hat-hero__content { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.pat-directory-hero h1 { max-width: 1050px; font-size: clamp(2.8rem, 6vw, 5.65rem); }
.pat-directory-hero .hat-statbar { margin-top: 2.5rem; }
.pat-directory-section { padding-top: 4.5rem; padding-bottom: 0; scroll-margin-top: 100px; }

.pat-preview {
    margin: .25rem 0 1.25rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--hat-border-strong);
    border-left: 3px solid var(--hat-gold);
    background: #252217;
    color: var(--hat-text);
    font-size: .92rem;
    line-height: 1.65;
}

.pat-toolbar {
    margin-bottom: 1.5rem;
    padding: 1.5rem;
    border: 1px solid var(--hat-border);
    border-radius: 10px;
    background: #121813;
}

.pat-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    align-items: end;
    gap: 1rem;
}

.pat-filters > div { min-width: 0; }
.pat-filters label { display: block; margin-bottom: .45rem; color: var(--hat-text); font-size: .82rem; font-weight: 700; }
.pat-filters .pat-search { grid-column: 1 / -1; }
.pat-filters .pat-search input { padding-right: 1rem; }
.pat-filters input::placeholder { color: var(--hat-muted); }
.pat-filters select {
    width: 100%;
    min-height: 48px;
    padding: .7rem .65rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 6px;
    background: #0c110e;
    color: var(--hat-text);
    font: inherit;
    font-size: .94rem;
}

.pat-filter-actions { display: flex; align-items: center; gap: 1rem; }
.pat-reset { display: inline-flex; min-height: 48px; align-items: center; font-size: .9rem; }
.pat-regions { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--hat-border); }
.pat-regions [aria-current="page"] { border-color: var(--hat-gold); background: var(--hat-gold); color: #19150b; }
.pat-results-status { margin: 0 0 1.25rem; color: var(--hat-muted); font-size: .9rem; }
.pat-empty { margin: 0 0 1.5rem; }
.pat-profile-card h3 { margin: .25rem 0 .85rem; font-size: clamp(1.5rem, 2vw, 1.85rem); line-height: 1.2; }
.pat-profile-card h3 a { color: var(--hat-text); text-decoration: none; }
.pat-profile-card h3 a:hover { color: var(--hat-gold-light); text-decoration: underline; }
.pat-profile-card > p { display: block; min-height: 0; overflow: visible; }
.pat-page .pat-profile-card__meta { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
.pat-profile-card__meta dd { display: block; overflow: visible; }
.pat-evidence-note { margin-top: 2.5rem; }
.pat-evidence-note > .dna-icon { flex: 0 0 auto; margin-top: .2rem; color: var(--hat-gold-light); font-size: 1.5rem; }
.pat-evidence-note strong { color: var(--hat-text); }
.pat-evidence-note p { margin: .4rem 0; }

.pat-profile-header { padding-top: 1.75rem; padding-bottom: 2.75rem; }
.pat-profile-header .hat-profile-hero__grid { align-items: start; gap: 3rem; }
.pat-profile-header h1 { margin-top: .9rem; margin-bottom: 1.5rem; }
.pat-profile-header h1 span { color: var(--hat-gold-light); }
.pat-profile-header .hat-kicker { display: flex; }
.pat-back { display: inline-flex; min-height: 44px; align-items: center; gap: .5rem; margin-bottom: 1.5rem; font-size: .88rem; }
.pat-profile-meta { margin: 1.25rem 0 0; color: var(--hat-muted); font-size: .88rem; }
.pat-name-note { margin: 1rem 0 0; color: var(--hat-muted); font-size: .82rem !important; }
.pat-boundary {
    margin-top: 1.75rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--hat-border);
    border-left: 3px solid var(--hat-gold);
    background: var(--hat-bg-raised);
    color: var(--hat-text-soft);
    font-size: .92rem;
    line-height: 1.7;
}
.pat-boundary--hold { background: #252217; }
.pat-page .pat-contents { top: var(--nav-height, 72px); z-index: 800; }
.pat-contents .container { gap: 1.5rem; }
.pat-contents a { min-height: 48px; display: inline-flex; align-items: center; }
.pat-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 285px;
    gap: 3rem;
    align-items: start;
}
.pat-prose { min-width: 0; }
.pat-context-column { min-width: 0; padding-top: 3rem; align-self: stretch; }
.pat-context-stack { position: sticky; top: calc(var(--nav-height, 72px) + 90px); }
.pat-reading-note { margin-bottom: 1.5rem; }
.pat-reading-note h2 { font-size: 1.35rem; }
.pat-reading-note p { line-height: 1.75; }
.pat-reading-note li { margin: .5rem 0; }
.pat-reading-note a { line-height: 1.6; }
.pat-section {
    padding: 3rem 0;
    border-bottom: 1px solid var(--hat-border);
    scroll-margin-top: calc(var(--nav-height, 72px) + 5rem);
}
.pat-section > h2 { margin: 0 0 1.35rem; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.pat-prose p { margin: 1rem 0; font-size: 1.04rem; line-height: 1.85; }
.pat-citations { display: inline; font-size: .75rem; white-space: normal; }
.pat-citations a { display: inline-block; padding: 0 3px; overflow-wrap: anywhere; }
.pat-timeline { margin-top: 1.75rem; }
.pat-timeline .hat-timeline__content p { margin: .45rem 0 0; }
.pat-study,
.pat-chart {
    padding: 1.5rem;
    margin: 1.5rem 0 0;
    border: 1px solid var(--hat-border);
    border-top: 3px solid var(--hat-gold);
    background: var(--hat-bg-card);
}
.pat-study h3,
.pat-chart h3 { margin: 0 0 1rem; font-size: 1.4rem; line-height: 1.3; }
.pat-study p,
.pat-chart p { font-size: .96rem; }
.pat-study-facts { display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: .75rem 1.25rem; margin: 1.5rem 0; font-size: .9rem; }
.pat-study-facts dt { color: var(--hat-gold-light); font-weight: 600; }
.pat-study-facts dd { margin: 0; color: var(--hat-text-soft); line-height: 1.7; overflow-wrap: anywhere; }
.pat-chart-canvas { position: relative; height: 320px; margin: 1.5rem 0; }
.pat-table-wrap { max-width: 100%; overflow: auto; }
.pat-data-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.pat-data-table caption { caption-side: top; padding: 1rem 0; color: var(--hat-text); font-weight: 600; }
.pat-data-table th,
.pat-data-table td { padding: .85rem .75rem; border-bottom: 1px solid var(--hat-border); color: var(--hat-text-soft); text-align: left; }
.pat-data-table thead { background: var(--hat-bg); }
.pat-data-table thead th { color: var(--hat-gold-light); }
.pat-map { isolation: isolate; height: 380px; margin: 1.5rem 0; border: 1px solid var(--hat-border); background: #111814; color-scheme: light; }
.pat-map .leaflet-popup-content { color: #18251e; font-family: "Source Sans 3", sans-serif; }
.pat-map .leaflet-popup-content p { color: #34483b; font-size: .9rem; }
.pat-map .leaflet-control-attribution a { color: #174d44; }
.pat-location-list { padding-left: 1.25rem; }
.pat-location-list li { padding-left: .35rem; margin: 1rem 0; color: var(--hat-text-soft); line-height: 1.8; }
.pat-location-list li::marker { color: var(--hat-gold); }
.pat-sources { padding-left: 1.4rem; margin-bottom: 0; }
.pat-sources li { padding: 1.5rem .5rem; border-top: 1px solid var(--hat-border); scroll-margin-top: calc(var(--nav-height, 72px) + 5rem); }
.pat-sources li:first-child { border-top: 0; }
.pat-sources li::marker { color: var(--hat-gold-light); }
.pat-sources h3 { margin: .65rem 0; font-size: 1.15rem; line-height: 1.4; overflow-wrap: anywhere; }
.pat-sources p { margin-bottom: 0; font-size: .88rem; overflow-wrap: anywhere; }
.pat-eyebrow { display: block; color: var(--hat-gold-light); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pat-prose .pat-verification { color: var(--hat-gold-light); }
.pat-footer-note { padding: 1.5rem; margin-top: 2rem; border: 1px solid var(--hat-border); background: var(--hat-bg-raised); color: var(--hat-text-soft); font-size: .88rem; line-height: 1.8; }
.pat-footer-note details { margin-top: 1rem; }
.pat-footer-note summary { color: var(--hat-gold-light); cursor: pointer; }
.pat-footer-note p { font-size: .88rem; }
.pat-method-nav > a { display: block; padding: .8rem 0; border-bottom: 1px solid var(--hat-border); font-size: .94rem; }
.pat-method-nav > a:last-child { border-bottom: 0; }
.pat-page--methodology .pat-context-stack { top: calc(var(--nav-height, 72px) + 24px); }

@media (max-width: 1199.98px) {
    .pat-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pat-filter-actions { grid-column: 1 / -1; }
    .pat-article-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 2rem; }
}

@media (max-width: 991.98px) {
    .pat-profile-header .hat-profile-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .pat-profile-header .hat-name-card { max-width: 720px; }
    .pat-article-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .pat-context-column { padding-top: 2rem; }
    .pat-context-stack { position: static; }
    .pat-page--methodology .pat-context-column { grid-row: 1; }
    .pat-method-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 1rem 1.25rem; }
    .pat-method-nav > .dna-icon { display: none; }
    .pat-method-nav h2 { flex: 0 0 100%; font-size: 1.2rem; margin: 0; }
    .pat-method-nav > a { padding: .65rem 0; border-bottom: 0; }
}

@media (max-width: 767.98px) {
    .pat-directory-hero { min-height: auto; }
    .pat-directory-hero .hat-hero__content { padding-top: 2.5rem; padding-bottom: 2.5rem; }
    .pat-directory-hero h1 { font-size: clamp(2.6rem, 10vw, 4.2rem); }
    .pat-directory-section { padding-top: 3rem; }
    .pat-toolbar { padding: 1rem; }
    .pat-filters { grid-template-columns: minmax(0, 1fr); }
    .pat-filter-actions { gap: 1.25rem; }
    .pat-filter-actions .hat-button { width: auto; flex: 1; }
    .pat-profile-header { padding-top: 1.25rem; padding-bottom: 2rem; }
    .pat-profile-header h1 { font-size: clamp(2.4rem, 10vw, 4.2rem); overflow-wrap: anywhere; }
    .pat-profile-header .hat-back-link { margin-bottom: 1.25rem; }
    .pat-section { padding: 2.25rem 0; }
    .pat-study,
    .pat-chart { padding: 1.1rem; }
    .pat-study-facts { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
    .pat-study-facts dd { margin-bottom: .75rem; }
    .pat-chart-canvas { height: 280px; }
    .pat-map { height: 300px; }
    .pat-context-column { padding-top: 1.5rem; }
    .pat-boundary { padding: 1rem; }
    .pat-footer-note { padding: 1rem; }
}

@media print {
    .pat-page { padding: 0; color-scheme: light; }
    .pat-page,
    .pat-page .hat-profile-hero,
    .pat-page .hat-hero,
    .pat-page .hat-name-card,
    .pat-page .hat-collection-card,
    .pat-study,
    .pat-chart,
    .pat-boundary,
    .pat-footer-note { background: #fff; color: #111; box-shadow: none; }
    .pat-page h1,
    .pat-page h2,
    .pat-page h3,
    .pat-page p,
    .pat-page a,
    .pat-page dt,
    .pat-page dd,
    .pat-page span,
    .pat-page time,
    .pat-page th,
    .pat-page td,
    .pat-page caption,
    .pat-page .hat-hero__lead { color: #111 !important; }
    .pat-preview,
    .pat-toolbar,
    .pat-contents,
    .pat-context-column,
    .pat-back,
    .pat-chart-canvas,
    .pat-map,
    .pat-page .hat-text-link,
    .pat-page .hat-statbar { display: none; }
    .pat-article-layout,
    .pat-directory { display: block; }
    .pat-profile-header,
    .pat-directory-hero .hat-hero__content { padding: 1rem 0; }
    .pat-page .hat-profile-hero__grid { display: block; }
    .pat-profile-header h1,
    .pat-directory-hero h1 { font-size: 2.5rem; }
    .pat-section { padding: 1.5rem 0; }
    .pat-study,
    .pat-chart { break-inside: avoid; }
    .pat-footer-note details > p { display: block; }
    .pat-data-table thead { background: #eee; }
}
