/* mod_uploadlist — everything is scoped to .mod-uploadlist so the site template is not affected */
.mod-uploadlist { max-width: 560px; margin: 0 auto; font-size: 1rem; color: inherit; box-sizing: border-box; }
.mod-uploadlist *, .mod-uploadlist *::before, .mod-uploadlist *::after { box-sizing: border-box; }
.mod-uploadlist .ul-hidden { display: none !important; }
.mod-uploadlist .ul-h { font-size: 1.35rem; margin: 0 0 14px; }
.mod-uploadlist label { display: block; font-weight: 600; margin: 12px 0 4px; }
.mod-uploadlist input[type=text], .mod-uploadlist input[type=tel], .mod-uploadlist input[type=email], .mod-uploadlist select {
  width: 100%; padding: 10px; font-size: 1rem; border: 1px solid #ccc; border-radius: 6px; background: #fff; color: #222;
}
.mod-uploadlist .ul-invalid { border-color: #dc2626 !important; background: #fef2f2 !important; }
.mod-uploadlist .ul-field-error { color: #b91c1c; font-size: .85rem; min-height: 1.1em; margin-top: 3px; }
/* Compact form: two fields per row; school wider than class; one column on phones */
.mod-uploadlist .ul-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 14px; }
.mod-uploadlist .ul-row.ul-row-school { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.mod-uploadlist .ul-row label { margin-top: 8px; }
.mod-uploadlist .ul-row .ul-field-error { min-height: 1em; }
@media (max-width: 480px) {
  .mod-uploadlist .ul-row, .mod-uploadlist .ul-row.ul-row-school { grid-template-columns: minmax(0, 1fr); }
}
.mod-uploadlist .ul-consent { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; margin-top: 16px; }
.mod-uploadlist .ul-consent input { margin-top: 4px; width: 18px; height: 18px; flex: none; }
.mod-uploadlist .ul-info { font-size: .9rem; color: #555; margin: 6px 0; }
.mod-uploadlist .ul-buttons { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.mod-uploadlist .ul-btn {
  padding: 10px 20px; font-size: 1rem; border: 0; border-radius: 6px; cursor: pointer;
  background: #2563eb; color: #fff; line-height: 1.2;
}
.mod-uploadlist .ul-btn-secondary { background: #6b7280; color: #fff; }
.mod-uploadlist .ul-btn-cancel { background: #d1d5db; color: #222; }
.mod-uploadlist a.ul-btn { display: inline-block; text-decoration: none; }
.mod-uploadlist .ul-btn.ul-btn-outline { background: transparent; color: #1e3a5f; border: 2px solid #1e3a5f; padding: 8px 18px; }
.mod-uploadlist .ul-btn.ul-btn-outline:hover,
.mod-uploadlist .ul-btn.ul-btn-outline:focus { background: #1e3a5f; color: #fff; }
.mod-uploadlist .ul-btn:disabled { opacity: .5; cursor: not-allowed; }
.mod-uploadlist .ul-msg { margin-top: 14px; padding: 10px; border-radius: 6px; font-size: .95rem; }
.mod-uploadlist .ul-ok { background: #dcfce7; color: #14532d; }
.mod-uploadlist .ul-err { background: #fee2e2; color: #7f1d1d; }
.mod-uploadlist .ul-testmode {
  display: inline-block; margin-bottom: 10px; padding: 3px 10px; border-radius: 999px;
  background: #fef3c7; color: #92400e; font-size: .8rem; font-weight: 600;
}
.mod-uploadlist .ul-dropzone {
  margin: 14px 0 4px; padding: 22px 12px; text-align: center; border: 2px dashed #9ca3af; border-radius: 10px;
  color: #555; background: #fafafa; cursor: pointer; transition: background .15s, border-color .15s;
}
.mod-uploadlist .ul-dropzone.ul-over { border-color: #2563eb; background: #eff6ff; color: #1e40af; }
.mod-uploadlist .ul-dropzone.ul-busy { opacity: .6; pointer-events: none; }
.mod-uploadlist .ul-list-head { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; gap: 10px; }
.mod-uploadlist .ul-list-head .ul-info { margin: 0; }
.mod-uploadlist .ul-filelist { list-style: none; padding: 0; margin: 12px 0 0; }
.mod-uploadlist .ul-filelist li {
  display: flex; align-items: center; gap: 8px; padding: 8px; margin: 0 0 6px;
  border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; font-size: .9rem;
}
.mod-uploadlist .ul-filelist li[draggable=true] { cursor: grab; }
.mod-uploadlist .ul-filelist li.ul-dragging { opacity: .4; }
.mod-uploadlist .ul-filelist li.ul-drop-before { box-shadow: 0 -3px 0 #2563eb; }
.mod-uploadlist .ul-filelist li.ul-drop-after { box-shadow: 0 3px 0 #2563eb; }
.mod-uploadlist .ul-filelist li.ul-ok { border-color: #86efac; background: #f0fdf4; }
.mod-uploadlist .ul-filelist li.ul-fail { border-color: #fca5a5; background: #fef2f2; }
.mod-uploadlist .ul-filelist li.ul-busy { border-color: #93c5fd; background: #eff6ff; }
.mod-uploadlist .ul-handle { color: #9ca3af; font-size: 1.1rem; user-select: none; }
.mod-uploadlist .ul-num { font-family: ui-monospace, monospace; color: #555; min-width: 2.2em; text-align: right; }
.mod-uploadlist .ul-fname { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.mod-uploadlist .ul-fsize { color: #888; font-size: .8rem; white-space: nowrap; }
.mod-uploadlist .ul-status { min-width: 2.6em; text-align: center; font-size: .8rem; color: #1e40af; }
.mod-uploadlist .ul-err-text { display: block; color: #b91c1c; font-size: .8rem; }
.mod-uploadlist .ul-del { background: transparent; border: 0; color: #9ca3af; padding: 2px 8px; font-size: 1.1rem; line-height: 1; cursor: pointer; border-radius: 6px; }
.mod-uploadlist .ul-del:hover { color: #dc2626; background: #fee2e2; }
/* Bold coloured ✓ / ✕ in the same style */
.mod-uploadlist .ul-mark {
  display: inline-block; width: 1.2em; text-align: center; font-family: system-ui, sans-serif;
  font-size: 1.15em; font-weight: 900; -webkit-text-stroke: 1.3px currentColor; line-height: 1;
}
.mod-uploadlist .ul-mark-ok { color: #16a34a; }
.mod-uploadlist .ul-mark-fail { color: #dc2626; }
.mod-uploadlist .ul-final { list-style: none; padding: 0; margin: 8px 0 0; }
.mod-uploadlist .ul-final li { display: flex; align-items: baseline; gap: 6px; margin: 3px 0; font-size: .95rem; overflow-wrap: anywhere; }
.mod-uploadlist .ul-final li.ul-fail { color: #b91c1c; }
.mod-uploadlist .ul-build { text-align: right; font-size: .7rem; color: #999; margin: 14px 0 0; }
