/* site-chrome:start — shared header, A–Z strip and footer. updates.py copies
   this block verbatim into the /updates/ stylesheet; keep it self-contained. */
.site-header {
    background: linear-gradient(135deg, #1c4d5c 0%, #217B97 50%, #2790B0 100%);
    color: #ffffff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.site-header-inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 1.25rem 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}
.site-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
    color: #ffffff;
    text-decoration: none;
    border-bottom: none;
    transition: opacity 0.15s ease;
}
.site-brand:hover { color: #ffffff; opacity: 0.9; text-decoration: none; border-bottom: none; }
.site-brand img {
    display: block;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.2);
}
.site-brand-text {
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
    letter-spacing: -0.025em;
}
.site-brand-text span { font-weight: 400; color: rgba(209, 233, 241, 0.9); }
.site-nav {
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.75rem;
    min-width: 0;
    max-width: 100%;
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.site-nav a {
    color: #ffffff;
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    border-bottom: none;
    text-decoration: none;
    transition: background-color 0.15s ease;
}
.site-nav a:hover { color: #ffffff; background: rgba(255, 255, 255, 0.1); text-decoration: none; border-bottom: none; }
.site-nav a[aria-current="page"] { background: rgba(255, 255, 255, 0.16); font-weight: 600; }
.site-nav a.site-nav-ext::after {
    content: "\2197" / "";
    display: inline-block;
    margin-left: 0.2em;
    font-size: 0.8em;
    opacity: 0.7;
}
.site-header a:focus-visible, .az-strip a:focus-visible, .site-footer a:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}
.az-strip a:focus-visible, .site-footer a:focus-visible { outline-color: #217B97; }

.az-strip {
    position: sticky;
    top: 0;
    z-index: 10;
    overflow-x: auto;
    scrollbar-width: none;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid #e2e8f0;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.az-strip::-webkit-scrollbar { display: none; }
/* max-content + auto margins: centred when the letters fit, scrollable from
   the left edge (never clipped) when they do not. */
.az-strip-inner {
    width: max-content;
    margin: 0 auto;
    padding: 0.5rem 1rem;
    display: flex;
    gap: 0.25rem;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 0.8125rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.az-strip a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    color: #1c637b;
    border-bottom: none;
    text-decoration: none;
    transition: background-color 0.12s ease, color 0.12s ease;
}
.az-strip a:hover { background: #e8f4f8; color: #1c4d5c; text-decoration: none; border-bottom: none; }
[id^="letter-"] { scroll-margin-top: 3.5rem; }

.breadcrumb {
    color: #64748b;
    font-size: 0.8125rem;
    line-height: 1.25rem;
    margin: 0 0 1rem;
    overflow-wrap: anywhere;
}
.breadcrumb a { color: #217B97; text-decoration: none; border-bottom: none; }
.breadcrumb a:hover { color: #1c637b; text-decoration: underline; }
.breadcrumb .sep { color: #94a3b8; margin: 0 0.4rem; }

.site-footer {
    margin-top: 2.5rem;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.site-footer-inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 1.5rem 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #64748b;
}
.site-footer a { color: #217B97; text-decoration: none; border-bottom: none; }
.site-footer a:hover { color: #1c637b; text-decoration: underline; }
.site-footer-copy { margin-left: auto; color: #94a3b8; }

@media (max-width: 639px) {
    .site-header-inner { padding: 1rem; gap: 0.75rem; }
    .site-nav-wide { display: none; }
    .site-nav { gap: 0.25rem; }
}
/* site-chrome:end */
:root{color-scheme:light;--teal:#217B97;--deep:#164C61;--pale:#ECF4F7;--paper:#FFFFFF;--wash:#F5F8FA;--ink:#182D3A;--muted:#546e80;--line:#dbe6eb}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:24px;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--deep);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:4px}button{cursor:pointer}button:disabled{cursor:default} [hidden]{display:none!important}main{max-width:1240px;margin:0 auto;padding:24px 36px 32px}h1{font-size:20px;line-height:28px;letter-spacing:-.5px;margin:0 0 20px;font-weight:600}.toolbar{margin-bottom:20px}#filters{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1.1fr 1.1fr;gap:12px;align-items:end}label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.3px;color:var(--muted);display:flex;flex-direction:column;gap:5px}select,input,.reset{font-size:14px;line-height:20px;font-weight:400;letter-spacing:normal}select,input{min-width:0;width:100%;color:var(--ink);background:#fff;border:1px solid #bdcfd8;border-radius:5px;padding:10px 12px;height:45px}select:disabled{color:#6c7e88;background:var(--wash)}.search-label{grid-column:1/5}.reset{border:0;background:none;color:var(--deep);min-height:45px;text-decoration:underline}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:16px;overflow-wrap:anywhere}.result-count{font-size:14px;line-height:20px;color:var(--muted);margin:8px 0 18px}.date-group{display:grid;grid-template-columns:126px minmax(0,1fr);gap:34px;margin-bottom:10px}.date-rail{background:var(--pale);color:var(--teal);margin:0;padding:17px 18px;display:flex;flex-direction:column;align-items:flex-start;line-height:20px;font-size:14px;font-weight:400}.date-rail span:first-child{font-size:36px;line-height:40px;letter-spacing:-2px;font-weight:700;margin-bottom:2px}.day-entries{border-left:1px solid #cbdde5;min-width:0}.entry{position:relative;margin-left:26px;padding:16px 0 22px;border-bottom:1px solid var(--line);min-width:0}.entry:before{content:"";position:absolute;left:-32px;top:25px;width:11px;height:11px;background:var(--teal);border-radius:50%;box-shadow:0 0 0 4px white}.entry:last-child{border-bottom:0}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.entry-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.entry h3{font-size:14px;line-height:20px;color:var(--teal);margin:0;font-weight:600;overflow-wrap:anywhere;min-width:0}.entry time{font-size:12px;line-height:16px;color:var(--muted);white-space:nowrap}.entry p{font-size:14px;line-height:20px;margin:4px 0 8px;overflow-wrap:anywhere;max-width:78ch}.badges{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:12px;line-height:16px}.badges>span,.badges>code{padding:2px 11px;border-radius:14px;background:var(--pale);color:var(--deep)}.badges>code{background:#eff3f5;font-size:12px;line-height:16px}.badges>.channel{background:#dcf2e6;color:#195b3b}.badges>.expand-label{background:transparent;padding-left:4px;text-decoration:underline;font-size:12px;color:var(--muted)}.expand-label:before{content:"+ ";font-size:12px}.entry[open] .expand-label:before{content:"− "}.builds{margin:18px 0 0;padding:0;list-style:none;background:var(--wash);border-left:3px solid var(--line)}.builds li{padding:12px 15px;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;border-bottom:1px solid var(--line);font-size:14px;line-height:20px}.builds strong{font-weight:600}.builds a{text-decoration:underline}.builds code{flex-basis:100%;font-size:12px;line-height:16px}.empty{padding:40px 0 50px}.empty h2{font-size:20px;line-height:28px;font-weight:600}.empty p{font-size:14px;line-height:20px;color:var(--muted)}#load-more{font-size:14px;line-height:20px;font-weight:600;display:block;margin:18px auto 0;min-width:260px;padding:9px 24px;border:1px solid #adc5d1;border-radius:24px;color:var(--deep);background:var(--wash)}.time-note{font-size:12px;line-height:16px;color:var(--muted);text-align:center;margin-top:14px}
@media(max-width:760px){main{padding:20px 22px 30px}#filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.search-label{grid-column:1/-1}.reset{justify-self:start;min-height:32px;padding:0}.date-group{display:block;margin-bottom:24px}.date-rail{background:none;display:block;font-size:20px;padding:12px 0 8px;line-height:28px;font-weight:600}.date-rail span:first-child{font:inherit;letter-spacing:0;margin-right:6px}.day-entries{margin-left:5px}.entry{margin-left:24px;padding:14px 0 19px}.entry:before{left:-30px;top:23px}.entry-heading{display:block}.entry-heading time{display:block;margin-top:6px}.badges{gap:5px}#load-more{width:100%;min-width:0}.builds li{padding:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
