:root { --ink:#171917; --muted:#6a706b; --paper:#fcfcfa; --surface:#fff; --field:#fff; --line:#e4e6e2; --accent:#376f58; }
:root[data-theme="dark"] { --ink:#f0f2ef; --muted:#a4aaa5; --paper:#171917; --surface:#202420; --field:#252a26; --line:#393f3a; --accent:#9acbad; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.5 ui-sans-serif, system-ui, sans-serif; }
main { width:min(760px, calc(100% - 32px)); margin:clamp(2.75rem, 7vh, 5rem) auto 4rem; }
header { margin-bottom:1.65rem; }
.header-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.eyebrow { color:var(--accent); font:600 .76rem/1.3 ui-sans-serif, system-ui; letter-spacing:.12em; text-transform:uppercase; }
.header-top .eyebrow { margin:0; }
.header-links { align-items:center; display:flex; gap:.85rem; }
.github-link, .rss-link { align-items:center; align-self:center; color:var(--muted); display:inline-flex; font:.8rem/1 ui-sans-serif, system-ui; gap:.35rem; height:2rem; justify-content:center; text-decoration:none; }
.github-link:hover { color:var(--accent); }
.rss-link { background:transparent; border:0; color:#c75f17; padding:0; }
.rss-link:hover { background:transparent; }
.rss-link:hover { color:#9d4610; }
.github-link svg, .rss-link svg { fill:currentColor; height:1rem; width:1rem; }
.theme-toggle { align-items:center; align-self:auto; background:transparent; border:1px solid var(--line); border-radius:8px; color:var(--muted); cursor:pointer; display:inline-flex; font-size:1.1rem; height:2rem; justify-content:center; line-height:1; padding:0; width:2rem; }
.theme-toggle:hover { color:var(--ink); }
h1 { margin:.35rem 0 0; font-size:clamp(2.25rem, 6vw, 3.6rem); font-weight:650; letter-spacing:-.055em; line-height:1; }
.lede { color:var(--muted); margin:.65rem 0 0; }
form { display:grid; grid-template-columns:2fr 1fr 1fr 1fr auto; gap:.45rem; padding:.72rem; background:var(--surface); border:1px solid var(--line); border-radius:10px; }
label { display:grid; gap:.25rem; color:var(--muted); font:600 .72rem/1.2 ui-sans-serif, system-ui; letter-spacing:.04em; text-transform:uppercase; }
input, select, button { min-width:0; border:1px solid var(--line); border-radius:5px; background:var(--field); color:var(--ink); padding:.52rem .6rem; font:inherit; }
button { align-self:end; background:var(--accent); border-color:var(--accent); color:white; cursor:pointer; }
form button, .rss-controls a, .rss-controls button { height:2.1rem; }
.quick-ranges { align-items:center; display:flex; flex-wrap:wrap; gap:.35rem; margin:.65rem 0; }
.quick-ranges span { color:var(--muted); font:.78rem/1 ui-sans-serif, system-ui; margin-right:.2rem; }
.quick-ranges button { background:transparent; color:var(--accent); font-size:.78rem; padding:.42rem .6rem; }
.quick-ranges button:hover { background:var(--accent); color:white; }
.rss-panel { border-bottom:1px solid var(--line); color:var(--muted); font-size:.86rem; padding:.65rem 0; }
.rss-panel summary { align-items:center; color:#b95816; cursor:pointer; display:flex; font:600 .78rem/1.2 ui-sans-serif, system-ui; gap:.4rem; letter-spacing:.04em; text-transform:uppercase; }
.rss-panel summary svg { fill:currentColor; height:1rem; width:1rem; }
.rss-panel p { margin:.6rem 0; }
.rss-controls { display:flex; gap:.5rem; }
.rss-controls select { flex:1; font-size:.88rem; padding:.4rem .55rem; }
.rss-controls a, .rss-controls button { background:#b95816; border:0; border-radius:5px; color:white; font:.84rem/1 ui-sans-serif, system-ui; padding:.55rem .7rem; text-decoration:none; }
#status { min-height:1.45em; color:var(--muted); font-size:.86rem; margin:1rem 0 .6rem; }
.abstract-tools { display:flex; justify-content:flex-end; margin:-2rem 0 .5rem; }
.abstract-tools button { font-size:.76rem; padding:.4rem .6rem; }
article { padding:1rem 0; border-top:1px solid var(--line); }
article a { color:var(--ink); font-size:1.03rem; font-weight:650; line-height:1.35; text-decoration:none; }
article a:hover { color:var(--accent); }
mark { background:color-mix(in srgb, var(--accent) 18%, transparent); border-radius:2px; color:inherit; padding:0 .08em; }
.meta { color:var(--muted); font: .78rem/1.4 ui-sans-serif, system-ui; margin:.3rem 0 .55rem; }
.abstract { margin:0; color:var(--muted); }
.abstract summary { color:var(--accent); cursor:pointer; font:.82rem/1.4 ui-sans-serif, system-ui; }
.abstract summary:hover { text-decoration:underline; }
.abstract p { margin:.65rem 0 0; }
#pagination { align-items:center; backdrop-filter:blur(10px); background:color-mix(in srgb, var(--surface) 94%, transparent); border:1px solid var(--line); border-radius:10px; bottom:.75rem; box-shadow:0 8px 24px rgba(23,25,23,.08); display:flex; flex-wrap:wrap; gap:.25rem; justify-content:center; margin:1.2rem auto; max-width:100%; padding:.35rem .45rem; position:sticky; width:max-content; z-index:10; }
#pagination button { font-size:.78rem; padding:.4rem .58rem; }
#pagination button:disabled { cursor:default; opacity:.45; }
#page-links { align-items:center; display:flex; gap:.25rem; }
#page-links button { background:var(--surface); border-color:var(--line); color:var(--muted); min-width:1.85rem; padding:.35rem .3rem; }
#page-links button.current, #page-links button:hover { background:var(--accent); border-color:var(--accent); color:white; }
#page-number { color:var(--muted); font:.76rem/1 ui-sans-serif, system-ui; min-width:6.8rem; text-align:center; }
.page-size { align-items:center; color:var(--muted); display:flex; font:.72rem/1 ui-sans-serif, system-ui; gap:.3rem; margin-left:.25rem; }
.page-size select { font-size:.76rem; padding:.35rem; }
.page-jump { align-items:center; color:var(--muted); display:flex; font:.72rem/1 ui-sans-serif, system-ui; gap:.3rem; }
.page-jump input { font-size:.72rem; padding:.35rem; width:3rem; }
.export-tools { align-items:center; display:flex; gap:.4rem; justify-content:flex-end; margin:.8rem 0; }
.export-tools span { color:var(--muted); font:.78rem/1 ui-sans-serif, system-ui; margin-right:.2rem; }
.export-tools button { align-items:center; display:inline-flex; font-size:.76rem; height:1.9rem; justify-content:center; line-height:1; padding:.4rem .55rem; }
footer { color:var(--muted); font-size:.8rem; margin-top:3rem; }
footer a { color:inherit; }
input, select, button, .rss-controls a { border-radius:8px; padding:.45rem .58rem; }
button { font-size:.78rem; }
.rss-controls button { font-size:.78rem; }
form button, .rss-controls a, .rss-controls button { height:2.05rem; }
form button { align-items:center; display:inline-flex; justify-content:center; line-height:1; }
form { gap:.45rem; }
#pagination button { font-size:.72rem; padding:.35rem .5rem; }
@media (max-width:680px) { main { margin-top:2.5rem; } form { grid-template-columns:1fr 1fr; } form label:first-child { grid-column:1 / -1; } form button { grid-column:1 / -1; } .abstract-tools { margin:-2rem 0 .5rem; } }
