
/* Calendar only: pastel category identities, retained data-kind contract. */
.calendar .event,.agenda .event{--vivid-bg:#e3e9f3;--vivid-ink:#253450;--vivid-accent:#8397bc;background:var(--vivid-bg);color:var(--vivid-ink);border-left:3px solid var(--vivid-accent);box-shadow:inset 0 1px rgba(255,255,255,.35);transition:filter .18s,transform .18s}
.calendar .event[data-kind="ภาพยนตร์"],.agenda .event[data-kind="ภาพยนตร์"]{--vivid-bg:#dedbfa;--vivid-ink:#39316b;--vivid-accent:#9789dd}
.calendar .event[data-kind="ซีรีส์"],.agenda .event[data-kind="ซีรีส์"]{--vivid-bg:#d9eafb;--vivid-ink:#23466b;--vivid-accent:#79addc}
.calendar .event[data-kind="บันเทิง"],.agenda .event[data-kind="บันเทิง"]{--vivid-bg:#f5dcec;--vivid-ink:#673655;--vivid-accent:#d38bb5}
.calendar .event[data-kind="สารคดี / ความรู้"],.agenda .event[data-kind="สารคดี / ความรู้"]{--vivid-bg:#d9eee4;--vivid-ink:#295744;--vivid-accent:#78b99c}
.calendar .event[data-kind="เด็กและครอบครัว"],.agenda .event[data-kind="เด็กและครอบครัว"]{--vivid-bg:#f5eccb;--vivid-ink:#67572b;--vivid-accent:#d3b868}
.calendar .event[data-kind="กีฬา"],.agenda .event[data-kind="กีฬา"]{--vivid-bg:#d9eee0;--vivid-ink:#275b3b;--vivid-accent:#79bb89}
.calendar .event[data-kind="ข่าว"],.agenda .event[data-kind="ข่าว"]{--vivid-bg:#f8e0d5;--vivid-ink:#794735;--vivid-accent:#dca08a}
.calendar .event strong,.calendar .event small,.calendar .event .event-kind,.agenda .event strong,.agenda .event small,.agenda .event .event-kind{color:inherit}
.calendar .event:hover,.agenda .event:hover{filter:brightness(1.065);transform:translateY(-1px)}
.calendar .day.is-today{z-index:1;isolation:isolate;background:linear-gradient(145deg,#40304e,#23243c 70%);box-shadow:inset 0 0 0 2px #e6a9df,0 0 0 1px #d79dd566,0 0 22px #d77ed13b;animation:today-breathe 3.5s ease-in-out infinite}
.calendar .day.is-today .daytop button.today{background:linear-gradient(120deg,#f6c6e8,#d5b9fa);color:#2c1b3a;border-radius:9px;padding:3px 11px;font-weight:800;box-shadow:0 2px 12px #e7a2df66}
.calendar .day.is-today .daytop::after{content:'TODAY';margin-left:auto;align-self:center;color:#f5c9ee;font:700 9px/1.4 'Plus Jakarta Sans',sans-serif;letter-spacing:.12em}
@keyframes today-breathe{0%,100%{box-shadow:inset 0 0 0 2px #e6a9df,0 0 0 1px #d79dd566,0 0 18px #d77ed126}50%{box-shadow:inset 0 0 0 2px #f5c6ed,0 0 0 1px #e7b2e888,0 0 29px #d77ed160}}
@media(prefers-reduced-motion:reduce){.calendar .day.is-today{animation:none}}
