/* Keep native file selection accessible without browser-localized text. */
.dropzone-neutral:not(.dragover) { background: #f5f6f7; }
.upload-dropzone { position: relative; cursor: pointer; }
.upload-dropzone > input[type="file"] {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  pointer-events: auto;
}
.english-file-picker {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  max-width: 100%;
  font-size: 0.875rem;
}
.english-file-picker-button {
  position: relative;
  display: inline-block;
  padding: 7px 12px;
  border: 1px solid var(--line, #cbd8df);
  border-radius: 5px;
  background: #fff;
  color: var(--blue, #00796b);
}
.english-file-picker-button:focus-within {
  outline: 3px solid #4db6ac;
  outline-offset: 3px;
}
.english-file-picker .english-file-picker-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
}
.english-file-picker-button:has(input:disabled) { opacity: .48; }
.english-file-picker-name { overflow-wrap: anywhere; min-width: 0; }
.file-selection {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  margin: 10px 0;
  padding: 12px 14px;
  border: 2px solid #009688;
  border-radius: 6px;
  background: #e8f5f1;
  color: #145c4d;
  font-size: 0.875rem;
  line-height: 1.6;
}
.file-selection[hidden], .file-selection [hidden],
[data-file-selection-active="true"] { display: none; }
.file-selection-heading { display: block; font-weight: 700; }
.file-selection-message { display: block; margin-top: 4px; }
.file-selection-list {
  display: grid;
  gap: 5px;
  max-height: 160px;
  overflow: auto;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.file-selection-list li { display: flex; align-items: baseline; gap: 12px; justify-content: space-between; }
.file-selection-list li > span { min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.file-selection-list small { flex-shrink: 0; color: #456d62; }
label.has-file-selection,
#fastaDrop.has-file-selection,
.dropzone-neutral.has-file-selection:not(.dragover) {
  border-color: #009688;
  background: #e8f5f1;
  box-shadow: inset 0 0 0 1px #009688;
}
.has-file-selection .english-file-picker-button { border-color: #009688; color: #00796b; font-weight: 600; }
.file-selection[data-state="loading"] { border-color: #b88620; background: #fff8e5; color: #755616; }
.file-selection[data-state="error"] { border-color: #b34b38; background: #fff2ef; color: #913c2d; }
label.has-file-error, #fastaDrop.has-file-error { border-color: #b34b38; background: #fff2ef; box-shadow: inset 0 0 0 1px #b34b38; }
