/* Headline list styles for the /leaderboard Reports tab.
   These mirror the inline rules in templates/contents.html (.teaser-headline,
   .lead-teaser, .headline-list, .hl-kicker, .hl-headline) and are scoped under
   .lb-reports so they cannot collide. This file should become the shared
   source once the home page adopts it. */
.lb-reports .teaser-headline {
    font-family: var(--font-serif);
    font-size: var(--fs-500, 20px);
    font-weight: 700;
    margin: 0 0 var(--sp-2, 8px) 0;
}
.lb-reports .lead-teaser {
    display: block;
    text-decoration: none;
    color: var(--text-primary);
    border-top: 1px dotted var(--text-muted);
    padding-top: var(--sp-3, 12px);
}
.lb-reports .lead-teaser .teaser-headline {
    display: block;
    margin: 0;
    font-size: var(--fs-400, 16px);
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.lb-reports .headline-list {
    list-style: none;
    margin: var(--sp-3, 12px) 0 0 0;
    padding: var(--sp-3, 12px) 0 0 0;
    display: flex;
    flex-direction: column;
    gap: var(--sp-4, 16px);
    border-top: 1px dotted var(--text-muted);
}
.lb-reports .headline-list a {
    display: block;
    text-decoration: none;
    color: var(--text-primary);
}
.lb-reports .headline-list a:hover .hl-headline,
.lb-reports .lead-teaser:hover .teaser-headline {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.lb-reports .hl-kicker {
    display: block;
    font-family: var(--font-sans);
    font-size: var(--fs-100, 11px);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 2px;
}
.lb-reports .hl-headline {
    font-family: var(--font-serif);
    font-size: var(--fs-400, 16px);
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.lb-reports .hl-pending {
    font-family: var(--font-sans);
    font-size: var(--fs-300, 14px);
    color: var(--text-muted);
}
.lb-reports .lb-report-pending {
    display: block;
}

/* Rows: more space between rounds than inside one. */
.lb-reports .lb-report-rounds {
    list-style: none;
    margin: 0;
    padding: 0;
}
/* One block per report: a small-caps Lora heading (the site's section-title
   role) names the round, so reports separate at a glance; a solid rule and
   generous padding mark where each one starts. */
.lb-reports .lb-report {
    padding: var(--sp-5, 24px) 0;
    border-top: 1px solid var(--rule-color);
}
.lb-reports > .lb-report:first-child,
.lb-reports > .lb-report-rounds:first-child > .lb-report:first-child {
    border-top: none;
    padding-top: 0;
}
.lb-reports .lb-report-heading { margin: 0; }
.lb-reports .lb-report-course {
    margin: 2px 0 0 0;
    font-family: var(--font-sans);
    font-size: var(--fs-200, 12px);
    color: var(--text-secondary);
}
.lb-reports .lb-report-lead {
    display: block;
    margin-top: var(--sp-3, 12px);
    text-decoration: none;
    color: var(--text-primary);
}
.lb-reports .lb-report-lead:hover .hl-headline {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.lb-reports .lb-report-pending { margin-top: var(--sp-2, 8px); }

/* Per-round expand: native details, no JS. */
.lb-reports .lb-report-more { margin-top: var(--sp-2, 8px); }
.lb-reports .lb-report-more summary {
    font-family: var(--font-sans);
    font-size: var(--fs-200, 12px);
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    list-style: none;
}
.lb-reports .lb-report-more summary::-webkit-details-marker { display: none; }
.lb-reports .lb-report-more summary::before {
    content: "\203A";
    display: inline-block;
    margin-right: var(--sp-1, 4px);
    transition: transform 0.15s ease;
}
.lb-reports .lb-report-more[open] summary::before { transform: rotate(90deg); }
.lb-reports .lb-report-more summary:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.lb-reports .lb-more-list {
    list-style: none;
    margin: var(--sp-2, 8px) 0 0 0;
    padding: 0 0 0 var(--sp-3, 12px);
    border-left: 1px solid var(--rule-color);
    display: flex;
    flex-direction: column;
    gap: var(--sp-3, 12px);
}
.lb-reports .lb-more-list a {
    display: block;
    text-decoration: none;
    color: var(--text-primary);
}
.lb-reports .lb-more-headline {
    display: block;
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}
.lb-reports .lb-more-list a:hover .lb-more-headline {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Row links meet the 44px touch floor on phones and touch screens
   (design_principles.md, Hit areas). */
@media (max-width: 640px), (pointer: coarse) {
    .lb-reports .headline-list a,
    .lb-reports .lb-more-list a,
    .lb-reports .lb-report-lead,
    .lb-reports .lead-teaser {
        min-height: 44px;
    }
    .lb-reports .lb-report-more summary {
        min-height: 44px;
        display: flex;
        align-items: center;
    }
}
