.post-shut-bad { color: #fca5a5; }
.post-shut-good { color: #86efac; }
.post-shut-table th code {
    padding: 0.1rem 0.35rem;
    border-radius: 0.3rem;
    background: rgba(255, 255, 255, 0.07);
    color: #c7d2fe;
    letter-spacing: 0;
    text-transform: none;
}
.post-anno {
    --anno-line: 1.344rem;
    --anno-bar: 2.72rem;
    --anno-rail: 1.9rem;
    margin: 1.5rem 0;
}
.post-anno-code { position: relative; padding-left: var(--anno-rail); }
.post-anno-code .post-code { margin: 0; }
.post-anno-marks {
    position: absolute;
    top: calc(var(--anno-bar) + 1rem);
    right: 0;
    left: 0;
    pointer-events: none;
}
.post-anno-band {
    position: absolute;
    top: calc((var(--l) - 1) * var(--anno-line));
    right: 1px;
    left: calc(var(--anno-rail) + 1px);
    height: var(--anno-line);
    background: rgba(129, 140, 248, 0.16);
}
.post-anno-band-sig { background: rgba(245, 158, 11, 0.16); }
.post-anno-band-exit { background: rgba(34, 197, 94, 0.14); }
.post-anno-tag {
    position: absolute;
    top: 0;
    right: 0.7rem;
    color: #fbbf24;
    font-family: var(--landing-mono);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: var(--anno-line);
}
.post-anno-band-exit .post-anno-tag { color: #4ade80; }
.post-anno-span {
    position: absolute;
    top: calc((var(--from) - 0.5) * var(--anno-line));
    left: calc(var(--anno-rail) / 2 - 1px);
    width: 2px;
    height: calc((var(--to) - var(--from)) * var(--anno-line));
    background: linear-gradient(180deg, #f59e0b, #22c55e);
}
.post-anno-pin {
    position: absolute;
    top: calc((var(--l) - 1) * var(--anno-line) + (var(--anno-line) - 1.2rem) / 2);
    left: calc(var(--anno-rail) / 2 - 0.6rem);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    border: 1px solid #818cf8;
    border-radius: 50%;
    background: #2b2a63;
    color: #e0e7ff;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
}
.post-anno-pin::before { content: attr(data-n); }
.post-anno-notes > p:first-child { margin-top: 1.5rem; }
.post-anno-list {
    counter-reset: post-anno;
    margin: 1rem 0 0;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.55;
    list-style: none;
}
.post-anno-list > li {
    position: relative;
    padding: 0 0 1.1rem 2.1rem;
    counter-increment: post-anno;
}
.post-anno-list > li::before {
    content: counter(post-anno);
    position: absolute;
    top: 0.1rem;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border: 1px solid #818cf8;
    border-radius: 50%;
    background: #2b2a63;
    color: #e0e7ff;
    font-size: 0.75rem;
    font-weight: 800;
}
.post-anno-notes .post-callout { margin: 0.4rem 0 0; font-size: 0.95rem; line-height: 1.55; }
.post-stops {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0 1.25rem;
    counter-reset: post-stops;
    margin: 2rem 0;
    padding: 0;
    font-size: 0.95rem;
    line-height: 1.5;
    list-style: none;
}
.post-stops > li {
    --stop: #818cf8;
    position: relative;
    padding-top: 3rem;
    counter-increment: post-stops;
}
.post-stops > li::before {
    content: counter(post-stops);
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    border: 1px solid var(--stop);
    border-radius: 50%;
    background: #14182a;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 800;
}
.post-stops > li::after {
    content: "";
    position: absolute;
    top: 1.05rem;
    right: -1.25rem;
    left: 0;
    height: 2px;
    background: var(--stop);
}
.post-stops > li:last-child::after { display: none; }
.post-stops-start { --stop: rgba(255, 255, 255, 0.35) !important; }
.post-stops-ready { --stop: #22c55e !important; }
.post-stops-term { --stop: #f59e0b !important; }
.post-stops-who {
    display: block;
    margin-bottom: 0.25rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
@media (min-width: 1200px) {
    .post-anno {
        display: grid;
        grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
        gap: 1.5rem;
        align-items: start;
    }
    .post-anno-notes { position: sticky; top: 6rem; }
    .post-anno-notes > p:first-child { margin-top: 0; }
}
@media (max-width: 767.98px) {
    .post-anno { --anno-rail: 1.6rem; }
    .post-stops { grid-template-columns: minmax(0, 1fr); }
    .post-stops > li { padding: 0.2rem 0 1.25rem 3.25rem; }
    .post-stops > li::after { top: 2.3rem; right: auto; bottom: 0; left: 1.05rem; width: 2px; height: auto; }
    .post-stops > li:last-child { padding-bottom: 0; }
}
