:root{--ink:#2b1f1a;--sub:#6e5f55;--line:#e8dccb;--paper:#fbf7f0;--card:#fff;--red:#b3261e;--gold:#a67c1a;--ok:#2f7d4f;--soft:#f5ecdc}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans TC",system-ui,sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}a:hover{color:var(--red)}
.w{max-width:1040px;margin:0 auto;padding:0 20px}header{background:#fff;border-bottom:3px solid var(--red)}.bar{max-width:1040px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.brand{font-family:"Noto Serif TC",serif;font-weight:800;font-size:1.3rem;color:var(--red)}.brand small{display:block;font-family:sans-serif;font-size:.6rem;letter-spacing:.2em;color:var(--gold)}nav{display:flex;gap:18px;margin-left:auto;font-size:.92rem;flex-wrap:wrap}
h1{font-family:"Noto Serif TC",serif;font-size:1.7rem;margin:28px 0 14px}h2{font-family:"Noto Serif TC",serif;font-size:1.2rem;margin:30px 0 12px;padding-left:10px;border-left:4px solid var(--red)}section,.two{margin-bottom:6px}.crumb{font-size:.82rem;color:var(--sub);margin:18px 0 0}
.dc{display:grid;grid-template-columns:170px 1fr 1.2fr;gap:22px;background:#fff;border:1px solid var(--line);border-top:6px solid var(--red);border-radius:6px;padding:22px;margin:8px 0 18px}
.date{text-align:center;border-right:1px dashed var(--line);padding-right:18px}.ym{color:var(--sub)}.dn{font-family:"Noto Serif TC",serif;font-size:5.2rem;font-weight:800;line-height:1.05;color:var(--red)}.wk{font-weight:700}
.lun p{margin:0 0 6px}.ll{font-family:"Noto Serif TC",serif;font-size:1.25rem;font-weight:700}.lun p:nth-child(2){color:var(--sub);font-size:.92rem}
.bd{display:inline-block;font-size:.78rem;padding:1px 10px;border-radius:20px;margin:2px 4px 2px 0;color:#fff}.bd.f{background:var(--red)}.bd.j{background:var(--gold)}
.yj{display:grid;gap:12px;align-content:start}.yj b{display:inline-block;width:26px;height:26px;line-height:26px;text-align:center;border-radius:4px;color:#fff;margin-right:8px;vertical-align:top}.y b{background:var(--ok)}.j b{background:var(--red)}.yj>div{display:flex}.yj .c{display:inline-block;background:var(--soft);border-radius:3px;padding:0 9px;margin:0 6px 6px 0;font-size:.9rem}.yj .n{color:var(--sub)}
.two{display:grid;grid-template-columns:1.6fr 1fr;gap:34px}.cal{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff;margin:8px 0 18px}.cal th{background:var(--soft);padding:6px;font-size:.85rem}.cal th.we{color:var(--red)}
.cal td{border:1px solid var(--line);vertical-align:top;padding:0;height:78px}.cal td a{display:block;height:100%;padding:5px 6px}.cal td b{display:block;font-size:1.1rem}.cal td i{font-style:normal;font-size:.72rem;color:var(--sub)}.cal td.we b{color:var(--red)}.cal td.fs i{color:var(--red);font-weight:700}.cal td.e{background:#faf6ee}.cal td.today{outline:3px solid var(--gold);outline-offset:-3px;background:#fffbe9}
.up,.ev{list-style:none;margin:0;padding:0}.up li a{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}.up b{min-width:62px}.up small{color:var(--sub);margin-left:auto}.ev li{padding:6px 0;border-bottom:1px solid var(--line)}.ev small{color:var(--sub)}
input[type=date]{font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:6px;width:100%}.sm{font-size:.8rem;color:var(--sub);margin:4px 0}.yrs{display:flex;flex-wrap:wrap;gap:8px}.yrs a{background:#fff;border:1px solid var(--line);border-radius:20px;padding:2px 14px}.yrs a:hover{border-color:var(--red)}
.info{display:grid;grid-template-columns:150px 1fr;gap:0;background:#fff;border:1px solid var(--line);margin:0}.info dt,.info dd{margin:0;padding:9px 14px;border-bottom:1px solid var(--line)}.info dt{background:var(--soft);font-weight:700;font-size:.9rem}
.tm,.tb{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem}.tm th,.tm td,.tb th,.tb td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}.tm th,.tb th{background:var(--soft)}.tm tr.lk td:first-child{color:var(--ok);font-weight:700}.tb a{display:block}.tb a:hover{color:var(--red)}
.pn{display:flex;justify-content:space-between;gap:10px;margin:14px 0}.pn a{background:#fff;border:1px solid var(--line);border-radius:20px;padding:3px 16px;font-size:.9rem}details{background:#fff;border:1px solid var(--line);border-radius:6px;padding:10px 16px;margin-bottom:8px}summary{cursor:pointer;font-weight:700}details p{margin:8px 0 0}
footer{margin-top:50px;border-top:1px solid var(--line);padding:24px 20px;text-align:center;font-size:.8rem;color:var(--sub);max-width:900px;margin-left:auto;margin-right:auto}
.tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:10px 0 22px}.tools input{border:1px solid var(--line);font:inherit;padding:8px 14px;border-radius:20px;width:240px;background:#fff}#cats{display:flex;gap:6px;flex-wrap:wrap}#cats button{background:#fff;border:1px solid var(--line);border-radius:20px;padding:3px 14px;font:inherit;font-size:.85rem;cursor:pointer;color:var(--sub)}#cats button.on{background:var(--red);border-color:var(--red);color:#fff}
.nl{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.it{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:4px;padding:16px;display:block}.it:hover{border-color:var(--red)}.tg{font-size:.75rem;color:var(--red);background:var(--soft);padding:2px 9px;border-radius:3px}.it b{display:block;line-height:1.5;margin:8px 0 4px}.it p{margin:0 0 6px;font-size:.88rem;color:var(--sub)}.dd{font-size:.78rem;color:var(--sub)}
.empty{grid-column:1/-1;padding:40px 0;text-align:center;color:var(--sub)}.more{display:block;margin:26px auto 0;background:#fff;border:1px solid var(--red);color:var(--red);font:inherit;padding:8px 28px;border-radius:20px;cursor:pointer}.more[hidden]{display:none}.latest{margin-top:34px}.latest[hidden]{display:none}
@media(max-width:820px){.nl{grid-template-columns:1fr}.dc{grid-template-columns:1fr}.date{border:0;border-bottom:1px dashed var(--line);padding:0 0 14px}.two{grid-template-columns:1fr}.cal td{height:64px}.cal td i{font-size:.62rem}.info{grid-template-columns:110px 1fr}.tm{display:block;overflow-x:auto}nav{margin-left:0}}