/* AB151: member composition from P7 dddcd34; Events controls from AB150 e239a06.
   Adapted to real Razor data and forms. Scoped so management and Account retain their contracts. */
.member-fidelity { width: min(var(--shell-max, 1880px), 100%); padding-inline: clamp(16px, 2.5vw, 48px); padding-top: 28px; --member-row-gap: 14px; }
.member-fidelity h2 { font-size: 1.25rem; font-weight: 700; line-height: 1.2; }
.member-page-heading { margin-bottom: 16px; }
.member-page-heading h1 { font-size: 2.125rem; margin: 0 0 4px; letter-spacing: -.02em; }
.member-page-heading p { font-size: .875rem; margin: 0; color: var(--ink-2); }
.home-page .hub-layout { grid-template-columns: minmax(0, 1fr) clamp(320px, 24vw, 420px); column-gap: clamp(24px, 2.5vw, 48px); }
.home-page .hub-main { gap: 20px; }
.home-page .hub-heading .eyebrow { margin: 0 0 2px; }
.home-page .hub-heading h1 { margin: 0; }
.home-page .hub-glance { margin: 0 0 8px; gap: 8px; }
.home-page .hub-glance a { min-height: 40px; padding: 0 14px; font-size: .8125rem; }
.home-page .hub-glance a strong { font-size: 1.0625rem; }
.home-page .hub-glance a:first-child { background: var(--surface); border-color: var(--line); color: var(--ink); }
.home-page .hub-glance a:nth-child(2) { background: var(--warn-soft); border-color: var(--warn); color: var(--warn); }
.home-page .hub-responses { margin-top: 28px; }
.home-page .home-section-head { padding: 0; margin-bottom: 10px; }
.home-page .home-section-head h2 { margin: 0; }
.home-page .hub-responses > h2 { margin: 28px 0 10px; }
.home-page .hub-responses .personal-event-card { grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 10px 4px; }
.member-fidelity .personal-event-card__when { display: flex; flex-direction: column; line-height: 1.25; font-size: .8125rem; font-weight: 400; color: var(--ink-2); }
.member-fidelity .personal-event-card__when strong { font-size: .875rem; color: var(--ink); }
.home-page .hub-next { grid-template-columns: 112px minmax(0, 1fr); }
.home-page .hub-next__body { padding: 20px 22px; }
.home-page .hub-next .personal-event-card__when { flex-direction: row; flex-wrap: wrap; gap: 6px; }
.home-page .hub-next .personal-event-card__main h3 { font-size: 1.625rem; margin: 12px 0; }
.member-fidelity .pool-summary-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: .8125rem; }
.member-fidelity .source-mark { width: 20px; height: 20px; font-size: .625rem; border-radius: 5px; }
.member-fidelity .attendance-answer { display: flex; flex-wrap: wrap; gap: 5px; border: 0; padding: 0; background: transparent; border-radius: 0; }
.member-fidelity .attendance-button { min-height: 38px; padding: 6px 10px; font-size: .8125rem; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--surface); font-weight: 650; }
.member-fidelity .attendance-button--yes.is-active { background: var(--going); color: var(--bg); border-color: var(--going); }
.member-fidelity .attendance-button--maybe.is-active { background: var(--maybe-soft); color: var(--maybe); border-color: var(--maybe-line); }
.member-fidelity .attendance-button--no.is-active { background: var(--surface-3); color: var(--ink); }
.member-fidelity .attendance-button--clear { flex-basis: 100%; border: 0; background: transparent; min-height: 24px; padding: 2px 0; text-align: left; color: var(--ink-2); text-decoration: underline; }
.member-fidelity .attendance-feedback:empty { display: none; }
.member-fidelity .attendance-feedback { margin: 4px 0 0; font-size: .8125rem; }
.home-page .hub-aside { gap: 28px; }
.home-page .hub-aside-card { padding: 18px; }
.home-page .mini-context { font-size: .75rem; margin: 0 0 8px; }
.home-page .hub-updates { padding: 0; overflow: hidden; }
.home-page .hub-updates > .home-section-head { padding: 16px 18px; border-bottom: 1px solid var(--line); margin: 0; }
.home-page [data-home-updates] { padding: 0 18px; }
.home-page .hub-updates .inbox-item:last-child { border-bottom: 0; }
.home-page .home-agenda-title { font-size: .9375rem; }
.home-page .home-agenda li { padding: 9px 0; }
.home-page .home-agenda p { margin: 2px 0 0; }

/* Calendar: a compact navigation row, then layout/context, then honest event filters/source key. */
.calendar-member-page .calendar-page-head { margin: 0 0 12px; }
.calendar-member-page .calendar-panel__heading { display: flex; gap: 10px; }
.calendar-member-page .calendar-panel__heading h2 { min-width: 10ch; margin: 0; text-align: center; font-size: 1.5rem; }
.calendar-member-page .calendar-panel__settings { margin-left: 8px; border: 1px solid var(--line-strong); padding: 8px 16px; border-radius: 10px; min-height: 44px; font-size: .875rem; text-decoration: none; }
.calendar-toolbar-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 0 0 10px; }
.calendar-toolbar-row .inline-form { order: 3; margin: 0; font-size: .8125rem; gap: 6px; min-width: 0; }
.calendar-toolbar-row select { max-width: 14rem; min-height: 40px; font-size: .8125rem; }
.calendar-member-page .calendar-view-nav { display: inline-flex; gap: 2px; padding: 3px; background: var(--surface-2); border-radius: 12px; margin: 0; }
.calendar-member-page .calendar-view-nav a { min-height: 36px; border: 0; border-radius: 9px; padding: 8px 14px; font-size: .875rem; background: transparent; }
.calendar-member-page .calendar-view-nav a[aria-current] { background: var(--surface); color: var(--ink); }
.calendar-member-page .calendar-subscribe { display: inline-flex; gap: 8px; align-items: center; min-height: 40px; padding: 8px 12px; font-size: .8125rem; }
.calendar-member-page .calendar-kind-nav { margin: 0 0 10px; gap: 6px; }
.calendar-member-page .calendar-kind-nav a { min-height: 40px; padding: 6px 12px; font-weight: 650; }
.calendar-member-page .calendar-source-key { margin: 0 0 14px; font-size: .8125rem; }
.calendar-member-page .my-calendar { grid-template-columns: minmax(0, 1fr) clamp(360px, 26vw, 520px); gap: 24px; }
.calendar-member-page .calendar-day { min-height: 112px; height: auto; padding: 6px; }
.calendar-member-page .calendar-day__number { min-width: 32px; min-height: 32px; font-weight: 700; }
.calendar-member-page .calendar-item { min-height: 24px; padding: 2px 6px; font-size: .6875rem; line-height: 20px; }
.calendar-member-page .calendar-day-detail { padding: 18px; }
.calendar-member-page .calendar-day-detail__heading { display: flex; align-items: start; gap: 12px; padding: 0 0 14px; }
.calendar-member-page .calendar-day-detail__heading h2 { font-size: 1.125rem; max-width: 18ch; line-height: 1.3; }
.calendar-member-page .calendar-day-detail__heading .eyebrow { margin: 0 0 3px; }
.calendar-member-page .calendar-day-detail__heading a { margin: 0; font-size: .8125rem; padding: 6px 10px; line-height: 1.15; max-width: 11rem; }
.calendar-member-page .calendar-detail-panel { display: flex; flex-direction: column; gap: 5px; padding: 12px 0; }
.calendar-member-page .calendar-detail-panel h3 { order: 1; margin: 0; font-size: .9375rem; }
.calendar-member-page .calendar-detail-panel .my-calendar-event-time { order: 0; font-weight: 650; margin: 0; }
.calendar-member-page .calendar-detail-panel > :not(h3):not(.my-calendar-event-time) { order: 2; }
.calendar-member-page .calendar-detail-panel > p { font-size: .8125rem; margin: 0; color: var(--ink-2); }
.calendar-member-page .calendar-detail-title-button { font-size: inherit; padding: 0; min-height: 24px; }
.calendar-member-page .calendar-detail-panel .attendance-control { margin-top: 3px; }
.calendar-member-page .calendar-sources { padding: 10px 16px; font-size: .8125rem; }
.calendar-member-page .month-agenda { padding: 8px 18px; }
.calendar-member-page .month-agenda-day { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 6px 12px; padding: 12px 0; }
.calendar-member-page .month-agenda-day h3 { grid-row: 1 / 99; margin: 6px 0; font-size: .8125rem; }
.calendar-member-page .month-agenda-day a { min-height: 38px; gap: 10px; padding: 4px 0; }
.calendar-member-page .month-agenda-day a strong { font-size: .9375rem; }
.calendar-member-page .month-agenda-day a span { font-size: .75rem; }

/* Your Events follows AB150 summary-first, one-row search and progressive filter disclosure. */
.events-page .your-events-kpis { margin-bottom: 6px; }
.events-page .your-events-kpi { min-height: 72px; padding: 12px 14px; border-radius: 12px; }
.events-page .your-events-kpi strong { font-family: var(--font-display); font-size: 1.5rem; }
.your-events-summary-scope { margin: 0 0 14px; color: var(--ink-3); font-size: .75rem; }
.events-control-row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.events-search { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface); flex: 1 1 18rem; max-width: 30rem; color: var(--ink-3); }
.events-search:focus-within { outline: 3px solid var(--focus); outline-offset: 2px; }
.design-page.events-page .events-search input[type=search] { border: 0; background: transparent; min-height: 40px; padding: 0; min-width: 0; width: 100%; font-size: .875rem; outline: none; box-shadow: none; }
.design-page.events-page .events-filter-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; min-height: 44px; flex: 0 0 auto; white-space: nowrap; }
[data-events-filter-count] { font-size: .75rem; color: var(--accent); }
.events-filter-panel { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); margin-bottom: 12px; }
.events-filter-panel[hidden] { display: none; }
.events-page .events-filter-panel label { font-size: .8125rem; display: flex; flex-direction: column; gap: 4px; }
.events-page .events-filter-panel select { width: 100%; min-width: 0; font-size: .875rem; }
.events-filter-panel-actions { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; font-size: .8125rem; }
.events-active-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.events-active-filters:empty { display: none; }
.events-active-filters a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; background: var(--accent-soft); border-radius: 999px; font-size: .8125rem; text-decoration: none; }
.events-page .your-events-counts { color: var(--ink-3); font-size: .8125rem; margin: 0 0 14px; }
.events-page .your-events-section { margin-bottom: 24px; }
.events-page .admin-empty { padding: 8px 0; margin: 0; font-size: .8125rem; }
.events-page .personal-event-list { margin-top: 0; gap: 0; }
.events-page .your-event-source { border: 0; background: transparent; border-radius: 0; padding: 0; }
.events-page .your-event-pool-label--single { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.events-page .your-events-section h2 { margin: 0 0 10px; }
.events-page .your-events-month-heading { font-size: .8125rem; margin: 14px 0 0; padding: 6px 0; border-bottom: 1px solid var(--line); }
.events-page .your-event-row.personal-event-card { grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 10px 4px; }
.events-page .your-event-row[data-needs-answer="true"] { padding-left: 12px; }
.events-page .your-event-row h3 { margin: 0 0 3px; font-size: .9375rem; }
.events-page .your-event-row .personal-event-card__main p { margin: 0; font-size: .8125rem; }
.events-page .your-event-sources { display: flex; gap: 6px; flex-wrap: wrap; }
.events-page .your-event-source { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-3); }
.events-page .your-event-pool-label { margin: 0 0 4px; font-size: .75rem; color: var(--ink-3); }
.events-page .your-event-responses { display: flex; flex-direction: column; gap: 8px; }
.events-page .your-event-row .attendance-answer { justify-content: flex-start; gap: 5px; }
.events-page .your-event-retained { grid-column: 2 / -1; font-size: .75rem; margin: 0; color: var(--going); }
.events-page .your-events-glance { position: sticky; }
.events-loading { font-size: .8125rem; }
@media (min-width: 1600px) { .calendar-member-page .calendar-day { min-height: 132px; } }
@media (min-width: 720px) and (max-width: 1099px) {
    .home-page .hub-layout, .calendar-member-page .my-calendar { grid-template-columns: minmax(0, 1fr); }
    .home-page .hub-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calendar-member-page .calendar-day-detail { position: static; }
    .calendar-member-page .calendar-day { min-height: 100px; }
    .home-page .hub-responses .personal-event-card, .events-page .your-event-row.personal-event-card { grid-template-columns: 96px minmax(0, 1fr) auto; }
    .events-filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 719px) {
    .member-fidelity { padding-top: 20px; padding-bottom: 32px; }
    .events-heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .home-page .hub-layout, .calendar-member-page .my-calendar { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .home-page .hub-main { gap: 18px; }
    .home-page .hub-heading h1 { font-size: 1.75rem; }
    .home-page .hub-next { grid-template-columns: minmax(0, 1fr); }
    .home-page .hub-next__date { display: none; }
    .home-page .hub-next__body { padding: 18px; }
    .home-page .hub-next .personal-event-card__main h3 { font-size: 1.375rem; }
    .home-page .hub-responses .personal-event-card, .events-page .your-event-row.personal-event-card { grid-template-columns: 76px minmax(0, 1fr); gap: 6px 10px; padding-block: 12px; }
    .home-page .hub-responses .attendance-control, .events-page .your-event-responses { grid-column: 2; margin: 3px 0 0; }
    .home-page .hub-responses .personal-event-card { grid-template-columns: minmax(0, 1fr); }
    .home-page .hub-responses .personal-event-card__when { flex-direction: row; gap: 4px; }
    .home-page .hub-responses .attendance-control { grid-column: 1; }
    .home-page .hub-responses .attendance-answer { width: 100%; }
    .home-page .hub-responses .attendance-button:not(.attendance-button--clear) { flex: 1; }
    .home-page .hub-glance a { padding-inline: 10px; gap: 5px; }
    .member-fidelity .attendance-button { min-height: 40px; padding: 6px 8px; }
    .member-fidelity .personal-event-card__when { font-size: .75rem; }
    .member-fidelity .attendance-button--clear { min-height: 28px; }
    .home-page .hub-aside { grid-template-columns: minmax(0, 1fr); }
    .calendar-member-page .calendar-day { min-height: 52px; height: 52px; padding: 2px; }
    .calendar-member-page .calendar-panel__heading h2 { font-size: 1.125rem; }
    .calendar-member-page .calendar-panel__heading { gap: 4px; }
    .calendar-member-page .calendar-panel__settings { margin-left: 4px; padding: 8px 10px; }
    .calendar-member-page .calendar-day-detail { position: static; padding: 16px; }
    .calendar-member-page .calendar-toolbar-row .inline-form { width: 100%; }
    .calendar-member-page .calendar-toolbar-row select { flex: 1; max-width: 100%; }
    .calendar-member-page .calendar-source-key { font-size: .75rem; }
    .calendar-member-page .month-agenda-day { grid-template-columns: minmax(0, 1fr); }
    .calendar-member-page .month-agenda-day h3 { grid-row: auto; }
    .events-filter-panel { grid-template-columns: minmax(0, 1fr); }
    .events-page .your-events-kpis { gap: 7px; }
    .events-page .your-events-kpi { padding: 10px; min-height: 72px; }
    .events-page .your-events-kpi span { font-size: .75rem; }
    .events-page .your-events-glance { position: static; }
}
.home-page #personal-events { display: flex; flex-direction: column; gap: 28px; }
.home-page .hub-responses { margin-top: 0; }
.home-changes { border: 1px solid color-mix(in srgb, var(--warn) 50%, var(--line)); border-radius: 18px; padding: 16px; background: var(--surface); }
.home-changes h2, .home-changes > summary { display: flex; align-items: center; gap: 8px; color: var(--warn); font-size: 1rem; margin: 0; }
.home-changes > summary { min-height: 32px; cursor: pointer; }
.home-change-list { list-style: none; margin: 8px 0 0; padding: 0; }
.home-change-list a { display: grid; grid-template-columns: minmax(0, 1fr) 20px; gap: 3px 8px; padding: 8px 0; text-decoration: none; color: var(--ink); }
.home-change-list a > span { grid-column: 1; font-size: .8125rem; color: var(--ink-3); }
.home-change-list svg { grid-column: 2; grid-row: 1 / 4; align-self: center; }
.member-fidelity .attendance-button:not(.attendance-button--clear) { display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.events-page .response-editor { min-width: 0; border: 0; padding: 0; background: transparent; }
.events-page .response-editor > summary { list-style: none; display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-height: 36px; padding: 0; font-size: .8125rem; cursor: pointer; }
.events-page .response-editor > summary[hidden] { display: none; }
.events-page .response-editor > summary::-webkit-details-marker { display: none; }
.response-change { color: var(--accent); font-weight: 650; }
.events-page .response-editor[open] > summary { margin-bottom: 5px; }
.events-page .response-done { min-height: 28px; font-size: .8125rem; padding: 2px 0; }
.events-page .response-editor [data-response-label] { color: var(--going); }
.events-page .attendance-control[data-attendance-answer='Maybe'] [data-response-label] { color: var(--maybe); }
.events-page .attendance-control[data-attendance-answer='No'] [data-response-label], .events-page .attendance-control[data-attendance-answer=''] [data-response-label] { color: var(--ink-3); }
@media(max-width:719px) { .events-page .response-editor > summary { justify-content: flex-start; } }
.calendar-member-page .calendar-item--busy { font-style: italic; background: repeating-linear-gradient(135deg,var(--surface-3) 0 3px,var(--surface) 3px 6px); }
.calendar-member-page .calendar-detail-panel--busy h3 { font-style: italic; color: var(--ink-2); }
@media(min-width:720px) and (max-width:1099px) {
    .home-page .hub-responses .personal-event-card { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px 4px; }
    .home-page .hub-responses .personal-event-card__when { flex-direction: row; flex-wrap: wrap; gap: 4px; }
    .home-page .hub-responses .attendance-answer { width: 100%; }
    .home-page .hub-responses .attendance-button:not(.attendance-button--clear) { flex: 1; }
}
.home-page .hub-next .personal-event-card__when > strong, .home-page .hub-next .personal-event-card__when > span:nth-child(2) { display: none; }
@media(max-width:719px) { .home-page .hub-next .personal-event-card__when > strong, .home-page .hub-next .personal-event-card__when > span:nth-child(2) { display: inline; } }
.calendar-member-page .event-sheet .calendar-detail-panel > .event-sheet-close { order: -1; align-self: flex-end; }
.calendar-member-page .event-sheet .calendar-detail-panel h3 { font-size: 1.625rem; margin: 16px 0; }
.events-page .events-search { min-width: 0; }
.calendar-filter-disclosure { border: 0; padding: 0; margin: 0; }
.calendar-filter-disclosure > summary { display: none; }
.calendar-member-page .my-calendar-help { font-size: .8125rem; line-height: 1.5; padding: 0; }
@media(max-width:719px) {
    .calendar-member-page .calendar-view-nav { width: 100%; }
    .calendar-member-page .calendar-view-nav a { flex: 1; text-align: center; }
    .calendar-member-page .calendar-panel__heading { width: 100%; justify-content: space-between; }
    .calendar-filter-disclosure { margin: 4px 0 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
    .calendar-filter-disclosure > summary { display: flex; align-items: center; gap: 8px; padding: 12px; min-height: 48px; font-weight: 650; list-style: none; }
    .calendar-filter-disclosure > summary::-webkit-details-marker { display: none; }
    .calendar-filter-disclosure > summary span { margin-left: auto; font-size: .8125rem; color: var(--accent); }
    .calendar-filter-disclosure .calendar-kind-nav, .calendar-filter-disclosure .calendar-source-key { margin: 0 12px 12px; }
    .events-page .your-event-responses { grid-column: 1 / -1; }
    .events-page .your-event-responses .attendance-button:not(.attendance-button--clear) { flex: 1; }
}
