.sjsh-link-table-scroll { overflow-x: auto; }
.sjsh-cell-text { white-space: pre-line; }
.sjsh-plan__navigation button, .sjsh-plan__context { white-space: pre-line; }
.sjsh-link-table :is(td, th) {
    background: var(--sjsh-cell-bg, revert);
    color: var(--sjsh-cell-fg, inherit);
}
.sjsh-link-table :is(td, th)[style*="--sjsh-cell-bg"] { box-shadow: none; }
.sjsh-link-table :is(td, th)[style*="--sjsh-cell-fg"] a { color: inherit; text-decoration: underline; }
.sjsh-plan { --sjsh-plan-gap: .6rem; min-width: 0; container-type: inline-size; }
.sjsh-plan__caption { font-size: 1.3rem; font-weight: 700; margin-bottom: 1rem; }
.sjsh-plan__navigation { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.sjsh-plan__navigation[hidden], .sjsh-plan .sjsh-plan__column[hidden] { display: none; }
.sjsh-plan__navigation button { padding: .5rem .8rem; border: 1px solid #b8c6d0; border-radius: .2rem; background: #fff; color: #18354b; cursor: pointer; font: inherit; }
.sjsh-plan__navigation button[aria-pressed="true"] { background: #064b80; color: #fff; border-color: #064b80; }
.sjsh-plan__columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); grid-template-rows: auto repeat(var(--sjsh-plan-rows), minmax(0, auto)); grid-auto-rows: minmax(0, auto); column-gap: var(--sjsh-plan-gap); overflow-x: auto; padding-bottom: .4rem; }
/* Each complete column moves to the next group; rows align within each group. */
.sjsh-plan__column { display: grid; grid-template-rows: subgrid; grid-row: span calc(var(--sjsh-plan-rows) + 1); min-width: 0; }
.sjsh-plan--single .sjsh-plan__columns { grid-template-columns: 1fr; }
.sjsh-plan--pair .sjsh-plan__columns { grid-template-columns: minmax(7rem, .65fr) minmax(0, 1.35fr); }
.sjsh-plan--keep-row .sjsh-plan__columns { grid-template-columns: repeat(var(--sjsh-plan-columns), minmax(9rem, 1fr)); }
.sjsh-plan--keep-row.sjsh-plan--keep-column .sjsh-plan__column:first-child { position: sticky; left: 0; z-index: 1; background: #fff; }
.sjsh-plan__heading { display: flex; align-items: center; justify-content: center; min-height: 4.5rem; margin: 0; padding: .75rem; text-align: center; overflow-wrap: anywhere; font-size: 1rem; font-weight: 600; background: var(--sjsh-cell-bg, #e5edf1); color: var(--sjsh-cell-fg, #163144); }
.sjsh-plan__grid { display: grid; grid-template-rows: subgrid; grid-row: 2 / span var(--sjsh-plan-rows); }
.sjsh-plan__heading, .sjsh-plan__tile { margin-bottom: var(--sjsh-plan-gap); }
/* Empty tracks collapse; populated and spanning tiles supply the row height. */
.sjsh-plan__tile { min-height: calc(var(--sjsh-plan-span, 1) * 6rem + (var(--sjsh-plan-span, 1) - 1) * var(--sjsh-plan-gap)); }
.sjsh-plan .sjsh-plan__grid[hidden] { display: none; }
.sjsh-plan__tile { display: flex; flex-direction: column; justify-content: center; min-width: 0; text-align: center; background: var(--sjsh-cell-bg, #064b80); color: var(--sjsh-cell-fg, #fff); overflow-wrap: anywhere; }
.sjsh-plan__context { display: none; font-size: .85em; padding: .6rem .8rem 0; }
.sjsh-plan--single .sjsh-plan__context { display: block; }
.sjsh-plan__text, .sjsh-plan__link { display: flex; align-items: center; justify-content: center; width: 100%; padding: .8rem; white-space: pre-line; font-weight: 600; }
.sjsh-plan a { color: inherit; }
.sjsh-plan__heading, .sjsh-plan__tile { position: relative; }
/* Tile colors take precedence over the site's general link styles in every state. */
.sjsh-plan a.sjsh-plan__heading-link, .sjsh-plan a.sjsh-plan__link { color: inherit !important; text-decoration: none !important; }
.sjsh-plan__heading-link::after, .sjsh-plan__link::after { content: ''; position: absolute; inset: 0; }
.sjsh-plan__heading-link:hover::after, .sjsh-plan__link:hover::after { background: rgb(0 0 0 / 12%); }
.sjsh-plan__heading:has(.sjsh-plan__heading-link:focus-visible), .sjsh-plan__tile:has(.sjsh-plan__link:focus-visible) { outline: 3px solid currentColor; outline-offset: -3px; }
.sjsh-plan__details { width: 100%; align-self: center; padding: .8rem; }
.sjsh-plan__details summary { cursor: pointer; font-weight: 600; white-space: pre-line; }
.sjsh-plan__detail { margin-top: .8rem; white-space: pre-line; text-align: left; }
.sjsh-plan__detail-link { display: inline-block; margin-top: .8rem; text-decoration: underline; }
.sjsh-plan :is(button, a, summary):focus-visible { outline: 3px solid currentColor; outline-offset: -3px; }
@container (max-width: 600px) {
    .sjsh-plan--keep-row.sjsh-plan--keep-column .sjsh-plan__columns { grid-template-columns: 7rem repeat(calc(var(--sjsh-plan-columns) - 1), minmax(12rem, 1fr)); }
    .sjsh-plan--single .sjsh-plan__columns { display: block; }
    .sjsh-plan--single .sjsh-plan__column { display: block; }
    .sjsh-plan--single .sjsh-plan__heading { margin-bottom: var(--sjsh-plan-gap); }
    .sjsh-plan--single .sjsh-plan__grid { display: flex; flex-direction: column; }
    .sjsh-plan--single .sjsh-plan__tile { min-height: 6rem; }
}
@media print {
    .sjsh-plan__navigation { display: none; }
    .sjsh-plan .sjsh-plan__column[hidden] { display: grid; }
    .sjsh-plan .sjsh-plan__grid[hidden] { display: grid; }
    .sjsh-plan--keep-column .sjsh-plan__column:first-child { position: static; }
    .sjsh-plan .sjsh-plan__columns { grid-template-columns: repeat(var(--sjsh-plan-columns), minmax(0, 1fr)); overflow: visible; }
    .sjsh-plan__tile { print-color-adjust: exact; }
}
