.view-tabs {
  width: 650px;
  flex-basis: 650px;
  grid-template-columns: repeat(6, 99px);
}

.view-tabs button {
  width: 99px;
}

.terminal-switcher {
  display: grid;
  grid-template-columns: auto minmax(170px, 1fr);
  align-items: center;
  gap: 7px;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 3px 5px 3px 9px;
  color: #6F6F6F;
  background: #fff;
  font-size: 12px;
  font-weight: 900;
}

.terminal-switcher select {
  min-width: 0;
  height: 28px;
  border: 0;
  border-radius: 6px;
  padding: 0 7px;
  color: var(--ink);
  background: #FAFAFA;
  font-size: 12px;
  font-weight: 900;
}

.network-status {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  border: 1px solid #E2E2E2;
  border-radius: var(--radius);
  padding: 0 10px;
  color: #16784a;
  background: #F7F7F7;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.network-status i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
}

body.event-terminal-mode .view-tabs,
body.event-terminal-mode .project-switcher,
body.event-terminal-mode .topbar-event-name-control,
body.event-terminal-mode .tournament-mode-toggle {
  display: none !important;
}

body.event-terminal-mode .topbar-brand-cluster {
  flex-basis: auto;
}

.scoredesk-terminal-actions {
  min-width: 0;
  align-items: center;
  flex-wrap: nowrap;
}

.scoredesk-terminal-actions .schedule-boundary-status {
  max-width: min(48vw, 720px);
  margin-top: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scoredesk-terminal-context {
  margin-top: 4px;
}

body.event-scorekeeper-waiting #scoreDeskAssignmentStatus {
  color: #9a5a07;
  border-color: #f2cc8c;
  background: #F8F8F8;
}

.event-page {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0 56px 16px 24px;
}

.event-overview-layout,
.event-schedule-layout,
.event-terminal-layout {
  display: grid;
  align-content: start;
  gap: 14px;
}

.event-overview-summary,
.event-project-panel,
.event-terminal-main,
.event-preview-heading,
.event-terminal-preview,
.event-manual-panel,
.event-venue-panel,
.event-plan-column {
  padding: 14px;
}

.event-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
}

.event-stat-card {
  display: grid;
  gap: 5px;
  min-height: 92px;
  align-content: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 13px 15px;
  background: var(--panel-strong);
}

.event-stat-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.event-stat-card strong {
  color: var(--ink);
  font-size: 28px;
  line-height: 1;
}

.event-stat-card em {
  color: #6F6F6F;
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
}

.event-add-team-control {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.event-add-team-control select,
.event-add-team-control input,
.event-chat-form input,
.event-team-input input,
.event-station-name,
.event-status-select {
  min-height: 34px;
  border: 1px solid #D4D4D4;
  border-radius: var(--radius);
  padding: 0 9px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  outline: none;
}

.event-add-team-control input {
  width: 210px;
}

.event-add-team-divider {
  width: 1px;
  height: 26px;
  margin: 0 3px;
  background: #E2E2E2;
}

.event-random-team-count {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  border: 1px solid #E2E2E2;
  border-radius: var(--radius);
  padding: 0 8px;
  color: #6F6F6F;
  background: #FAFAFA;
  font-size: 12px;
  font-weight: 850;
}

.event-add-team-control .event-random-team-count input {
  width: 58px;
  min-height: 26px;
  padding: 0 6px;
  text-align: center;
}

.event-add-team-feedback {
  flex-basis: 100%;
  min-height: 18px;
  color: #6F6F6F;
  font-size: 11px;
  font-weight: 800;
  text-align: right;
}

.event-add-team-feedback[data-status="success"] {
  color: #168153;
}

.event-add-team-feedback[data-status="error"] {
  color: #c23b32;
}

.event-project-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.event-project-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel-strong);
}

.event-project-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 10px 12px;
}

.event-project-card header strong {
  font-size: 14px;
}

.event-project-card header span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.event-team-roster {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 7px;
  padding: 10px;
}

.event-team-roster > span {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 9px;
  color: #3F3F3F;
  background: #fff;
  font-size: 12px;
  font-weight: 900;
}

.event-team-roster > span::before {
  content: attr(data-seed);
  display: inline-grid;
  min-width: 28px;
  min-height: 24px;
  place-items: center;
  border-radius: 6px;
  color: #1d4ed8;
  background: #EFEFEF;
  font-size: 10px;
}

.event-team-management-bar {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, 0.8fr);
  gap: 10px;
  margin: 12px 0;
}

.event-team-order-tools,
.event-demo-team-tools {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px;
  background: #FAFAFA;
}

.event-team-order-tools > div,
.event-demo-team-tools > div {
  display: grid;
  min-width: 0;
  flex: 1 1 auto;
  gap: 2px;
}

.event-team-order-tools strong,
.event-demo-team-tools strong {
  color: var(--ink);
  font-size: 12px;
}

.event-team-order-tools span,
.event-demo-team-tools span {
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-demo-team-tools label {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}

.event-demo-team-tools input {
  width: 68px;
  min-height: 34px;
  border: 1px solid #D4D4D4;
  border-radius: var(--radius);
  padding: 0 7px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 900;
}

.event-team-draw-panel {
  display: grid;
  gap: 10px;
  margin: 0 0 12px;
  border: 1px solid #b8c9fb;
  border-radius: var(--radius);
  padding: 12px;
  background: linear-gradient(135deg, #FAFAFA 0%, #F3F3F3 100%);
  box-shadow: 0 10px 26px rgba(47, 91, 211, 0.08);
}

.event-team-draw-panel.is-hidden {
  display: none;
}

.event-team-draw-heading,
.event-team-draw-controls {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}

.event-team-draw-heading {
  justify-content: space-between;
}

.event-team-draw-heading > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.event-team-draw-heading strong {
  color: var(--ink);
  font-size: 15px;
  font-weight: 950;
}

.event-team-draw-heading span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.event-team-draw-heading > b {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 6px 10px;
  color: #1d4ed8;
  background: #E8E8E8;
  font-size: 11px;
  font-weight: 950;
}

.event-team-draw-controls {
  flex-wrap: wrap;
  border: 1px solid #DDDDDD;
  border-radius: 9px;
  padding: 9px;
  background: rgba(255, 255, 255, 0.84);
}

.event-team-draw-controls > label {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  color: #515151;
  font-size: 11px;
  font-weight: 900;
}

.event-team-draw-controls input[type="number"] {
  width: 76px;
  min-height: 34px;
  border: 1px solid #D2D2D2;
  border-radius: 7px;
  padding: 0 8px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 950;
}

.event-team-draw-check {
  margin-right: auto;
  border: 1px solid #DEDEDE;
  border-radius: 7px;
  padding: 0 10px;
  background: #FAFAFA;
}

.event-team-draw-check input {
  width: 16px;
  height: 16px;
  accent-color: #2f5bd3;
}

.event-team-draw-feedback {
  display: block;
  min-height: 34px;
  border-left: 4px solid #2f5bd3;
  border-radius: 7px;
  padding: 8px 10px;
  color: #494949;
  background: #fff;
  font-size: 11px;
  font-weight: 850;
}

.event-team-draw-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 8px;
}

.event-team-draw-card {
  display: grid;
  min-width: 0;
  min-height: 62px;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  border: 1px solid #DEDEDE;
  border-radius: 9px;
  padding: 8px;
  background: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.event-team-draw-card.is-drawn {
  border-color: #adc2fa;
  background: #FCFCFC;
}

.event-team-draw-card.is-latest {
  border-color: #2f5bd3;
  box-shadow: 0 0 0 3px rgba(47, 91, 211, 0.12);
  transform: translateY(-1px);
}

.event-team-draw-card.is-rolling {
  border-color: #315ad9;
  box-shadow: 0 0 0 3px rgba(49, 90, 217, 0.14), 0 9px 22px rgba(49, 90, 217, 0.12);
}

.event-team-draw-card.is-rolling > b {
  animation: event-draw-number-roll 180ms linear infinite;
}

@keyframes event-draw-number-roll {
  0% { opacity: 0.35; transform: translateY(-5px); }
  50% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0.35; transform: translateY(5px); }
}

.event-team-draw-team {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.event-team-draw-team strong {
  overflow: hidden;
  color: #263248;
  font-size: 12px;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-team-draw-team span {
  overflow: hidden;
  color: #858585;
  font-size: 9px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-team-draw-card > b {
  min-width: 45px;
  color: #1d4ed8;
  font-size: 16px;
  font-weight: 950;
  text-align: center;
}

.event-team-card.is-draw-draft {
  border-style: dashed;
  border-color: #b8c9fb;
  background: #FAFAFA;
}

.event-team-card.is-draw-draft .event-team-seed-editor:has(input:disabled) {
  opacity: 1;
  border-color: #9db5f5;
  background: #EFEFEF;
}

.event-team-card {
  display: grid;
  min-width: 0;
  min-height: 44px;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 5px 9px 5px 6px;
  background: #fff;
}

.event-team-card-info {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.event-team-card-info > strong {
  overflow: hidden;
  color: #3F3F3F;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-team-card-info > span {
  overflow: hidden;
  color: #858585;
  font-size: 9px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-team-seed-editor {
  display: grid;
  grid-template-columns: auto 38px;
  align-items: center;
  overflow: hidden;
  border: 1px solid #c7d7fe;
  border-radius: 7px;
  color: #1d4ed8;
  background: #F4F4F4;
  font-size: 11px;
  font-weight: 950;
}

.event-team-seed-editor > span {
  padding-left: 7px;
}

.event-team-seed-editor input {
  width: 38px;
  height: 30px;
  border: 0;
  padding: 0 4px 0 2px;
  color: #1d4ed8;
  background: transparent;
  font: inherit;
  font-weight: 950;
  outline: none;
  appearance: textfield;
}

.event-team-seed-editor input::-webkit-inner-spin-button,
.event-team-seed-editor input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.event-team-seed-editor:focus-within {
  border-color: #2f5bd3;
  box-shadow: 0 0 0 3px rgba(47, 91, 211, 0.12);
}

.event-team-seed-editor:has(input:disabled) {
  opacity: 0.62;
}

.event-dispatch-layout {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(280px, 320px) minmax(760px, 1fr);
  gap: 14px;
  min-height: 0;
  overflow: hidden;
  padding: 0 56px 16px 24px;
}

.event-plan-column,
.event-dispatch-center {
  min-height: 0;
  overflow: auto;
}

.event-plan-column {
  display: flex;
  flex-direction: column;
}

.event-dispatch-center {
  display: grid;
  grid-template-rows: auto minmax(760px, 1fr);
  gap: 14px;
}

.event-status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  border-block: 1px solid var(--line);
  padding: 8px 0;
}

.event-status-strip span,
.event-status-label,
.event-notice-badge,
.event-forfeit-badge {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  border: 1px solid #DDDDDD;
  border-radius: 6px;
  padding: 2px 8px;
  color: #727272;
  background: #FAFAFA;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.event-status-label[data-status="比赛中"] {
  color: #9a5a07;
  border-color: #f2cc8c;
  background: #F8F8F8;
}

.event-status-label[data-status="比赛结束"],
.event-status-label[data-status="已检录"] {
  color: #16784a;
  border-color: #E2E2E2;
  background: #F7F7F7;
}

.event-status-label[data-status="候场中"] {
  color: #1d4ed8;
  border-color: #bfdbfe;
  background: #F5F5F5;
}

.event-forfeit-badge {
  color: #a11d1d;
  border-color: #fecaca;
  background: #F4F4F4;
}

.event-match-list {
  display: grid;
  gap: 6px;
  min-height: 0;
  overflow: auto;
  padding-top: 8px;
}

.event-match-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 7px 8px;
  color: #3F3F3F;
  background: var(--panel-strong);
  font-size: 12px;
  cursor: grab;
}

.event-match-row:active {
  cursor: grabbing;
}

.event-match-row > span:first-child {
  color: var(--muted);
  font-weight: 900;
}

.event-match-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-manual-row {
  display: grid;
  grid-template-columns: minmax(210px, 1fr) auto minmax(210px, 1fr) minmax(230px, auto);
  align-items: end;
  gap: 10px;
}

.event-manual-row > strong {
  align-self: center;
  color: var(--muted);
}

.event-team-input {
  display: grid;
  gap: 5px;
  border-left: 4px solid var(--red);
  padding-left: 9px;
  color: #3F3F3F;
  font-size: 12px;
  font-weight: 900;
}

.event-team-input.is-blue {
  border-left-color: var(--blue);
}

.event-team-input small {
  color: var(--muted);
  font-size: 11px;
}

.event-manual-ticket {
  min-height: 50px;
  cursor: grab;
}

.event-manual-ticket:active {
  cursor: grabbing;
}

.event-venue-panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.event-venue-canvas {
  position: relative;
  flex: 1 1 auto;
  min-height: 1120px;
  overflow: hidden;
  border: 1px solid #E2E2E2;
  border-radius: 12px;
  background:
    linear-gradient(#F4F4F4 1px, transparent 1px),
    linear-gradient(90deg, #F4F4F4 1px, transparent 1px),
    #fff;
  background-size: 40px 40px;
}

.event-venue-card,
.event-checkin-station {
  position: absolute;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: 0 14px 40px rgba(15, 23, 42, 0.07);
}

.event-venue-card {
  width: 500px;
  min-height: 430px;
  padding: 10px;
}

.event-venue-card.is-large {
  width: 650px;
  min-height: 520px;
}

.event-node-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
  cursor: move;
  user-select: none;
  touch-action: none;
}

.event-node-title {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}

.event-drag-handle {
  display: inline-grid;
  width: 30px;
  height: 28px;
  place-items: center;
  border: 1px solid #E2E2E2;
  border-radius: 7px;
  color: #6F6F6F;
  background: #fff;
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}

.event-node-copy {
  display: grid;
  gap: 2px;
}

.event-node-copy strong {
  font-size: 15px;
}

.event-node-copy span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.event-venue-card .scoreboard-frame {
  border-radius: 6px;
}

.event-queue-list,
.event-station-list {
  display: grid;
  gap: 5px;
  margin-top: 8px;
}

.event-queue-row,
.event-station-row {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  border-top: 1px solid var(--line);
  padding: 6px 0 0;
  color: #3F3F3F;
  font-size: 12px;
}

.event-queue-row strong,
.event-station-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-checkin-station {
  width: 430px;
  min-height: 166px;
  padding: 10px;
}

.event-checkin-station .event-node-head {
  margin-bottom: 2px;
}

.event-station-name {
  width: 160px;
  font-size: 14px;
  font-weight: 900;
}

.event-station-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

.event-station-row small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
}

.event-venue-card.is-drop-target,
.event-checkin-station.is-drop-target {
  box-shadow: 0 0 0 4px rgba(29, 78, 216, 0.16), 0 14px 40px rgba(15, 23, 42, 0.08);
}

.event-full-schedule-wrap {
  max-height: calc(100vh - 164px);
}

.event-status-select {
  min-width: 96px;
}

.event-schedule-layout .control-panel {
  padding: 14px;
}

.event-previews-layout {
  display: grid;
  gap: 14px;
  align-content: start;
}

.event-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.event-terminal-preview {
  min-width: 0;
}

.event-terminal-preview .scoreboard-frame {
  border-radius: 6px;
}

.event-checkin-card {
  display: grid;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 11px;
  background: var(--panel-strong);
}

.event-checkin-card + .event-checkin-card {
  margin-top: 8px;
}

.event-checkin-head,
.event-checkin-team,
.event-checkin-actions,
.event-notice-track {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.event-checkin-head small,
.event-checkin-team span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.event-checkin-team {
  min-height: 38px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.event-checkin-team strong {
  flex: 1 1 auto;
}

.event-checkin-team label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #3F3F3F;
  font-size: 12px;
  font-weight: 900;
}

.event-notice-track {
  justify-content: flex-start;
}

.event-notice-badge.is-done {
  color: #1d4ed8;
  border-color: #bfdbfe;
  background: #F5F5F5;
}

.event-referee-grid {
  display: grid;
  grid-template-columns: minmax(620px, 1.4fr) minmax(270px, 0.6fr);
  gap: 14px;
}

.event-referee-controls {
  display: grid;
  gap: 10px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px;
  background: var(--panel-strong);
}

.event-referee-score-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.event-scoredesk-preview-note {
  display: grid;
  gap: 4px;
  margin-top: 8px;
  border: 1px solid #bfdbfe;
  border-radius: var(--radius);
  padding: 10px 12px;
  color: #1e3a8a;
  background: #eff6ff;
  font-size: 12px;
}

.event-scoredesk-preview-note strong {
  font-size: 13px;
}

.event-anomaly-box {
  display: grid;
  gap: 6px;
  border: 1px solid #fecaca;
  border-radius: var(--radius);
  padding: 10px;
  color: #7f1d1d;
  background: #F4F4F4;
  font-size: 12px;
}

.event-preview-anomaly {
  margin-top: 8px;
}

.event-screen-layout {
  display: grid;
  min-height: 0;
  padding: 0 56px 16px 24px;
}

.event-screen-layout > section {
  min-height: 0;
}

.event-progress-board {
  position: relative;
  min-height: calc(100vh - 84px);
  overflow: hidden;
  border-radius: var(--radius);
  color: #FAFAFA;
  background:
    radial-gradient(circle at 50% 0%, rgba(74, 103, 148, 0.24), transparent 34%),
    linear-gradient(135deg, var(--stage), var(--stage-2));
}

.event-progress-board::before,
.event-progress-board::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.event-progress-board::before {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(circle at 50% 42%, black, transparent 76%);
}

.event-progress-board::after {
  background: linear-gradient(90deg, rgba(223, 63, 50, 0.2), transparent 32%, transparent 68%, rgba(35, 98, 223, 0.2));
}

.event-progress-content {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 22px;
  min-height: inherit;
  align-content: center;
  padding: 46px 6vw;
}

.event-progress-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.event-progress-head h2 {
  margin: 0;
  font-size: 34px;
}

.event-progress-head strong {
  font-size: 58px;
  line-height: 1;
}

.event-progress-bar {
  height: 18px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.event-progress-bar span {
  display: block;
  width: 41%;
  height: 100%;
  background: #1d4ed8;
}

.event-progress-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.event-progress-field {
  display: grid;
  gap: 8px;
  min-height: 150px;
  align-content: center;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  padding: 18px;
  background: rgba(10, 15, 24, 0.52);
}

.event-progress-field strong {
  font-size: 19px;
}

.event-progress-field span {
  color: rgba(250,250,250,0.82);
  font-size: 14px;
  font-weight: 800;
}

.event-progress-call {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  padding: 16px 20px;
  background: rgba(10, 15, 24, 0.58);
  font-size: 16px;
  font-weight: 900;
}

.event-progress-board.is-compact {
  min-height: 0;
  aspect-ratio: 16 / 9;
  border-radius: 6px;
}

.event-progress-board.is-compact .event-progress-content {
  gap: 8px;
  padding: 14px;
}

.event-progress-board.is-compact .event-progress-head h2 {
  font-size: 16px;
}

.event-progress-board.is-compact .event-progress-head span,
.event-progress-board.is-compact .event-progress-field span,
.event-progress-board.is-compact .event-progress-call {
  font-size: 10px;
}

.event-progress-board.is-compact .event-progress-head strong {
  font-size: 27px;
}

.event-progress-board.is-compact .event-progress-bar {
  height: 8px;
}

.event-progress-board.is-compact .event-progress-fields {
  gap: 6px;
}

.event-progress-board.is-compact .event-progress-field {
  min-height: 62px;
  gap: 4px;
  padding: 8px;
}

.event-progress-board.is-compact .event-progress-field strong {
  font-size: 12px;
}

.event-progress-board.is-compact .event-progress-call {
  padding: 7px 9px;
}

#eventAudienceScreen,
#eventAudienceScreen .scoreboard-frame,
#eventAudienceScreen .scoreboard-stage {
  width: 100%;
  height: 100%;
  min-height: 0;
}

#eventAudienceScreen .scoreboard-frame,
#eventAudienceScreen .scoreboard-stage {
  aspect-ratio: auto;
  border-radius: var(--radius);
}

.event-chat-rail {
  position: fixed;
  z-index: 120;
  top: 58px;
  right: 0;
  bottom: 0;
  display: grid;
  width: 44px;
  grid-template-columns: 44px minmax(0, 1fr);
  overflow: hidden;
  border-left: 1px solid var(--line);
  background: var(--panel);
  box-shadow: -10px 0 28px rgba(15, 23, 42, 0.08);
  transition: width 160ms ease;
}

.event-chat-rail:hover,
.event-chat-rail.is-open,
.event-chat-rail.is-pinned {
  width: 350px;
}

.event-chat-tab {
  display: grid;
  width: 44px;
  height: 100%;
  place-items: center;
  border: 0;
  border-right: 1px solid var(--line);
  padding: 12px 0;
  color: #1d4ed8;
  background: #F4F4F4;
  font-size: 12px;
  font-weight: 1000;
  writing-mode: vertical-rl;
}

.event-chat-panel {
  display: grid;
  width: 306px;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 10px;
  padding: 12px;
}

.event-chat-list {
  display: grid;
  gap: 8px;
  min-height: 0;
  align-content: start;
  overflow: auto;
}

.event-chat-message {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 8px;
  color: #3F3F3F;
  background: var(--panel-strong);
  font-size: 12px;
}

.event-chat-message header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 10px;
}

.event-chat-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}

@media (max-width: 1660px) {
  .topbar {
    flex-wrap: wrap;
  }

  .view-tabs {
    position: static;
    order: 10;
    width: 100%;
    justify-content: center;
    margin-inline: auto;
    transform: none;
  }

  .event-chat-rail {
    top: 100px;
  }
}

@media (max-width: 1100px) {
  body:not(.display-mode) {
    overflow: auto;
  }

  body:not(.display-mode) .app-shell {
    height: auto;
    min-height: 100vh;
    overflow: visible;
  }

  .event-dispatch-layout {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .event-plan-column,
  .event-dispatch-center {
    overflow: visible;
  }

  .event-manual-row,
  .event-referee-grid {
    grid-template-columns: 1fr;
  }

  .event-preview-grid,
  .event-project-grid {
    grid-template-columns: 1fr;
  }

  .event-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .topbar {
    padding: 9px 56px 8px 12px;
  }

  .topbar-brand-cluster {
    align-items: stretch;
    flex-direction: column;
    flex: 0 0 auto;
  }

  .project-switcher,
  .terminal-switcher {
    min-width: 0;
    width: 100%;
  }

  .project-switcher {
    flex: 0 0 auto;
    flex-wrap: wrap;
  }

  .project-switcher select {
    min-width: 0;
  }

  .topbar-actions {
    width: 100%;
    justify-content: stretch;
  }

  .terminal-switcher {
    flex: 1 1 100%;
  }

  .view-tabs {
    display: grid;
    width: 100%;
    flex: 0 0 auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .view-tabs button {
    width: auto;
  }

  .event-page,
  .event-dispatch-layout,
  .event-screen-layout {
    padding: 0 50px 12px 12px;
  }

  .event-stat-grid,
  .event-progress-fields {
    grid-template-columns: 1fr;
  }

  .event-venue-canvas {
    display: grid;
    gap: 10px;
    min-height: 0;
    overflow: visible;
    padding: 10px;
  }

  .event-venue-card,
  .event-venue-card.is-large,
  .event-checkin-station {
    position: static !important;
    width: 100%;
    min-height: 0;
  }

  .event-node-head {
    cursor: default;
  }

  .event-chat-rail {
    top: 0;
  }
}

/* 2026-07-17 计划比赛按项目折叠，场地排队区固定显示两场（4 支队伍） */
.event-match-list {
  flex: 1 1 auto;
  align-content: start;
}

.event-plan-project {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 6px;
}

.event-plan-project + .event-plan-project {
  margin-top: 10px;
}

.event-plan-project-head {
  position: sticky;
  z-index: 6;
  top: 0;
  display: flex;
  width: 100%;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid #DFDFDF;
  border-left-width: 5px;
  border-radius: 9px;
  padding: 8px 10px;
  color: #263249;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.08);
  font: inherit;
  text-align: left;
  cursor: pointer;
  backdrop-filter: blur(10px);
}

.event-plan-project-head:disabled {
  opacity: 1;
  cursor: default;
}

.event-plan-project-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.event-plan-project-copy strong {
  overflow: hidden;
  font-size: 14px;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-plan-project-copy small {
  overflow: hidden;
  color: #797979;
  font-size: 10px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-plan-project-action {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 5px;
  border-radius: 999px;
  padding: 5px 8px;
  color: #505050;
  background: #F2F2F2;
  font-size: 10px;
  font-weight: 950;
  white-space: nowrap;
}

.event-plan-project-action i {
  font-style: normal;
  font-size: 11px;
}

.event-plan-project-matches {
  display: grid;
  gap: 6px;
}

.event-plan-project.is-type-a .event-plan-project-head {
  border-color: #efc56f;
  border-left-color: #d99a20;
  background: rgba(249,249,249,0.97);
}

.event-plan-project.is-type-b .event-plan-project-head {
  border-color: #c9b9ef;
  border-left-color: #7653ce;
  background: rgba(245,245,245,0.97);
}

.event-plan-project.is-type-c .event-plan-project-head {
  border-color: #C9C9C9;
  border-left-color: #238b78;
  background: rgba(248,248,248,0.97);
}

.event-venue-card .event-queue-list {
  max-height: 150px;
}

/* 2026-07-16 调度画布、分项目进度与实时成绩 */
.view-tabs {
  min-width: 610px;
  grid-template-columns: repeat(7, minmax(76px, 84px));
}

.event-manual-panel {
  padding: 8px;
  overflow: hidden;
  background: #F9F9F9;
}

.event-manual-row {
  display: grid;
  grid-template-columns: minmax(230px, 1fr) 40px minmax(230px, 1fr) auto;
  align-items: stretch;
  gap: 8px;
  min-height: 58px;
  border: 1px solid #DFDFDF;
  border-radius: 12px;
  padding: 6px;
  background: #fff;
  transition: box-shadow 160ms ease, transform 160ms ease;
}

.event-manual-row.is-ready {
  cursor: grab;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
}

.event-manual-row.is-ready:active {
  cursor: grabbing;
  transform: scale(0.998);
}

.event-team-input {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  border: 0;
  border-radius: 9px;
  padding: 7px 9px;
  color: #fff;
  background: linear-gradient(135deg, #c93636, #ed534c);
}

.event-team-input.is-blue {
  border: 0;
  background: linear-gradient(135deg, #2456c7, #3f77ec);
}

.event-team-input > span {
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}

.event-team-input input,
.event-team-input.is-blue input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.54);
  color: #fff;
  background: rgba(12, 21, 38, 0.18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.event-team-input input::placeholder {
  color: rgba(255, 255, 255, 0.78);
}

.event-team-input input:focus {
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.22);
}

.event-manual-row > strong {
  display: grid;
  align-self: stretch;
  place-items: center;
  border-radius: 8px;
  color: #3F3F3F;
  background: #F2F2F2;
  font-size: 13px;
}

.event-manual-drag-hint {
  display: inline-flex;
  min-width: 132px;
  align-items: center;
  justify-content: center;
  border: 1px dashed #CFCFCF;
  border-radius: 9px;
  padding: 0 13px;
  color: #A1A1A1;
  background: #FAFAFA;
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}

.event-manual-row.is-ready .event-manual-drag-hint {
  border-style: solid;
  border-color: #2f56d7;
  color: #fff;
  background: #2f56d7;
}

.event-versus-pair {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 6px;
}

.event-versus-pair > b {
  color: #6F6F6F;
  font-size: 10px;
  font-weight: 950;
}

.event-team-side {
  display: inline-flex;
  min-width: 0;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 7px;
  padding: 5px 9px;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-team-side.is-red {
  background: linear-gradient(135deg, #b62f31, #e24b46);
}

.event-team-side.is-blue {
  background: linear-gradient(135deg, #214fb7, #3473e7);
}

.event-team-side.is-winner {
  border-color: #ffd65c;
  box-shadow: 0 0 0 2px rgba(255, 214, 92, 0.28), 0 6px 16px rgba(15, 23, 42, 0.16);
  transform: translateY(-1px);
}

.event-progress-match-card.is-completed .event-team-side:not(.is-winner) {
  opacity: 0.62;
}

.event-versus-pair.is-compact .event-team-side {
  min-height: 26px;
  padding: 4px 7px;
  font-size: 11px;
}

.event-match-row-main {
  grid-template-columns: 68px minmax(0, 1fr) auto;
}

.event-queue-row {
  grid-template-columns: 62px minmax(0, 1fr) auto;
}

.event-queue-row.is-pending {
  border: 1px dashed #e2a744;
  border-radius: 8px;
  padding: 5px;
  background: #FAFAFA;
}

.event-venue-card,
.event-checkin-station {
  box-sizing: border-box;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  resize: none;
}

.event-venue-card.is-selected,
.event-checkin-station.is-selected {
  z-index: 20;
  border-color: #315ad9;
  box-shadow: 0 0 0 3px rgba(49, 90, 217, 0.2), 0 16px 42px rgba(15, 23, 42, 0.13);
}

.event-venue-card.is-dragging,
.event-checkin-station.is-dragging {
  z-index: 25;
  opacity: 0.92;
  box-shadow: 0 24px 62px rgba(15, 23, 42, 0.2);
}

.event-canvas-world.is-movement-unlocked .event-venue-card,
.event-canvas-world.is-movement-unlocked .event-checkin-station {
  cursor: grab;
}

.event-canvas-world.is-movement-unlocked .event-venue-card:active,
.event-canvas-world.is-movement-unlocked .event-checkin-station:active {
  cursor: grabbing;
}

.event-node-head {
  flex: 0 0 auto;
}

.event-scoreboard-window {
  min-width: 0;
  flex: 0 1 auto;
  overflow: hidden;
}

.event-queue-list,
.event-station-list {
  min-height: 0;
  flex: 1 1 auto;
  overflow: auto;
  padding-right: 2px;
}

.event-pending-preview {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  margin-bottom: 7px;
  border: 1px dashed #e2a744;
  border-radius: 8px;
  padding: 5px 7px;
  background: #F9F9F9;
}

.event-pending-preview > span:first-child {
  color: #9a6519;
  font-size: 10px;
  font-weight: 950;
  white-space: nowrap;
}

.schedule-boundary-status[data-status="draft"] {
  border-color: #f1ca82;
  color: #9a6519;
  background: #F7F7F7;
}

.event-resize-handle {
  position: absolute;
  z-index: 15;
  right: 4px;
  bottom: 4px;
  width: 22px;
  height: 22px;
  border: 0;
  border-right: 3px solid #315ad9;
  border-bottom: 3px solid #315ad9;
  border-radius: 0 0 5px 0;
  background: transparent;
  cursor: nwse-resize;
  touch-action: none;
}

.event-resize-handle::before {
  position: absolute;
  right: 3px;
  bottom: 3px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #7d98e6;
  border-bottom: 2px solid #7d98e6;
  content: "";
}

.event-canvas-overlay {
  right: 12px;
  max-width: calc(100% - 24px);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.event-arrange-tools {
  display: none;
  align-items: center;
  gap: 4px;
}

.event-arrange-tools.is-visible {
  display: flex;
}

.event-arrange-tools > span {
  min-width: 78px;
  color: #535353;
  font-size: 10px;
  font-weight: 950;
  text-align: center;
}

.event-arrange-tools button:disabled {
  opacity: 0.36;
}

.event-dispatch-toast {
  position: absolute;
  z-index: 28;
  right: 18px;
  bottom: 16px;
  max-width: min(620px, calc(100% - 36px));
  border: 1px solid rgba(212,212,212,0.94);
  border-radius: 9px;
  padding: 8px 12px;
  color: #535353;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1);
  font-size: 11px;
  font-weight: 900;
  pointer-events: none;
  backdrop-filter: blur(10px);
}

.event-project-progress-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(360px, calc((100% - 28px) / 3));
  gap: 14px;
  max-width: 100%;
  overflow-x: auto;
  padding: 2px 2px 12px;
  scroll-snap-type: x proximity;
}

.event-project-progress-column {
  min-width: 0;
  max-height: calc(100vh - 190px);
  overflow: hidden;
  border: 1px solid #E2E2E2;
  border-radius: 12px;
  background: #F7F7F7;
  scroll-snap-align: start;
}

.event-project-progress-head {
  position: sticky;
  z-index: 2;
  top: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 10px;
  border-bottom: 1px solid #E2E2E2;
  padding: 13px;
  background: rgba(255, 255, 255, 0.97);
}

.event-project-progress-head > div:first-child {
  display: grid;
  gap: 2px;
}

.event-project-progress-head strong {
  color: #172033;
  font-size: 17px;
}

.event-project-progress-head span,
.event-project-progress-head p {
  margin: 0;
  color: #6F6F6F;
  font-size: 11px;
  font-weight: 850;
}

.event-project-progress-head em {
  color: #2f56d7;
  font-size: 20px;
  font-style: normal;
  font-weight: 950;
}

.event-project-progress-meter {
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #ECECEC;
}

.event-project-progress-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2f56d7, #5c8df3);
}

.event-project-progress-head p {
  grid-column: 1 / -1;
}

.event-project-match-stack {
  display: grid;
  gap: 8px;
  max-height: calc(100vh - 310px);
  overflow-y: auto;
  padding: 10px;
}

.event-progress-match-card {
  display: grid;
  gap: 8px;
  border: 1px solid #E2E2E2;
  border-radius: 10px;
  padding: 10px;
  background: #fff;
}

.event-progress-match-card.is-live {
  border-color: #8bb3ff;
  box-shadow: 0 0 0 2px rgba(47, 86, 215, 0.1);
}

.event-progress-match-card.is-completed {
  background: #FAFAFA;
}

.event-progress-match-meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  color: #6F6F6F;
  font-size: 10px;
  font-weight: 850;
}

.event-progress-match-meta b {
  color: #172033;
  font-size: 11px;
}

.event-progress-match-meta > span:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-progress-match-meta em {
  border-radius: 999px;
  padding: 4px 7px;
  color: #2f56d7;
  background: #F3F3F3;
  font-style: normal;
  white-space: nowrap;
}

.event-progress-match-foot {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  color: #6F6F6F;
  font-size: 10px;
  font-weight: 850;
}

.event-progress-match-foot > span:nth-child(2) {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-progress-match-foot strong {
  color: #172033;
  white-space: nowrap;
}

.event-results-layout {
  display: grid;
  align-content: start;
  gap: 14px;
}

.event-live-results-panel {
  min-width: 0;
  padding: 14px;
}

.event-live-results-table-wrap {
  max-width: 100%;
  overflow: auto;
  border: 1px solid #E2E2E2;
  border-radius: 11px;
}

.event-live-results-table {
  width: 100%;
  min-width: 1040px;
  border-collapse: collapse;
  background: #fff;
}

.event-live-results-table th,
.event-live-results-table td {
  border-bottom: 1px solid #E9E9E9;
  padding: 11px 12px;
  color: #3F3F3F;
  font-size: 12px;
  text-align: center;
  white-space: nowrap;
}

.event-live-results-table th {
  position: sticky;
  z-index: 2;
  top: 0;
  color: #6F6F6F;
  background: #F6F6F6;
  font-size: 11px;
  font-weight: 950;
}

.event-live-results-table td:nth-child(2) {
  min-width: 210px;
}

.event-live-results-table tr.is-top-1 {
  background: #FAFAFA;
}

.event-live-results-table tr.is-top-2,
.event-live-results-table tr.is-top-3 {
  background: #FAFAFA;
}

.event-rank-number {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #6F6F6F;
}

.event-ranking-team {
  display: inline-flex;
  min-width: 170px;
  min-height: 30px;
  align-items: center;
  justify-content: flex-start;
  border: 1px solid #DDDDDD;
  border-radius: 7px;
  padding: 5px 10px;
  color: #172033;
  background: #F9F9F9;
  font-weight: 950;
}

.event-progress-match-meta em[data-status="比赛结束"] {
  color: #16784a;
  background: #F4F4F4;
}

.event-progress-match-meta em[data-status="比赛中"] {
  color: #9a5a07;
  background: #F5F5F5;
}

.event-progress-match-meta em[data-status="候场中"],
.event-progress-match-meta em[data-status="已检录"] {
  color: #1d4ed8;
  background: #F1F1F1;
}

.is-top-1 .event-rank-number { background: #d69a22; }
.is-top-2 .event-rank-number { background: #888888; }
.is-top-3 .event-rank-number { background: #ad6e43; }

@media (max-width: 1820px) {
  .view-tabs {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .scoredesk-terminal-actions {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .scoredesk-terminal-actions .schedule-boundary-status {
    max-width: 100%;
  }
  .event-project-progress-grid {
    grid-auto-columns: minmax(340px, 86vw);
  }
}

/* 2026-07-17 检录端全场态势、主动申请与主控审批 */
.event-master-checkin-requests {
  display: grid;
  flex: 0 0 auto;
  gap: 7px;
  margin-top: 8px;
  border: 1px solid #DFDFDF;
  border-radius: 10px;
  padding: 9px;
  background: #F9F9F9;
}

.event-master-checkin-requests.has-pending {
  border-color: #e5ad42;
  background: #F9F9F9;
  box-shadow: 0 0 0 3px rgba(229, 173, 66, 0.12);
}

.event-master-request-heading,
.event-master-request-meta,
.event-master-request-actions,
.event-checkin-section-heading,
.event-checkin-candidate-meta,
.event-checkin-candidate-foot,
.event-checkin-field-card header,
.event-checkin-field-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.event-master-request-heading > div,
.event-checkin-section-heading > div,
.event-checkin-field-card header > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.event-master-request-heading strong,
.event-checkin-section-heading strong {
  color: #172033;
  font-size: 13px;
  font-weight: 950;
}

.event-master-request-heading span,
.event-checkin-section-heading span {
  color: #7F7F7F;
  font-size: 10px;
  font-weight: 800;
}

.event-master-request-heading b,
.event-checkin-section-heading b {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 4px 8px;
  color: #505050;
  background: #EFEFEF;
  font-size: 10px;
  font-weight: 950;
}

#eventMasterCheckinRequests {
  display: grid;
  max-height: 238px;
  gap: 7px;
  overflow: auto;
}

.event-master-request-card {
  display: grid;
  gap: 7px;
  border: 1px solid #e3c16c;
  border-left: 5px solid #d99a20;
  border-radius: 9px;
  padding: 8px;
  background: #fff;
}

.event-master-request-card.is-type-b {
  border-color: #c6b6ed;
  border-left-color: #7653ce;
}

.event-master-request-card.is-type-c {
  border-color: #C9C9C9;
  border-left-color: #238b78;
}

.event-master-request-meta strong {
  color: #172033;
  font-size: 12px;
  font-weight: 950;
}

.event-master-request-meta span,
.event-master-request-match small,
.event-master-request-empty span {
  color: #7F7F7F;
  font-size: 9px;
  font-weight: 800;
}

.event-master-request-match {
  display: grid;
  gap: 5px;
}

.event-master-request-match > span {
  color: #5C5C5C;
  font-size: 11px;
  font-weight: 950;
}

.event-master-request-actions {
  justify-content: flex-end;
}

.event-master-request-empty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #696969;
  font-size: 10px;
}

.event-terminal-main {
  min-height: 0;
  overflow: auto;
}

.event-checkin-terminal-header {
  position: sticky;
  z-index: 12;
  top: -14px;
  margin: -14px -14px 0;
  border-bottom: 1px solid #E3E3E3;
  padding: 14px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
}

.event-checkin-feedback {
  display: block;
  min-height: 38px;
  border: 1px solid #bfd2ff;
  border-radius: 9px;
  padding: 9px 12px;
  color: #244b9a;
  background: #F4F4F4;
  font-size: 12px;
  font-weight: 900;
}

.event-checkin-section {
  display: grid;
  gap: 10px;
  border: 1px solid #E3E3E3;
  border-radius: 12px;
  padding: 12px;
  background: #FAFAFA;
}

.event-checkin-section.is-primary {
  border-color: #9fbbff;
  background: linear-gradient(145deg, #FAFAFA, #F3F3F3);
  box-shadow: 0 7px 20px rgba(47, 91, 211, 0.08);
}

.event-checkin-section.is-secondary {
  background: #F8F8F8;
}

.event-checkin-section.is-active {
  border-color: #C7C7C7;
  background: #F9F9F9;
}

.event-checkin-section.is-primary .event-checkin-section-heading strong {
  color: #244fba;
  font-size: 15px;
}

.event-checkin-section.is-active .event-checkin-section-heading strong {
  color: #287447;
  font-size: 15px;
}

.event-checkin-field-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 9px;
}

.event-checkin-field-card {
  display: grid;
  min-width: 0;
  gap: 8px;
  border: 1px solid #DEDEDE;
  border-left: 5px solid #d99a20;
  border-radius: 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.92);
}

.event-checkin-field-card.is-type-b {
  border-left-color: #7653ce;
}

.event-checkin-field-card.is-type-c {
  border-left-color: #238b78;
}

.event-checkin-field-card.is-own-project {
  border-width: 2px 2px 2px 6px;
  box-shadow: 0 5px 16px rgba(39, 78, 166, 0.1);
}

.event-checkin-field-card.is-other-project {
  opacity: 0.72;
}

.event-checkin-field-card header strong {
  color: #172033;
  font-size: 14px;
  font-weight: 950;
}

.event-checkin-field-card header span,
.event-checkin-field-current small,
.event-checkin-field-foot {
  color: #7F7F7F;
  font-size: 10px;
  font-weight: 800;
}

.event-checkin-field-card header b {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 4px 8px;
  color: #3158b7;
  background: #F0F0F0;
  font-size: 10px;
  font-weight: 950;
}

.event-checkin-field-current {
  display: grid;
  gap: 6px;
  border-top: 1px solid #E7E7E7;
  padding-top: 8px;
}

.event-checkin-field-current > span {
  color: #5A5A5A;
  font-size: 11px;
  font-weight: 950;
}

.event-checkin-field-empty {
  min-height: 45px;
  align-content: center;
  color: #919191;
  font-size: 11px;
  font-weight: 800;
}

.event-checkin-lists-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  gap: 12px;
}

.event-checkin-candidate-list {
  display: grid;
  max-height: 520px;
  align-content: start;
  gap: 8px;
  overflow: auto;
  padding-right: 3px;
}

.event-checkin-candidate-list.is-secondary {
  max-height: 520px;
}

.event-checkin-candidate {
  display: grid;
  min-width: 0;
  gap: 7px;
  border: 1px solid #E1E1E1;
  border-left: 5px solid #d99a20;
  border-radius: 10px;
  padding: 10px;
  background: #fff;
}

.event-checkin-candidate.is-type-b {
  border-left-color: #7653ce;
}

.event-checkin-candidate.is-type-c {
  border-left-color: #238b78;
}

.event-checkin-candidate.is-own-project {
  box-shadow: 0 4px 14px rgba(39, 78, 166, 0.07);
}

.event-checkin-candidate.is-other-project {
  padding-block: 8px;
  opacity: 0.68;
}

.event-checkin-candidate-meta > span {
  color: #263249;
  font-size: 12px;
  font-weight: 950;
}

.event-checkin-candidate-meta b {
  color: #666666;
  font-size: 10px;
  font-weight: 900;
}

.event-checkin-candidate-meta em {
  margin-left: auto;
  border-radius: 999px;
  padding: 4px 8px;
  color: #47617f;
  background: #F2F2F2;
  font-size: 9px;
  font-style: normal;
  font-weight: 950;
}

.event-checkin-candidate-foot {
  color: #7F7F7F;
  font-size: 10px;
  font-weight: 800;
}

.event-checkin-candidate-foot > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-checkin-candidate-foot strong {
  flex: 0 0 auto;
  color: #5A5A5A;
}

.event-checkin-candidate-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 7px;
}

.event-checkin-candidate-actions .button {
  min-height: 34px;
}

.event-checkin-candidate-actions .button.is-confirming {
  border-color: #d97706;
  color: #8a4300;
  background: #F1F1F1;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15);
}

.event-bypass-warning {
  border: 1px solid #f0c16d;
  border-radius: 7px;
  padding: 7px 9px;
  color: #844900;
  background: #fff8e8;
  font-size: 10px;
  font-weight: 850;
}

.event-checkin-preview-summary {
  display: grid;
  gap: 4px;
  margin-bottom: 8px;
  border: 1px solid #bfd2ff;
  border-radius: 9px;
  padding: 9px 10px;
  color: #244b9a;
  background: #F4F4F4;
}

.event-checkin-preview-summary strong {
  font-size: 12px;
}

.event-checkin-preview-summary span {
  font-size: 10px;
  font-weight: 800;
}

@media (max-width: 1280px) {
  .event-checkin-lists-grid {
    grid-template-columns: 1fr;
  }

  .event-checkin-candidate-list,
  .event-checkin-candidate-list.is-secondary {
    max-height: 420px;
  }
}

@media (max-width: 760px) {
  .event-checkin-field-grid,
  .event-checkin-candidate-actions {
    grid-template-columns: 1fr;
  }

  .event-master-request-heading,
  .event-master-request-meta,
  .event-master-request-actions,
  .event-checkin-section-heading,
  .event-checkin-candidate-meta,
  .event-checkin-candidate-foot {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* 2026-07-17 场地卡片：放大当前场次与连续排队信息 */
.event-venue-card .event-scoreboard-window {
  flex: 1 1 245px;
  min-height: 220px;
}

.event-field-roster {
  display: flex;
  min-height: 0;
  flex: 0 1 auto;
  flex-direction: column;
  gap: 7px;
  margin-top: 9px;
}

.event-field-current {
  display: grid;
  flex: 0 0 auto;
  gap: 7px;
  border: 1px solid rgba(116, 132, 164, 0.28);
  border-radius: 9px;
  padding: 9px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

.event-field-current.is-empty {
  padding-block: 11px;
  color: #848484;
  background: rgba(255, 255, 255, 0.62);
}

.event-field-current-head {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.event-field-current-head > span:first-child {
  border-radius: 6px;
  padding: 4px 7px;
  color: #fff;
  background: #172033;
  font-size: 11px;
  font-weight: 950;
  white-space: nowrap;
}

.event-field-current-head > strong {
  overflow: hidden;
  color: #172033;
  font-size: 14px;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-field-current .event-team-side {
  min-height: 36px;
  font-size: 14px;
}

.event-field-current .event-versus-pair > b {
  font-size: 12px;
}

.event-field-current > small {
  overflow: hidden;
  color: #747474;
  font-size: 11px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-queue-heading {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  padding: 1px 2px 0;
}

.event-queue-heading strong {
  color: #263249;
  font-size: 13px;
  font-weight: 950;
}

.event-queue-heading span {
  border-radius: 999px;
  padding: 3px 8px;
  color: #5C5C5C;
  background: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 900;
}

.event-venue-card .event-queue-list {
  display: grid;
  min-height: 0;
  max-height: 220px;
  flex: 0 1 auto;
  gap: 6px;
  margin-top: 0;
  overflow: auto;
  padding-right: 3px;
}

.event-venue-card .event-queue-row {
  display: grid;
  min-height: 72px;
  grid-template-columns: 66px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(116, 132, 164, 0.25);
  border-radius: 9px;
  padding: 7px;
  background: rgba(255, 255, 255, 0.82);
}

.event-venue-card .event-queue-row.is-pending {
  border: 1px dashed #e2a744;
  padding: 7px;
  background: rgba(250,250,250,0.94);
}

.event-queue-order,
.event-queue-match,
.event-queue-state {
  min-width: 0;
}

.event-queue-order {
  display: grid;
  gap: 4px;
}

.event-queue-order span {
  color: #828282;
  font-size: 10px;
  font-weight: 900;
}

.event-queue-order strong {
  color: #263249;
  font-size: 13px;
  font-weight: 950;
}

.event-queue-match {
  display: grid;
  gap: 4px;
}

.event-queue-match .event-team-side {
  min-height: 31px;
  padding: 5px 8px;
  font-size: 12px;
}

.event-queue-match small {
  overflow: hidden;
  color: #747474;
  font-size: 10px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-queue-state {
  display: flex;
  justify-content: flex-end;
}

.event-queue-empty {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px dashed rgba(116, 132, 164, 0.34);
  border-radius: 9px;
  padding: 9px 11px;
  color: #838383;
  background: rgba(255, 255, 255, 0.56);
}

.event-queue-empty strong {
  color: #5C5C5C;
  font-size: 12px;
}

.event-queue-empty span {
  font-size: 10px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .event-venue-card .event-queue-row {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .event-queue-state {
    display: none;
  }
}

@media (max-width: 760px) {
  .view-tabs {
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .event-manual-row {
    grid-template-columns: 1fr;
  }

  .event-team-input {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .event-arrange-tools {
    display: none !important;
  }

  .event-dispatch-toast {
    position: sticky;
    right: auto;
    bottom: auto;
    display: block;
    max-width: 100%;
    margin-top: 8px;
  }
}

/* 赛事运行中心合并版：宽屏结构、完整表格与可缩放场馆画布 */
.topbar {
  display: grid;
  grid-template-columns: minmax(520px, 1.15fr) auto minmax(410px, 1fr);
  align-items: center;
  gap: 12px;
  z-index: 40;
  background: var(--bg);
  isolation: isolate;
}

.app-shell {
  background: var(--bg);
}

.topbar-brand-cluster {
  min-width: 0;
  flex: none;
}

.topbar-brand-cluster > h1 {
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.topbar .project-switcher {
  min-width: 360px;
  max-width: 460px;
}

.topbar .project-switcher select {
  min-width: 150px;
}

.topbar .project-switcher .compact-button {
  flex: 0 0 auto;
  min-width: 68px;
  padding-inline: 8px;
  white-space: nowrap;
}

.topbar-event-name-control {
  display: grid;
  min-width: 330px;
  max-width: 500px;
  grid-template-columns: auto minmax(220px, 1fr);
  align-items: center;
  gap: 8px;
  border: 1px solid #DFDFDF;
  border-radius: 9px;
  padding: 4px 6px 4px 10px;
  color: #6F6F6F;
  background: rgba(255, 255, 255, 0.78);
  font-size: 12px;
  font-weight: 900;
}

.topbar-event-name-control input {
  min-width: 0;
  height: 30px;
  border: 1px solid #D4D4D4;
  border-radius: 7px;
  padding: 0 9px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 900;
}

.view-tabs {
  position: static;
  left: auto;
  width: auto;
  min-width: 526px;
  flex: none;
  grid-template-columns: repeat(6, minmax(78px, 84px));
  justify-content: center;
  transform: none;
}

.view-tabs button {
  width: auto;
  min-width: 0;
  padding-inline: 7px;
  white-space: nowrap;
}

.topbar-actions {
  min-width: 0;
  flex-wrap: nowrap;
}

.terminal-switcher {
  grid-template-columns: auto minmax(145px, 1fr);
}

.event-overview-layout {
  padding-right: 58px;
}

.event-overview-project-tabs-panel {
  min-width: 0;
  padding: 14px;
}

.event-overview-project-tabs {
  width: 100%;
}

.event-overview-controls {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.event-name-control {
  display: grid;
  grid-template-columns: auto minmax(230px, 340px);
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.event-name-control input,
.event-overview-project-select select,
.event-project-dialog-form input,
.event-project-dialog-form select,
.event-player-form input,
.event-player-form select,
.event-create-controls select,
.event-station-project {
  min-height: 34px;
  min-width: 0;
  border: 1px solid #D4D4D4;
  border-radius: var(--radius);
  padding: 0 9px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 850;
}

.event-project-grid {
  grid-template-columns: minmax(0, 1fr);
}

.event-overview-project-select {
  display: grid;
  grid-template-columns: auto minmax(110px, 170px);
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.event-current-project-pill {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  border: 1px solid #b8d0f8;
  border-radius: var(--radius);
  padding: 0 10px;
  color: #175cd3;
  background: #F5F5F5;
  font-size: 12px;
  font-weight: 950;
}

.event-player-panel {
  min-width: 0;
  padding: 14px;
}

.event-player-form {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr)) auto;
  align-items: end;
  gap: 8px;
  margin-bottom: 12px;
}

.event-player-form label {
  display: grid;
  gap: 5px;
  color: #535353;
  font-size: 11px;
  font-weight: 900;
}

.event-player-form input[readonly] {
  color: #3F3F3F;
  background: #F4F4F4;
}

.event-player-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.event-player-table {
  min-width: 900px;
}

.event-team-dialog {
  width: min(760px, calc(100vw - 48px));
  max-width: none;
  overflow: visible;
}

.event-team-dialog .result-dialog-card {
  width: 100%;
  max-width: none;
}

.event-team-dialog-hint {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.event-team-bulk-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.event-project-dialog {
  width: min(620px, calc(100vw - 48px));
  max-width: none;
}

.event-project-dialog .result-dialog-card {
  width: 100%;
  max-width: none;
}

.event-project-dialog-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.event-project-dialog-form label {
  display: grid;
  gap: 6px;
  color: #3F3F3F;
  font-size: 12px;
  font-weight: 900;
}

.event-project-dialog-form label.is-hidden {
  display: none;
}

.event-dialog-feedback {
  min-height: 34px;
  border-radius: var(--radius);
  padding: 9px 10px;
  color: #535353;
  background: #F4F4F4;
  font-size: 12px;
  font-weight: 800;
}

.event-dialog-feedback.is-error {
  color: #b42318;
  background: #fef3f2;
}

.event-team-bulk-grid label {
  display: grid;
  gap: 6px;
  color: #3F3F3F;
  font-size: 13px;
}

.event-team-bulk-grid textarea {
  width: 100%;
  min-height: 260px;
  resize: vertical;
  border: 1px solid #D4D4D4;
  border-radius: var(--radius);
  padding: 10px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.65;
}

.event-dispatch-layout {
  width: 100%;
  grid-template-columns: minmax(330px, 360px) minmax(860px, 1fr);
}

.event-plan-column {
  overflow: hidden;
}

.event-match-list {
  border: 1px dashed transparent;
  border-radius: var(--radius);
  padding: 8px 2px 8px 0;
  transition: border-color 140ms ease, background 140ms ease;
}

.event-match-list.is-drop-target {
  border-color: #1d4ed8;
  background: #F4F4F4;
}

.event-match-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  min-height: 58px;
}

.event-match-row-main {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
}

.event-match-row-main > span:first-child {
  color: var(--muted);
  font-weight: 900;
}

.event-match-row small {
  overflow: hidden;
  color: #6F6F6F;
  font-size: 10px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-plan-empty {
  display: grid;
  min-height: 110px;
  place-items: center;
  align-content: center;
  gap: 5px;
  border: 1px dashed #D6D6D6;
  border-radius: var(--radius);
  color: #6F6F6F;
  background: #FAFAFA;
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}

.event-plan-empty span {
  font-size: 11px;
  font-weight: 800;
}

.event-plan-actions {
  display: grid;
  gap: 7px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.event-plan-actions > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}

.event-create-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.event-create-controls label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}

.event-create-controls select {
  min-height: 30px;
}

.event-venue-panel {
  min-height: 0;
}

.event-venue-shell {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 760px;
  flex: 1 1 auto;
}

.event-canvas-overlay {
  position: absolute;
  z-index: 30;
  top: 10px;
  right: 22px;
  display: flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(212,212,212,0.94);
  border-radius: 10px;
  padding: 5px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(12px);
}

.event-canvas-overlay > span {
  min-width: 44px;
  color: #535353;
  font-size: 11px;
  font-weight: 950;
  text-align: center;
}

.event-movement-lock {
  --hold-progress: 0deg;
  --hold-bar-progress: 0%;
}

.event-movement-lock.is-holding {
  animation: eventHoldFill 1s linear forwards;
}

.event-movement-lock.is-unlocked {
  color: #fff;
  border-color: #249a58;
  background: #D2D2D2;
}

.event-movement-lock.is-unlocked .hold-ring::after {
  background: #D2D2D2;
}

@keyframes eventHoldFill {
  from { --hold-progress: 0deg; --hold-bar-progress: 0%; }
  to { --hold-progress: 360deg; --hold-bar-progress: 100%; }
}

@property --hold-progress {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: true;
}

@property --hold-bar-progress {
  syntax: "<percentage>";
  initial-value: 0%;
  inherits: true;
}

.event-venue-canvas {
  width: 100%;
  min-height: 760px;
  height: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  touch-action: none;
}

.event-canvas-world {
  position: relative;
  flex: 0 0 auto;
  transform-origin: 0 0;
  will-change: transform;
}

.event-venue-card {
  width: 560px;
  min-height: 0;
}

.event-venue-card.is-large {
  width: 560px;
  min-height: 0;
}

.event-node-head {
  cursor: default;
}

.event-node-copy {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}

.event-node-copy span {
  display: inline;
}

.event-drag-handle {
  flex: 0 0 auto;
  font-size: 17px;
  cursor: grab;
}

.event-drag-handle:disabled {
  cursor: not-allowed;
  opacity: 0.38;
}

.event-canvas-world.is-movement-unlocked .event-node-head {
  cursor: grab;
}

.event-venue-card .event-scoreboard-frame {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.event-venue-card .scoreboard-stage {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.event-queue-row {
  grid-template-columns: 72px minmax(0, 1fr) auto;
}

.event-checkin-station {
  width: 470px;
}

.event-station-project {
  width: 92px;
  min-height: 34px;
  padding-inline: 7px;
}

.event-station-row {
  min-height: 46px;
}

.event-checkin-pair {
  display: grid;
  grid-template-columns: auto minmax(105px, 1fr) auto auto auto minmax(105px, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.event-checkin-pair > span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}

.event-checkin-pair > span.is-red {
  color: var(--red);
}

.event-checkin-pair > span.is-blue {
  color: var(--blue);
}

.event-checkin-pair label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

.event-pair-vs {
  color: #3F3F3F !important;
}

.event-progress-fields {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.event-full-schedule-wrap,
.tournament-schedule-panel .schedule-table-wrap,
.event-player-table-wrap {
  max-width: 100%;
  overflow: auto;
}

.event-full-schedule-wrap .schedule-table {
  min-width: 1280px;
}

.tournament-schedule-panel .schedule-table {
  min-width: 980px;
}

.schedule-drag-handle {
  min-width: 30px;
  min-height: 28px;
  border: 1px solid #E2E2E2;
  border-radius: 7px;
  color: #6F6F6F;
  background: #fff;
  font-size: 16px;
  line-height: 1;
}

.tournament-layout,
.tournament-planner-panel,
.tournament-schedule-panel,
.tournament-snapshot-panel,
.planner-board,
.plan-stage-card,
.plan-output-panel {
  min-width: 0;
  max-width: 100%;
}

.tournament-layout {
  padding-right: 58px;
}

.planner-board,
.plan-group-output-panel,
.plan-knockout-output-panel {
  overflow: auto;
}

.plan-knockout-match.is-third-place {
  border-color: #535353;
  background: #FAFAFA;
}

@media (max-width: 1820px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .view-tabs {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .event-chat-rail {
    top: 102px;
  }
}

@media (max-width: 1320px) {
  .event-team-management-bar {
    grid-template-columns: 1fr;
  }

  .event-player-form {
    grid-template-columns: repeat(3, minmax(140px, 1fr));
  }

  .event-project-grid {
    grid-template-columns: 1fr;
  }

  .event-dispatch-layout {
    grid-template-columns: 310px minmax(760px, 1fr);
  }
}

@media (max-width: 1100px) {
  .event-dispatch-layout {
    grid-template-columns: 1fr;
  }

  .event-team-bulk-grid,
  .event-player-form {
    grid-template-columns: 1fr;
  }

  .event-name-control {
    grid-template-columns: 1fr;
  }

  .event-overview-project-select,
  .event-project-dialog-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .topbar {
    display: flex;
  }

  .event-canvas-overlay {
    position: sticky;
    top: 8px;
    right: auto;
    width: max-content;
    max-width: calc(100vw - 92px);
    margin: 8px 8px 0 auto;
    overflow-x: auto;
  }

  .event-team-order-tools,
  .event-demo-team-tools {
    align-items: stretch;
    flex-wrap: wrap;
  }

  .event-team-order-tools > div,
  .event-demo-team-tools > div {
    flex-basis: 100%;
  }

  .event-team-draw-heading,
  .event-team-draw-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .event-team-draw-heading > b {
    align-self: flex-start;
  }

  .event-team-draw-check {
    margin-right: 0;
  }

  .event-team-draw-grid {
    grid-template-columns: 1fr;
  }

  .event-venue-shell {
    display: block;
    min-height: 0;
  }

  .event-venue-canvas {
    min-height: 0;
    height: auto;
  }

  .event-canvas-world {
    display: grid;
    gap: 10px;
    width: auto !important;
    height: auto !important;
    transform: none !important;
  }

  .event-checkin-pair {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .event-pair-vs {
    display: none;
  }
}

/* 八个一级页面始终保持在同一行，避免新增“人员队伍信息”后换行。 */
.view-tabs {
  min-width: 680px;
  grid-template-columns: repeat(8, minmax(76px, 84px));
}

.event-canvas-overlay {
  right: 12px;
  max-width: calc(100% - 24px);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.event-queue-row {
  grid-template-columns: 62px minmax(0, 1fr) auto;
}

@media (max-width: 1820px) {
  .view-tabs {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .view-tabs {
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.event-checkin-pair > .event-team-side {
  color: #fff;
}

.event-checkin-head > div {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.event-progress-field .event-versus-pair {
  margin: 5px 0;
}

/* 2026-07-16 调度交互修正：自动分配、项目识别和计分板自适应 */
.event-plan-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.event-plan-header-actions .result-summary {
  white-space: nowrap;
}

.event-plan-header-actions .button {
  min-height: 34px;
  padding-inline: 12px;
}

.event-manual-panel {
  min-height: 76px;
  overflow: visible;
}

.event-manual-row {
  box-sizing: border-box;
  min-height: 62px;
}

.event-team-input input,
.event-team-input.is-blue input {
  border-color: rgba(255, 255, 255, 0.92);
  color: #172033;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.event-team-input input::placeholder,
.event-team-input.is-blue input::placeholder {
  color: #7b8799;
}

.event-team-input input:focus,
.event-team-input.is-blue input:focus {
  border-color: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.28), 0 1px 2px rgba(15, 23, 42, 0.08);
}

.event-venue-card .event-scoreboard-window {
  display: grid;
  flex: 1 1 0;
  min-height: 190px;
  place-items: center;
  overflow: hidden;
  border-radius: 7px;
  background:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, #452326 0%, #111827 48%, #213a72 100%);
  background-size: 54px 54px, 54px 54px, 100% 100%;
}

.event-venue-card .event-scoreboard-frame {
  flex: none;
  max-width: 100%;
  max-height: 100%;
}

.event-venue-card .event-queue-list {
  flex: 0 1 auto;
  /* 两个完整比赛行（每行两队）：72px × 2 + 6px 间距。 */
  max-height: 150px;
}

.event-match-row.is-type-a,
.event-venue-card.is-type-a {
  border-color: #efc56f;
  background: linear-gradient(145deg, #FDFDFD, #F5F5F5);
}

.event-match-row.is-type-b,
.event-venue-card.is-type-b {
  border-color: #bca7ee;
  background: linear-gradient(145deg, #FBFBFB, #EFEFEF);
}

.event-match-row.is-type-c,
.event-venue-card.is-type-c {
  border-color: #BEBEBE;
  background: linear-gradient(145deg, #FDFDFD, #F4F4F4);
}

.event-match-row.is-type-a {
  box-shadow: inset 4px 0 #d99a20;
}

.event-match-row.is-type-b {
  box-shadow: inset 4px 0 #7653ce;
}

.event-match-row.is-type-c {
  box-shadow: inset 4px 0 #238b78;
}

.event-venue-card.is-type-a .event-node-head {
  color: #8f5b00;
}

.event-venue-card.is-type-b .event-node-head {
  color: #5c3daf;
}

.event-venue-card.is-type-c .event-node-head {
  color: #176e60;
}

/* 2026-07-17 调度列表信息层级：总场次和对阵置顶，场次定义集中到第二行 */
.event-match-row {
  overflow: visible;
  gap: 7px;
  min-height: 72px;
  padding: 8px 9px;
}

.event-match-row-main {
  display: grid;
  min-width: 0;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.event-total-match-number {
  color: #5F5F5F !important;
  font-size: 12px;
  font-weight: 950 !important;
  white-space: nowrap;
}

.event-planned-versus {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr);
  align-items: center;
  gap: 5px;
}

.event-planned-versus > b {
  color: #707070;
  font-size: 11px;
  font-weight: 950;
  text-align: center;
}

.event-planned-team {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
  border-radius: 7px;
  padding: 7px 9px;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  text-align: center;
  white-space: nowrap;
}

.event-planned-team.is-red {
  background: linear-gradient(135deg, #b43d37, #dc554b);
}

.event-planned-team.is-blue {
  background: linear-gradient(135deg, #3158bd, #4775df);
}

.event-planned-team > span {
  display: inline-block;
  min-width: 100%;
}

.event-planned-team.is-long > span {
  min-width: max-content;
  padding-right: 22px;
  animation: event-planned-team-marquee 6.5s ease-in-out infinite alternate;
}

.event-planned-team:hover > span {
  animation-play-state: paused;
}

.event-planned-team:hover::after {
  position: fixed;
  z-index: 200;
  display: block;
  max-width: 320px;
  margin-top: 9px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 7px;
  padding: 7px 9px;
  color: #fff;
  background: rgba(15, 23, 42, 0.94);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.2);
  content: attr(data-full-name);
  font-size: 11px;
  font-weight: 850;
  white-space: normal;
  pointer-events: none;
}

@keyframes event-planned-team-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-32%); }
}

.event-match-row-meta {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.event-match-row-meta > strong {
  overflow: hidden;
  color: #5F5F5F;
  font-size: 12px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-field-current-foot {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.event-field-current-foot > small {
  overflow: hidden;
  color: #747474;
  font-size: 11px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-field-current-foot > span {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: baseline;
  gap: 6px;
  color: #5F5F5F;
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}

.event-field-current-foot > span > strong {
  color: #172033;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  font-weight: 950;
}

@media (max-width: 980px) {
  .event-plan-header-actions {
    align-items: flex-end;
    flex-direction: column;
    gap: 4px;
  }

  .event-manual-panel {
    min-height: 0;
  }
}

/* 2026-07-17 检录端工作流：场地态势、计划检录池、逐队设备检查 */
.event-checkin-other-zone {
  display: grid;
  gap: 12px;
  margin-top: 8px;
  border-top: 2px dashed #E2E2E2;
  padding-top: 16px;
}

.event-checkin-section.is-plan {
  border-color: #e6c26f;
  background: #FBFBFB;
  box-shadow: 0 7px 20px rgba(190, 133, 20, 0.08);
}

.event-checkin-section.is-plan .event-checkin-section-heading strong {
  color: #8a5900;
  font-size: 15px;
}

.event-checkin-match-heading {
  align-items: flex-end;
}

.event-checkin-heading-tools {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.event-checkin-heading-tools label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #656565;
  font-size: 11px;
  font-weight: 900;
}

.event-checkin-heading-tools select {
  width: 126px;
  min-height: 32px;
  border-color: #D8D8D8;
  background: #fff;
  font-size: 11px;
  font-weight: 900;
}

.event-checkin-plan-list {
  display: grid;
  gap: 8px;
}

.event-checkin-plan-item {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(155px, 0.72fr) minmax(330px, 1.55fr) auto auto;
  align-items: center;
  gap: 10px;
  border: 1px solid #e5cf96;
  border-left: 6px solid #d99a20;
  border-radius: 10px;
  padding: 9px 10px;
  background: #fff;
}

.event-checkin-plan-item.is-type-b {
  border-left-color: #7653ce;
}

.event-checkin-plan-item.is-type-c {
  border-left-color: #238b78;
}

.event-checkin-plan-item > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.event-checkin-plan-item > div > strong {
  color: #202b40;
  font-size: 13px;
  font-weight: 950;
}

.event-checkin-plan-item > div > span {
  overflow: hidden;
  color: #666666;
  font-size: 12px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-checkin-plan-item > em {
  color: #757575;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.event-checkin-plan-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}

.event-checkin-plan-actions .button {
  min-height: 42px;
}

.event-checkin-plan-actions .button.is-confirming {
  border-color: #d97706;
  color: #7b3d00;
  background: #ffdfaa;
  box-shadow: 0 0 0 4px rgba(217, 119, 6, 0.16);
}

.event-checkin-plan-warning {
  color: #78633c;
  font-size: 11px;
  font-weight: 850;
}

.event-checkin-candidate-list {
  max-height: 680px;
}

.event-checkin-candidate-meta {
  flex-wrap: wrap;
}

.event-checkin-candidate-meta > span {
  font-size: 14px;
}

.event-checkin-candidate-selector {
  flex: 0 0 auto;
  min-height: 30px;
  margin-left: 2px;
  border: 1px solid #9db7ef;
  border-radius: 7px;
  padding: 5px 10px;
  color: #2851b7;
  background: #F3F3F3;
  font-size: 10px;
  font-weight: 950;
}

.event-checkin-candidate-selector.is-selected {
  border-color: #2f5bd3;
  color: #fff;
  background: #2f5bd3;
}

.event-checkin-candidate.is-selected {
  border-color: #5f85e8;
  background: #F5F5F5;
  box-shadow: 0 0 0 3px rgba(47, 91, 211, 0.12);
}

.event-checkin-candidate.is-checked {
  border-color: #DEDEDE;
  background: #F2F2F2;
  box-shadow: none;
  filter: grayscale(0.35);
  opacity: 0.55;
}

.event-checkin-candidate-foot {
  gap: 12px;
}

.event-checkin-candidate-foot > span {
  color: #464646;
  font-size: 14px;
  font-weight: 950;
}

.event-checkin-candidate-foot strong {
  font-size: 12px;
}

.event-checkin-card {
  gap: 12px;
  border-color: #D1D1D1;
  padding: 13px;
  background: #fff;
}

.event-checkin-card.is-compact {
  gap: 6px;
  padding: 9px;
}

.event-checkin-card .event-checkin-head > div > strong {
  color: #19243a;
  font-size: 15px;
  font-weight: 950;
}

.event-checkin-card .event-checkin-head small {
  color: #626262;
  font-size: 12px;
}

.event-checkin-team-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.event-checkin-team-card {
  display: grid;
  min-width: 0;
  gap: 9px;
  border: 1px solid #e0a5a0;
  border-left: 6px solid #c9483e;
  border-radius: 10px;
  padding: 10px;
  background: #F8F8F8;
}

.event-checkin-team-card.is-blue {
  border-color: #9db4eb;
  border-left-color: #315fd0;
  background: #f3f7ff;
}

.event-checkin-team-card.is-forfeit {
  border-color: #d89b95;
  background: #F3F3F3;
  filter: grayscale(0.25);
}

.event-checkin-team-title {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.event-checkin-team-title > span {
  color: #a1352e;
  font-size: 11px;
  font-weight: 950;
}

.event-checkin-team-card.is-blue .event-checkin-team-title > span {
  color: #244caa;
}

.event-checkin-team-title .event-team-side {
  min-height: 36px;
  font-size: 13px;
}

.event-checkin-team-title > b {
  border-radius: 999px;
  padding: 5px 8px;
  color: #666666;
  background: #F1F1F1;
  font-size: 10px;
  font-weight: 950;
  white-space: nowrap;
}

.event-checkin-team-title > b[data-team-checkin-state="passed"] {
  color: #237240;
  background: #F3F3F3;
}

.event-checkin-team-title > b[data-team-checkin-state="failed"],
.event-checkin-team-title > b[data-team-checkin-state="forfeit"] {
  color: #a12b25;
  background: #ECECEC;
}

.event-checkin-team-title > b[data-team-checkin-state="inspection"] {
  color: #8a5900;
  background: #fff0cc;
}

.event-checkin-team-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.event-checkin-toggle {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  gap: 5px;
  border: 1px solid #DFDFDF;
  border-radius: 7px;
  padding: 5px 8px;
  color: #525252;
  background: #fff;
  font-size: 10px;
  font-weight: 900;
}

.event-checkin-toggle.is-pass:has(input:checked) {
  border-color: #B0B0B0;
  color: #22693a;
  background: #F4F4F4;
}

.event-checkin-toggle.is-fail:has(input:checked) {
  border-color: #e28b83;
  color: #9d2e27;
  background: #F3F3F3;
}

.event-checkin-note {
  display: grid;
  gap: 4px;
}

.event-checkin-note > span {
  color: #6C6C6C;
  font-size: 9px;
  font-weight: 900;
}

.event-checkin-note input {
  width: 100%;
  min-height: 34px;
  border-color: #D7D7D7;
  background: #fff;
  font-size: 11px;
}

.event-notice-track > small {
  margin-left: auto;
  color: #8a5d18;
  font-size: 10px;
  font-weight: 850;
}

.event-checkin-station {
  gap: 8px;
}

.event-checkin-station .event-node-head {
  margin-bottom: 0;
}

.event-station-overview {
  display: grid;
  min-height: 0;
  gap: 6px;
  border: 1px solid #E1E1E1;
  border-radius: 9px;
  padding: 8px;
  background: #F9F9F9;
}

.event-station-overview.is-tasks {
  flex: 1 1 auto;
  overflow: hidden;
  background: #fff;
}

.event-station-block-title,
.event-station-field-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.event-station-block-title > strong {
  color: #263249;
  font-size: 12px;
  font-weight: 950;
}

.event-station-block-title > span,
.event-station-field-head > span {
  border-radius: 999px;
  padding: 3px 7px;
  color: #606060;
  background: #EFEFEF;
  font-size: 9px;
  font-weight: 950;
}

.event-station-field-list {
  display: grid;
  max-height: 175px;
  gap: 6px;
  overflow: auto;
}

.event-station-field-row {
  display: grid;
  min-width: 0;
  gap: 5px;
  border: 1px solid #e1c77f;
  border-left: 5px solid #d99a20;
  border-radius: 8px;
  padding: 7px;
  background: #fff;
}

.event-station-field-row.is-type-b {
  border-color: #cabcf0;
  border-left-color: #7653ce;
}

.event-station-field-row.is-type-c {
  border-color: #D1D1D1;
  border-left-color: #238b78;
}

.event-station-field-head > strong {
  color: #202b40;
  font-size: 11px;
  font-weight: 950;
}

.event-station-field-match {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
}

.event-station-field-match > b {
  color: #334057;
  font-size: 10px;
  font-weight: 950;
  white-space: nowrap;
}

.event-station-field-match.is-queue {
  border-top: 1px dashed #E2E2E2;
  padding-top: 5px;
}

.event-station-field-row > small,
.event-station-field-empty {
  color: #7F7F7F;
  font-size: 9px;
  font-weight: 850;
}

.event-checkin-station .event-station-list {
  margin-top: 0;
}

.event-checkin-station .event-station-row {
  border: 1px solid #E6E6E6;
  border-radius: 7px;
  padding: 7px;
  background: #FAFAFA;
}

@media (max-width: 1050px) {
  .event-checkin-plan-item {
    grid-template-columns: minmax(140px, 0.7fr) minmax(260px, 1.3fr) auto;
  }

  .event-checkin-plan-item > button {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

/* 观众赛程屏：上半区为各场地当前比赛/候赛，下半区为检录指引。 */
.event-audience-operations-board .event-progress-content {
  display: grid;
  align-content: start;
  gap: 16px;
  padding: clamp(18px, 2vw, 38px);
}

.event-audience-board-head,
.event-audience-checkin-zone > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.event-audience-board-head h2,
.event-audience-checkin-zone h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(24px, 2.15vw, 48px);
}

.event-audience-board-head span,
.event-audience-checkin-zone header span {
  display: block;
  margin-top: 4px;
  color: rgba(231,231,231,0.7);
  font-size: clamp(11px, 0.8vw, 18px);
  font-weight: 800;
}

.event-audience-board-head > strong,
.event-audience-checkin-zone > header > strong {
  color: #fff;
  font-size: clamp(14px, 1.15vw, 25px);
}

.event-audience-operations-board .event-progress-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
  gap: 12px;
}

.event-audience-field-card {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 6px solid #8E8E8E;
  border-radius: 14px;
  padding: 14px;
  background: rgba(6, 12, 24, 0.7);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
}

.event-audience-field-card.is-type-a { border-left-color: #d4a436; }
.event-audience-field-card.is-type-b { border-left-color: #8467d7; }
.event-audience-field-card.is-type-c { border-left-color: #3a9b87; }
.event-audience-field-card.is-live { box-shadow: 0 0 0 2px rgba(72, 205, 137, 0.32), inset 0 1px rgba(255, 255, 255, 0.07); }

.event-audience-field-card > header,
.event-audience-checkin-card > header,
.event-audience-current-match > div,
.event-audience-waiting > div:first-child,
.event-audience-checkin-card > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.event-audience-field-card > header > div {
  display: grid;
  gap: 2px;
}

.event-audience-field-card > header strong {
  color: #fff;
  font-size: clamp(16px, 1.2vw, 27px);
}

.event-audience-field-card > header span,
.event-audience-field-card > header em,
.event-audience-current-match small,
.event-audience-waiting span,
.event-audience-waiting em,
.event-audience-checkin-card footer span {
  color: rgba(231,231,231,0.74);
  font-size: clamp(10px, 0.72vw, 15px);
  font-style: normal;
  font-weight: 850;
}

.event-audience-field-card > header em {
  border-radius: 999px;
  padding: 5px 9px;
  color: #fff;
  background: rgba(255, 255, 255, 0.11);
}

.event-audience-current-match {
  display: grid;
  gap: 9px;
  border-radius: 10px;
  padding: 11px;
  background: rgba(255, 255, 255, 0.075);
}

.event-audience-current-match .event-versus-pair,
.event-audience-checkin-card .event-versus-pair {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.event-audience-current-match > div b,
.event-audience-current-match > div strong {
  color: #fff;
}

.event-audience-no-current,
.event-audience-checkin-empty {
  display: grid;
  min-height: 54px;
  place-items: center;
  border: 1px dashed rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  color: rgba(231,231,231,0.68);
  font-size: 12px;
  font-weight: 850;
}

.event-audience-waiting {
  display: grid;
  gap: 6px;
}

.event-audience-waiting > div:first-child strong {
  color: #fff;
  font-size: 12px;
}

.event-audience-waiting p {
  margin: 0;
  color: rgba(231,231,231,0.6);
  font-size: 11px;
}

.event-audience-wait-row {
  display: grid;
  grid-template-columns: 24px minmax(90px, 0.8fr) minmax(0, 1.5fr) auto;
  align-items: center;
  gap: 7px;
  min-width: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 6px;
}

.event-audience-wait-row > b {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 6px;
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  font-size: 10px;
}

.event-audience-checkin-zone {
  display: grid;
  gap: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  padding-top: 16px;
}

.event-audience-checkin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
  gap: 10px;
}

.event-audience-checkin-card {
  display: grid;
  gap: 9px;
  border: 1px solid rgba(88, 132, 255, 0.42);
  border-radius: 12px;
  padding: 12px;
  background: rgba(25, 52, 108, 0.28);
}

.event-audience-checkin-card header strong,
.event-audience-checkin-card footer b {
  color: #fff;
}

.event-audience-checkin-card header em {
  border-radius: 999px;
  padding: 4px 8px;
  color: #E8E8E8;
  background: rgba(62, 111, 255, 0.24);
  font-size: 10px;
  font-style: normal;
  font-weight: 950;
}

.event-audience-announcement {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: clamp(62px, 7vw, 128px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  padding: 12px 28px;
  color: #fff;
  background: linear-gradient(90deg, rgba(172, 45, 39, 0.8), rgba(35, 83, 174, 0.8));
}

.event-audience-announcement span {
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(0, 0, 0, 0.24);
  font-size: 11px;
  font-weight: 950;
}

.event-audience-announcement strong {
  font-size: clamp(24px, 3vw, 60px);
}

.event-audience-operations-board.is-compact .event-progress-content {
  gap: 7px;
  padding: 9px;
}

.event-audience-operations-board.is-compact .event-audience-board-head span,
.event-audience-operations-board.is-compact .event-audience-checkin-zone header span,
.event-audience-operations-board.is-compact .event-audience-current-match > div,
.event-audience-operations-board.is-compact .event-audience-waiting,
.event-audience-operations-board.is-compact .event-audience-checkin-zone {
  display: none;
}

.event-audience-operations-board.is-compact .event-progress-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.event-audience-operations-board.is-compact .event-audience-field-card {
  gap: 5px;
  padding: 7px;
}

/* 主控的计划比赛默认收成窄栏，鼠标滑入或键盘聚焦时覆盖画布展开。 */
.event-dispatch-layout {
  grid-template-columns: 64px minmax(860px, 1fr);
}

.event-plan-column {
  position: relative;
  z-index: 18;
  width: 64px;
  max-width: none;
  overflow: hidden;
  transition: width 180ms ease, box-shadow 180ms ease;
}

.event-plan-column::after {
  content: "计划比赛  ·  滑入展开";
  position: absolute;
  inset: 12px 0 auto;
  display: grid;
  width: 64px;
  height: calc(100% - 24px);
  place-items: center;
  color: #606060;
  font-size: 12px;
  font-weight: 1000;
  letter-spacing: 0.08em;
  writing-mode: vertical-rl;
  pointer-events: none;
  transition: opacity 120ms ease;
}

.event-plan-column > * {
  min-width: 328px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 110ms ease;
}

.event-plan-column:hover,
.event-plan-column:focus-within {
  width: 372px;
  overflow: auto;
  box-shadow: 16px 0 34px rgba(15, 23, 42, 0.16);
}

.event-plan-column:hover::after,
.event-plan-column:focus-within::after {
  opacity: 0;
}

.event-plan-column:hover > *,
.event-plan-column:focus-within > * {
  opacity: 1;
  pointer-events: auto;
}

/* 聊天内容和系统动态分层显示，二者均可引用回复。 */
.event-chat-panel {
  grid-template-rows: auto minmax(0, 1fr) auto auto;
}

.event-chat-message {
  position: relative;
  padding-bottom: 30px;
}

.event-chat-message.is-system {
  border-color: #b9c9f4;
  color: #243e79;
  background: linear-gradient(135deg, #F3F3F3, #F9F9F9);
}

.event-chat-message.is-system header strong {
  color: #2f5bd3;
}

.event-chat-message.is-human {
  border-color: #DFDFDF;
  background: #fff;
}

.event-chat-message p,
.event-chat-message blockquote p {
  margin: 0;
}

.event-chat-message > p {
  line-height: 1.55;
}

.event-chat-message blockquote {
  display: grid;
  gap: 2px;
  margin: 0;
  border-left: 3px solid #7c92c8;
  border-radius: 6px;
  padding: 6px 8px;
  color: #727272;
  background: rgba(255, 255, 255, 0.72);
  font-size: 10px;
}

.event-chat-message blockquote span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-chat-reply-button {
  position: absolute;
  right: 7px;
  bottom: 6px;
  border: 0;
  color: #5F5F5F;
  background: transparent;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.event-chat-reply-button:hover {
  color: #1d4ed8;
}

.event-chat-reply {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  border: 1px solid #D6D6D6;
  border-radius: 9px;
  padding: 7px 8px;
  background: #F6F6F6;
}

.event-chat-reply.is-hidden {
  display: none;
}

.event-chat-reply > div {
  display: grid;
  min-width: 0;
  gap: 1px;
}

.event-chat-reply span,
.event-chat-reply p {
  overflow: hidden;
  margin: 0;
  color: #747474;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-chat-reply strong {
  color: #2f5bd3;
  font-size: 10px;
}

/* 2026-07-18：赛事总览拆为比赛配置、人员队伍两大业务区。 */
.event-overview-domain {
  display: grid;
  gap: 12px;
  min-width: 0;
  border: 1px solid #E2E2E2;
  border-radius: 16px;
  padding: 14px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 8px 28px rgba(27, 45, 78, 0.05);
}

.event-overview-domain.is-competition {
  border-top: 5px solid #2f5bd3;
}

.event-overview-domain.is-people {
  border-top: 5px solid #818181;
}

.event-overview-domain-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 2px 2px 4px;
}

.event-overview-domain-heading > div {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 3px 10px;
}

.event-overview-domain-heading h2,
.event-overview-domain-heading p {
  margin: 0;
}

.event-overview-domain-heading > div > span {
  color: #2f5bd3;
  font-size: 10px;
  font-weight: 1000;
  letter-spacing: 0.08em;
}

.event-overview-domain-heading h2 {
  color: var(--ink);
  font-size: 19px;
}

.event-overview-domain-heading p {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.event-overview-name-control {
  display: flex;
  min-width: min(440px, 48vw);
  align-items: center;
  gap: 9px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
}

.event-overview-name-control input {
  min-width: 0;
  flex: 1 1 auto;
  min-height: 38px;
  border: 1px solid #D5D5D5;
  border-radius: 9px;
  padding: 0 12px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 950;
}

/* 节点画布使用绝对坐标；每个项目、检录处和场地都可像节点窗口一样自由拖动。 */
.event-relation-board {
  display: block;
  min-width: 1460px;
  overflow: auto;
}

.event-relation-column,
.event-relation-column > div {
  display: contents;
}

.event-relation-column > header {
  position: absolute;
  z-index: 3;
  top: 10px;
  width: 350px;
  pointer-events: none;
}

.event-relation-column.is-projects > header { left: 28px; }
.event-relation-column.is-stations > header { left: 520px; }
.event-relation-column.is-fields > header { left: 1010px; width: 400px; }

.event-relation-node {
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  min-height: 74px;
}

.event-relation-node.is-moving {
  z-index: 6;
  box-shadow: 0 14px 34px rgba(23, 39, 74, 0.18);
  transition: none;
}

.event-relation-node.is-project {
  grid-template-columns: 32px 24px minmax(0, 1fr) auto;
}

.event-relation-node.is-station,
.event-relation-node.is-field {
  grid-template-columns: 32px minmax(86px, 0.62fr) minmax(110px, 1fr);
}

.event-relation-node.is-station > em,
.event-relation-node.is-field > em {
  grid-column: 2 / -1;
}

.event-relation-move,
.event-relation-drag {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid #D6D6D6;
  border-radius: 8px;
  color: #5F5F5F;
  background: #FAFAFA;
  font: inherit;
  font-size: 14px;
  font-weight: 1000;
}

.event-relation-move {
  cursor: move;
  touch-action: none;
}

.event-relation-drag {
  color: #fff;
  border-color: #2f5bd3;
  background: #2f5bd3;
  cursor: crosshair;
}

@media (max-width: 1050px) {
  .event-overview-domain-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .event-overview-name-control {
    min-width: 0;
  }
}

@media (max-width: 760px) {
  .event-checkin-team-status-grid,
  .event-checkin-plan-actions,
  .event-checkin-plan-item {
    grid-template-columns: 1fr;
  }

  .event-checkin-match-heading,
  .event-checkin-heading-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .event-checkin-plan-item > button {
    grid-column: auto;
    justify-self: stretch;
  }

  .event-checkin-team-title {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .event-checkin-team-title > b {
    grid-column: 1 / -1;
  }
}

/* 2026-07-18：赛事总览作为项目、检录处与执裁场地的统一配置中心。 */
.event-relation-panel {
  min-width: 0;
  padding: 14px;
}

.event-relation-heading {
  align-items: flex-start;
}

.event-relation-heading > div:first-child {
  display: grid;
  gap: 4px;
}

.event-relation-heading > div:first-child > span,
.event-relation-feedback {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}

.event-relation-create-tools {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.event-relation-create-tools label {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
}

.event-relation-create-tools input,
.event-relation-node input {
  min-width: 0;
  min-height: 34px;
  border: 1px solid #D6D6D6;
  border-radius: 8px;
  padding: 0 9px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  outline: none;
}

.event-relation-create-tools input {
  width: 150px;
}

.event-relation-feedback {
  display: block;
  min-height: 20px;
  margin: 4px 0 8px;
  padding: 5px 8px;
  border-radius: 7px;
  background: #F9F9F9;
}

.event-relation-board {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 66px;
  min-width: 820px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px;
  background:
    linear-gradient(rgba(231,231,231,0.35) 1px, transparent 1px),
    linear-gradient(90deg, rgba(231,231,231,0.35) 1px, transparent 1px),
    #FCFCFC;
  background-size: 28px 28px;
}

.event-relation-lines {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.event-relation-lines path {
  fill: none;
  stroke: #A3A3A3;
  stroke-width: 2.4;
  stroke-linecap: round;
  opacity: 0.78;
}

.event-relation-lines path.is-type-a { stroke: #d4a436; }
.event-relation-lines path.is-type-b { stroke: #8467d7; }
.event-relation-lines path.is-type-c { stroke: #3a9b87; }

.event-relation-column {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
}

.event-relation-column > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 28px;
  padding: 0 4px;
}

.event-relation-column > header strong {
  color: var(--ink);
  font-size: 12px;
}

.event-relation-column > header span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
}

.event-relation-column > div {
  display: grid;
  gap: 8px;
}

.event-relation-node {
  display: grid;
  min-width: 0;
  min-height: 70px;
  align-items: center;
  gap: 7px;
  border: 1px solid #DFDFDF;
  border-left: 5px solid #AAAAAA;
  border-radius: 10px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 3px 12px rgba(25, 40, 70, 0.05);
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.event-relation-node.is-type-a { border-left-color: #d4a436; }
.event-relation-node.is-type-b { border-left-color: #8467d7; }
.event-relation-node.is-type-c { border-left-color: #3a9b87; }

.event-relation-node.is-drop-target {
  border-color: #2f5bd3;
  box-shadow: 0 0 0 4px rgba(47, 91, 211, 0.13);
  transform: translateY(-2px);
}

.event-relation-node.is-project {
  grid-template-columns: 34px minmax(0, 1fr) auto;
}

.event-relation-node.is-project.is-active {
  box-shadow: 0 0 0 2px rgba(47, 91, 211, 0.16), 0 4px 14px rgba(25, 40, 70, 0.08);
}

.event-relation-node.is-station,
.event-relation-node.is-field {
  grid-template-columns: minmax(92px, 0.65fr) minmax(110px, 1fr);
}

.event-relation-node > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.event-relation-node > div span,
.event-relation-node > em,
.event-relation-node.is-project > span {
  color: var(--muted);
  font-size: 9px;
  font-style: normal;
  font-weight: 850;
}

.event-relation-node > div strong {
  overflow: hidden;
  color: #3F3F3F;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-relation-node > em {
  grid-column: 1 / -1;
}

.event-relation-drag {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid #D6D6D6;
  border-radius: 8px;
  color: #5F5F5F;
  background: #FAFAFA;
  font-size: 15px;
  cursor: grab;
}

.event-overview-project-tabs .multi-project-schedule-tab.is-summary-total {
  box-shadow: 0 0 0 3px rgba(47, 91, 211, 0.16), 0 7px 20px rgba(47, 91, 211, 0.12);
}

.event-team-roster.is-locked-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  max-height: 520px;
  overflow: auto;
}

.event-team-card.is-locked-row {
  grid-template-columns: 72px minmax(0, 1fr) auto;
  min-height: 42px;
  padding-inline: 10px 12px;
}

.event-team-card.is-locked-row > b {
  display: inline-grid;
  min-height: 28px;
  place-items: center;
  border-radius: 7px;
  color: #1d4ed8;
  background: #F0F0F0;
  font-size: 12px;
}

.event-team-card.is-locked-row > span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
}

/* 已锁定赛程的标题只保留一条轻量状态栏。 */
.tournament-planner-panel.is-planner-collapsed {
  gap: 0;
  min-height: 0;
  padding: 7px 12px;
}

.tournament-planner-panel.is-planner-collapsed > .panel-header {
  min-height: 34px;
  margin: 0;
}

.tournament-planner-panel.is-planner-collapsed > .panel-header > div:first-child {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tournament-planner-panel.is-planner-collapsed h2 {
  font-size: 14px;
}

.tournament-planner-panel.is-planner-collapsed .schedule-boundary-status,
.tournament-planner-panel.is-planner-collapsed .compact-button {
  min-height: 28px;
  padding-block: 4px;
  font-size: 10px;
}

/* 场地卡中的计分画面留出安全边距，避免标题、比分和底部提示被外框裁切。 */
.event-venue-card .event-scoreboard-window {
  min-height: 220px;
  box-sizing: border-box;
  padding: 10px;
}

.event-venue-card .event-scoreboard-frame .stage-content {
  inset: 2.5% 3%;
}

.event-venue-card .event-scoreboard-frame .custom-message {
  top: min(var(--text-y, 88%), 84%);
}

@media (max-width: 1050px) {
  .event-relation-heading,
  .event-relation-create-tools {
    align-items: stretch;
  }

  .event-relation-heading {
    flex-direction: column;
  }

  .event-relation-create-tools {
    justify-content: flex-start;
  }

  .event-relation-board {
    overflow-x: auto;
  }
}

/* 最终节点画布规则放在基础关系样式之后，避免旧的三列网格覆盖自由拖动坐标。 */
.event-relation-board {
  position: relative;
  display: block;
  min-width: 1460px;
  overflow: auto;
}

.event-relation-column,
.event-relation-column > div {
  display: contents;
}

.event-relation-column > header {
  position: absolute;
  z-index: 3;
  top: 10px;
  width: 350px;
  pointer-events: none;
}

.event-relation-column.is-projects > header { left: 28px; }
.event-relation-column.is-stations > header { left: 520px; }
.event-relation-column.is-fields > header { left: 1010px; width: 430px; }

.event-relation-node {
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  min-height: 74px;
}

.event-relation-node.is-project {
  grid-template-columns: 30px 28px minmax(0, 1fr) auto;
}

.event-relation-node.is-station {
  grid-template-columns: 30px minmax(86px, 0.62fr) minmax(110px, 1fr);
}

.event-relation-node.is-field {
  grid-template-columns: 30px minmax(80px, 0.5fr) minmax(100px, 1fr) auto;
}

.event-relation-node.is-station > em,
.event-relation-node.is-field > em {
  grid-column: 2 / -1;
}

.event-relation-delete {
  min-height: 34px;
  border: 1px solid #efb2ad;
  border-radius: 8px;
  padding: 0 10px;
  color: #a62f29;
  background: #F7F7F7;
  font: inherit;
  font-size: 10px;
  font-weight: 950;
  white-space: nowrap;
  cursor: pointer;
}

.event-relation-delete:hover {
  border-color: #cf443b;
  color: #fff;
  background: #cf443b;
}

/* 新建项目只在用户勾选时同步创建现场终端。 */
.event-project-create-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
  border: 1px solid #DFDFDF;
  border-radius: 11px;
  padding: 10px;
  background: #FAFAFA;
}

.event-project-create-options legend {
  padding: 0 6px;
  color: #6F6F6F;
  font-size: 11px;
  font-weight: 950;
}

.event-project-create-options label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 58px;
  border: 1px solid #DCDCDC;
  border-radius: 9px;
  padding: 8px 10px;
  color: #3F3F3F;
  background: #fff;
  cursor: pointer;
}

.event-project-create-options label:has(input:checked) {
  border-color: #5d7fea;
  background: #F3F3F3;
  box-shadow: 0 0 0 2px rgba(47, 91, 211, 0.1);
}

.event-project-create-options input {
  width: 18px;
  height: 18px;
  accent-color: #2f5bd3;
}

.event-project-create-options span {
  display: grid;
  gap: 3px;
}

.event-project-create-options strong {
  font-size: 12px;
}

.event-project-create-options em {
  color: #868686;
  font-size: 9px;
  font-style: normal;
  font-weight: 750;
}

/* 达芬奇节点式连接口：输入在左侧，输出在右侧。 */
.event-relation-node {
  overflow: visible;
}

.event-relation-node.is-project {
  grid-template-columns: 30px minmax(0, 1fr) auto;
}

.event-relation-node.is-station,
.event-relation-node.is-field {
  grid-template-columns: 30px minmax(80px, 0.52fr) minmax(100px, 1fr) auto;
}

.event-relation-port {
  position: absolute;
  z-index: 8;
  top: 50%;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 3px solid #fff;
  border-radius: 999px;
  padding: 0;
  background: #929292;
  box-shadow: 0 0 0 1px #7E7E7E, 0 2px 6px rgba(22, 34, 56, 0.2);
  transform: translateY(-50%);
}

.event-relation-port.is-input {
  left: -9px;
  pointer-events: none;
}

.event-relation-port.is-output {
  right: -9px;
  cursor: crosshair;
}

.event-relation-node.is-type-a .event-relation-port { background: #d4a436; box-shadow: 0 0 0 1px #a77d1b, 0 2px 6px rgba(22, 34, 56, 0.2); }
.event-relation-node.is-type-b .event-relation-port { background: #8467d7; box-shadow: 0 0 0 1px #6046af, 0 2px 6px rgba(22, 34, 56, 0.2); }
.event-relation-node.is-type-c .event-relation-port { background: #858585; box-shadow: 0 0 0 1px #257362, 0 2px 6px rgba(22, 34, 56, 0.2); }

.event-relation-node.is-linking .event-relation-port.is-output,
.event-relation-node.is-drop-target .event-relation-port.is-input {
  transform: translateY(-50%) scale(1.3);
  box-shadow: 0 0 0 5px rgba(47, 91, 211, 0.16);
}

@media (max-width: 760px) {
  .event-project-create-options {
    grid-template-columns: 1fr;
  }
}

/* 2026-07-18 最终界面分区：“人员队伍信息”是与“赛事总览”并列的独立大页签。 */
.event-people-layout {
  padding-top: 0;
}

.event-player-panel {
  overflow: hidden;
}

.event-player-panel > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.event-player-panel > summary::-webkit-details-marker {
  display: none;
}

.event-player-summary {
  margin: 0;
  padding: 4px 0;
}

.event-player-summary > b {
  color: #5F5F5F;
  font-size: 0;
}

.event-player-summary > b::after {
  content: "展开";
  font-size: 11px;
}

.event-player-panel[open] .event-player-summary > b {
  color: #2f5bd3;
}

.event-player-panel[open] .event-player-summary > b::after {
  content: "收起";
}

.event-player-content {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

/* 节点创建工具与左侧大标题的基线对齐，连线可直接双击解除。 */
.event-relation-create-tools {
  align-self: flex-end;
  margin-top: 22px;
}

.event-relation-lines {
  pointer-events: auto;
}

.event-relation-lines path {
  pointer-events: none;
}

.event-relation-lines path.event-relation-hit {
  stroke: rgba(15, 23, 42, 0.001);
  stroke-width: 18;
  opacity: 1;
  pointer-events: stroke;
  cursor: pointer;
}

.event-relation-lines path.event-relation-hit:hover + .event-relation-path {
  stroke-width: 5;
  opacity: 1;
}

.event-relation-node.is-project {
  grid-template-columns: 30px minmax(0, 1fr);
}

.event-relation-node.is-station,
.event-relation-node.is-field {
  grid-template-columns: 30px minmax(80px, 0.52fr) minmax(100px, 1fr) auto;
}

.event-relation-delete {
  padding-inline: 12px;
}

/* 聊天室拉出后占屏幕约三分之一。 */
.event-chat-rail:hover,
.event-chat-rail.is-open,
.event-chat-rail.is-pinned {
  width: clamp(480px, 33.333vw, 760px);
}

.event-chat-panel {
  width: calc(100% - 44px);
  box-sizing: border-box;
}

@media (max-width: 760px) {
  .event-chat-rail:hover,
  .event-chat-rail.is-open,
  .event-chat-rail.is-pinned {
    width: min(100vw, 560px);
  }
}

/* Only the event-center window exposes an exit from its terminal preview. */
#eventReturnToCenter.is-hidden {
  display: none !important;
}

#eventReturnToCenter {
  flex-shrink: 0;
  white-space: nowrap;
}
