.event-assignment-bar {
  padding: 16px 0;
  margin: 12px 0;
  border-bottom: 1px solid var(--line);
}
.event-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin: 20px 0;
}
.event-toolbar > select {
  width: auto;
  min-width: 160px;
}
.event-filters {
  margin-left: auto;
  position: relative;
}
.event-filters > summary {
  display: flex;
  gap: 20px;
  cursor: pointer;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  list-style: none;
}
.event-filters > div {
  position: absolute;
  right: 0;
  z-index: 5;
  background: var(--panel);
  border: 1px solid var(--line);
  padding: 16px;
  width: 320px;
  border-radius: 10px;
}
.event-session-list,
.event-room-list {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.event-session-head,
.event-session-row > summary {
  display: grid;
  grid-template-columns:
    minmax(220px, 2fr) minmax(170px, 1.4fr) minmax(130px, 1fr)
    minmax(110px, 0.8fr) 20px;
  gap: 20px;
  align-items: center;
  padding: 20px;
}
.event-session-head,
.event-room-head {
  background: var(--panel);
  font: 10px/1.5 var(--mono);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  padding-top: 12px;
  padding-bottom: 12px;
}
.event-session-row + .event-session-row,
.event-room-row + .event-room-row {
  border-top: 1px solid var(--line);
}
.event-session-row > summary,
.event-room-row > summary {
  cursor: pointer;
  list-style: none;
  font-size: 13px;
}
.event-session-row > summary::-webkit-details-marker,
.event-room-row > summary::-webkit-details-marker {
  display: none;
}
.event-row-title {
  display: flex;
  align-items: center;
  gap: 14px;
}
.event-row-title strong {
  font-weight: 500;
  font-size: 15px;
}
.event-row-title input {
  flex-shrink: 0;
}
.event-row-body {
  padding: 24px;
  background: var(--panel);
  border-top: 1px solid var(--line);
}
.event-coverage-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 20px;
}
.event-coverage-lane {
  border: 1px solid var(--line);
  padding: 16px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
}
.event-coverage-lane label {
  font-size: 13px;
}
.event-coverage-lane > span {
  color: var(--muted);
}
.event-assignment-list > div {
  display: flex;
  gap: 16px;
  align-items: center;
  margin: 12px 0;
  flex-wrap: wrap;
}
.event-warning {
  color: var(--warning);
  font-size: 13px;
}
.coverage-checklist {
  display: block;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  overflow: hidden;
}
.event-task {
  border: 1px solid var(--line);
  background: var(--panel);
  padding: 18px;
  border-radius: 12px;
}

.event-task p,
.event-task label,
.event-task small {
  font-size: 13px;
}
.event-task textarea {
  min-height: 80px;
}
.event-task .section-heading {
  margin: 0 0 16px;
}
.event-task small {
  display: block;
  color: var(--muted);
  margin-top: 12px;
}
.event-room-head,
.event-room-row > summary {
  display: grid;
  grid-template-columns: 2fr 1fr 2fr 18px;
  gap: 20px;
  padding: 20px;
  align-items: center;
}
.event-map-dialog {
  width: min(900px, 94vw);
}
.event-map-dialog h2 {
  margin: 0;
}
.event-map-canvas svg {
  width: 100%;
  height: auto;
  display: block;
}
.event-map-legend {
  font-size: 13px;
}
.event-map-legend::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  background: var(--accent);
  margin-right: 8px;
}
.event-map-dialog .muted {
  font-size: 12px;
}
.coverage-intro {
  margin: 28px 0 20px;
}
.coverage-intro p {
  max-width: 800px;
}
@media (max-width: 700px) {
  .event-session-head,
  .event-room-head {
    display: none;
  }
  .event-session-row > summary {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 20px;
  }
  .event-row-title {
    grid-column: 1;
  }
  .event-session-row > summary > span:nth-child(2),
  .event-session-row > summary > span:nth-child(3),
  .event-session-row > summary > span:nth-child(4) {
    grid-column: 1;
    color: var(--muted);
    font-size: 12px;
    padding-left: 34px;
  }
  .event-session-row > summary > .toggle {
    grid-column: 2;
    grid-row: 1/5;
  }
  .event-coverage-controls {
    grid-template-columns: 1fr;
  }
  .event-row-body {
    padding: 18px;
  }
  .coverage-checklist {
    grid-template-columns: 1fr;
  }
  .event-room-row > summary {
    grid-template-columns: 1fr auto;
    gap: 8px;
  }
  .event-room-row > summary > span:not(.toggle) {
    grid-column: 1;
    color: var(--muted);
    font-size: 12px;
  }
  .event-room-row > summary > .toggle {
    grid-column: 2;
    grid-row: 1/4;
  }
  .event-toolbar > select {
    min-width: 0;
    flex: 1;
  }
  .event-filters {
    margin-left: 0;
  }
  .event-filters > div {
    width: min(320px, 85vw);
  }
  .event-assignment-bar {
    gap: 10px;
  }
  .event-assignment-bar > span {
    font-size: 12px;
  }
  .event-assignment-bar button {
    font-size: 12px;
    padding: 10px;
  }
  .event-toolbar .menu {
    max-width: 100%;
  }
}
.event-session-head button {
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  text-align: left;
  min-height: 20px;
}

.event-task-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.event-task h3 {
  font: 650 22px/1.3 var(--font-heading);
  margin: 12px 0 5px;
}
.event-task p {
  margin: 8px 0 12px;
}
.event-task-room {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}
.event-task-room button {
  min-height: 36px;
  padding: 8px 12px;
}
.event-handoff {
  padding: 0;
  margin: 14px 0;
  border-top: 1px solid var(--line);
}
.event-handoff > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font: 11px/1.5 var(--mono);
  letter-spacing: 0.055em;
  padding: 12px 0;
  cursor: pointer;
  list-style: none;
}
.event-handoff > summary::-webkit-details-marker {
  display: none;
}
.event-handoff textarea {
  min-height: 80px;
  margin: 8px 0;
}
.event-task > [data-task-edit] {
  width: 100%;
}
.session-editor-notes {
  margin-top: 24px;
}
.session-editor-notes h3 {
  font-size: 16px;
}
.session-editor-notes .event-handoff {
  border-top: 0;
}
.session-editor-notes .event-handoff > summary {
  display: none;
}
body:has(nav[aria-label="Event workspace"]) .page-heading p:not(.eyebrow) {
  font: 400 13px/1.5 var(--font-body);
  color: var(--accent);
}
.event-assignment-bar {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
  background: var(--surface);
  margin: 24px 0;
}
.event-assignment-bar [data-selected-count] {
  font: 400 10px/1.5 var(--mono);
  color: var(--accent);
}
.event-assignment-bar [data-event-select-all] {
  margin-left: auto;
}
.event-toolbar > select:first-child {
  flex: 1;
  min-width: 160px;
}
.event-session-row > summary > span {
  color: var(--muted);
}
.event-session-row > summary > span:first-child {
  color: var(--ink);
}
.event-session-row > summary > span:nth-last-child(2) {
  color: var(--accent);
}
@media (max-width: 650px) {
  .event-assignment-bar {
    gap: 8px;
  }
  .event-assignment-bar [data-event-select-all] {
    margin-left: 0;
  }
  .event-assignment-bar [data-selected-count] {
    flex: 1;
  }
}

.event-task .badge.pending {
  color: #ffb0a3;
  background: #b94a3a30;
  border-color: #b94a3a40;
}

.event-room-head {
  padding-block: 10px;
}
.event-room-head button {
  justify-content: flex-start;
  padding: 0;
  min-height: 16px;
  border: 0;
  font: inherit;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: inherit;
}
.event-room-row > summary {
  padding-block: 16px;
  min-height: 54px;
  font-size: 12px;
}
.event-room-row > summary strong {
  font: 600 14px/1.45 var(--font-body);
}
.event-room-row > summary > span {
  color: var(--muted);
}

.event-filters > summary {
  font: 14px/1.5 var(--font-body);
}

.event-nav-short,
.event-mobile-sort {
  display: none;
}
.event-filters:not([open]) > div {
  display: none;
}
@media (max-width: 650px) {
  body:has(nav[aria-label="Event workspace"]) .page-heading {
    margin-bottom: 12px;
  }
  .event-nav-full {
    display: none;
  }
  .event-nav-short {
    display: inline;
  }
  .event-toolbar {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0 16px;
  }
  .event-toolbar > select {
    grid-column: span 3;
    width: 100%;
    min-width: 0;
  }
  .event-toolbar > :is(button, details) {
    grid-column: span 2;
    min-width: 0;
  }
  .event-toolbar > [data-event-publish] {
    grid-column: span 6;
  }
  .event-toolbar > .menu summary {
    font: 13px/1.5 var(--font-body);
    letter-spacing: 0;
    text-transform: none;
    padding: 12px;
  }
  .event-toolbar .event-filters {
    margin: 0;
  }
  .event-toolbar .event-filters > summary {
    padding: 12px;
    gap: 8px;
    font: 13px/1.5 var(--font-body);
    text-transform: none;
  }
  .event-toolbar > [data-event-filter="date"]:first-child {
    grid-column: span 6;
  }
  .event-mobile-sort {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    margin: 16px 0;
    font: 13px/1.5 var(--font-body);
    letter-spacing: 0;
  }
  .event-mobile-sort select {
    flex: 1;
    min-width: 0;
  }
  .coverage-intro h2 {
    font-size: 18px;
  }
  .event-task h3 {
    font-size: 18px;
  }
}

@media (min-width: 701px) {
  body:has(nav[aria-label="Event workspace"]) .page-heading p:not(.eyebrow) {
    font: 11px/1.5 var(--mono);
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }
  .event-session-head,
  .event-session-row > summary {
    grid-template-columns:
      minmax(0, 2.2fr) minmax(150px, 1.2fr) minmax(100px, 1fr)
      minmax(180px,0.9fr) 18px;
    gap: 16px;
    padding: 16px 20px;
  }
  .event-session-head {
    padding-block: 11px;
  }
  .event-session-row > summary {
    font: 12px/1.5 var(--font-body);
  }
  .event-session-row > summary strong {
    font-size: 14px;
  }
}
@media (max-width: 700px) {
  body:has(nav[aria-label="Event workspace"]) .page-heading .eyebrow {
    display: none;
  }
}

@media (min-width: 701px) {
  .event-toolbar > select {
    flex: 1 1 160px;
  }
  .coverage-checklist > .empty {
    border: 1px dashed var(--line);
    border-radius: 10px;
    padding: 44px 24px;
    text-align: center;
    max-width: none;
  }
}
@media (max-width: 700px) {
  .producer-coverage-help {
    display: none;
  }
}

@media (min-width: 701px) {
  .event-room-head,
  .event-room-row > summary {
    gap: 16px;
  }
  .event-room-head button {
    justify-content: center;
  }
}

.event-session-room {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  min-width: 0;
}
.event-session-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.event-session-map-actions button,
.event-session-map-actions .button {
  padding: 8px 10px;
  min-height: 44px;
  font-size: 11px;
  white-space: normal;
}

/* Checklist uses the same continuous, expandable list as the full schedule. */
.coverage-checklist .event-task-row {
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
}
.coverage-checklist .event-task-row + .event-task-row {
  border-top: 1px solid var(--line);
}
.event-task-row > summary {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(150px, 1.2fr) minmax(
      100px,
      1fr
    ) 160px 18px;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  list-style: none;
  cursor: pointer;
  font-size: 13px;
}
.event-task-row > summary::-webkit-details-marker {
  display: none;
}
.event-task-title {
  min-width: 0;
}
.event-task-title strong {
  display: block;
  font-size: 14px;
}
.event-task-title small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}
.event-task-time,
.event-task-location {
  color: var(--muted);
  overflow-wrap: anywhere;
}
.event-task-row .event-task-badges {
  align-items: flex-start;
}
.event-task-row .badge {
  font-size: 10px;
}
.event-task-body {
  padding: 4px 20px 20px;
}
.event-task-body > [data-task-edit] {
  margin-top: 12px;
}
@media (max-width: 700px) {
  .event-task-row > summary {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    gap: 8px 12px;
    padding: 16px;
  }
  .event-task-title {
    grid-column: 1 / 3;
  }
  .event-task-row > summary > .toggle {
    grid-column: 3;
    grid-row: 1;
  }
  .event-task-time {
    grid-column: 1 / 3;
  }
  .event-task-location {
    grid-column: 1 / 3;
  }
  .event-task-row .event-task-badges {
    grid-column: 1 / 3;
  }
  .event-task-body {
    padding: 4px 16px 16px;
  }
}
/* Mobile schedule rows: aligned information with time first and compact spacing. */
@media (max-width: 700px) {
  .event-session-row > summary {
    grid-template-columns: minmax(0, 1fr) 18px;
    gap: 5px 10px;
    padding: 14px 16px;
  }
  .event-session-row > summary > span:nth-child(2),
  .event-session-row > summary > span:nth-child(3),
  .event-session-row > summary > span:nth-child(4) { padding-left: 0; }
  .event-session-row > summary > span:nth-child(2) {
    grid-row: 1; color: var(--ink); font: 500 13px/1.4 var(--mono);
  }
  .event-session-row > summary > .event-row-title { grid-row: 2; }
  .event-session-row > summary .event-row-title strong { font: 500 16px/1.35 var(--font-body); }
  .event-session-row > summary > span:nth-child(3) { grid-row: 3; font-size: 12px; }
  .event-session-row > summary > span:nth-child(4) { grid-row: 4; font-size: 11px; }
  .event-session-row > summary > .toggle { grid-row:4; align-self:center; }
  .event-toolbar .event-filters { width: 100%; margin-left: 0; }
  .event-toolbar .event-filters > div { position: static; width: 100%; max-width: 100%; box-sizing: border-box; margin-top: 8px; }
  .event-toolbar .event-filters > div > select { min-width: 0; width: 100%; }
  body:has(nav[aria-label="Event Schedule"]) .page-heading { margin-bottom: 20px; }
}
.event-session-when { display: flex; flex-direction: column; gap: 3px; }
.event-session-date { font: 400 11px/1.35 var(--font-body); color: var(--muted); }
.event-session-time { font: 500 14px/1.3 var(--mono); color: var(--ink); }
@media (max-width: 700px) {
  .event-session-row > summary .event-session-time { font: 500 20px/1.25 var(--mono); letter-spacing: -0.04em; }
  .event-session-row > summary .event-session-date { font-size: 11px; }
}
.event-session-row[data-session-phase="past"] > summary { background: #88888808; }
.event-session-row[data-session-phase="past"] > summary .event-row-title,
.event-session-row[data-session-phase="past"] > summary .event-session-time { color: var(--muted); }
.event-session-row[data-session-phase="current"] > summary { box-shadow: inset 3px 0 var(--accent); background: color-mix(in srgb, var(--accent) 6%, transparent); }
.event-session-row[data-session-phase="current"] .session-phase-label { color: var(--accent); font-weight: 700; }
/* Section headings and tabs align with the content they describe. */
.coverage-checklist > h3 {
  margin: 0;
  padding: 16px 20px 10px;
  font: 600 16px/1.35 var(--font-body);
}
.coverage-checklist > .event-task-row + h3 { border-top: 1px solid var(--line); }
nav[aria-label="Event Schedule"].workspace-tabs .button {
  display: flex; justify-content: center; align-items: center; text-align: center;
  min-width: 0; white-space: nowrap;
}
@media (max-width: 700px) {
  nav[aria-label="Event Schedule"].workspace-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
  nav[aria-label="Event Schedule"].workspace-tabs .button { font-size: 13px; padding: 10px 4px; min-height: 44px; }
  .coverage-checklist > h3 { padding: 14px 16px 8px; }
  .coverage-intro { margin: 16px 0; }
  .coverage-intro h2 { margin: 0 0 8px; }
  .coverage-intro p { margin: 0; font: 400 13px/1.5 var(--font-body); }
}
@media (max-width: 700px) {
  .event-toolbar > [data-event-filter="date"]:first-child { grid-column: span 4; }
  .event-toolbar .event-filters { grid-column: span 2; width: 100%; }
  .event-toolbar .event-filters > summary { min-height: 44px; box-sizing: border-box; justify-content: space-between; }
  .event-toolbar:has(.event-filters[open]) .event-filters { grid-column: 1 / -1; }
}
nav[aria-label="Event Schedule"].workspace-tabs { display:grid; grid-template-columns:repeat(var(--event-tab-count,3),minmax(0,1fr)); }
.staffing-board-summary { display:flex; flex-wrap:wrap; gap:10px 20px; padding:12px 0; font-size:13px; }
.staffing-board-summary span,.staffing-board-help { color:var(--muted); font-size:12px; }
.staffing-board-scroll { max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.staffing-board { min-width:600px; width:100%; table-layout:fixed; border-collapse:collapse; }
.staffing-board th,.staffing-board td { padding:10px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); vertical-align:top; }
.staffing-board thead th { background:var(--panel); font-size:12px; position:sticky; top:0; z-index:1; }
.staffing-board th:first-child { width:125px; }
.staffing-board th small,.staffing-board th strong { display:block; }
.staffing-board th small { font:400 10px/1.5 var(--mono); color:var(--muted); }
.staffing-board th strong { font:400 18px/1.4 var(--mono); }
.staffing-session { display:flex; flex-direction:column; flex:1; gap:8px; border:1px solid var(--line); border-radius:8px; background:var(--surface); padding:12px; margin:0; }
.staffing-session h3 { font:500 16px/1.4 var(--font-body); margin:0; }
.staffing-session-time { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
.staffing-session-time strong { font:400 18px/1.3 var(--mono); }
.staffing-session-time small { color:var(--muted); font-size:11px; }
.staffing-session p,.staffing-session li { font-size:13px; margin:0; }
.staffing-session[data-session-phase="past"] .staffing-session-time strong,.staffing-session[data-session-phase="past"] h3 { color:var(--muted); }
.staffing-session[data-session-phase="current"] { border-left:3px solid var(--accent); }
.staffing-people,.staffing-targets { list-style:none; padding:0; margin:0; }
.staffing-people li { display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; padding:2px 0; }
.staffing-people span { color:var(--muted); font-size:12px; }
.staffing-gap { color:var(--warning); }
.staffing-session .actions { gap:6px; flex-wrap:wrap; }
.staffing-session .actions button { font-size:11px; padding:7px 9px; min-height:40px; }
.staffing-role-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
@media(max-width:700px) {
 nav[aria-label="Event Schedule"].workspace-tabs .button { font-size:11px; }
 .staffing-role-form { grid-template-columns:1fr; }
}
.crew-day { max-width:900px; margin:16px 0; }
.crew-day-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; margin:16px 0; }
.crew-day-heading h2 { margin:4px 0 0; font-size:22px; }
.crew-day-heading > div:last-child { text-align:right; }
.crew-day-heading small { display:block; color:var(--muted); font-size:11px; }
.crew-day-heading strong { font:400 28px/1.3 var(--font-body); }
.crew-day-focus { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.crew-day-session,.crew-day-capture,.crew-day-changes { border:1px solid var(--line); border-radius:10px; padding:16px; background:var(--panel); }
.crew-day-session[data-session-phase="current"] { border-left:3px solid var(--accent); }
.crew-day-session small { color:var(--accent); font:500 11px/1.4 var(--mono); }
.crew-day-time { display:block; font:500 22px/1.3 var(--mono); margin-top:5px; }
.crew-day-session h3 { font:500 17px/1.4 var(--font-body); margin:12px 0 4px; }
.crew-day-session p { font-size:13px; color:var(--muted); margin:5px 0 12px; }
.crew-day-session .button { min-height:44px; width:100%; text-align:center; background:transparent; color:var(--accent); }
.crew-day-capture { margin-top:16px; }
.crew-day-capture h3 { font-size:16px; margin:0; }
.crew-day-capture ul { list-style:none; padding:0; }
.crew-day-capture li { display:flex; align-items:baseline; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:14px; }
.crew-day-capture li small,.crew-day-timeline small { display:block; font-size:12px; color:var(--muted); }
.crew-day-changes { margin-bottom:16px; }
.crew-day-changes summary { cursor:pointer; font-size:14px; }
.crew-day-all { margin:16px 0; border-block:1px solid var(--line); }
.crew-day-all summary { padding:14px 0; cursor:pointer; font-size:14px; }
.crew-day-timeline > div { display:grid; grid-template-columns:180px minmax(0,1fr); gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:14px; }
.crew-day-timeline > div[data-session-phase="past"] { color:var(--muted); }
.crew-day-timeline strong { font:500 12px/1.5 var(--mono); }
.crew-day-call-sheet { display:block; text-align:center; }
@media(max-width:650px) {
 .crew-day-focus { grid-template-columns:1fr; }
 .crew-day-timeline > div { grid-template-columns:125px minmax(0,1fr); }
 .crew-day-time { font-size:20px; }
}
nav[aria-label="Event Schedule"].workspace-tabs:has(a[href$="/board"]),
nav[aria-label="Event Schedule"].workspace-tabs:has(a[href$="/day"]) { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:360px) { nav[aria-label="Event Schedule"].workspace-tabs .button { font-size:10px; padding-inline:2px; } }
/* This is an intentional room grid; do not inherit the site's mobile table-to-card conversion. */
.staffing-board { display:table; table-layout:fixed; min-width:calc(125px + var(--staffing-columns,1) * 240px); }
.staffing-board thead { display:table-header-group; }
.staffing-board tbody { display:table-row-group; }
.staffing-board tr { display:table-row; padding:0; }
.staffing-board th,.staffing-board td { display:table-cell; margin:0; text-align:left; }
.staffing-board th:not(:first-child),.staffing-board td { min-width:240px; }
.staffing-board td::before { display:none; }
.staffing-board td { height:1px; }
.staffing-cell { height:100%; display:flex; flex-direction:column; gap:8px; }
.staffing-session .session-edit-save-status { display:flex; min-height:16px; }
.staffing-session .session-edit-save-status:empty { display:flex; }
.staffing-board th:first-child { min-width:125px; width:125px; }
.staffing-session h3,.staffing-people strong { overflow-wrap:anywhere; }
.assignment-type-review { border:1px solid var(--warning); border-radius:8px; padding:12px 16px; margin:12px 0; }
.assignment-type-review strong { font-size:14px; }
.assignment-type-review p { font-size:12px; color:var(--muted); margin:6px 0 10px; }
.assignment-type-review button { min-height:44px; font-size:12px; }
.assignment-type-people { margin:14px 0; }
.assignment-type-people label { display:grid; grid-template-columns:minmax(0,1fr) 210px; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.assignment-type-people strong,.assignment-type-people small { display:block; }
.assignment-type-people strong { font:500 14px/1.4 var(--font-body); }
.assignment-type-people small { font:400 11px/1.4 var(--font-body); color:var(--muted); }
@media(max-width:600px) { .assignment-type-people label { grid-template-columns:1fr; } }

.session-output-control { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:12px 0; }
.session-output-control small { color:var(--muted); font-size:12px; }
.session-edit-needed { min-height:44px; font-size:14px; }
.session-role-checks { display:flex; flex-wrap:wrap; gap:8px 20px; margin:12px 0; padding:12px; }
.session-role-checks .check { min-height:44px; margin:0; }
.staffing-session-controls { margin-top:auto; display:flex; flex-direction:column; align-items:stretch; gap:4px; }
.staffing-session-controls .session-edit-needed { align-self:flex-start; min-height:44px; margin:0; font-size:12px; gap:6px; }
.staffing-session-controls .session-assign-button { width:100%; min-height:44px; padding:7px 8px; font-size:12px; }

.session-crew-status { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0; }
.session-crew-status > [data-session-status] { margin:0; min-width:0; overflow-wrap:anywhere; font:400 12px/1.4 var(--font-body); }
.session-crew-status > .session-assign-button { justify-self:end; }
.session-assign-button { min-height:44px; padding:8px 12px; white-space:nowrap; font-size:12px; }
.session-crew-summary { display:flex; flex-wrap:wrap; gap:8px 16px; margin:12px 0; }
.session-crew-dialog { max-width:640px; }
.session-crew-context { color:var(--muted); font-size:13px; }
.session-crew-people { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 12px; margin:12px 0; }
.session-crew-person { min-height:48px; margin:0; align-items:center; }
.session-crew-person span { display:flex; flex-direction:column; min-width:0; }
.session-crew-person strong { font-weight:400; font-size:14px; }
.session-crew-person small { color:var(--muted); font-size:12px; }
.session-crew-person[hidden] { display:none; }
.session-crew-extra { margin:12px 0; }
.session-crew-extra > summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; }
@media(max-width:500px) { .session-crew-people { grid-template-columns:1fr; } }
.session-edit-save-status { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; color:var(--status-booked); font:400 11px/1.4 var(--mono); }
.session-edit-save-status:empty { display:none; }
.session-edit-save-status[data-state="error"] { color:var(--danger,#f5a6a6); }
.session-edit-save-status button { min-height:44px; }
.session-staff-person { min-width:0; padding:8px 0; }
.session-staff-person[hidden] { display:none; }
.session-role-choice { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:11px; margin-top:6px; }
.session-role-choice select { width:100%; min-height:44px; font-size:13px; }
.capture-show-other { font-size:12px; color:var(--muted); }
.capture-people .session-crew-person { padding-block:4px; }

/* One session editor: role first, crew directly beneath it. */
.role-first-dialog { max-width:640px; }
.session-role-row { border-bottom:1px solid var(--border); padding:14px 0; }
.session-role-row:first-child { padding-top:0; }
.session-role-heading { display:flex; align-items:center; gap:8px; min-width:0; }
.session-role-heading > div { flex:1; min-width:0; }
.session-role-heading strong { font:500 16px/1.4 var(--font-body); overflow-wrap:anywhere; }
.session-role-heading small { display:block; font-size:12px; color:var(--muted); margin-top:3px; }
.session-role-heading > span { font-size:11px; white-space:nowrap; }
.session-role-heading > button { flex-shrink:0; min-width:44px; min-height:44px; padding:6px; background:transparent; border:0; font-size:22px; color:var(--muted); }
.role-unfilled { color:var(--warning,#dfac52); }
.role-filled { color:var(--success,#b9e163); }
.role-crew-picker { margin-top:6px; }
.role-crew-picker > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; min-height:44px; border:1px solid var(--border); border-radius:10px; cursor:pointer; font-size:14px; }
.role-crew-picker > summary > span:first-child { overflow-wrap:anywhere; min-width:0; }
.role-crew-options { padding:12px; border:1px solid var(--border); border-top:0; border-radius:0 0 10px 10px; }
.role-crew-picker[open] > summary { border-radius:10px 10px 0 0; }
.role-crew-options [type=search] { width:100%; min-height:44px; margin-bottom:8px; }
.role-person-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 12px; max-height:280px; overflow-y:auto; }
.role-person-list .session-crew-person { min-width:0; }
.session-add-role { display:block; font-size:12px; color:var(--muted); margin-top:16px; }
.session-add-role select { display:block; width:100%; min-height:44px; margin-top:6px; font-size:14px; }
.session-custom-role { display:flex; align-items:flex-end; gap:8px; margin-top:12px; }
.session-custom-role > label { flex:1; min-width:0; }
.session-custom-role input { width:100%; }
.session-custom-role button { min-height:44px; }
.session-role-hint { display:block; font-size:12px; color:var(--muted); margin-top:8px; }
.session-roles-empty { margin:8px 0; color:var(--muted); font-size:14px; }
@media(max-width:500px) { .role-person-list { grid-template-columns:1fr; } }

/* Date and room are the primary schedule filters; bulk actions follow them. */
.event-assignment-bar { padding:12px; margin:12px 0; gap:8px; }
.event-assignment-bar [data-selected-count] { font-size:12px; }
.coverage-intro > .button { margin-top:12px; }
@media(max-width:700px) {
 .event-toolbar > [data-event-filter="date"], .event-toolbar > [data-event-filter="date"]:first-child, .event-toolbar > [data-event-filter="room"] { grid-column:span 3; }
 .event-toolbar > [data-event-filter="crew"] { grid-column:span 6; }
 .event-assignment-bar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .event-assignment-bar > button { width:100%; min-width:0; }
 .event-assignment-bar [data-selected-count] { grid-column:1 / -1; }
 .event-assignment-bar [data-event-select-all] { margin-left:0; }
}

.schedule-selection-preview { margin:16px 0 0; }
.selection-preview-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 16px; padding-bottom:8px; border-bottom:1px solid var(--line); font:400 12px/1.5 var(--mono); }
.selection-preview-heading strong { font:inherit; color:var(--ink); }
.selection-preview-heading span { color:var(--muted); }
.selection-preview-day { margin:0; padding:0; }
.selection-preview-day h4 { margin:12px 0 2px; color:var(--muted); font:400 11px/1.5 var(--mono); letter-spacing:.04em; text-transform:uppercase; }
.selection-preview-day ul { list-style:none; padding:0; margin:0; }
.selection-preview-day li { display:grid; grid-template-columns:160px minmax(0,1fr); align-items:baseline; gap:8px 16px; padding:8px 0; margin:0; border-bottom:1px solid var(--line); }
.selection-preview-day li:last-child { border-bottom:0; }
.selection-preview-time { color:var(--ink); font:400 13px/1.5 var(--mono); white-space:nowrap; font-variant-numeric:tabular-nums; }
.selection-preview-session { min-width:0; overflow-wrap:anywhere; font:400 14px/1.5 var(--font-body); }
.selection-preview-session small { display:block; color:var(--muted); font:400 12px/1.5 var(--font-body); margin-top:2px; }
@media(max-width:500px) {
 .selection-preview-day li { grid-template-columns:minmax(0,1fr); gap:3px; }
 .selection-preview-heading { justify-content:flex-start; }
}
