:root { --fg:#1b1f24; --muted:#5b6470; --line:#e3e6ea; --accent:#1f6feb; --warn:#b42318; }
* { box-sizing:border-box; }
body { margin:0; font-family:Pretendard, -apple-system, "Malgun Gothic", sans-serif; color:var(--fg); line-height:1.6; word-break:keep-all; }
header, footer { padding:12px 16px; border-bottom:1px solid var(--line); }
footer { border-top:1px solid var(--line); border-bottom:0; font-size:14px; color:var(--muted); }
header a { font-weight:700; color:var(--fg); text-decoration:none; }
main { max-width:760px; margin:0 auto; padding:16px; }
h1 { font-size:1.4rem; line-height:1.35; }
.lead, .notice, .meta, .org { color:var(--muted); }
.notice { font-size:13px; margin-top:24px; }
.filters { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; }
.filters label { display:flex; flex-direction:column; font-size:14px; }
fieldset { border:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 14px; }
.filters fieldset label { flex-direction:row; align-items:center; gap:4px; }
input, select { font:inherit; padding:6px 8px; }
.status { font-weight:600; min-height:1.6em; }
.list { list-style:none; padding:0; margin:0; }
.list li { padding:10px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:88px 1fr 44px; column-gap:8px; align-items:start; }
.list li .meta { grid-column:2 / 4; }
.list li.soon { background:#fff4f2; }
.list .dd { grid-row:span 2; font-weight:700; color:var(--warn); font-size:14px; }
.list .meta { font-size:13px; }
.detail h2 { font-size:1rem; margin:20px 0 4px; }
.raw { white-space:pre-line; margin:0; }
.dday { font-weight:700; color:var(--warn); }
.btn { display:inline-block; padding:10px 14px; background:var(--accent); color:#fff; border-radius:8px; text-decoration:none; }
.fresh { font-size:13px; color:var(--muted); margin:12px 0 0; }
.fresh.warn { color:var(--warn); font-weight:600; }
.remember { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; font-size:14px; }
.remember label { flex-direction:row; align-items:center; gap:4px; }
.hint { flex-basis:100%; margin:0; font-size:12px; color:var(--muted); }
button.link { background:none; border:0; padding:0; color:var(--accent); text-decoration:underline; font:inherit; cursor:pointer; }
.chips { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 4px; }
.chips button { font:inherit; font-size:14px; padding:6px 12px; border:1px solid var(--line); border-radius:999px; background:#fff; cursor:pointer; }
.chips button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#fff; }
.star { font-size:20px; line-height:1; background:none; border:0; cursor:pointer; color:#9aa3ad; padding:2px; min-width:44px; min-height:44px; }
.star.on { color:#e8a100; }
.saved { margin:16px 0; padding:8px 12px; border:1px solid #f0d7a0; border-radius:10px; background:#fffaf0; }
.saved h2 { font-size:1rem; margin:4px 0; }
.more { display:block; width:100%; margin:12px 0; padding:12px; font:inherit; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; }
.cal { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.btn.sub { background:#fff; color:var(--accent); border:1px solid var(--accent); }
.hubs { margin:24px 0 8px; }
.hubs h2 { font-size:1rem; margin:0 0 6px; }
.hubs p { display:flex; flex-wrap:wrap; gap:6px 12px; margin:0; font-size:14px; line-height:1.8; }
.hub section h2 { font-size:1.05rem; margin:22px 0 4px; }
.hub section h2 small { color:var(--muted); font-weight:400; }
.hub .list li { grid-template-columns:88px 1fr; }
.hub .list li .meta { grid-column:2; }
