/*
 * Resume module.
 *
 * Colour comes from the page (currentColor and translucent ink), never a
 * fixed palette, so the resume reads on any theme's content ground: Seasonal
 * Waves' white page and Sunlit Deep's pale panel alike.
 */

.resume { max-width: 760px; }

.resume-head { margin-bottom: 2.5rem; }
.resume_page h2.resume-name { margin: 0; font-size: clamp(2rem, 4.5vw, 2.75rem); line-height: 1.05; letter-spacing: -0.02em; }
.resume-headline { margin: 0.5rem 0 0; font-size: 1.2rem; font-weight: 500; }
.resume-meta { margin: 0.35rem 0 0; opacity: 0.8; }
.resume-links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; margin: 0.75rem 0 0; padding: 0; list-style: none; }
.resume-summary { margin-top: 1.25rem; max-width: 65ch; }
.resume-summary > :first-child { margin-top: 0; }
/* a summary's subheading (SummaryHtml makes every heading an h3): smaller
   than a section heading and not ruled, so it reads as part of the summary */
.resume_page .resume-summary h3 {
    margin: 1.5rem 0 0.35rem;
    font-size: 1.05rem;
    letter-spacing: 0;
    text-transform: none;
}
.resume-summary p { margin: 0 0 0.85rem; }
.resume-summary ul, .resume-summary ol { margin: 0 0 0.85rem; padding-left: 1.4rem; }

.resume-section { margin-top: 2.5rem; }
.resume_page h3.resume-section-heading {
    margin: 0 0 1rem;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid currentColor;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.resume-entries { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.5rem; }
.resume-entry-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 1rem; }
.resume_page h4.resume-entry-title { margin: 0; font-size: 1.1rem; }
.resume-entry-dates { margin: 0; font-variant-numeric: tabular-nums; opacity: 0.8; white-space: nowrap; }
.resume-entry-meta { margin: 0.15rem 0 0; font-weight: 500; }
.resume-entry-body { margin-top: 0.5rem; max-width: 65ch; }

.resume-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.resume-tags li { padding: 0.3rem 0.75rem; border: 1px solid currentColor; border-radius: 999px; font-size: 0.95rem; }
.resume-tag-detail { opacity: 0.8; }

.resume-empty { padding: 1rem 0; }
.resume-manage-link { display: flex; justify-content: flex-end; }

/* ── manage ─────────────────────────────────────────────────────────── */

.resume-card { margin-top: 1.5rem; padding: 1.25rem; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 10px; }
.resume-card-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
.resume-card-head h3, .resume-card > h3 { margin-top: 0; }
.resume-help { font-size: 0.9rem; opacity: 0.85; max-width: 72ch; }
.resume-import-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.resume-import-row input[type="file"] { flex: 1 1 260px; min-width: 0; }
.resume-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.resume-nowrap { white-space: nowrap; }
.resume-row-muted td:not(.resume-actions) { opacity: 0.7; }
.resume-list-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; }
