:root { --bg:#111; --fg:#eee; --dim:#999; --accent:#ff3d7f; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.45 system-ui,-apple-system,sans-serif; }
header { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.25rem; border-bottom:1px solid #222; position:sticky; top:0; background:var(--bg); }
header a { color:var(--fg); text-decoration:none; margin-left:1rem; }
.brand { font-weight:800; margin:0; font-size:1.25rem; }
.brand span { color:var(--accent); }
main { max-width:760px; margin:0 auto; padding:1rem 1.25rem 3rem; }
h2 { font-size:1rem; text-transform:uppercase; letter-spacing:.06em; color:var(--accent); margin:2rem 0 .5rem; }
ul { list-style:none; padding:0; margin:0; }
.show { display:flex; gap:1rem; padding:.6rem 0; border-bottom:1px solid #1d1d1d; }
.show time { flex:0 0 4.5rem; color:var(--dim); font-variant-numeric:tabular-nums; }
.title { color:var(--fg); font-weight:600; text-decoration:none; }
a.title:hover { text-decoration:underline; }
.with, .addr, .price, .venues span { color:var(--dim); font-size:.9rem; }
.venue { color:var(--accent); font-size:.9rem; text-decoration:none; }
.venues li { padding:.4rem 0; }
.venues a { color:var(--fg); }
.more { display:block; text-align:center; padding:1rem; margin-top:1rem; color:var(--dim); text-decoration:none; }
.more.htmx-request { opacity:.5; }
footer { text-align:center; color:var(--dim); font-size:.8rem; padding:2rem; }
.aux { display:none !important; }
.icon { vertical-align:-.15em; margin-right:.4em; border-radius:3px; object-fit:contain; }
h1.venue-head .icon { vertical-align:-.2em; margin-right:.45em; }
.addr a { color:inherit; text-decoration-color:var(--dim); }
