.controls .utility-filters .history-chip{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:0 14px;border:1px solid var(--filter-edge);border-radius:999px;background:var(--filter-surface);color:var(--filter-text);box-shadow:var(--filter-shadow);font:500 13.5px/1 var(--ui-font,Inter,sans-serif);-webkit-backdrop-filter:blur(12px) saturate(1.25);backdrop-filter:blur(12px) saturate(1.25)}
.map-view-active .map-floating-filters .utility-filters{flex-wrap:nowrap;width:max-content;max-width:100%}
.event-card.full{opacity:1}.event-card.full .book{background:#f0f5fa;color:#1764ac;border-color:#d8e2ed}.event-card .activity-insight{grid-column:2/-1;display:inline-flex;justify-self:start;margin:0;padding:0;background:transparent}.mobile-card .activity-insight{grid-column:1/-1}
.activity-muted{color:var(--secondary,#737982);font-size:13px;line-height:1.5}.activity-detail-button,.activity-rate-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--edge,#dce2ea);border-radius:14px;padding:0 17px;background:transparent;color:var(--link,#1764ac);white-space:nowrap;font:500 14px var(--ui-font,Inter,sans-serif);text-decoration:none}
.activity-rate-button{background:#0877e8;color:#fff;border-color:transparent}.event-page-book.event-page-book-past{background:transparent;color:var(--link,#1764ac);border:1px solid var(--edge,#dce2ea)}
.activity-badges{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.activity-badge-wrap{position:relative;display:inline-flex}.activity-badge{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0;border:0;background:transparent;font:500 12px/1.4 var(--ui-font,Inter,sans-serif);color:var(--secondary,#657283);cursor:help}.activity-badge svg{display:block;flex:none;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.activity-badge-popular{color:#ad5912}.activity-badge-popular svg{fill:currentColor;stroke:none}.activity-badge-urgent{color:#b34e1b}.activity-badge-hint{box-sizing:border-box;position:absolute;bottom:calc(100% + 7px);left:0;z-index:20;width:max-content;max-width:min(230px,calc(100vw - 48px));padding:9px 12px;border:1px solid var(--edge,#dce2ea);border-radius:10px;background:var(--surface,#fff);box-shadow:0 4px 18px #0002;color:var(--text,#222);font:400 12px/1.4 var(--ui-font,Inter,sans-serif);white-space:normal;text-align:left;pointer-events:none}.activity-badge-hint[hidden]{display:none}.activity-insight .activity-badge{font-size:11px;min-width:28px;justify-content:center}.event-activity-labels:empty,.event-activity-reviews:empty{display:none}.event-activity-labels .activity-badge{font-size:13px}.event-activity-reviews{margin-top:30px;scroll-margin-top:64px}.event-activity-reviews>h2{font-size:18px;font-weight:500;margin:0 0 14px}.activity-review{padding:16px 0;border-bottom:1px solid var(--edge,#e6eaf0)}.activity-review p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6;margin:10px 0}.review-stars{font-size:15px;letter-spacing:2px;color:#af6b13;margin-right:12px}.review-level{font-size:12px;color:var(--secondary,#737982)}.activity-review time{display:block;font-size:12px}
.history-document #history-page{max-width:1000px;margin:0 auto;padding:0 24px 64px}.history-title{font-size:clamp(28px,4vw,40px);letter-spacing:-1px;font-weight:600;margin:22px 0}.history-search{display:block;box-sizing:border-box;width:100%;min-height:48px;border:1px solid var(--edge,#dce2ea);border-radius:14px;padding:12px 16px;background:var(--surface,#fff);color:var(--text,#222);font:400 15px var(--ui-font,Inter,sans-serif);margin-bottom:24px}.history-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.history-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px;border:1px solid var(--edge,#e2e7ee);border-radius:18px;background:var(--surface,#fff);text-decoration:none;color:var(--text,#222)}.history-card:hover{border-color:var(--link,#1764ac)}.history-card-info{min-width:0}.history-card h2{font-size:16px;font-weight:500;line-height:1.4;margin:8px 0;overflow-wrap:anywhere}.history-card p{margin:0}.history-date{font-size:12px;color:var(--secondary,#737982)}.history-card-arrow{font-size:23px;color:var(--secondary,#737982)}
.rate-document #rating-page{max-width:880px;margin:0 auto;padding:0 24px 60px}.rating-context{font-size:13px;line-height:1.6;color:var(--secondary,#737982);margin:10px 0 22px;overflow-wrap:anywhere}.rating-panel{border:1px solid var(--edge,#e2e7ee);border-radius:26px;padding:32px;background:var(--surface,#fff)}.rating-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:12px}.rating-progress>span{height:4px;border-radius:99px;background:#8290a32a;transition:background-color 180ms ease-out,transform 180ms ease-out}.rating-progress>span.complete{background:#0b8387;transform:scaleY(1.15)}.rating-step-count{font-size:12px;color:var(--secondary,#737982);margin:0 0 26px}.rating-question{font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.2;letter-spacing:-1px;margin:0 0 30px;outline:none;animation:rating-enter 200ms cubic-bezier(.2,0,0,1)}.rating-options{min-width:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0;padding:0;border:0}.rating-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;min-height:150px;padding:20px 10px;border:1px solid var(--edge,#dce2ea);border-radius:18px;cursor:pointer;background:var(--surface,#fff);color:var(--text,#222);transition:background-color 120ms ease-out,border-color 120ms ease-out,transform 120ms ease-out}.rating-choice:hover{transform:translateY(-3px);border-color:#0b8387}.rating-choice:has(:checked){border-color:#0b8387;background:#0b838710;box-shadow:inset 0 0 0 1px #0b8387}.rating-choice:has(:focus-visible){outline:3px solid #0b8387;outline-offset:3px}.rating-choice input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.rating-choice-icon{font-size:40px;line-height:1.2}.rating-choice:has(:checked) .rating-choice-icon{animation:rating-pop 220ms cubic-bezier(.175,.885,.32,1.275)}.rating-choice-label{font-size:13px;line-height:1.4;text-align:center;font-weight:500}.rating-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:34px}.rating-next,.rating-back,.rating-skip{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:0;border-radius:14px;font:500 14px var(--ui-font,Inter,sans-serif);text-decoration:none;cursor:pointer}.rating-next{background:#0b777b;color:#fff}.rating-next:hover{background:#08676b}.rating-next:disabled{opacity:.4;cursor:default}.rating-back,.rating-skip{background:transparent;color:var(--secondary,#737982);padding-inline:6px}.rating-back{margin-right:auto}.rating-back[hidden]{display:none}.rating-comment-label{display:block;font-size:14px;font-weight:500}.rating-comment{display:block;box-sizing:border-box;resize:vertical;width:100%;min-height:140px;max-height:320px;padding:16px;margin-top:10px;border:1px solid var(--edge,#dce2ea);border-radius:16px;background:var(--surface,#fff);color:var(--text,#222);font:400 15px/1.6 var(--ui-font,Inter,sans-serif)}.rating-comment-count{display:block;text-align:right;font-size:11px;color:var(--secondary,#737982);margin:6px 0 24px}.rating-attendance{display:flex;align-items:center;gap:12px;font-size:14px;min-height:44px;cursor:pointer}.rating-attendance input{width:20px;height:20px;accent-color:#0b777b}.rating-status{font-size:13px;color:var(--secondary,#737982);min-height:20px;margin:12px 0}.rating-delete{border:0;background:transparent;color:var(--secondary,#737982);font:400 12px var(--ui-font,Inter,sans-serif);padding:12px 0;cursor:pointer}.rating-delete-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:13px;margin-top:18px}.rating-delete-confirm .rating-back{margin:0}.rating-delete-confirm .rating-delete{color:#b74343}.rating-success{text-align:center;padding-block:52px}.rating-success h1{font-size:34px;font-weight:600;letter-spacing:-.8px;outline:0}.rating-success .rating-next{margin-top:18px}.rating-success-icon{font-size:58px;margin-bottom:20px;animation:rating-pop 320ms cubic-bezier(.175,.885,.32,1.275)}
@keyframes rating-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes rating-pop{from{transform:scale(.9)}65%{transform:scale(1.08)}to{transform:scale(1)}}
:is(.activity-badge,.history-card,.activity-detail-button,.activity-rate-button,.rating-next,.rating-back,.rating-skip,.rating-delete,.history-search,.rating-comment):focus-visible{outline:2px solid #0b8387;outline-offset:3px}
html[data-theme=dark] .event-card.full .book{background:#26384d;color:#8ec4ff;border-color:#41556c}html[data-theme=dark] .activity-badge-popular{color:#f5b668}html[data-theme=dark] .activity-badge-urgent{color:#ffb179}html[data-theme=dark] .review-stars{color:#f5b668}
@media(max-width:700px){.history-results{grid-template-columns:1fr}.history-document #history-page,.rate-document #rating-page{padding-inline:16px}.history-card{padding:18px}.rating-panel{padding:24px 18px;border-radius:22px}.rating-options{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.rating-choice{grid-column:span 2;min-height:112px;padding:16px 8px;gap:10px}.rating-choice:nth-of-type(n+4){grid-column:span 3}.rating-choice-icon{font-size:34px}.rating-choice-label{font-size:12px}.rating-step-count{margin-bottom:22px}.rating-question{font-size:28px;margin-bottom:24px}.rating-actions{margin-top:26px}.rating-context{margin-bottom:16px}.rating-next{padding-inline:18px}.rating-success h1{font-size:29px}.activity-badge{min-height:40px}.event-activity-labels .activity-badges{gap:4px 14px}}
@media(prefers-reduced-motion:reduce){.rating-question,.rating-choice-icon,.rating-success-icon{animation:none!important}.rating-choice,.rating-progress>span{transition:none}.rating-choice:hover{transform:none}}
/* Shared page colours also cover headings outside the event article. */
#rating-page,#history-page{color:var(--text,#222)}#rating-page h1,.history-card h2,.history-title{color:var(--text,#222)}.history-document .event-page-nav,.rate-document .event-page-nav{background:var(--cream,#f7f8fa)}.rating-choice-icon,.rating-choice-label{pointer-events:none}
/* Ended activities reuse the upcoming-event component, with booking retired. */
.history-document .history-results{display:block}.history-day-heading{font-size:17px;font-weight:500;color:var(--text,#222);margin:24px 0 12px}.history-results .event-card.ended-card{background:var(--surface,#fff);border-color:var(--edge,#e2e7ee);box-shadow:none;cursor:pointer;opacity:1}.ended-card .event-title-button{display:block;max-width:100%;border:0;background:none;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:inherit;cursor:pointer}.history-results .ended-card .book{background:#8290a312;border:1px solid var(--edge,#dce2ea);color:var(--secondary,#737982);box-shadow:none}.history-results .ended-card .book:hover{background:#8290a324}.history-results .ended-card .book-icon{filter:grayscale(1);opacity:.7}.ended-card:has(:focus-visible){outline:2px solid #0b8387;outline-offset:3px}
/* One popup owns both details and rating; navigation swaps its contents. */
dialog.activity-popup{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(800px,calc(100vw - 32px));max-width:800px;max-height:90dvh;padding:0;overflow:hidden;border:1px solid var(--edge,#e2e7ee);border-radius:24px;background:var(--surface,#fff);color:var(--text,#222);box-shadow:0 20px 70px #0004}dialog.activity-popup::backdrop{background:#14202b70}.activity-popup-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px 10px;font-size:14px;font-weight:500;background:var(--surface,#fff)}.activity-popup-close{display:grid;place-items:center;flex:none;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:50%;background:#8290a318;color:inherit;cursor:pointer}.activity-popup-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.activity-popup-content{box-sizing:border-box;overflow:auto;overscroll-behavior:contain;max-height:calc(90dvh - 64px);padding:0 24px 26px;min-height:140px}dialog.activity-popup .event-page{padding:0;background:transparent;border-radius:0}dialog.activity-popup .event-page-nav{justify-content:flex-end;padding:0;min-height:34px;background:var(--surface,#fff)}dialog.activity-popup .event-page-title{font-size:28px;margin-top:14px}dialog.activity-popup .rating-panel{padding:4px 0 0;border:0;border-radius:0;background:transparent}dialog.activity-popup .rating-context{margin:8px 0 24px}dialog.activity-popup .rating-success{padding:32px 0}dialog.activity-popup .rating-question,dialog.activity-popup .rating-success h1{color:var(--text,#222)}.activity-popup-close:focus-visible{outline:2px solid #0b8387;outline-offset:3px}
@media(max-width:620px){dialog.activity-popup{width:calc(100vw - 16px);max-height:92dvh;border-radius:22px}.activity-popup-heading{padding:12px 18px 8px}.activity-popup-content{max-height:calc(92dvh - 56px);padding:0 18px 22px}dialog.activity-popup .event-page-title{font-size:24px}dialog.activity-popup .rating-question{font-size:27px}.history-results .event-card.mobile-card .event-booking .event-actions{grid-column:4}}
.activity-popup .activity-popup-rating .event-page-nav{justify-content:flex-start}

.history-document .history-results .event-card.ended-card :is(h2,.event-time,.metric-price,.roster-count){color:var(--text,#222)}.history-document .history-results .event-card.ended-card .provider-logo{opacity:.85}.history-document .history-results .event-card.ended-card .metric-level{background:#eee7ff;border-color:#e5dbff;color:#6341aa}.history-document .history-results .event-card.ended-card .metric-level strong{color:inherit}.history-document .history-results .event-card.ended-card .book{background:var(--soft-teal,#eaf3ff);color:var(--link,#1764ac);border-color:var(--edge,#dce2ea);box-shadow:none;font-size:12px;white-space:nowrap}.history-document .history-results .event-card.ended-card .book:hover{filter:brightness(.97)}html[data-theme=dark] .history-document .history-results .event-card.ended-card .metric-level{background:#38294f;border-color:#503967;color:#c7a7f0}html[data-theme=dark] .history-document .history-results .event-card.ended-card .book{color:#8ec4ff}@media(max-width:620px){.history-document .history-results .event-card.mobile-card .book{width:auto;min-width:66px;padding:0 10px}.history-document .history-results .event-card.mobile-card{grid-template-columns:auto auto minmax(0,1fr) auto}.history-document .history-results .event-card.mobile-card .provider-logo{max-width:28px}}

/* Booking signals form a quiet column immediately before the provider mark. */
.event-card .event-provider{display:grid;grid-template-columns:28px auto;align-items:center;justify-content:center;height:auto;min-height:26px;gap:16px;position:relative}
.event-card .event-provider>.provider-logo{grid-column:2;grid-row:1}
.event-card .event-provider>.event-signals{grid-column:1;grid-row:1}
.event-signals{display:flex;flex:none;align-items:center;line-height:1}
.event-signals .activity-badges{flex-direction:column;flex-wrap:nowrap;gap:8px}
.event-signals .activity-badge{box-sizing:border-box;display:grid;place-items:center;width:28px;height:28px;min-height:28px;padding:0;border:0;border-radius:5px;background:transparent;box-shadow:none;cursor:pointer}
.activity-badge .activity-badge-icon{display:block;font-size:18px;line-height:1;flex:none}
.event-signals .activity-badge-icon{font-size:17px}.event-signals .urgency-icon{width:26px;height:26px}
.activity-badge-fast{color:#946116}.activity-badge-last-chance{color:#ad4d31}
.event-signals .activity-badge-hint{top:calc(100% + 7px);bottom:auto}
.event-activity-labels .activity-badges{gap:8px 16px}
html[data-theme=dark] .activity-badge-fast{color:#f5c470}html[data-theme=dark] .activity-badge-last-chance{color:#ffb295}
/* Ended cards retain an active rating action while the event information recedes. */
.event-card.ended-card{opacity:1;box-shadow:none}
.event-card.ended-card :is(.event-time,h2,.venue-group,.metric-price,.metric-level,.event-provider,.roster,.availability-note){opacity:.56}
.event-card.ended-card :is(.metric-level,.event-provider){filter:grayscale(.7)}
.event-card.ended-card .book{background:var(--soft-teal,#eaf3ff);border:1px solid var(--edge,#dce2ea);color:var(--link,#1764ac);font-size:12px;white-space:nowrap;box-shadow:none}
.event-card.mobile-card.ended-card .event-actions .book{width:auto;min-width:66px;padding:0 10px}

/* A small warm illustration carries urgency; the provider remains a separate anchor. */
.activity-badge .urgency-icon{display:block;flex:none;width:28px;height:28px;fill:none;stroke:none;overflow:visible;--urgency-wash:#fff1da;--urgency-face:#fffdf7;--urgency-stroke:#d86f4f;--urgency-hand:#bd5039}
.activity-badge .urgency-icon--clock{--urgency-wash:#fff0e9;--urgency-face:#fffaf7}
.urgency-icon .urgency-motion{animation-duration:6.6s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation-iteration-count:infinite;animation-play-state:paused}
.urgency-visible .urgency-motion{animation-play-state:running}
.urgency-phase-1 .urgency-motion{animation-delay:-2.2s}.urgency-phase-2 .urgency-motion{animation-delay:-4.4s}
.urgency-wash{animation-name:urgency-warmth;transform-origin:16px 16px}
.urgency-flame{animation-name:urgency-flicker;transform-origin:16px 25px}
.urgency-ember{animation-name:urgency-ember;transform-origin:16px 23px}
.urgency-clock{animation-name:urgency-ring;transform-origin:12px 13px}
.urgency-hand{animation-name:urgency-tick;transform-origin:0 0}
@keyframes urgency-flicker{0%,20%,100%{transform:scale(1) rotate(0)}5%{transform:scale(.97,1.08) rotate(-3deg)}11%{transform:scale(1.04,.97) rotate(2deg)}16%{transform:scale(.99,1.04) rotate(-1deg)}}
@keyframes urgency-ember{0%,20%,100%{transform:scale(1);opacity:1}9%{transform:translateY(-.7px) scale(.9,1.13);opacity:.85}}
@keyframes urgency-warmth{0%,22%,100%{transform:scale(1);opacity:.8}10%{transform:scale(1.06);opacity:1}}
@keyframes urgency-ring{0%,20%,100%{transform:rotate(0)}5%{transform:rotate(-7deg)}9%{transform:rotate(5deg)}13%{transform:rotate(-3deg)}17%{transform:rotate(1deg)}}
@keyframes urgency-tick{0%,20%,100%{transform:rotate(0)}9%{transform:rotate(25deg)}}
html[data-theme=dark] .activity-badge .urgency-icon{--urgency-wash:#e9a44e20;--urgency-face:#352c27;--urgency-stroke:#efa17b;--urgency-hand:#ffc9ac}
html[data-theme=dark] .activity-badge .urgency-icon--clock{--urgency-wash:#ed8a6020;--urgency-face:#352a27}
@media(min-width:901px){.event-card:not(.mobile-card){grid-template-columns:66px minmax(180px,1fr) 134px 68px 62px 80px 101px}}
@media(min-width:901px) and (max-width:1050px){.event-card:not(.mobile-card){grid-template-columns:62px minmax(160px,1fr) 130px 64px 60px 76px 97px}}
@media(max-width:360px){html .event-card.mobile-card{column-gap:7px}html .event-card.mobile-card .event-provider{grid-template-columns:24px auto;gap:10px}html .event-card.mobile-card .event-booking .metric-level:not(.metric-missing) strong::before{content:''}.event-signals .activity-badge,.event-signals .urgency-icon{width:24px;height:24px;min-height:24px}}
@media(prefers-reduced-motion:reduce){.urgency-icon,.urgency-icon *{animation:none!important}}

/* Available is a simple switch; past dates always show all ended activities. */
.controls .utility-filters #available-only{display:inline-flex;align-items:center;justify-content:center;flex:none;gap:8px;height:40px;min-height:40px;padding:0 12px;border:1px solid var(--filter-edge,#dce2ea);border-radius:999px;background:var(--filter-surface,#fff);color:var(--filter-text,#485564);box-shadow:var(--filter-shadow,0 2px 8px #172b4509);font:500 13px/1 var(--ui-font,Inter,sans-serif);white-space:nowrap}
#available-only>svg{display:block;flex:none}
.available-switch{position:relative;display:block;flex:none;width:28px;height:16px;border-radius:999px;background:#8995a5}
.available-switch::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002}
#available-only[aria-checked=true] .available-switch{background:#0877e8}
#available-only[aria-checked=true] .available-switch::after{left:14px}
#available-only:focus-visible{outline:2px solid #0877e8;outline-offset:2px}
@media(max-width:620px){.controls .utility-filters #available-only{height:38px;min-height:38px;padding:0 10px;font-size:12px;gap:7px}}

@media(min-width:901px){.event-card:not(.mobile-card) .event-provider{grid-template-columns:64px auto}.event-card:not(.mobile-card) .event-signals{justify-content:flex-end;width:64px}.event-card:not(.mobile-card) .event-signals .activity-badges{flex-direction:row;gap:8px}}
.event-card-link{cursor:pointer}
.event-card .event-title-link{display:block;max-width:100%;color:inherit;font:inherit;letter-spacing:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:inherit;border-radius:3px}
.event-card .event-title-link:focus-visible{outline:2px solid var(--link,#0877e8);outline-offset:3px}
@media(hover:hover){.event-card-link:hover{border-color:var(--link,#0877e8)}}
