/* "What's on" (WF-028): one quiet line on cards under the weather chip, and the hub panel. Follows docs/UI_DESIGN.md tokens. */
.card-whats-on{display:grid;gap:1px;margin:6px 0 0;font-size:12px;line-height:18px;color:var(--ink-2);min-width:0}
.card-whats-on:empty{display:none}
.card-whats-on .ev-line{display:flex;align-items:center;gap:4px;min-width:0}
.card-whats-on .ev-label{font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;white-space:nowrap}
.card-whats-on .ev-date{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;color:var(--ink-2);font-weight:700}
.card-whats-on .ev-now,.card-whats-on .ev-label,.card-whats-on .ev-more{flex:0 0 auto}
.card-whats-on .ev-now{padding:0 5px;letter-spacing:.02em}
.card-whats-on .ev-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;color:var(--ink)}
.card-whats-on .ev-icon{width:14px;height:14px;flex:0 0 auto;color:var(--accent-ink)}
.ev-now{display:inline-block;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-ink);font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.ev-more{margin-left:auto;min-height:24px;padding:0 0 0 4px;border:0;background:none;color:var(--accent-ink);font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}
.ev-more:hover{text-decoration:underline}
/* 44 × 44 px hit area without growing the 18 px line (QA, WF-032): the button is ~20 × 24 px, so extend it invisibly. */
.card-whats-on .ev-more{position:relative;z-index:2}
.card-whats-on .ev-more::before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}

/* Hub panel */
.hub-whats-on[hidden]{display:none}
.hub-whats-on .ev-section+.ev-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.hub-whats-on h3{margin:0 0 8px;font-size:14px;font-weight:800;color:var(--ink)}
.ev-list,.ev-annual-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.ev-row a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:start;padding:8px 6px;margin:0 -6px;border-radius:12px;color:inherit;text-decoration:none}
.ev-row a:hover,.ev-row a:focus-visible{background:var(--surface-2)}
.ev-row .ev-thumb{grid-row:span 2;width:72px;height:41px;object-fit:cover;border-radius:8px;background:var(--surface-2)}
.ev-row:has(.ev-thumb) a{grid-template-columns:72px minmax(0,1fr)}
.ev-when{display:flex;flex-wrap:wrap;gap:0 8px;font-size:12px;color:var(--muted)}
.ev-when strong{color:var(--ink);font-weight:800}
.ev-row:has(.ev-thumb) .ev-when{grid-column:2}
.ev-what{display:grid;gap:2px;min-width:0;grid-column:1/-1}
.ev-row:has(.ev-thumb) .ev-what{grid-column:2}
.ev-row-title .ev-now{margin-right:4px}
.ev-row-title{font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ev-venue{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.ev-meta .tag{display:inline-flex;align-items:center;gap:4px;font-size:11px}
.ev-meta .ev-icon{width:12px;height:12px}
.ev-status{background:var(--surface-2);color:var(--ink-2)}
.ev-status-cancelled,.ev-status-postponed{background:var(--accent-soft);color:var(--accent-ink)}
.ev-row.is-cancelled .ev-row-title{text-decoration:line-through;text-decoration-thickness:1px}
.ev-annual-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:8px 0;align-items:start}
.ev-annual-row+.ev-annual-row{border-top:1px solid var(--line)}
.ev-annual-row>.ev-icon{width:18px;height:18px;margin-top:2px;color:var(--accent-ink)}
.ev-annual-row div{display:grid;gap:2px;min-width:0}
.ev-annual-row strong{color:var(--ink)}
.ev-usual{font-size:13px;color:var(--ink-2)}
.ev-desc{font-size:12px;color:var(--muted)}
.ev-links{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px}
.ev-badge{color:var(--muted)}

/* Coming up as one row per event, annual events as chips (user, 2026-11-04). */
.ev-asof{font:var(--text-meta);font-size:12px;color:var(--ink-muted)}
.ev-dated-list{list-style:none;margin:0;padding:0;display:grid}
.ev-dated{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:4px 14px;align-items:baseline;padding:9px 0;border-top:1px solid var(--hairline)}
.ev-dated:first-child{border-top:0}
.ev-dated-date{font:var(--text-meta);font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.ev-dated-main{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.ev-dated-main .ev-title-link{color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.ev-dated-main .ev-title-link:hover{text-decoration:underline;text-decoration-color:var(--rust);text-underline-offset:3px}
.ev-kind{font:var(--text-meta);font-size:12px;color:var(--ink-muted)}
.ev-dated .ev-details{font:var(--text-meta);color:var(--rust-text);text-decoration:none;white-space:nowrap}
.ev-dated .ev-details:hover{text-decoration:underline}
@media(max-width:480px){.ev-dated{grid-template-columns:minmax(0,1fr) auto}.ev-dated-date{grid-column:1/-1}}
.ev-annual-chips{display:flex;flex-wrap:wrap;gap:8px}
.ev-annual-chip{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 14px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--ink)}
.ev-annual-chip small{font-size:11px;font-weight:700;color:var(--ink-muted);letter-spacing:.04em}

/* Top picks, "See all" with category chips, and on-demand search (WF-028 follow-up). */
.ev-how{margin:6px 0 0}
.ev-how h4{margin:0;font-size:12px;font-weight:800;color:var(--accent-ink)}
.ev-see-all{width:100%;margin-top:8px}
.ev-all{margin-top:10px}
.ev-chips{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:2px 0 6px}
.ev-chips::-webkit-scrollbar{display:none}
.ev-chip-filter{flex:0 0 auto;min-height:36px;padding:0 12px;font-size:13px}
.ev-count{color:var(--muted);font-weight:700}
.ev-chip-filter[aria-pressed="true"] .ev-count{color:inherit}
.ev-search-wrap{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.ev-search{display:flex;gap:8px}
.ev-search input{flex:1 1 auto;min-width:0;min-height:var(--tap);padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);font:inherit;color:var(--ink)}
.ev-search button{flex:0 0 auto}
.ev-search-results:not(:empty){margin-top:10px}
.ev-search-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.ev-search-head h4{margin:0;font-size:13px;font-weight:800;color:var(--ink)}
.ev-title-link{color:inherit}
.ev-domain{font-size:12px;color:var(--muted);white-space:nowrap}
