/* Chapter colour is an extra cue; the label and position carry the same information. */
.chapter-stage .node{border-color:var(--chapter-color);color:var(--chapter-color);background:#fff}
.chapter-stage.current .node,.chapter-stage.goal.current .node{background:var(--chapter-color);border-color:var(--chapter-color);color:#fff}
.chapter-stage .stage-body{border-left:3px solid var(--chapter-color)}
.chapter-heading{display:flex;align-items:center;gap:10px;margin:28px 0 16px;font-size:14px;font-weight:700;color:var(--ink)}
.chapter-heading::before{content:'';width:12px;height:12px;border-radius:50%;background:var(--chapter-color);flex:none}
.chapter-heading small{font-weight:400;color:var(--muted);margin-left:auto}
.unit-checkpoint{margin:16px 0 24px}

.journey-unit-heading{padding:18px 0 10px;border-top:1px solid var(--line);margin-top:20px}.journey-unit-heading h3{margin:6px 0}.journey-unit-heading p,.journey-origin{font-size:12px;color:var(--muted)}

.journey-unit{border:1px solid var(--line);border-radius:14px;margin:14px 0;background:#fff}
.journey-unit>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px;cursor:pointer;list-style:none;min-height:64px}
.journey-unit>summary::-webkit-details-marker{display:none}.journey-unit>summary::after{content:'⌄';color:var(--muted)}.journey-unit[open]>summary::after{transform:rotate(180deg)}
.journey-unit>summary strong,.journey-unit>summary small{display:block}.journey-unit>summary small{color:var(--muted);font-size:12px;margin-top:5px}
.unit-status{font-size:12px;white-space:nowrap;color:var(--green)}.journey-unit-lessons{padding:12px 16px}.journey-unit-lessons .stage-body{min-width:0}.journey-origin{display:block}
@media(max-width:600px){.journey-unit>summary{padding:13px;gap:8px}.journey-unit>summary strong{font-size:14px}.journey-unit-lessons{padding:10px 8px}.journey-unit .unit-checkpoint{margin-left:8px;padding:14px}}

/* Keep the route rail inside lesson rows, never through unit summaries. */
.journey:has(>.journey-unit)::before{display:none}
.journey-unit-lessons .stage::before{content:'';position:absolute;left:23px;top:0;bottom:0;width:2px;background:var(--line);pointer-events:none}
.journey-unit-lessons .stage:first-child::before{top:40px}
.journey-unit-lessons .stage:last-of-type::before{bottom:calc(100% - 40px)}
.journey-unit-lessons .stage-body{text-align:left;overflow-wrap:anywhere}
.journey-unit-lessons .node{position:relative}
.journey-unit-lessons .unit-checkpoint{margin-left:68px;margin-right:0}
.journey-unit>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 16px}
.journey-unit>summary strong{line-height:1.4;overflow-wrap:anywhere}
.journey-unit>summary small{line-height:1.5}
.journey-unit>summary::after{text-align:center}
.two-col:has(.journey-unit)>aside{position:sticky;top:94px;align-self:start}
@media(max-width:760px){.two-col:has(.journey-unit)>aside{position:static}.journey-unit-lessons .unit-checkpoint{margin-left:60px}}
@media(max-width:600px){.journey-unit-lessons .unit-checkpoint{padding:14px 12px}.journey-unit-lessons .unit-checkpoint button{width:100%;white-space:normal}.journey-unit-lessons .stage-body{padding:12px}.journey-unit-lessons .stage-body h3{font-size:16px}.journey-unit>summary{column-gap:8px}}
/* Test nodes: a T circle keeps the route rail continuous through mid-unit and final unit tests. */
.journey-unit-lessons .unit-checkpoint{position:relative;--cp-offset:68px}
.journey-unit-lessons .unit-checkpoint::before{content:'';position:absolute;left:calc(22px - var(--cp-offset));top:-17px;bottom:-25px;width:2px;background:var(--line);pointer-events:none}
.journey-unit-lessons .unit-checkpoint:last-child::before{bottom:auto;height:53px}
.checkpoint-node{position:absolute;left:calc(-1px - var(--cp-offset));top:12px;z-index:1;width:48px;height:48px;box-sizing:border-box;border-radius:50%;display:grid;place-items:center;border:2px solid #cbd9cc;background:#f5f7f3;color:#8aa093;font-weight:800;font-size:17px;line-height:1}
.unit-checkpoint.ready .checkpoint-node{border-color:var(--chapter-color,var(--green));color:var(--chapter-color,var(--green));background:#fff}
.unit-checkpoint.passed .checkpoint-node{border-color:var(--chapter-color,var(--green));background:var(--chapter-color,var(--green));color:#fff}
@media(max-width:760px){.journey-unit-lessons .unit-checkpoint{--cp-offset:60px}}
