:root{--bg:#f6f7f5;--surface:#fff;--text:#1c2420;--muted:#5d6b63;--border:#dde3df;--accent:#2f6b4f;--accent-text:#fff;--danger:#a33a2c}@media (prefers-color-scheme:dark){:root{--bg:#121614;--surface:#1b211e;--text:#e6ece8;--muted:#9aa8a0;--border:#2c3531;--accent:#6fbf95;--accent-text:#0e1411;--danger:#f08a7b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent)}main{max-width:760px;margin:0 auto;padding:24px 16px 64px}h1{margin:0;font-size:1.6rem}.muted{color:var(--muted);font-size:.9rem}.notice{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:24px;padding:16px}h2.day{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:32px 0 8px;font-size:.95rem}ul.events{gap:8px;margin:0;padding:0;list-style:none;display:grid}.event .time{color:var(--muted);font-variant-numeric:tabular-nums}.event .title{overflow-wrap:anywhere;font-weight:600}.event p{color:var(--muted);overflow-wrap:anywhere;margin:4px 0 0;font-size:.92rem}button,.button{font:inherit;cursor:pointer;background:var(--accent);color:var(--accent-text);border:0;border-radius:8px;padding:10px 16px}button.link{color:var(--muted);background:0 0;padding:0;text-decoration:underline}.login{text-align:center;max-width:360px;margin:12vh auto 0;padding:0 16px}.login form{text-align:left;gap:12px;margin-top:16px;display:grid}.login input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px}.error{color:var(--danger);margin:0}.tags{flex-wrap:wrap;gap:6px;margin-bottom:2px;display:flex}.tag{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:0 8px;font-size:.75rem}.tag-cancelled{border-color:var(--danger);color:var(--danger)}.event.cancelled .title{color:var(--muted);text-decoration:line-through}header.top{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.brand{flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.logo{width:96px;height:96px}.tools{gap:6px;display:flex}.tools form{margin:0}.icon-button{background:var(--surface);width:32px;height:32px;color:var(--muted);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:.95rem;display:inline-flex}.icon-button:hover{color:var(--accent);border-color:var(--accent)}.updated{color:var(--muted);text-align:center;white-space:nowrap;font-size:.72rem}:root{--col-badge:56px;--col-kind:60px;--col-time:5.5rem;--col-gap:12px}.col-head{grid-template-columns:var(--col-badge) var(--col-kind);gap:var(--col-gap);display:grid}.cycle-button{-webkit-user-select:none;user-select:none;background:var(--accent);height:60px;color:var(--accent-text);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:800;text-decoration:none;display:flex}.filter-cycle{font-size:1.6rem}.filter-cycle .long{font-size:1.05rem}.cycle-icons{gap:2px;display:flex}.cycle-label{font-size:.72rem;font-weight:700}.event{grid-template-columns:var(--col-badge) var(--col-kind) var(--col-time) 1fr;gap:var(--col-gap);align-items:start;display:grid}.event .time{padding-top:12px}.col-badge{flex-direction:column;align-items:center;gap:6px;padding-top:4px;display:flex}.col-kind{justify-content:center;padding-top:12px;display:flex}.details{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;padding:12px 14px}.badge{border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.6rem;font-weight:800;line-height:1;display:flex}.kind{color:var(--muted)}.facts{gap:2px;margin:6px 0 0;font-size:.92rem;display:grid}.facts div{overflow-wrap:anywhere}.facts dt{font-weight:600;display:inline}.facts dd{margin:0;display:inline}.more{color:inherit;opacity:.85;background:0 0;border:1px solid;border-radius:999px;margin-top:8px;padding:3px 10px;font-size:.8rem;font-weight:600}.more:hover{opacity:1}.details.is-h{color:#1f2547;background:#e4e7fb;border-color:#c3c9f3}.details.is-h p{color:#4a5080}.details.is-h .tag{color:#4a5080;border-color:#aab1e8}.badge-h{color:#fff;background:#6670d6}.details.is-a{color:#fff;background:#0a4a8a;border-color:#0a4a8a}.details.is-a p{color:#d3e2f1}.details.is-a .tag{color:#e1ecf7;border-color:#8db4da}.details.is-a .tag-cancelled{color:#ffb4a8;border-color:#ffb4a8}.badge-a{color:#fff;background:#0a4a8a}.event.cancelled .details.is-a .title,.event.cancelled .details.is-h .title{color:inherit;opacity:.7}.popup{border:1px solid var(--border);background:var(--surface);width:min(560px,100vw - 32px);max-height:85vh;color:var(--text);border-radius:14px;margin:auto;padding:18px 20px;overflow:auto;box-shadow:0 12px 40px #00000040}.popup::backdrop{background:#0a141e73}.popup-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.popup h3{margin:0;font-size:1.15rem}.popup .facts{margin-top:10px}.popup .description{overflow-wrap:anywhere;margin-top:12px;font-size:.95rem}.popup .description p,.popup .description ul{margin:0 0 8px}@media (max-width:480px){:root{--col-badge:46px;--col-kind:46px;--col-gap:8px}.logo{width:72px;height:72px}header.top{gap:10px}.cycle-button{height:52px}.filter-cycle{font-size:1.3rem}.filter-cycle .long{font-size:.9rem}.cycle-icons svg{width:16px;height:16px}.badge{width:40px;height:40px;font-size:1.4rem}.event{grid-template-columns:var(--col-badge) var(--col-kind) 1fr;row-gap:4px}.event .col-badge,.event .col-kind{grid-row:span 2}.event .time{padding-top:0}.col-kind{padding-top:8px}}.event .popup p,.event .popup .description{color:var(--text)}
