/* Shared event experiences: scoped to program surfaces, never networking screens. */
.event-program, .program-editor { --program-line: rgba(255,255,255,.14); --program-muted:#beb3cd; color:#fffaf3; }
.event-program { margin:24px 0; padding:28px; border:1px solid var(--program-line); border-radius:24px; background:radial-gradient(ellipse at top right,rgba(135,87,238,.22),transparent 70%),#1b1428; }
.event-program.program-social { background:radial-gradient(ellipse at top right,rgba(242,90,181,.2),transparent 70%),#1b1428; }
.event-program h2 { font-size:2rem; margin:0 0 14px; }
.event-program h3, .program-editor h3 { margin:0; }
.program-content { display:grid; gap:14px; min-width:0; }
.program-button { display:inline-flex; min-height:44px; padding:10px 15px; justify-content:center; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(255,255,255,.06); color:#fffaf3; text-decoration:none; font:inherit; font-weight:700; cursor:pointer; }
.program-button.is-primary { color:#130e20; background:#83eac6; border-color:transparent; }
.program-button:disabled { opacity:.5; cursor:wait; }
.program-button:focus-visible, .program-session-title:focus-visible { outline:3px solid #83eac6; outline-offset:3px; }
.program-heading, .program-actions, .program-switcher, .program-filters { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.program-switcher { align-items:stretch; gap:12px; }
.program-switcher .program-button { min-height:54px; padding:14px 22px; border-radius:999px; font-size:1rem; }
.program-schedule-count { display:inline-flex; min-width:20px; min-height:20px; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.12); font-size:.75rem; }
.program-switcher .is-primary .program-schedule-count { background:rgba(19,14,32,.12); }
.program-heading { justify-content:space-between; margin-bottom:16px; }
.program-filter-disclosure { display:grid; gap:14px; }
.program-filter-toggle { justify-self:start; min-height:48px; padding:12px 20px; border-radius:999px; }
.program-disclosure { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; }
.program-disclosure svg, .program-session-title-row>svg, .program-speaker-open>svg { width:20px; height:20px; flex:none; color:#d8c0ff; }
.program-disclosure svg { transition:transform .16s ease; }
.program-disclosure[aria-expanded="true"] svg { transform:rotate(90deg); }
.program-disclosure:focus-visible { outline:3px solid #83eac6; outline-offset:3px; }
.program-filters[hidden], .program-recommendations-content[hidden] { display:none; }
.program-filters>* { flex:1; min-width:0; }
.program-field { display:grid; gap:7px; margin:15px 0; color:#fffaf3; font-size:.85rem; }
.program-field small, .program-muted { color:var(--program-muted,#beb3cd); font-size:.82rem; line-height:1.5; overflow-wrap:anywhere; }
.program-field input, .program-field textarea, .program-filters input, .program-filters select, .program-detail-body textarea, .program-detail-body select { width:100%; min-height:44px; padding:12px; color:#fffaf3; background:#130e20; border:1px solid rgba(255,255,255,.18); border-radius:10px; font:inherit; box-sizing:border-box; }
.program-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.program-editor-section { margin:26px 0; }
.program-edit-row { border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:14px; margin:10px 0; }
.program-edit-row summary { min-height:30px; cursor:pointer; font-weight:700; overflow-wrap:anywhere; }
.program-speaker-choices { max-height:220px; overflow:auto; padding:10px; border:1px solid rgba(255,255,255,.14); border-radius:10px; }
.program-speaker-choices label { display:flex; align-items:center; gap:10px; min-height:40px; }
.program-speaker-choices input { width:18px; height:18px; flex:none; }
.program-status { color:#b4f3d9; line-height:1.5; overflow-wrap:anywhere; }
.program-status:empty { display:none; }
.program-status.is-error { color:#ffb4c4; }
.program-warning { padding:10px 12px; border-left:3px solid #ffb45f; color:#ffdeb8; background:rgba(255,180,95,.06); font-size:.85rem; overflow-wrap:anywhere; }
.program-import-preview { border:1px solid rgba(131,234,198,.4); background:rgba(92,231,189,.04); padding:18px; margin:16px 0; border-radius:14px; }
.program-import-preview:empty { display:none; }
.program-import-preview details { max-height:350px; overflow:auto; margin:14px 0; }
.program-import-preview details p { border-top:1px solid rgba(255,255,255,.1); padding-top:12px; }
.program-session-card { padding:20px; border:1px solid transparent; border-radius:16px; background:linear-gradient(145deg,#261d36,#21192e) padding-box,linear-gradient(125deg,#ac7df0,#7156b6 52%,#d18abb) border-box; display:grid; gap:12px; min-width:0; }
.program-session-card p { margin:0; }
.program-session-card small { color:#beb3cd; }
.program-session-title { padding:0; min-height:30px; border:0; background:none; color:#fffaf3; text-align:left; font:inherit; cursor:pointer; overflow-wrap:anywhere; }
.program-session-title:hover { color:#b7f3df; }
.program-agenda-card { padding:0; overflow:hidden; transition:box-shadow .15s; }
.program-agenda-card:hover { box-shadow:0 0 0 1px rgba(199,162,255,.4); }
.program-session-open { display:grid; gap:19px; width:100%; padding:24px; border:0; border-radius:inherit; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.program-session-open:focus-visible { outline:3px solid #83eac6; outline-offset:-4px; }
.program-session-title-row { display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:0; }
.program-session-open .program-session-title { display:block; font-size:1.35rem; font-weight:750; letter-spacing:-.025em; line-height:1.3; }
.program-speaker-open { justify-content:space-between; }
.program-session-metadata { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.program-session-time, .program-session-location { display:flex; align-items:flex-start; gap:11px; font-size:1.12rem; font-weight:700; line-height:1.4; overflow-wrap:anywhere; min-width:0; }
.program-session-time { color:#a4efdb; }
.program-session-location { color:#e6d5ff; }
.program-session-metadata svg { width:24px; height:24px; flex:none; margin-top:1px; }
.program-time-value { display:grid; gap:3px; }
.program-time-day { color:#d2c9dc; font-size:.82rem; font-weight:550; }
.program-session-tags { display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px; }
.program-tag { display:inline-block; max-width:100%; padding:6px 10px; border:1px solid; border-radius:9px; font-size:.76rem; font-weight:700; line-height:1.4; overflow-wrap:anywhere; }
.program-tag-0 { color:#dccaff; border-color:rgba(183,147,255,.25); background:rgba(166,112,255,.13); }
.program-tag-1 { color:#a8efe2; border-color:rgba(99,224,193,.25); background:rgba(62,193,163,.12); }
.program-tag-2 { color:#ffd5aa; border-color:rgba(255,192,124,.25); background:rgba(235,158,75,.12); }
.program-recommendations { display:grid; gap:12px; margin:8px 0; }
.program-recommendations-toggle { width:100%; min-height:48px; padding:8px 0; color:#d4b9ff; border:0; border-radius:8px; background:none; text-align:left; font:inherit; font-size:1rem; font-weight:750; letter-spacing:.01em; }
.program-recommendations-content { display:grid; gap:12px; }
.program-recommendations-content>.program-muted { margin:0; }
.program-detail-schedule { margin-top:22px; }
.program-schedule-button { min-height:48px; padding:12px 20px; border:2px solid transparent; border-radius:999px; color:#fff; background:linear-gradient(#2b1e3e,#2b1e3e) padding-box,linear-gradient(110deg,#ba88ff,#8057ed 50%,#d190f5) border-box; }
.program-schedule-button[aria-pressed="true"] { background:linear-gradient(#45305e,#45305e) padding-box,linear-gradient(110deg,#d4b2ff,#9e75ff 50%,#e9b8ff) border-box; }
.program-detail-schedule>.program-muted { margin:10px 0; }
.program-day-title { padding-top:14px; color:#d6c3f7; }
.program-next { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:16px; border-radius:14px; background:rgba(135,87,238,.18); }
.program-next small { color:#d9bfff; text-transform:uppercase; letter-spacing:.1em; }
.program-empty { padding:26px 14px; text-align:center; color:#beb3cd; }
.program-icebreakers { display:grid; gap:10px; }
.program-icebreaker { margin:0; padding:18px; border-radius:14px; background:linear-gradient(100deg,rgba(242,90,181,.14),rgba(135,87,238,.12)); }
.program-detail-dialog { color:#fffaf3; background:#1b1428; width:min(700px,calc(100% - 24px)); max-height:90dvh; border:1px solid rgba(255,255,255,.2); border-radius:24px; padding:24px; box-sizing:border-box; }
.program-detail-dialog::backdrop { background:rgba(7,4,12,.78); backdrop-filter:blur(6px); }
.program-detail-dialog>button { float:right; margin:0 0 12px 12px; }
.program-detail-body { clear:both; }
.program-detail-body form { display:grid; gap:12px; margin-top:26px; }
.program-detail-body h2 { line-height:1.2; }
.program-description { white-space:pre-wrap; line-height:1.6; overflow-wrap:anywhere; }
.program-speaker-photo { width:100px; height:100px; border-radius:24px; object-fit:cover; margin-bottom:20px; }
.program-question { margin-top:16px; padding:14px; border:1px solid rgba(255,255,255,.12); border-radius:12px; overflow-wrap:anywhere; }
.program-question small { display:block; color:#beb3cd; margin-bottom:10px; }
.program-overview-card .program-mode-badge { display:inline-flex; padding:6px 10px; border-radius:8px; background:rgba(135,87,238,.18); color:#dac8ff; font-size:.75rem; margin-bottom:12px; }
.question-session-filter { max-width:100%; margin:16px 0; }
.question-session-label { display:block; color:#d5baff; margin-bottom:8px; font-weight:700; }
@media(max-width:600px) { .event-program { padding:18px; border-radius:18px; } .program-form-grid { grid-template-columns:1fr; gap:0; } .program-filters { flex-direction:column; align-items:stretch; } .program-actions .program-button { flex:1; } .program-session-card { padding:16px; } .program-detail-dialog { padding:18px; } }
@media(max-width:600px) { .program-agenda-card { padding:0; } .program-session-open { padding:18px; gap:17px; } .program-session-open .program-session-title { font-size:1.23rem; } .program-session-metadata { grid-template-columns:minmax(0,1fr); gap:12px; } .program-session-time, .program-session-location { font-size:1.08rem; } }
@media(max-width:600px) { .program-switcher { gap:8px; } .program-switcher .program-button { padding:14px 12px; gap:6px; } .program-switcher .program-button:not(#program-scope-speakers) { flex:1 1 0; } .program-filter-toggle { justify-self:stretch; } }
@media(prefers-reduced-motion:reduce) { .program-disclosure svg, .program-agenda-card { transition:none; } }

body[data-event-type="conference"] #attendee-view-questions>#audience-question-panel,
body[data-event-type="conference"] #attendee-tab-questions #question-tab-count,
body[data-event-type="social"] #attendee-tab-questions #question-tab-count { display:none !important; }
.program-editor { width:min(840px,calc(100% - 24px)); max-height:92dvh; overflow:auto; padding:0; background:#1d162c; }
.program-editor .modal-body { padding:24px; }
.program-editor .modal-footer { position:sticky; bottom:0; background:#1d162c; z-index:1; }

.event-title-line>.program-mode-badge { font-size:.72rem; padding:5px 9px; border:1px solid rgba(135,87,238,.4); border-radius:8px; color:#d9c4ff; background:rgba(135,87,238,.1); }

/* Social actions: white type, purple gradient outlines, distinct icon accents. */
.party-action, .social-request-actions .party-action {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  color: #fff !important; border: 1.5px solid transparent; border-radius: 999px;
  background: linear-gradient(#231534, #231534) padding-box, linear-gradient(110deg, #8d47e8, #c293ff) border-box;
  min-height: 48px; padding: .65rem 1rem; font-weight: 700;
}
.social-request-actions .party-action.is-active { background: linear-gradient(#382149, #382149) padding-box, linear-gradient(110deg, #8d47e8, #c293ff) border-box; border-color: transparent; }
.party-action-crowd .party-action-icon { color: #7cf0d4; }
.party-action-song .party-action-icon { color: #ffd56a; }
.party-action-people .party-action-icon { color: #ef9bdd; }
.crowd-discussion { margin-top: .8rem; color: #fff; text-align: left; min-width: 0; }
.crowd-discussion summary { color: #7cf0d4; cursor: pointer; font-weight: 700; padding: .5rem 0; }
.crowd-comments { display: grid; gap: .6rem; margin: .6rem 0; }
.crowd-comment { padding: .8rem; background: rgba(151,85,221,.13); border-radius: 12px; overflow-wrap: anywhere; }
.crowd-comment p { white-space: pre-wrap; margin: .4rem 0 0; }
.crowd-comment.is-hidden { opacity: .6; }
.crowd-comment-form { display: grid; gap: .6rem; margin: .6rem 0; }
.crowd-comment-form[hidden] { display: none; }
.crowd-comment-form textarea { width: 100%; box-sizing: border-box; border: 1px solid #a97de5; border-radius: 12px; padding: .8rem; background: #241833; color: white; font: inherit; resize: vertical; }
.crowd-comment-form button { justify-self: end; }
.crowd-discussion .program-muted { font-size: .85rem; }

.program-location-tabs{display:flex;gap:8px;overflow-x:auto;padding:8px 0 18px;scrollbar-width:thin}.program-location-tabs button{flex-shrink:0}.program-location-timeline{touch-action:pan-y;min-height:160px}.program-timeline-item{border-left:1px solid #ffffff30;padding:0 0 20px 18px;position:relative}.program-timeline-item:before{content:"";position:absolute;left:-5px;top:24px;width:9px;height:9px;background:var(--brand-accent,#59e8ba);border-radius:50%}.program-parallel{font-size:.82rem;color:#b7becf;margin:10px 0 0}.program-detail-body .program-session-tags{display:flex;flex-wrap:wrap;gap:8px}.program-detail-body .program-session-tag{padding:7px 12px;background:#ffffff14;border:1px solid #ffffff20;border-radius:99px}

/* Shared time axis: locations stack vertically, duration is horizontal width. */
.program-timeline-day{min-width:0;margin:24px 0}.program-timeline-scroll{max-width:100%;max-height:72vh;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:thin;border:1px solid #ffffff22;border-radius:18px;touch-action:pan-x pan-y;isolation:isolate}.program-time-grid{position:relative;min-width:100%;background:#141822}.program-time-axis{height:48px;position:sticky;top:0;z-index:5;border-bottom:1px solid #ffffff22;background:#1b2030}.program-hour{position:absolute;top:16px;font-size:12px;white-space:nowrap;padding-left:8px;color:#cbd1df}.program-room-label{position:sticky;left:0;box-sizing:border-box;width:132px;min-width:132px;z-index:3;margin:0;padding:16px 12px;background:#1b2030;border-right:1px solid #ffffff24;font-size:13px;line-height:1.4;overflow-wrap:anywhere}.program-time-axis .program-room-label{display:block;height:48px}.program-room-row{position:relative;border-bottom:1px solid #ffffff20;background:repeating-linear-gradient(to right,transparent 0,transparent 359px,#ffffff12 359px,#ffffff12 360px);background-position-x:132px}.program-room-row>.program-room-label{height:100%;display:flex;align-items:flex-start}.program-timed-card.program-session-card{position:absolute;height:192px;min-width:0;box-sizing:border-box;padding:0;border-radius:12px;background:linear-gradient(145deg,#263040,#1e2433) padding-box,linear-gradient(120deg,var(--brand-primary,#7a40f2),var(--brand-accent,#59e8ba)) border-box;overflow:hidden}.program-timed-card .program-session-open{height:100%;width:100%;box-sizing:border-box;padding:12px;display:flex;flex-direction:column;align-items:stretch;gap:9px;overflow:hidden}.program-timed-card .program-session-title{font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.program-timed-card .program-session-title-row{gap:4px}.program-timed-card .program-session-metadata{display:block}.program-timed-card .program-session-location{display:none}.program-timed-card .program-session-time{font-size:11px;display:block}.program-timed-card .program-session-time svg{display:none}.program-timed-card .program-session-tags{display:flex;flex-direction:column;gap:3px;align-items:flex-start;margin-top:auto;overflow:hidden}.program-timed-card .program-tag{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px}.program-untimed{display:grid;gap:12px}.program-timeline-scroll:focus-visible{outline:2px solid var(--brand-accent,#59e8ba);outline-offset:3px}
