@@ -415,6 +415,7 @@
? `
`
: `
+
${e.card_uid ? `
` : ""}
`;
return `
@@ -430,6 +431,8 @@
enrollSelectedEmployee = { id, name: btn.dataset.name };
pendingEnrollUid = null;
renderEnroll({ phase: "tap" });
+ } else if (act === "photo") {
+ openPhotoCapture(id, btn.dataset.name, () => renderEnroll({ phase: "manager" }));
} else if (act === "clear") {
try { await postJson("/fusion_clock/kiosk/nfc/clear_tag", { employee_id: id, enroll_password: enrollPassword }); } catch (e) {}
refresh();
@@ -566,14 +569,14 @@
${msg}
- ${ok && payload.needs_photo && payload.employee_id ? `` : ""}
+ ${ok && payload.employee_id ? `` : ""}
`;
- if (ok && payload.needs_photo && payload.employee_id) {
+ if (ok && payload.employee_id) {
document.getElementById("enroll_photo").addEventListener("click", () => {
openPhotoCapture(payload.employee_id, payload.employee_name, () => {
if (enrollPassword) renderEnroll({ phase: "manager" }); else exitEnrollMode();
diff --git a/fusion_clock/static/src/scss/nfc_kiosk.scss b/fusion_clock/static/src/scss/nfc_kiosk.scss
index f9e7c2a0..2c8421ff 100644
--- a/fusion_clock/static/src/scss/nfc_kiosk.scss
+++ b/fusion_clock/static/src/scss/nfc_kiosk.scss
@@ -512,6 +512,9 @@ html:has(#nfc_kiosk_root) {
max-height: 92vh;
overflow-y: auto;
+ // Compact PIN-pad variant — narrower + tighter than the wide list panels
+ &--pin { width: auto; max-width: 360px; padding: 1.5rem 1.5rem 1.25rem; }
+
h2 {
font-size: 1.5rem;
margin: 0 0 1.5rem;
@@ -522,12 +525,12 @@ html:has(#nfc_kiosk_root) {
.numpad {
display: grid;
grid-template-columns: repeat(3, 1fr);
- gap: 0.75rem;
- margin: 1rem 0;
+ gap: 0.5rem;
+ margin: 0.5rem 0 0.75rem;
button {
- font-size: 1.7rem;
- padding: 1.1rem 0;
+ font-size: 1.45rem;
+ padding: 0.7rem 0;
background: rgba(255,255,255,0.05);
color: var(--nfc-text);
border: 1px solid rgba(255,255,255,0.1);