.upcoming-toolbar{position:relative;min-width:0;margin-top:32px;border-bottom:1px solid oklch(var(--background-200))}
.upcoming-filters{display:flex;align-items:stretch;flex-wrap:nowrap;gap:24px;width:100%;min-width:0;padding:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.upcoming-filters::-webkit-scrollbar{display:none}
.upcoming-filters button{position:relative;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;min-height:56px;padding:12px 8px 16px;border:0;border-radius:10px 10px 0 0;background:transparent;color:oklch(var(--foreground-500));font-size:13px;font-weight:600;line-height:1.8;white-space:nowrap;cursor:pointer;scroll-snap-align:start;transition:background .18s,color .18s}
.upcoming-filters button::after{content:"";position:absolute;right:8px;left:8px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:oklch(var(--primary-600));transform:scaleX(0);opacity:0;transition:transform .2s ease,opacity .2s ease}
.upcoming-filters button>i{font-size:19px;line-height:1}
.upcoming-filters button:hover{background:oklch(var(--primary-50)/.5);color:oklch(var(--primary-700))}
.upcoming-filters button[aria-pressed="true"]{color:oklch(var(--primary-700));background:oklch(var(--primary-50)/.65);font-weight:700;box-shadow:none}
.upcoming-filters button[aria-pressed="true"]::after{transform:scaleX(1);opacity:1}
.upcoming-filters button:focus-visible{outline:2px solid oklch(var(--primary-400));outline-offset:-4px}
.upcoming-filter-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#upcoming-results>[hidden]{display:none!important}
#upcoming-results article{height:100%}
.upcoming-empty{grid-column:1/-1;padding:32px;text-align:center;border:1px dashed oklch(var(--background-300));border-radius:18px;font-size:13px;color:oklch(var(--foreground-600))}
@media(max-width:640px){.upcoming-toolbar{margin-top:24px}.upcoming-filters{gap:12px}.upcoming-filters button{min-height:52px;padding:10px 10px 14px;font-size:12px;gap:7px}.upcoming-filters button>i{font-size:18px}}
@media(prefers-reduced-motion:reduce){.upcoming-filters button,.upcoming-filters button::after{transition:none}}
