/* Scoped styles: the site's theme and typography remain in control. */
.os-hb, .os-hb *, .os-hb *::before, .os-hb *::after { box-sizing: border-box; }
.os-hb { --hb-ink:#1e1e1e; --hb-muted:#595959; --hb-line:#dedede; --hb-paper:#fff; --hb-soft:#f5f5f5; width:100%; max-width:1200px; margin:2.5rem auto; color:var(--hb-ink); font-family:inherit; line-height:1.55; }
.os-hb [hidden] { display:none !important; }
.os-hb a { color:inherit; text-decoration:underline; text-underline-offset:.18em; }
.os-hb a:focus-visible, .os-hb button:focus-visible, .os-hb input:focus-visible, .os-hb select:focus-visible, .os-hb summary:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.os-hb-language { margin:1.25rem 0; font-size:.95rem; }
.os-hb-intro { border-top:4px solid var(--hb-ink); border-bottom:1px solid var(--hb-line); margin:0 0 1.75rem; padding:1.75rem 0 1.4rem; }
.os-hb-stats { display:flex; flex-wrap:wrap; gap:1.2rem 3rem; margin:0 0 1.6rem; }
.os-hb-stats p { display:flex; flex-direction:column; margin:0; }
.os-hb-stats strong { font-size:clamp(1.65rem,3.2vw,2.5rem); font-weight:750; letter-spacing:-.045em; line-height:1.2; }
.os-hb-stats span { margin-top:.35rem; font-size:.9rem; color:var(--hb-muted); }
.os-hb .os-hb-reference { background:var(--hb-soft); padding:.85rem 1rem; margin:0 0 1rem; font-size:1rem; }
.os-hb .os-hb-note { margin:0; max-width:88ch; color:var(--hb-muted); font-size:.95rem; }
.os-hb-filters { display:grid; grid-template-columns:minmax(230px,2fr) repeat(2,minmax(135px,1fr)) minmax(190px,1.3fr); gap:1rem; margin:0 0 1rem; padding:1.35rem; border:1px solid var(--hb-line); background:var(--hb-soft); }
.os-hb-filters label { display:block; font-size:.85rem; font-weight:650; margin:0 0 .45rem; }
.os-hb-filters input, .os-hb-filters select { display:block; width:100%; min-width:0; height:2.9rem; padding:.6rem .7rem; border:1px solid #8a8a8a; border-radius:2px; background:var(--hb-paper); color:var(--hb-ink); font-family:inherit; font-size:1rem; line-height:1.2; }
.os-hb button { border:1px solid var(--hb-ink); border-radius:2px; padding:.65rem 1rem; color:var(--hb-ink); background:var(--hb-paper); font-family:inherit; font-weight:600; font-size:.9rem; line-height:1.25; cursor:pointer; min-height:44px; }
.os-hb button:hover:not(:disabled) { background:var(--hb-ink); color:var(--hb-paper); }
.os-hb button:disabled { opacity:.38; cursor:not-allowed; }
.os-hb .os-hb-reset { grid-column:1/-1; justify-self:start; padding:.35rem 0; min-height:30px; border:0; background:transparent; text-decoration:underline; text-underline-offset:.2em; font-size:.85rem; font-weight:500; }
.os-hb .os-hb-reset:hover { color:var(--hb-ink); background:transparent; text-decoration-thickness:2px; }
.os-hb-status { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.25rem 1rem; margin:1.2rem 0; font-size:.9rem; }
.os-hb-status p { margin:0; color:var(--hb-muted); }
.os-hb-status [data-results] { color:var(--hb-ink); font-weight:650; }
.os-hb-year { margin:2.25rem 0; }
.os-hb-year h3 { display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem .8rem; margin:0 0 1.25rem; padding:0 0 .7rem; border-bottom:1px solid var(--hb-ink); font-size:1.9rem; font-weight:750; letter-spacing:-.04em; }
.os-hb-year h3 span { color:var(--hb-muted); font-size:.8rem; letter-spacing:.015em; font-weight:500; }
.os-hb-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; align-items:start; }
.os-hb-card { min-width:0; border:1px solid var(--hb-line); padding:1.25rem; border-radius:3px; background:var(--hb-paper); }
.os-hb-card header { min-height:5rem; margin-bottom:1rem; }
.os-hb-card h4 { font-size:1.15rem; line-height:1.3; font-weight:700; letter-spacing:-.015em; margin:0 0 .7rem; overflow-wrap:anywhere; color:var(--hb-ink); }
.os-hb-badges { display:flex; flex-wrap:wrap; gap:.35rem .5rem; color:var(--hb-muted); font-size:.76rem; }
.os-hb-badges span { padding:.2rem .45rem; border:1px solid var(--hb-line); border-radius:2px; }
.os-hb-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.os-hb-pair figure { margin:0; min-width:0; }
.os-hb-image { display:block; width:100%; background:#000; aspect-ratio:4/3; text-decoration:none !important; }
.os-hb-pair img { display:block; width:100%; max-width:100%; height:auto; margin:0; aspect-ratio:4/3; object-fit:contain; image-rendering:pixelated; image-rendering:crisp-edges; }
.os-hb-pair figcaption { color:var(--hb-muted); margin-top:.45rem; font-size:.78rem; text-align:left; }
.os-hb-card details { border-top:1px solid var(--hb-line); margin-top:1rem; padding-top:.75rem; font-size:.83rem; }
.os-hb-card summary { cursor:pointer; min-height:30px; line-height:1.4; padding:.2rem 0; }
.os-hb-card dl { margin:.8rem 0 0; }
.os-hb-card dt { margin-top:.65rem; color:var(--hb-muted); font-weight:500; }
.os-hb-card dd { margin:0; overflow-wrap:anywhere; }
.os-hb-card code { font-size:.76rem; overflow-wrap:anywhere; white-space:normal; background:none; }
.os-hb-card details p { margin:.8rem 0 0; }
.os-hb-empty { background:var(--hb-soft); padding:2rem; text-align:center; }
.os-hb-pagination { display:flex; align-items:center; justify-content:center; gap:1.2rem; margin:2.5rem 0; }
.os-hb-pagination span { text-align:center; font-size:.9rem; }
.os-hb-footer { border-top:1px solid var(--hb-line); padding-top:1.25rem; margin-top:2rem; color:var(--hb-muted); font-size:.85rem; }
.os-hb-footer p { max-width:95ch; margin:0; }
.os-hb-dialog { color:var(--hb-ink); background:var(--hb-paper); border:0; border-radius:3px; padding:1rem; max-width:min(850px,96vw); width:max-content; max-height:96vh; overflow:auto; box-shadow:0 15px 75px #0006; }
.os-hb-dialog::backdrop { background:#000c; }
.os-hb-dialog figure { margin:1rem 0 0; }
.os-hb-dialog img { display:block; width:auto; height:auto; max-width:100%; max-height:72vh; aspect-ratio:4/3; object-fit:contain; image-rendering:pixelated; }
.os-hb-dialog figcaption { margin-top:.65rem; max-width:70ch; font-size:.9rem; }
.os-hb-close { display:block; margin-left:auto; }
@media (max-width:1000px) { .os-hb-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } .os-hb-search { grid-column:1/-1; } }
@media (max-width:760px) { .os-hb-grid { grid-template-columns:minmax(0,1fr); } .os-hb-card header { min-height:0; } .os-hb-stats { gap:1.2rem 2rem; } }
@media (max-width:500px) { .os-hb { margin:1.75rem auto; } .os-hb-filters { grid-template-columns:repeat(2,minmax(0,1fr)); padding:1rem; gap:.8rem; } .os-hb-filters > div:last-of-type { grid-column:1/-1; } .os-hb-card { padding:1rem; } .os-hb-pair { gap:.55rem; } .os-hb-stats { gap:1rem 1.5rem; } .os-hb-stats strong { font-size:1.6rem; } .os-hb-stats span { font-size:.8rem; } .os-hb-pagination { gap:.5rem; } .os-hb-pagination button { padding:.6rem .65rem; } .os-hb-pagination span { font-size:.8rem; } }
@media (prefers-reduced-motion:reduce) { .os-hb * { scroll-behavior:auto !important; } }
@media print { .os-hb-filters, .os-hb-pagination, .os-hb-dialog { display:none !important; } .os-hb-card { break-inside:avoid; } .os-hb-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Individual pages and download actions, 1.2. */
.os-hb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin:.85rem 0 0;font-size:.9rem}
.os-hb .os-hb-detail-link{font-weight:650}
.os-hb .os-hb-download,.os-hb-item-download>a{display:inline-block;background:#1e1e1e;color:#fff;padding:.65rem 1rem;border-radius:3px;text-decoration:none;min-height:44px;box-sizing:border-box}
.os-hb-item{max-width:960px;margin:1.5rem auto;font-size:1rem;line-height:1.55}
.os-hb-item h1{font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.2;text-transform:none;margin:1rem 0 .5rem}
.os-hb-item-nav{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}
.os-hb-item-meta{margin:.5rem 0 1rem;font-size:.9rem}
.os-hb-item .os-hb-pair{max-width:900px;margin:1rem 0}
.os-hb-item-download{margin:1.5rem 0}
.os-hb-item-download p{font-size:.85rem;margin:.5rem 0;color:#595959}
.os-hb-item details{border-top:1px solid #ddd;padding:1rem 0;font-size:.85rem}
.os-hb-item summary{cursor:pointer}
.os-hb-item dd{margin:0 0 .75rem;overflow-wrap:anywhere}
.os-hb-item code{font-size:.75rem;overflow-wrap:anywhere}
.os-hb-item-reference{font-size:.85rem;border-top:1px solid #ddd;padding-top:1rem}
