/* Conference Sign-Up v1.6 — dedicated roster overlay, accessible in both themes */
.event-roster-overlay[hidden]{display:none!important}
.event-roster-overlay{position:fixed!important;inset:0!important;z-index:2147482000!important;padding:22px;background:rgba(18,38,65,.7);overflow:auto;overscroll-behavior:contain;color:#213953}
.event-roster-shell{width:min(1550px,100%);min-height:calc(100vh - 44px);margin:0 auto;display:flex;flex-direction:column;background:#f7fbff;border:1px solid #cbdbe9;border-radius:16px;box-shadow:0 24px 80px rgba(7,28,54,.35);overflow:hidden}
.event-roster-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 26px;background:#fff;border-bottom:1px solid #dae4ee}
.event-roster-heading{min-width:0}.event-roster-eyebrow{font-size:.68rem;font-weight:850;letter-spacing:.12em;color:#2875a7}.event-roster-heading h2{font-size:clamp(1.3rem,2.6vw,2rem);color:#173c69;margin:5px 0}.event-roster-heading p{font-size:.78rem;color:#5c6e83;margin:0}
.event-roster-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.event-roster-header-actions button{font:inherit;font-size:.77rem;font-weight:800;border-radius:10px;padding:11px 14px;cursor:pointer;min-height:40px}
.event-roster-secondary{background:#eff5fb;color:#264f79;border:1px solid #d5e2ee}.event-roster-close{background:#155da5;color:#fff;border:1px solid #155da5}
.event-roster-stats{display:flex;gap:10px;flex-wrap:wrap;padding:16px 26px}.event-roster-stat{min-width:150px;padding:12px 18px;border:1px solid #d2e4f5;border-radius:12px;background:#eaf5ff;display:flex;gap:4px;flex-direction:column}.event-roster-stat small{font-size:.72rem;font-weight:800;color:#617e99}.event-roster-stat-value{font-size:1.65rem;font-weight:900;line-height:1.1;color:#205e94;font-variant-numeric:tabular-nums}
.event-roster-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(110px,1fr));gap:12px;padding:0 26px 14px;align-items:end}.event-roster-toolbar label{display:grid;gap:6px;min-width:0;color:#435b74;font-weight:800;font-size:.71rem}.event-roster-toolbar select,.event-roster-toolbar input{width:100%;min-width:0;min-height:42px;padding:9px 11px;border:1px solid #cddce9;background:#fff;color:#18334e;font:inherit;font-size:.85rem;border-radius:9px;box-sizing:border-box}
.event-roster-alert{margin:0 26px 14px;padding:12px;border-radius:10px;background:#e4f2ff;color:#155b91;font-size:.83rem}.event-roster-alert.is-error{background:#fff0f0;color:#a4323b}.event-roster-alert[hidden]{display:none}
.event-roster-table-wrap{margin:0 26px 12px;border:1px solid #d2e0eb;border-radius:12px;overflow:auto;background:#fff;max-width:100%;flex:1}
.event-roster-table{border-collapse:separate!important;border-spacing:0!important;min-width:1080px;width:100%!important;max-width:none!important;color:#273e56;font-size:.75rem;font-variant-numeric:tabular-nums}
.event-roster-table th{position:sticky;top:0;z-index:2;background:#e9f2fc;text-align:left;font-size:.69rem;font-weight:850;color:#2b567b;padding:13px 12px;border-bottom:1px solid #cadbec;white-space:nowrap}
.event-roster-table td{padding:12px;border-bottom:1px solid #e2eaf0;vertical-align:top;line-height:1.55;overflow-wrap:anywhere;max-width:250px}.event-roster-table tbody tr:nth-child(even){background:#f7faff}.event-roster-table tbody tr:hover{background:#edf6ff}.event-roster-table .event-roster-student{font-weight:850;color:#175590;min-width:130px}.event-roster-contact{display:flex;flex-direction:column;gap:4px}.event-roster-empty{text-align:center;padding:45px!important;color:#617c96}
.event-roster-row-actions{white-space:nowrap}.event-roster-row-actions button{font:inherit;font-size:.71rem;font-weight:800;padding:7px 9px;margin:0 5px 4px 0;border-radius:7px;border:1px solid #cbdcec;cursor:pointer;background:#eef5ff;color:#165894}.event-roster-row-actions .event-roster-remove{color:#a72c40;background:#fff1f3;border-color:#f3cbd2}.event-roster-overlay.is-viewer th[data-roster-column="Actions"],.event-roster-overlay.is-viewer td.event-roster-row-actions{display:none}
.event-roster-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:8px 26px 22px;font-size:.72rem;color:#58708a}.event-roster-open-button,.event-roster-share-button{font-weight:800}
body.event-roster-open{overflow:hidden!important}
body.theme-rgb .event-roster-overlay{background:rgba(1,8,17,.86);color:#e3efff}
body.theme-rgb .event-roster-shell{background:#101d30;border-color:#304969}
body.theme-rgb .event-roster-header{background:#13263e;border-color:#304868}
body.theme-rgb .event-roster-heading h2{color:#f2f8ff}body.theme-rgb .event-roster-eyebrow{color:#81c8ff}body.theme-rgb .event-roster-heading p{color:#a6bbd4}
body.theme-rgb .event-roster-secondary{background:#243f5c;color:#e2f2ff;border-color:#3c607d}body.theme-rgb .event-roster-close{background:#1974bc;border-color:#1974bc}
body.theme-rgb .event-roster-stat{background:#18324f;border-color:#315576}body.theme-rgb .event-roster-stat small{color:#b8cee5}body.theme-rgb .event-roster-stat-value{color:#92cfff}
body.theme-rgb .event-roster-toolbar label{color:#b2c9e3}body.theme-rgb .event-roster-toolbar select,body.theme-rgb .event-roster-toolbar input{background:#102239;color:#f0f6ff;border-color:#365b7d}
body.theme-rgb .event-roster-alert{background:#193850;color:#bfe9ff}body.theme-rgb .event-roster-alert.is-error{background:#4c202b;color:#ffcad0}
body.theme-rgb .event-roster-table-wrap{border-color:#304965;background:#14263b}body.theme-rgb .event-roster-table{color:#e0eeff}body.theme-rgb .event-roster-table th{background:#203c59;color:#d7eafa;border-color:#385471}body.theme-rgb .event-roster-table td{border-color:#31455c}body.theme-rgb .event-roster-table tbody tr:nth-child(even){background:#192f47}body.theme-rgb .event-roster-table tbody tr:hover{background:#25405a}body.theme-rgb .event-roster-table .event-roster-student{color:#9dd6ff}body.theme-rgb .event-roster-footer{color:#aac1da}body.theme-rgb .event-roster-row-actions button{background:#204466;color:#e0f1ff;border-color:#42647e}body.theme-rgb .event-roster-row-actions .event-roster-remove{background:#542937;color:#ffd4d9;border-color:#834555}
@media(max-width:850px){.event-roster-overlay{padding:0}.event-roster-shell{border-radius:0;min-height:100vh}.event-roster-header{flex-direction:column;align-items:stretch;padding:19px}.event-roster-header-actions{justify-content:flex-start}.event-roster-toolbar{grid-template-columns:1fr 1fr;padding:0 18px 14px}.event-roster-search{grid-column:1/-1}.event-roster-stats{padding:14px 18px}.event-roster-table-wrap{margin:0 18px 12px}.event-roster-footer{padding:10px 18px 20px}}
@media(max-width:500px){.event-roster-header-actions{display:grid;grid-template-columns:1fr 1fr}.event-roster-header-actions button:last-child{grid-column:1/-1}.event-roster-toolbar{grid-template-columns:1fr 1fr;gap:9px}.event-roster-toolbar label>span{font-size:.68rem}.event-roster-stat{min-width:0;flex:1}.event-roster-table{min-width:980px}}
@media print{body *{visibility:hidden!important}#eventRosterOverlay,#eventRosterOverlay *{visibility:visible!important}#eventRosterOverlay{position:absolute!important;inset:0!important;padding:0!important;background:white!important;overflow:visible!important}#eventRosterOverlay .event-roster-shell{border:0!important;box-shadow:none!important;min-height:0!important;background:white!important}#eventRosterOverlay .event-roster-toolbar,#eventRosterOverlay .event-roster-header-actions,#eventRosterOverlay .event-roster-footer,#eventRosterOverlay .event-roster-row-actions{display:none!important}#eventRosterOverlay .event-roster-table-wrap{border:0!important;overflow:visible!important}#eventRosterOverlay .event-roster-table{min-width:0!important;font-size:8pt;color:black!important}#eventRosterOverlay .event-roster-table th,#eventRosterOverlay .event-roster-table td{color:black!important;border-bottom:1px solid #999!important;padding:4px!important;background:white!important}#eventRosterOverlay .event-roster-heading h2{color:black!important}#eventRosterOverlay .event-roster-table th[data-roster-column="Actions"]{display:none!important}}

/* Conference Roster v1.7 — column controls and privacy-safe display */
.event-roster-column-panel[hidden],.event-roster-queue-actions[hidden],.event-roster-queue-banner[hidden]{display:none!important}
.event-roster-column-panel{margin:12px 26px 15px;padding:15px;background:#f0f7fd;border:1px solid #cbdeee;border-radius:12px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;color:#254862}
.event-roster-column-heading{display:flex;flex-direction:column;gap:4px;min-width:220px;max-width:360px}
.event-roster-column-heading small{font-size:.71rem;line-height:1.45;color:#5c7288}
.event-roster-column-checks{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px}
.event-roster-checkbox{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:750;cursor:pointer;color:#264c6f}
.event-roster-checkbox input{width:17px;height:17px;accent-color:#247bc1;flex:none}
.event-roster-column-panel>button{font:inherit;cursor:pointer;padding:9px 12px;border-radius:8px}
.event-roster-queue-banner{display:flex;gap:12px;padding:0 26px 13px}
.event-roster-queue-card{flex:1;min-width:0;border-radius:11px;padding:12px 16px;display:flex;flex-direction:column;gap:5px;background:#dff5ea;color:#116143;border:1px solid #b8dfca}
.event-roster-queue-card.next{background:#e9f1ff;color:#2c5f95;border-color:#c4daf6}
.event-roster-queue-card small{font-size:.67rem;font-weight:850;letter-spacing:.1em}
.event-roster-queue-card strong{font-size:clamp(.85rem,1.5vw,1.1rem);font-weight:850;font-variant-numeric:tabular-nums}
.event-roster-queue-notice{margin:0;color:#64798e;font-size:.75rem}
.event-roster-queue-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 26px 14px}
.event-roster-queue-actions button{font:inherit;font-size:.75rem;font-weight:850;padding:9px 12px;border-radius:9px;cursor:pointer}
.event-roster-queue-action{color:#fff;background:#126cb2;border:1px solid #126cb2}
.event-roster-queue-guidance{font-size:.7rem;color:#6a7e90;flex:1}
.event-roster-table{min-width:0;width:100%!important}
.event-roster-table th,.event-roster-table td{white-space:normal}
.event-roster-table .event-roster-status{white-space:nowrap;font-weight:800}
.event-roster-table .status-now-serving{color:#147647}.event-roster-table .status-up-next{color:#216fa9}
.event-roster-overlay.is-display{padding:0!important;background:#f7fbff!important}
.event-roster-overlay.is-display .event-roster-shell{width:100%;min-height:100vh;border-radius:0;border:0;box-shadow:none}
.event-roster-overlay.is-display .event-roster-header{padding:22px 32px}
.event-roster-overlay.is-display .event-roster-header-actions button:not(.event-roster-display-toggle):not(.event-roster-columns-toggle){display:none!important}
.event-roster-overlay.is-display .event-roster-toolbar,.event-roster-overlay.is-display .event-roster-stats,.event-roster-overlay.is-display .event-roster-queue-actions,.event-roster-overlay.is-display .event-roster-footer{display:none!important}
.event-roster-overlay.is-display .event-roster-table-wrap{margin:14px 30px 30px}
.event-roster-overlay.is-display .event-roster-table{font-size:clamp(1rem,1.7vw,1.45rem)}
.event-roster-overlay.is-display .event-roster-table th{font-size:clamp(.85rem,1.3vw,1.1rem)}
.event-roster-overlay.is-display .event-roster-table td{padding:16px 14px}
.event-roster-overlay.is-display .event-roster-queue-card{padding:18px 24px}
.event-roster-overlay.is-display .event-roster-queue-card strong{font-size:clamp(1.15rem,2.2vw,1.8rem)}
body.theme-rgb .event-roster-column-panel{background:#162c46;border-color:#345572;color:#e0f0ff}
body.theme-rgb .event-roster-column-heading small,body.theme-rgb .event-roster-queue-guidance,body.theme-rgb .event-roster-queue-notice{color:#a8c0da}
body.theme-rgb .event-roster-checkbox{color:#d6e8fb}
body.theme-rgb .event-roster-queue-card{background:#123d35;color:#a3f0ce;border-color:#286d60}
body.theme-rgb .event-roster-queue-card.next{background:#203957;color:#b9d7ff;border-color:#385c84}
body.theme-rgb .event-roster-table .status-now-serving{color:#91f5b7}body.theme-rgb .event-roster-table .status-up-next{color:#a6ccff}
body.theme-rgb .event-roster-overlay.is-display{background:#101d30!important}
@media(max-width:850px){.event-roster-column-panel{margin:8px 18px 12px}.event-roster-queue-banner,.event-roster-queue-actions{padding-left:18px;padding-right:18px}.event-roster-column-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.event-roster-header-actions{display:flex;gap:7px}.event-roster-header-actions button{flex:1;min-width:90px;padding:9px 10px}.event-roster-column-panel{flex-direction:column;align-items:stretch}.event-roster-column-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.event-roster-table{min-width:0}.event-roster-overlay.is-display .event-roster-header{padding:15px}.event-roster-overlay.is-display .event-roster-queue-banner{padding:10px}.event-roster-overlay.is-display .event-roster-table-wrap{margin:10px}}
@media print{#eventRosterOverlay .event-roster-column-panel,#eventRosterOverlay .event-roster-queue-actions,#eventRosterOverlay .event-roster-queue-banner{display:none!important}}

/* Conference Roster v1.9 — name format selector for roster and display */
.event-roster-name-format{display:flex;flex-direction:column;gap:4px;min-width:195px;max-width:310px;font-size:.68rem;color:#52718d;font-weight:850;line-height:1.2}
.event-roster-name-format select{min-height:40px;border-radius:9px;padding:8px 10px;border:1px solid #cbdcec;background:#fff;color:#18334e;font:inherit;font-weight:750;font-size:.75rem;max-width:100%;cursor:pointer}
.event-roster-overlay.is-display .event-roster-name-format{display:flex}
body.theme-rgb .event-roster-name-format{color:#b8d0ea}
body.theme-rgb .event-roster-name-format select{background:#192f49;color:#eef7ff;border-color:#3e5d7d}
@media(max-width:850px){.event-roster-name-format{min-width:165px}}
@media(max-width:500px){.event-roster-overlay.is-display .event-roster-header-actions{display:grid;grid-template-columns:1fr 1fr;align-items:end}.event-roster-name-format{grid-column:1/-1;max-width:none;width:100%}.event-roster-overlay.is-display .event-roster-name-format select{width:100%;box-sizing:border-box}}
@media print{#eventRosterOverlay .event-roster-name-format{display:none!important}}
/* Compact readable queue on mobile; keep times and statuses from breaking mid-number. */
@media(max-width:550px){
  .event-roster-overlay.is-display .event-roster-table{table-layout:fixed;font-size:.77rem}
  .event-roster-overlay.is-display .event-roster-table th,.event-roster-overlay.is-display .event-roster-table td{padding:10px 6px!important;word-break:normal;overflow-wrap:normal;white-space:normal;line-height:1.45}
  .event-roster-overlay.is-display .event-roster-table th{font-size:.7rem}
  .event-roster-overlay.is-display .event-roster-table td[data-roster-column="Time"]{font-size:.72rem;min-width:0;font-variant-numeric:tabular-nums}
  .event-roster-overlay.is-display .event-roster-table th[data-roster-column="Queue"]{width:12%}
  .event-roster-overlay.is-display .event-roster-table th[data-roster-column="Time"]{width:30%}
  .event-roster-overlay.is-display .event-roster-table th[data-roster-column="Student"]{width:30%}
  .event-roster-overlay.is-display .event-roster-table th[data-roster-column="Status"]{width:28%}
}

/* Name formatting controls remain visible and readable in both roster modes. */
.event-roster-header-actions .event-roster-name-format{flex:0 1 285px;box-sizing:border-box}
.event-roster-name-format select{width:100%;box-sizing:border-box}
@media(max-width:500px){.event-roster-header-actions .event-roster-name-format{flex:none;grid-column:1/-1;max-width:none;width:100%}}
