.hsu-model-changelog {
  background: var(--ast-global-color-4);
  color: var(--ast-global-color-3);
  font-size: var(--wp--preset--font-size--normal);
  line-height: inherit;
  max-width: var(--ast-normal-container-width);
  padding: var(--wp--preset--spacing--40);
  overflow-wrap: break-word;
}
/* One reading column: rule wording is long prose, so lines stay near 70 characters. */
.hsu-model-changelog > * { max-width: 70ch; }
.hsu-model-changelog p { margin: 0; }
.hsu-model-changelog > p + p { margin-top: var(--wp--preset--spacing--30); }
.hsu-model-changelog a { display: inline-block; min-height: var(--wp--preset--spacing--50); max-width: 100%; color: var(--ast-global-color-0); text-decoration: underline; }
.hsu-model-changelog a:hover { color: var(--ast-global-color-1); }
.hsu-model-changelog a:focus-visible,
.hsu-changelog-details > summary:focus-visible { outline: 3px solid var(--ast-global-color-0); outline-offset: 4px; }

.hsu-changelog-entry { padding: var(--wp--preset--spacing--50) 0; scroll-margin-top: var(--wp--preset--spacing--80); }
.hsu-changelog-entry + .hsu-changelog-entry { border-top: 1px solid var(--ast-border-color); }
.hsu-model-changelog h2 { margin: 0; font-size: var(--wp--preset--font-size--medium); font-weight: 600; line-height: 1.3; color: var(--ast-global-color-2); background: transparent; }
/* Astra underlines .entry-content links; the version title is a permalink, not a text link. */
.hsu-model-changelog .hsu-changelog-header h2 a { color: inherit; text-decoration: none; }
.hsu-model-changelog .hsu-changelog-header h2 a:hover { color: var(--ast-global-color-0); text-decoration: underline; }
.hsu-model-changelog .hsu-changelog-meta { display: flex; flex-wrap: wrap; gap: 0 var(--wp--preset--spacing--30); margin: var(--wp--preset--spacing--20) 0 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--small); }
.hsu-changelog-meta li + li::before { content: "·"; content: "·" / ""; margin-right: var(--wp--preset--spacing--30); }
.hsu-model-changelog .hsu-model-version-change-summary { margin-top: var(--wp--preset--spacing--30); color: var(--ast-global-color-2); }
.hsu-model-changelog .hsu-changelog-status { margin-top: var(--wp--preset--spacing--40); }

.hsu-changelog-details { margin-top: var(--wp--preset--spacing--40); }
.hsu-changelog-details > summary { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40); padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); background: var(--ast-global-color-5); border: 1px solid var(--ast-border-color); border-radius: 4px; cursor: pointer; list-style: none; }
.hsu-changelog-details > summary::-webkit-details-marker { display: none; }
.hsu-changelog-counts { font-weight: 600; color: var(--ast-global-color-2); }
.hsu-changelog-toggle { margin-left: auto; white-space: nowrap; color: var(--ast-global-color-0); text-decoration: underline; text-underline-offset: 0.15em; }
.hsu-changelog-toggle::after { content: ""; display: inline-block; width: 0.4em; height: 0.4em; margin-left: 0.5em; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-0.25em) rotate(45deg); }
.hsu-changelog-details[open] .hsu-changelog-toggle::after { transform: translateY(0) rotate(-135deg); }
.hsu-changelog-details > summary:hover .hsu-changelog-toggle { color: var(--ast-global-color-1); }
.hsu-changelog-details > summary .hsu-changelog-hide,
.hsu-changelog-details[open] > summary .hsu-changelog-show { display: none; }
.hsu-changelog-details[open] > summary .hsu-changelog-hide { display: inline; }

.hsu-model-changelog .hsu-changelog-changes { margin: 0; padding: 0; list-style: none; }
.hsu-changelog-change { padding: var(--wp--preset--spacing--50) 0; }
.hsu-changelog-change + .hsu-changelog-change { border-top: 1px solid var(--ast-border-color); }
.hsu-model-changelog h3 { margin: 0; font-family: inherit; font-size: inherit; font-weight: 600; line-height: inherit; color: var(--ast-global-color-2); background: transparent; }
.hsu-changelog-kind { display: inline-block; margin-right: var(--wp--preset--spacing--20); padding: 0 var(--wp--preset--spacing--20); border: 1px solid var(--ast-border-color); border-radius: 4px; background: var(--ast-global-color-5); font-size: var(--wp--preset--font-size--small); letter-spacing: 0.04em; text-transform: uppercase; }
.hsu-model-changelog .hsu-changelog-diff,
.hsu-model-changelog .hsu-changelog-text,
.hsu-model-changelog .hsu-changelog-move { margin-top: var(--wp--preset--spacing--20); }
/* Taller lines keep highlighted words from touching the line above. */
.hsu-model-changelog .hsu-changelog-diff,
.hsu-model-changelog .hsu-changelog-text { line-height: 1.7; }
.hsu-model-changelog :is(.hsu-changelog-diff, .hsu-changelog-text) p + p { margin-top: var(--wp--preset--spacing--20); }
.hsu-model-changelog .hsu-changelog-text { padding-left: var(--wp--preset--spacing--40); border-left: 3px solid var(--ast-border-color); }
.hsu-model-changelog .hsu-changelog-added .hsu-changelog-text { border-left-color: var(--ast-global-color-0); }
/* Underline and strikethrough carry the meaning; the tints only help scanning. */
.hsu-model-changelog .hsu-changelog-diff ins,
.hsu-model-changelog .hsu-changelog-diff del { padding: 0.1em 0.15em; border-radius: 2px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.hsu-model-changelog .hsu-changelog-diff ins { background: color-mix(in srgb, var(--ast-global-color-0) 16%, var(--ast-global-color-4)); color: var(--ast-global-color-2); text-decoration: underline; text-decoration-color: var(--ast-global-color-0); text-underline-offset: 0.2em; }
.hsu-model-changelog .hsu-changelog-diff del { background: color-mix(in srgb, var(--ast-global-color-3) 12%, var(--ast-global-color-4)); color: var(--ast-global-color-3); text-decoration: line-through; }
/* An added or removed paragraph break; assistive technology hears "added: paragraph break". */
.hsu-changelog-break::after { content: "¶"; content: "¶" / "paragraph break"; }
/* Generated, so assistive technology names each edit but a copied selection never includes the words. */
.hsu-changelog-diff :is(ins, del)::before { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hsu-changelog-diff ins::before { content: "added: "; }
.hsu-changelog-diff del::before { content: "removed: "; }
.hsu-model-changelog .hsu-changelog-note { margin-top: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--small); font-style: italic; }
.hsu-model-changelog .hsu-changelog-provenance { margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--small); }

.hsu-changelog-notice { border-left: 3px solid var(--ast-global-color-3); padding-left: var(--wp--preset--spacing--40); }
.hsu-changelog-manager { margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--small); }
.hsu-model-changelog .hsu-changelog-actions { display: flex; flex-wrap: wrap; gap: 0 var(--wp--preset--spacing--40); list-style: none; margin: var(--wp--preset--spacing--20) 0 0; padding: 0; }
/* The reading measure, radii, rule weights and diff tints have no theme token. */
