/* Attendee accounts and a chronological, non-checkout personal schedule. */
.member-page-header { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin:0 0 2rem; }
.member-page-header h1, .member-account-intro h1, .member-programme > h1 { font-family:var(--font-heading); font-size:clamp(2.2rem,5vw,4.25rem); line-height:1.06; margin:0 0 1rem; letter-spacing:-.025em; }
.member-page-header p:not(.eyebrow) { margin:0; color:var(--color-text-muted); }
.member-panel { background:#fff; border:1px solid var(--color-border); padding:clamp(1rem,3vw,2rem); min-width:0; }
.member-account-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,7vw,6rem); align-items:start; padding:1rem 0; }
.member-account-intro { max-width:35rem; }
.member-account-intro > p { font-size:1.05rem; line-height:1.7; }
.member-account-intro > .member-muted { margin-top:2rem; font-size:.875rem; }
.member-form { display:grid; gap:1.1rem; }
.member-form label, .member-filter label { display:grid; gap:.4rem; font-size:.9rem; font-weight:700; min-width:0; }
.member-form input, .member-filter input, .member-filter select { min-height:44px; max-width:100%; min-width:0; }
.member-form input[type=file] { font-size:.82rem; }
.member-form small { color:var(--color-text-muted); font-weight:400; }
.member-form .button { justify-self:start; }
.member-account-links { display:flex; flex-wrap:wrap; gap:.8rem 1.2rem; margin:1.25rem 0; font-size:.875rem; }
img.member-avatar { display:block; width:96px; height:96px; aspect-ratio:1; object-fit:cover; object-position:center; border-radius:50%; margin-bottom:1.5rem; }
.site-nav .nav-account-link { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; white-space:nowrap; }
.site-nav .member-nav-avatar { display:inline-flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; height:32px; aspect-ratio:1; overflow:hidden; border-radius:50%; background:var(--color-primary,#4d69cd); color:#fff; font-family:var(--font-body); font-size:.875rem; font-weight:700; line-height:1; }
.site-nav .member-nav-avatar img { display:block; width:100%; height:100%; aspect-ratio:1; object-fit:cover; object-position:center; border-radius:50%; }
.site-nav .member-nav-initial { line-height:1; }
.member-muted { color:var(--color-text-muted); font-size:.875rem; overflow-wrap:anywhere; }
.member-notice, .member-error, .member-warning { padding:1rem 1.15rem; background:#fff; border-left:3px solid var(--color-primary); line-height:1.65; }
.member-error { border-color:var(--color-danger); background:var(--color-danger-soft); color:var(--color-danger); }
.member-warning { border-color:var(--color-warning); background:var(--color-warning-soft); }
.member-actions { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }
.member-filter { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding:1.25rem; margin:1.5rem 0; background:#fff; border:1px solid var(--color-border); }
.member-filter .member-actions { grid-column:1/-1; }
.member-filter-compact { grid-template-columns:minmax(150px,240px) auto; justify-content:start; align-items:end; }
.member-filter-compact .button { min-height:44px; }
.member-schedule-summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.6rem 2rem; margin:1.5rem 0; }
.member-schedule-summary > span { font-size:.82rem; color:var(--color-text-muted); }
.member-day-links { display:flex; flex-wrap:wrap; gap:.65rem; margin:1.5rem 0 2.5rem; }
.member-day-links a { display:grid; min-width:8rem; padding:.7rem 1rem; border:1px solid var(--color-border); background:#fff; color:var(--color-primary); font-weight:700; text-decoration:none; }
.member-day-links span { font-size:.8rem; font-weight:400; color:var(--color-text-muted); }
.member-day { margin:0 0 4rem; scroll-margin-top:7rem; }
.member-day-header { display:flex; gap:1rem; align-items:center; margin:0 0 1.5rem; }
.member-day-header h2 { margin:0; font-size:clamp(1.6rem,3vw,2.4rem); }
.member-day-header p { margin:.25rem 0 0; color:var(--color-text-muted); font-size:.85rem; }
.member-day-number { font-family:var(--font-heading); font-size:3.5rem; color:var(--color-primary); line-height:1; }
.member-timeline { display:grid; list-style:none; padding:0; margin:0; }
.member-time-block { display:grid; grid-template-columns:84px minmax(0,1fr); gap:1.3rem; min-width:0; }
.member-time-rail { position:relative; display:flex; flex-direction:column; align-items:flex-start; padding:.7rem .6rem 1.5rem 0; border-right:2px solid var(--color-border); font-size:.85rem; font-variant-numeric:tabular-nums; }
.member-time-rail::after { content:""; position:absolute; top:1rem; right:-5px; width:8px; height:8px; background:var(--color-primary); }
.member-time-rail time { font-weight:700; }
.member-time-rail span { color:var(--color-text-muted); font-size:.78rem; }
.member-time-body { min-width:0; padding:0 0 1.5rem; }
.member-session-heading { padding:1.1rem 1.25rem; background:var(--color-primary); color:#fff; }
.member-session-heading .eyebrow { color:#fff; opacity:.85; margin:0 0 .5rem; }
.member-session-heading h3 { margin:0; color:#fff; font-size:1.2rem; line-height:1.3; }
.member-session-heading p:not(.eyebrow) { margin:.3rem 0 .7rem; color:#fff; opacity:.9; font-size:.8rem; }
.member-session-heading p:last-child { margin-bottom:0; }
.member-between-label { color:var(--color-text-muted); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin:.65rem 0; }
.member-event-card { display:flex; align-items:start; justify-content:space-between; gap:1rem; padding:1.2rem; border:1px solid var(--color-border); background:#fff; min-width:0; margin:0 0 .65rem; scroll-margin-top:7rem; }
.member-event-copy { min-width:0; }
.member-event-card h3 { margin:.4rem 0 .6rem; font-size:1.3rem; line-height:1.3; overflow-wrap:anywhere; }
.member-event-card h3 a { color:var(--color-text); text-decoration:none; }
.member-event-card h3 a:hover { color:var(--color-primary); text-decoration:underline; }
.member-event-kicker { color:var(--color-primary); font-size:.75rem; font-weight:700; margin:0; }
.member-event-kicker span { display:inline-block; margin-left:.5rem; font-weight:400; color:var(--color-text-muted); }
.member-event-time { font-weight:700; font-size:.86rem; margin:.4rem 0; }
.member-event-copy .member-muted { margin:.4rem 0; }
.member-event-description { line-height:1.8; margin-top:1rem; }
.member-teams { display:inline-flex; align-items:center; gap:.45rem; font-size:.85rem; margin-top:.5rem; }
.member-teams img { flex:0 0 auto; }
.member-open-time { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem 1rem; padding:.9rem 1rem; border:1px dashed var(--color-border-strong); margin:.65rem 0; color:var(--color-text-muted); font-size:.82rem; }
.member-open-time strong { color:var(--color-text); font-variant-numeric:tabular-nums; }
.member-open-time a { margin-left:auto; }
.member-continuing { padding:.75rem; margin:.4rem 0; background:#fff; font-size:.82rem; }
.member-conflict { font-size:.8rem; color:var(--color-danger); font-weight:700; margin:.65rem 0 0; }
.member-event-card.has-conflict { border-left:3px solid var(--color-danger); }
.member-unavailable { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin:.75rem 0; }
.member-heart-form { display:inline-flex; margin:0; flex:0 0 auto; }
.member-heart-button { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; padding:.45rem .65rem; border:1px solid var(--color-primary); border-radius:.5rem; background:#fff; color:var(--color-primary); font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; }
.member-heart-button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.member-heart-button[aria-pressed=true] { background:var(--color-primary); color:#fff; }
.member-heart-button[aria-pressed=true] svg { fill:currentColor; }
.member-heart-button:disabled { opacity:.6; cursor:wait; }
.member-heart-button:focus-visible, .member-day-links a:focus-visible { outline:2px solid var(--color-primary); outline-offset:3px; }
.presentation-interest:has(.member-heart-form) { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }
.presentation-interest [data-interest-event] { flex:1 1 90px; }
.member-nav-count { display:inline-flex; align-items:center; justify-content:center; min-width:1.4rem; padding:0 .25rem; background:var(--color-background); font-size:.75rem; color:var(--color-primary); }
.member-live-message:empty { display:none; }
.member-live-message:not(:empty) { position:fixed; bottom:1rem; right:1rem; z-index:30; max-width:min(32rem,calc(100vw - 2rem)); padding:.85rem 1rem; border:1px solid var(--color-primary); box-shadow:0 .5rem 2rem #23223520; background:#fff; color:var(--color-text); font-size:.9rem; }
.member-live-message.is-error { border-color:var(--color-danger); }
@media (max-width:1199px) {
  .site-header-inner { gap:1rem; }
  .menu-toggle { display:block; flex-shrink:0; }
  .site-nav { display:none; position:absolute; top:100%; left:0; right:0; flex:none; align-items:stretch; flex-direction:column; gap:1rem; margin-left:0; padding:1rem; border-bottom:1px solid var(--color-border); background:var(--color-surface); box-shadow:0 1rem 2rem #23223514; max-height:calc(100dvh - 6rem); overflow-y:auto; }
  .site-nav.is-open { display:flex; }
  .site-nav .nav-list, .site-nav .nav-actions { flex-direction:column; align-items:stretch; width:100%; gap:.15rem; margin-left:0; }
  .site-nav .nav-link, .site-nav .nav-favorites, .site-nav .nav-actions .button, .site-nav .nav-dropdown-toggle { display:flex; justify-content:flex-start; align-items:center; width:100%; gap:.55rem; padding:.7rem 0; text-align:left; border-bottom:0; }
  .site-nav .nav-chevron { margin-left:auto; flex-shrink:0; }
  .site-nav .nav-dropdown-menu { position:static; width:100%; grid-template-columns:1fr; margin:.1rem 0 .35rem; padding:.4rem; border:0; box-shadow:none; }
  .site-nav .nav-dropdown:not(.is-open) > .nav-dropdown-menu { display:none; }
  .site-nav .nav-dropdown-menu::before, .site-nav .nav-dropdown::after { display:none; }
  .site-nav .dropdown-link { align-items:flex-start; text-align:left; }
  .site-nav .nav-actions { border-top:1px solid var(--color-border); padding-top:.75rem; }
  .site-nav .nav-actions .button { padding:.7rem 1rem; }
}
@media(max-width:800px) {
  .member-account-layout { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .member-page-header { align-items:start; flex-direction:column; }
  .member-filter { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:500px) {
  .member-filter, .member-filter-compact { grid-template-columns:minmax(0,1fr); }
  .member-event-card { flex-direction:column; padding:1rem; }
  .member-event-card .member-heart-form { align-self:flex-start; }
  .member-time-block { grid-template-columns:52px minmax(0,1fr); gap:.7rem; }
  .member-time-rail { font-size:.78rem; padding-right:.4rem; }
  .member-session-heading { padding:.9rem; }
  .member-day-header { align-items:start; }
  .member-day-number { font-size:2.5rem; }
  .member-day-links a { flex:1 1 40%; min-width:0; }
  .member-open-time { display:grid; gap:.4rem; padding:.75rem; }
  .member-open-time a { margin-left:0; }
}

/* The signed-in schedule is the primary navigation action. */
.site-nav .nav-schedule-button { flex:0 0 auto; white-space:nowrap; }
.site-nav .nav-schedule-button .menu-icon { color:inherit; }
.site-nav .nav-schedule-button .member-nav-count { background:rgb(255 255 255 / 18%); color:inherit; font-weight:700; }

.member-timezone { display:inline-flex; align-items:center; gap:.4rem; vertical-align:middle; }
.member-timezone svg { width:1.1em; height:1.1em; flex:0 0 auto; fill:none; stroke:var(--color-primary); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* Always-available access to account and anonymous saved schedules. */
.button.member-floating-schedule { position:fixed; right:max(1rem,env(safe-area-inset-right,0px)); bottom:calc(1rem + env(safe-area-inset-bottom,0px)); z-index:25; display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-height:52px; max-width:calc(100vw - 2rem); padding:.8rem 1rem; white-space:nowrap; box-shadow:0 .5rem 1.75rem rgb(35 34 53 / 22%); }
.member-floating-schedule .menu-icon { width:20px; height:20px; flex:0 0 auto; color:inherit; }
.member-floating-count { display:inline-flex; align-items:center; justify-content:center; min-width:1.5rem; padding:.1rem .35rem; background:rgb(255 255 255 / 18%); color:inherit; font-size:.8rem; font-weight:700; }
.member-floating-clearance { height:calc(4.5rem + env(safe-area-inset-bottom,0px)); }
.member-live-message:not(:empty) { bottom:calc(5.25rem + env(safe-area-inset-bottom,0px)); right:max(1rem,env(safe-area-inset-right,0px)); }
@media (max-width:1199px) {
  body:has(.site-nav.is-open) .member-floating-schedule { display:none; }
}
