.cert-progress-map { margin: 0 0 1.5rem; padding: clamp(1rem, 2vw, 1.5rem) 0; border: 0; border-bottom: 1px solid var(--border-subtle, #d8dee8); background: transparent; }
.cert-progress-map__heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.cert-progress-map__heading h2 { margin: .2rem 0 0; }
.cert-progress-map__heading p { max-width: 42rem; margin: .4rem 0 0; color: var(--text-secondary, #475569); font-size: .82rem; }
.cert-progress-map__heading .text-link { display: inline-flex; align-items: center; min-height: 44px; }
.cert-progress-map__summary { margin: 1rem 0 0; padding: .75rem 0; display: flex; flex-wrap: wrap; gap: .55rem; border-block: 1px solid var(--border-subtle, #d8dee8); background: transparent; }
.cert-progress-map__summary-item { min-width: 0; display: flex; align-items: baseline; gap: .4rem; }
.cert-progress-map__summary-item:not(:last-child)::after { content: "·"; margin-left: .15rem; color: var(--text-muted, #596579); }
.cert-progress-map__summary dt { color: var(--text-secondary, #475569); font-size: .75rem; font-weight: 750; }
.cert-progress-map__summary dd { margin: 0; color: var(--text-primary, #172033); font-size: .82rem; font-weight: 700; overflow-wrap: anywhere; }
.cert-progress-map__overflow-hint { margin: .7rem 0 0; color: var(--text-muted, #596579); font-size: .75rem; line-height: 1.45; }
.cert-progress-map__graph-scroll { margin-top: .7rem; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-gutter: stable; }
.cert-progress-map__graph { position: relative; }
.cert-progress-map__edges { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.cert-progress-map__edges path { fill: none; stroke: #94a3b8; stroke-width: 2; vector-effect: non-scaling-stroke; marker-end: url(#cert-map-arrow); }
.cert-progress-map__edges marker path { fill: #64748b; stroke: none; }
.cert-progress-map__nodes { margin: 0; padding: 0; list-style: none; }
.cert-progress-map__nodes li { position: absolute; width: 200px; transform: translateX(-50%); }
.cert-progress-node { display: block; box-sizing: border-box; height: 112px; padding: .7rem; border: 1px solid #cbd5e1; border-radius: .7rem; color: inherit; text-decoration: none; background: #f8fafc; overflow-wrap: anywhere; }
.cert-progress-node:hover { border-color: #64748b; transform: translateY(-1px); }
.cert-progress-node:focus-visible { outline: 3px solid #38bdf8; outline-offset: 2px; }
.cert-progress-node--earned { border-left: 4px solid #15803d; background: #f0fdf4; }
.cert-progress-node--studying { border-left: 4px solid #0369a1; background: #f0f9ff; }
.cert-progress-node--planned { border-left: 4px solid #7c3aed; background: #f5f3ff; }
.cert-progress-node--next { border-left: 4px solid #a16207; background: #fffbeb; }
.cert-progress-node__status { display: block; margin-bottom: .28rem; color: #475569; font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.cert-progress-node strong, .cert-progress-node small { display: block; }
.cert-progress-node small { margin-top: .18rem; color: #596579; line-height: 1.25; }
.cert-progress-map__empty { margin: 1rem 0 0; color: var(--text-muted, #596579); }
.cert-progress-map__key { margin: .75rem 0; max-width: 62rem; color: var(--text-secondary); font-size: .8125rem; line-height: 1.6; }
.cert-progress-map--full .cert-progress-node { height: 160px; }
.cert-progress-map--full .cert-progress-node strong { font-size: 1rem; }
.cert-progress-map--full .cert-progress-node small { font-size: .75rem; }
.cert-progress-node__availability { font-weight: 650; }
html[data-theme] .cert-progress-map--full .cert-progress-map__nodes .cert-progress-node { background: var(--surface-card); }
html[data-theme] .cert-progress-map--full .cert-progress-map__nodes .cert-progress-node.is-resource-only { background: var(--surface-muted); border-style: dashed; }
html[data-theme] .cert-progress-map--full .cert-progress-map__nodes .cert-progress-node--next { border-left-color: var(--border-subtle); }
.cert-progress-map__edges path:is([data-kind="alternative"], [data-kind="complement"]) { stroke-dasharray: 4 4; marker-end: none; }
@media (max-width: 760px) {
    .cert-progress-map__heading { align-items: start; flex-direction: column; }
    .cert-progress-map__summary { display: grid; gap: .55rem; }
    .cert-progress-map__summary-item { align-items: start; display: grid; grid-template-columns: minmax(6.4rem,auto) minmax(0,1fr); gap: .75rem; }
    .cert-progress-map__summary-item:not(:last-child)::after { content: none; }
}
