:root { --bg:#14110f; --card:#201b18; --fg:#f1e9e1; --mute:#a1958a; --acc:#e0663a; --fav:#f2c14e; --line:#352d28; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.45 -apple-system, system-ui, sans-serif; }
header { top:0; z-index:2; background:var(--bg); padding:14px 16px 8px; border-bottom:1px solid var(--line); }
h1 { margin:0 0 10px; font-size:22px; } h1 span { color:var(--mute); font-weight:400; font-size:15px; margin-left:6px; }
h2 { font-size:18px; margin:28px 0 10px; }
button { font:inherit; color:inherit; cursor:pointer; }
#cats { display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; }
#cats button { flex:none; }
#cats button, #days button { background:var(--card); border:1px solid var(--line); border-radius:999px; padding:4px 11px; }
#cats button[aria-pressed=true] { background:var(--acc); border-color:var(--acc); color:#fff; }
.favtoggle { display:inline-block; margin-top:8px; color:var(--mute); }
#days { position:sticky; top:0; z-index:2; background:var(--bg); display:grid; grid-template-columns:repeat(9,1fr); gap:6px; padding:10px 16px; }
#days button { border-radius:10px; padding:6px 2px; text-align:center; line-height:1.2; }
#days b { display:block; font-size:17px; } #days small { color:var(--mute); font-size:11px; }
#days button.busy { border-color:var(--acc); }
#days button.empty { opacity:.4; }
main, #museums, footer { padding:0 16px; max-width:820px; margin:0 auto; }
#days button[aria-pressed=true] { background:var(--acc); border-color:var(--acc); color:#fff; }
#days button[aria-pressed=true] small { color:#fff; }
#list h2 { margin-top:6px; }
.none { color:var(--mute); }
.ev { display:grid; grid-template-columns:58px 1fr auto; gap:10px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:8px 0; }
.ev.mine { border-color:var(--acc); box-shadow:0 0 0 1px var(--acc) inset; }
.ev time { font-weight:600; color:var(--acc); }
.ev h3 { margin:0; font-size:16px; } .ev h3 a { color:inherit; }
.ev p { margin:3px 0 0; color:var(--mute); font-size:13px; }
.tag { display:inline-block; font-size:11px; padding:1px 7px; border-radius:6px; background:var(--line); margin-right:4px; }
.tag.warn { background:#4a3422; color:#f0b07a; } .tag.ok { background:var(--acc); color:#fff; }
.star { background:none; border:0; font-size:22px; color:var(--mute); padding:0 2px; align-self:start; }
.star[aria-pressed=true] { color:var(--fav); }
.museum { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:8px 0; }
.museum h3 { margin:0 0 4px; font-size:16px; }
footer { color:var(--mute); font-size:12px; padding-top:30px; padding-bottom:40px; }
@media (max-width:560px) { #days { grid-template-columns:repeat(5,1fr); } .ev { grid-template-columns:48px 1fr auto; } }
