.app-utilities > .attendance-scan-launcher {
  position: static;
  flex: 0 0 auto;
  min-width: 3rem;
  min-height: 3rem;
  margin: 0;
  white-space: nowrap;
}

.attendance-scan-dialog {
  width: min(calc(100% - 1rem), 34rem);
  max-width: none;
  max-height: calc(100dvh - 1rem);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: var(--radius-card, 1rem);
  background: var(--color-surface-card, #fffaf3);
  color: var(--color-text-primary, #172c4a);
  box-shadow: 0 1.25rem 4rem rgb(23 44 74 / 28%);
}

.attendance-scan-dialog::backdrop { background: rgb(23 44 74 / 58%); }
.attendance-scan-surface { display: grid; gap: 1rem; padding: 1rem; }
.attendance-scan-surface header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.attendance-scan-surface h2 { margin: 0; font-size: 1.25rem; }
.attendance-scan-surface header button {
  min-width: var(--touch-target-min, 44px);
  padding-inline: .75rem;
  font-size: 1.5rem;
}
.attendance-scan-surface video {
  width: 100%;
  min-height: min(62dvh, 28rem);
  border-radius: var(--radius-control, .65rem);
  background: var(--color-text-primary, #172c4a);
  object-fit: cover;
}
.attendance-scan-surface p { margin: 0; text-align: center; }
.attendance-scan-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.attendance-scan-actions > .spa-button { flex: 1 1 12rem; }
