.app-loading{text-align:center;min-height:100vh;display:grid;place-items:center;padding:24px 20px;font-size:20px;color:#374151}.wizard-shell{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#f1f5f9);display:flex;justify-content:center;align-items:center;padding:32px 16px}.wizard-card{width:100%;max-width:760px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:28px;box-shadow:0 12px 24px -18px #0f172a59}.wizard-title{margin:0 0 14px;font-size:24px;font-weight:600;color:#111827;text-align:center}.step-progress{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px}.step-item{display:flex;align-items:center;gap:8px;border:1px solid #d1d5db;border-radius:9999px;padding:6px 12px;font-size:13px;color:#6b7280;background:#fff}.step-item.active{border-color:#6366f1;color:#3730a3;background:#eef2ff}.step-badge{width:22px;height:22px;border-radius:9999px;display:grid;place-items:center;font-size:12px;font-weight:700;color:#111827;background:#e5e7eb}.step-item.active .step-badge{color:#fff;background:#4f46e5}.step-note{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:14px}.attendance-screen-shell{width:100%;min-height:calc(100vh - 8.5rem);display:flex;justify-content:center;align-items:flex-start}.attendance-screen-card{width:100%;max-width:1100px}.global-floating-alert{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:9999;width:min(92vw,640px);border-radius:12px;border:1px solid transparent;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 16px 28px -18px #0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.global-floating-alert.success{color:#14532d;background:#f0fdf4f5;border-color:#86efac}.global-floating-alert.error{color:#7f1d1d;background:#fef2f2f5;border-color:#fca5a5}.global-floating-alert-close{border:1px solid #d1d5db;background:#fff;color:#334155;width:28px;height:28px;border-radius:9999px;font-size:14px;line-height:1;cursor:pointer}.global-floating-alert-close:hover{background:#f8fafc}.idle-warning-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9997;display:grid;place-items:center;background:#0f172a52;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:16px}.idle-warning-card{width:min(94vw,460px);border-radius:14px;border:1px solid #e2e8f0;background:#fff;padding:18px;box-shadow:0 24px 40px -22px #0f172a85}.idle-warning-card h3{margin:0;font-size:20px;color:#0f172a}.idle-warning-card p{margin:10px 0 0;color:#475569;font-size:14px;line-height:1.5}.idle-warning-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:10px}.idle-warning-continue,.idle-warning-logout{border:1px solid transparent;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer}.idle-warning-continue{background:#0f172a;color:#fff}.idle-warning-continue:hover{background:#1e293b}.idle-warning-logout{border-color:#cbd5e1;background:#fff;color:#334155}.idle-warning-logout:hover{background:#f8fafc}.wizard-form{display:flex;flex-direction:column;gap:10px}.wizard-help{margin:0 0 6px;border:1px solid #e5e7eb;background:#f9fafb;border-radius:10px;padding:12px;font-size:14px;line-height:1.5;color:#374151}.wizard-form label{font-size:14px;font-weight:600;color:#374151}.wizard-form select,.wizard-form input{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:14px;color:#111827;background:#fff}.main-btn,.secondary-btn{border:1px solid transparent;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer}.main-btn{color:#fff;background:#4f46e5}.main-btn:disabled{opacity:.7;cursor:not-allowed}.secondary-btn{border-color:#d1d5db;color:#374151;background:#fff}.secondary-btn:hover{background:#f9fafb}.link-btn{border:none;background:transparent;color:#4f46e5;text-align:left;font-size:14px;cursor:pointer;text-decoration:underline;padding:2px 0}.auth-actions,.face-actions{display:flex;gap:10px;flex-wrap:wrap}.preview-section{margin-top:12px;display:flex;width:100%}.face-preview-grid{gap:12px;flex-wrap:wrap;align-items:flex-start}.face-preview-grid .registered-preview{width:180px;flex-shrink:0}.face-preview-grid .registered-preview img{width:100%;height:180px}.camera-box{border:1px solid #d1d5db;border-radius:10px;overflow:hidden;background:#111827;flex:1;min-width:280px}.camera-box video{display:block;width:100%;max-width:520px;aspect-ratio:1 / 1;-o-object-fit:cover;object-fit:cover;margin:0 auto}.registered-preview{border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fff}.registered-preview-title{margin-bottom:8px;font-size:13px;font-weight:600;color:#374151}.registered-preview img{-o-object-fit:cover;object-fit:cover;border-radius:8px;border:1px solid #e5e7eb}.pose-card{border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc;padding:12px;display:flex;flex-direction:column;gap:10px}.pose-header{font-size:14px;color:#0f172a}.pose-pill-row{display:flex;flex-wrap:wrap;gap:8px}.pose-pill{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:9999px;font-size:12px;padding:6px 10px;cursor:pointer}.pose-pill.active{border-color:#4338ca;color:#3730a3;background:#eef2ff}.pose-pill.done{border-color:#4ade80;color:#166534;background:#f0fdf4}.pose-instruction{border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:10px 12px}.pose-instruction strong{display:block;color:#0f172a;margin-bottom:4px;font-size:14px}.pose-instruction p{margin:0;color:#475569;font-size:13px;line-height:1.5}.pose-capture-status{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:9px;padding:8px 10px;font-size:13px}.scan-progress-box{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:9px;padding:8px 10px;font-size:13px}.error-box,.success-box,.login-hint{border-radius:8px;padding:10px 12px;font-size:14px}.error-box{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.success-box{color:#166534;background:#ecfdf5;border:1px solid #bbf7d0}.login-hint{color:#854d0e;background:#fefce8;border:1px solid #fde68a}@media (max-width: 700px){.wizard-card{padding:20px}.wizard-title{font-size:20px}.idle-warning-actions{flex-direction:column;align-items:stretch}.auth-actions .main-btn,.auth-actions .secondary-btn,.face-actions .main-btn,.face-actions .secondary-btn,.face-preview-grid .registered-preview{width:100%}.face-preview-grid .registered-preview img{height:220px}.camera-box{min-width:100%}}
