:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;color:#101828;background:#f2f4f7;line-height:1.4}*{box-sizing:border-box}body{margin:0;min-height:100vh}.shell{width:min(980px,100%);margin:0 auto;padding:24px 16px 40px}.topbar{display:flex;justify-content:space-between;align-items:end;margin:6px 0 18px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:#667085}h1{margin:2px 0 0;font-size:30px;letter-spacing:-.03em}.clock{font-variant-numeric:tabular-nums;font-weight:750;font-size:26px}.card{background:#fff;border:1px solid #eaecf0;border-radius:18px;padding:18px;box-shadow:0 2px 8px rgba(16,24,40,.05)}.camera-card{padding:12px}.camera-wrap{position:relative;overflow:hidden;border-radius:14px;background:#101828;aspect-ratio:16/9;max-height:460px}.camera-wrap video,.camera-wrap canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#d0d5dd;gap:8px}.face-icon{font-size:48px}.camera-actions{display:flex;align-items:center;gap:12px;padding:12px 4px 2px;flex-wrap:wrap}.btn{appearance:none;border:0;border-radius:11px;padding:12px 16px;font-weight:750;font-size:15px;cursor:pointer;transition:.15s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:#101828;color:#fff}.btn.secondary{background:#e8eefc;color:#1849a9}.btn.success{background:#dcfae6;color:#067647;flex:1}.btn.warning{background:#fff1e7;color:#b54708;flex:1}.section-title{font-weight:800;font-size:17px}.muted{font-size:13px;color:#667085}.recognition-card{margin-top:14px}.recognition-state{display:flex;align-items:center;gap:13px;margin:14px 0;padding:14px;border-radius:14px;background:#f9fafb;border:1px solid #eaecf0}.recognition-state.match{background:#ecfdf3;border-color:#abefc6}.recognition-state.unknown{background:#fffaeb;border-color:#fedf89}.avatar{height:46px;width:46px;border-radius:50%;background:#e4e7ec;display:grid;place-items:center;font-weight:900;font-size:18px}.person-name{font-size:18px;font-weight:800}.attendance-actions{display:flex;gap:10px}.message{font-size:13px;margin-top:10px;min-height:18px;color:#475467}.message.error{color:#b42318}.message.ok{color:#067647}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.badge{font-size:12px;background:#f2f4f7;border-radius:999px;padding:5px 9px;font-weight:750}.field{display:grid;gap:6px;margin:16px 0 10px;font-size:13px;font-weight:700}.field input{width:100%;border:1px solid #d0d5dd;border-radius:10px;padding:12px;font:inherit;outline:none}.field input:focus{border-color:#84adff;box-shadow:0 0 0 3px #d1e0ff}.people-list{display:grid;gap:8px;margin-top:14px}.person-row{display:flex;align-items:center;justify-content:space-between;background:#f9fafb;border-radius:10px;padding:10px 12px}.person-row strong{font-size:14px}.delete-btn{border:0;background:transparent;color:#b42318;font-weight:700;cursor:pointer;padding:6px}.icon-btn{border:1px solid #d0d5dd;background:#fff;border-radius:9px;padding:5px 9px;font-size:18px;cursor:pointer}.timeline{display:grid;gap:9px;margin-top:14px}.entry{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #f2f4f7}.entry:last-child{border-bottom:0}.entry-name{font-weight:750}.entry-action{font-size:12px;font-weight:800;border-radius:999px;padding:4px 8px;height:max-content}.entry-action.in{background:#dcfae6;color:#067647}.entry-action.out{background:#fff1e7;color:#b54708}.empty{color:#98a2b3;font-size:14px;padding:10px 0}footer{text-align:center;color:#98a2b3;font-size:12px;margin-top:20px}@media(max-width:700px){.shell{padding:14px 10px 30px}.topbar{align-items:center}h1{font-size:25px}.clock{font-size:21px}.grid-two{grid-template-columns:1fr}.camera-wrap{aspect-ratio:3/4}.card{border-radius:16px}.attendance-actions{position:sticky;bottom:10px}.btn{min-height:46px}}
