.program-content { max-width: 1160px; }
#organizer-toggle { border: 0; padding: 0; background: none; color: inherit; font: inherit; text-align: inherit; cursor: pointer; touch-action: manipulation; }
#organizer-toggle:focus-visible { outline: 2px solid #c52c54; outline-offset: 4px; }
.program-content p { line-height: 1.5; }
.program-meta { margin: 1rem 0 1.2rem; }
.program-meta p { margin: .35rem 0; }
.day-nav { display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; margin: 1.2rem 0 1.8rem; font-family: Arial, Helvetica, sans-serif; }
.program-day { margin: 2rem 0 1rem; padding-bottom: .6rem; border-bottom: 3px solid #ffc629; font-size: 1.3rem; scroll-margin-top: 1rem; }
.schedule-block { display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 0 1.4rem; padding: 1.25rem 0; border-bottom: 1px solid #ddd; scroll-margin-top: 1rem; }
.schedule-time { font: bold .9rem/1.5 Arial, Helvetica, sans-serif; color: #494949; padding-top: .1rem; font-variant-numeric: tabular-nums; }
.schedule-content { min-width: 0; }
.schedule-content h3 { margin: 0; font-size: 1.1rem; line-height: 1.4; color: #241e13; }
.session-subtitle { margin: .25rem 0; font: 1rem/1.4 Arial, Helvetica, sans-serif; }
.session-people, .session-description { margin: .4rem 0 0; }
.session-people { font-size: .94rem; }
.session-description { margin: .65rem 0 .9rem; padding: .6rem .8rem; border-left: 3px solid #f2f2f2; background: #fff; color: #555; font: italic .9rem/1.5 Arial, Helvetica, sans-serif; }
.panel-people { margin-top: .5rem; font-size: .94rem; }
.panel-people p { margin: .3rem 0; }
.schedule-break, .schedule-meal { padding-top: .8rem; padding-bottom: .8rem; }
.schedule-break .schedule-content h3, .schedule-meal .schedule-content h3 { font-size: 1rem; }
.schedule-break .schedule-content h3 { color: #555; font-weight: normal; }
.event-location { color: #555; margin-left: .6rem; font: normal .9rem Arial, Helvetica, sans-serif; }
.zone-heading { margin: 1.5rem 0 .85rem; padding: .45rem .65rem; background: #fff7de; border-left: 3px solid #e6b31d; font-size: .95rem; line-height: 1.4; }
.paper-list { list-style: none; padding: 0; margin: 0; }
.paper-list li.accepted_papers { margin: 0 0 1.25rem; line-height: 1.45; }
.paper-list li:last-child { margin-bottom: .25rem; }
.paper-title { font-size: 1.02rem; }
.demo-table-badge { display: inline-block; margin: .15rem 0 .15rem .5rem; padding: .08rem .45rem; border-radius: 4px; background: #176650; color: #fff; font: bold .75rem/1.5 Arial, Helvetica, sans-serif; white-space: nowrap; vertical-align: baseline; }
.accepted_authors { display: block; margin-top: .15rem; }
.paper-links { display: flex; flex-wrap: wrap; gap: .2rem .8rem; margin-top: .3rem; font: .85rem/1.6 Arial, Helvetica, sans-serif; }
.paper-links a { white-space: nowrap; }
dialog { width: min(1000px, 92vw); max-height: 90vh; box-sizing: border-box; padding: 1rem; border: 1px solid #777; border-radius: 6px; }
dialog::backdrop { background: rgb(0 0 0 / 70%); }
.video-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.video-heading h2 { margin: .25rem 0 0; line-height: 1.35; }
.video-heading button { flex-shrink: 0; padding: .45rem .8rem; border: 1px solid #c69819; border-radius: 4px; background: #ffc629; color: #110000; font: bold .875rem Arial, Helvetica, sans-serif; cursor: pointer; }
.video-heading button:hover { background: #ffda72; }
.video-heading button:focus-visible { outline: 2px solid #4477ff; outline-offset: 3px; }
dialog video { width: 100%; max-height: 65vh; display: block; background: black; }
dialog p { margin-bottom: 0; }
@media (max-width: 760px) {
 .schedule-block { grid-template-columns: minmax(0, 1fr); gap: .4rem; padding-top: 1rem; }
 .schedule-time { font-size: .85rem; } .schedule-content h3 { font-size: 1.05rem; } .zone-heading { margin-top: 1rem; }
 dialog { width: 96vw; padding: .7rem; } .video-heading h2 { font-size: 1rem; }
}
@media print {
 .leftside, .day-nav, dialog { display: none; } .content { margin: 0; max-width: none; }
 .schedule-block { grid-template-columns: 115px minmax(0, 1fr); }
 .paper-list li { break-inside: avoid; } .program-day, .zone-heading, .schedule-content h3 { break-after: avoid; }
}

/* Hidden in attendee mode; no separate schedule or canonical-paper copy. */
.organizer-only { display: none !important; }
body.organizer-mode .organizer-only { display: block !important; }
.organizer-panel { padding: 1rem; margin: 1rem 0; border: 0; border-left: 5px solid #c52c54; background: #ffdce5; color: #70152d; font: .9rem/1.5 Arial, Helvetica, sans-serif; }
.organizer-panel > strong { margin-right: .8rem; font-size: 1rem; }
.organizer-panel > span { color: #70152d; }
.organizer-panel button { margin: .5rem 0 .5rem 1rem; padding: .4rem .7rem; cursor: pointer; }
.organizer-panel p { margin: .4rem 0 0; }
body.organizer-mode .paper-ops { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: .3rem; margin: .35rem 0; font: .82rem/1.5 Arial, Helvetica, sans-serif; }
.ops-badge { font-weight: bold; border: 2px solid transparent; border-radius: 4px; padding: .12rem .5rem; white-space: nowrap; }
.ops-equipment-monitor { background: #b42318; color: #fff; }
.ops-equipment-table { background: #f59e0b; color: #251500; }
.ops-equipment-power { background: #245f86; color: #fff; }
.ops-remote { background: #facc15; color: #252000; }
.ops-tentative, .ops-planned { border-color: currentColor; border-style: dashed; }
.ops-remote-people { color: #555; margin-left: .35rem; }
.ops-session-summary { background: #ffe0e9; color: #70152d; border-left: 5px solid #c52c54; padding: .65rem .8rem; margin: .8rem 0; font: .83rem/1.5 Arial, Helvetica, sans-serif; }
.ops-session-summary p { margin: .25rem 0; }
.organizer-cues { margin: .7rem 0; font: .85rem/1.5 Arial, Helvetica, sans-serif; }
.ops-cue { border-left: 5px solid #c52c54; background: #ffd3df; color: #70152d; padding: .4rem .6rem; margin: .3rem 0; }
.ops-cue.ops-proposed { border-color: #bc2349; background: #ffd3df; }
.ops-clock { font-weight: bold; font-variant-numeric: tabular-nums; }
.ops-status { display: inline-block; font-size: .72rem; margin-left: .6rem; padding: 0 .3rem; border: 1px solid currentColor; border-radius: 2px; color: #70152d; }
@media (max-width:760px) { .organizer-panel button { margin-left: 0; display: block; } }
@media print { .organizer-panel button { display: none; } .ops-cue, .ops-session-summary { break-inside: avoid; } }

/* Override the site-wide blue strong text inside organizer callouts. */
.organizer-panel strong, .ops-cue strong, .ops-session-summary > strong { color: #70152d; }

.ops-sponsor-sign { background: #176448; color: #fff; }
.ops-panel-person { display: inline-block; }
.ops-pending-mini { display: inline-block; background: #facc15; color: #252000; border-radius: 3px; padding: 0 .3rem; font: bold .65rem/1.5 Arial, Helvetica, sans-serif; vertical-align: middle; }
.ops-record { background: #a54c00; color: #fff; }
.ops-record-optional { background: #7040a0; color: #fff; }
.ops-record-detail { color: #555; }
body.organizer-mode .ops-record-inline { display: inline-flex !important; margin-left: .6rem; vertical-align: middle; font: .75rem/1.5 Arial, Helvetica, sans-serif; }

/* A continuous room-state guide, occupying a gutter only in organizer mode. */
.program-day-events { position: relative; }
body.organizer-mode .program-day-events { padding-left: 52px; }
.wall-thread { position: absolute; top: 0; bottom: 0; left: 0; width: 18px; pointer-events: none; }
.wall-thread-segment { position: absolute; left: 0; width: 18px; box-sizing: border-box; border-radius: 3px; text-align: center; }
.wall-thread-closed { background: #ffd3df; border-left: 3px solid #c52c54; color: #70152d; }
.wall-thread-open { background: #e7f2ed; border-left: 3px solid #60947c; color: #315d48; }
.wall-thread-label { position: sticky; top: 30vh; display: inline-block; writing-mode: vertical-rl; white-space: nowrap; padding: 9px 0; font: bold .72rem/1 Arial, Helvetica, sans-serif; }
.ops-wall-cue { width: fit-content; max-width: 100%; }
@media print { .wall-thread-label { position: static; } }

.recording-thread { position: absolute; top: 0; bottom: 0; left: 25px; width: 19px; pointer-events: none; }
.recording-thread-segment { position: absolute; left: 0; width: 19px; box-sizing: border-box; border-radius: 3px; text-align: center; }
.recording-thread-required { background: #ffe5bf; border-left: 3px solid #bd5900; color: #713400; }
.recording-thread-optional { background: #eee0ff; border-left: 3px solid #7040a0; color: #49236f; }
.recording-thread-label { position: sticky; top: 30vh; display: inline-block; writing-mode: vertical-rl; white-space: nowrap; padding: 8px 0; font: bold .72rem/1 Arial, Helvetica, sans-serif; }
.recording-intro-end { height: 0; }
@media print { .recording-thread-label { position: static; } }
