 :root{font-family:Inter,"Segoe UI",system-ui,sans-serif;color:#102c3e;background:#f1f6f7;color-scheme:light;font-synthesis:none;--teal:#126d64;--muted:#597084;--border:#d9e4eb}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}a{color:var(--teal);text-underline-offset:3px}p{line-height:1.55}h1,h2,p{margin:0}h1{font-size:clamp(28px,3.4vw,42px);letter-spacing:-.035em}h2{font-size:clamp(21px,2vw,27px);letter-spacing:-.025em;line-height:1.2}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.topbar{background:#ffffffed;border-bottom:1px solid var(--border);box-shadow:0 2px 8px #17354905}.topbar-inner{max-width:1400px;margin:auto;min-height:76px;padding:12px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px;font-size:26px;font-weight:750;color:#102c3e;text-decoration:none}.brand-mark{display:grid;place-items:center;background:linear-gradient(135deg,#228b7d,#0d5d57);color:white;width:44px;height:44px;border-radius:15px}.topbar-note,.heading-note{color:var(--muted);font-size:15px}main{max-width:1400px;margin:auto;padding:32px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 28px}.page-heading #location{color:var(--muted);margin-top:6px;font-size:18px;overflow-wrap:anywhere}#capture{display:grid;grid-template-columns:1.08fr 1fr;gap:0 24px;align-items:stretch}section{min-width:0;background:white;border:1px solid var(--border);padding:26px;border-radius:14px;box-shadow:0 5px 20px #17354903}.fields-card{grid-column:1;grid-row:1;border-bottom:0;border-radius:14px 14px 0 0;padding-bottom:10px}.camera-card{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column}.actions-card{grid-column:1;grid-row:2;border-top:0;border-radius:0 0 14px 14px;padding-top:8px}.card-heading{display:flex;align-items:center;gap:18px;margin-bottom:22px}.card-heading p{color:var(--muted);margin-top:5px}.section-icon{display:grid;place-items:center;flex:0 0 60px;height:60px;border-radius:50%;background:#eaf5f2;color:var(--teal)}label{display:block;margin:20px 0 8px;font-weight:600;font-size:16px}select{width:100%;min-height:52px;padding:12px 38px 12px 15px;background:white;border:1px solid #b7c9d5;border-radius:8px;color:#173249;font-size:16px}button{min-height:52px;border:1px solid transparent;border-radius:9px;padding:12px 16px;background:#126d64;color:white;font-weight:650;line-height:1.35;cursor:pointer;touch-action:manipulation;white-space:normal}button:hover:not(:disabled){filter:brightness(.94)}button.secondary{background:#eff7f5;border-color:#bdd8d3;color:#185e57}button:disabled{opacity:.55;cursor:not-allowed}.camera-frame{flex:1;min-height:240px;display:flex;align-items:center;background:#1c303a;border-radius:12px;overflow:hidden;margin:16px 0}#camera{display:block;width:100%;height:100%;min-height:240px;max-height:440px;object-fit:cover;transform:scaleX(-1);background:#1c303a}#camera-status{background:#edf6f4;padding:14px 16px;border-radius:9px;color:#285a5b;font-size:15px}.camera-buttons,.automatic-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.automatic-controls{background:#edf7f5;padding:18px;border-radius:10px;margin:8px 0 18px}.automatic-controls p{font-size:14px;margin-bottom:16px}.automatic-controls p span{display:block;color:var(--muted);margin-top:4px}.automatic-buttons button{font-size:14px}#save{width:100%;font-size:18px;margin-top:6px}.check{display:flex;align-items:flex-start;gap:12px;line-height:1.5}.check input{width:24px;height:24px;flex:none}#message:not(:empty){padding:16px 18px;background:#fff1d3;color:#76520d;border:1px solid #ead7a6;border-radius:10px;margin-bottom:20px}#capture-status:not(:empty){padding:14px;background:#edf7f5;border-radius:9px;font-weight:600;margin-bottom:12px}#capture-status.event-accepted{color:#166534;background:#dcfce7}#capture-status.event-pending{color:#854d0e;background:#fef9c3}#capture-status.event-conflict{color:#991b1b;background:#fee2e2}footer{padding:26px 4px max(20px,env(safe-area-inset-bottom));font-size:15px}:focus-visible{outline:3px solid #d9981c;outline-offset:3px}[hidden]{display:none!important}
@media(max-width:1023px){main{max-width:860px;padding:28px 24px}.topbar-inner{padding-inline:24px}#capture{grid-template-columns:1fr;gap:16px}.fields-card,.camera-card,.actions-card{grid-column:1;grid-row:auto;border:1px solid var(--border);border-radius:14px;padding:24px}.camera-card{border-bottom:0;border-radius:14px 14px 0 0;padding-bottom:8px}.actions-card{margin-top:-16px;border-top:0;border-radius:0 0 14px 14px;padding-top:8px}.camera-frame{min-height:220px;aspect-ratio:16/7}#camera{max-height:340px;min-height:220px}.heading-note{display:none}footer{text-align:center}}
@media(max-width:540px){.topbar-inner{min-height:68px;padding:12px 16px}.brand{font-size:23px;gap:10px}.brand-mark{width:40px;height:40px}.topbar-note{display:none}main{padding:18px 14px}.page-heading{margin-bottom:18px}.page-heading h1{display:none}.page-heading #location{font-size:15px;margin:0}.card-heading{gap:12px;margin-bottom:18px}.section-icon{flex-basis:46px;height:46px}.card-heading p{font-size:14px}h2{font-size:21px}#capture{gap:0}.fields-card,.camera-card,.actions-card{padding:20px 16px;border-radius:0}.fields-card{border-radius:12px 12px 0 0;border-bottom:0;padding-bottom:12px}.camera-card{border-top:0;padding-top:16px;padding-bottom:4px}.camera-card .card-heading{border-top:1px solid var(--border);padding-top:20px}.actions-card{margin-top:0;border-top:0;border-radius:0 0 12px 12px;padding-top:8px}.camera-frame{aspect-ratio:4/3;min-height:180px}#camera{min-height:180px;max-height:300px}.automatic-controls{padding:14px}.automatic-buttons{grid-template-columns:1fr}.automatic-buttons button{font-size:15px}footer{text-align:left;padding-top:24px}button{padding-inline:10px}label{margin-top:17px}}
@media(prefers-reduced-motion:no-preference){button{transition:filter .15s ease}}

.brand-logo{display:block;width:220px;height:auto;max-width:100%}@media(max-width:540px){.brand-logo{width:190px}}
.event-success{position:fixed;z-index:1000;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px;text-align:center;background:#f0fdf4;color:#14532d;border:3px solid #16a34a;border-radius:18px;box-shadow:0 16px 60px #12352d55}
.event-success .success-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;background:#15803d;color:white;border-radius:50%;font-size:42px;font-weight:700}
.event-success h2{font-size:28px;color:#14532d}.event-success p{font-size:20px;line-height:1.5;margin:16px 0;overflow-wrap:anywhere}.event-success button{min-width:160px;background:#15803d}
.event-success.event-pending{background:#fffbeb;color:#854d0e;border-color:#d97706}.event-success.event-pending h2{color:#854d0e}.event-success.event-pending .success-icon,.event-success.event-pending button{background:#b45309}
.install-card{display:flex;align-items:center;gap:20px;margin-bottom:24px;background:#edf7f3;border-color:#b9d9cb}.install-icon{flex:none;border-radius:16px}.install-copy{flex:1}.install-copy h2{font-size:21px}.install-copy p{margin-top:6px;color:#355e53}.install-copy details{margin-top:10px;font-size:14px}.install-copy summary{cursor:pointer;color:#126d64;font-weight:650}.install-card button{flex:none}.install-copy #install-status:empty{display:none}@media(max-width:600px){.install-card{flex-wrap:wrap;gap:12px;padding:18px}.install-icon{width:48px;height:48px}.install-copy{flex-basis:calc(100% - 60px)}.install-copy h2{font-size:18px}.install-card button{width:100%}}@media(display-mode:standalone),(display-mode:fullscreen){#install-card{display:none}}
#pin-fields input{display:block;box-sizing:border-box;appearance:none;-webkit-appearance:none;width:100%;max-width:100%;min-width:0;min-height:52px;padding:12px 15px;background:#fcfdff;border:1px solid #cddae5;border-radius:8px;color:#173249;font:inherit;font-size:16px;line-height:1.5;box-shadow:none}#pin-fields input::placeholder{color:#7a8ca3;opacity:1}#pin-fields input:focus{border-color:#218b80;outline:3px solid #13796c40;outline-offset:2px}#employee-pin{letter-spacing:.3em}#pin-fields p,#pin-policy{margin-top:10px;color:#597084;font-size:14px;line-height:1.5}#pin-fields label{margin-top:20px;margin-bottom:8px}#use-pin{margin-bottom:14px}
.camera-frame{position:relative;border:4px solid #d97706}.camera-frame.signal-green{border-color:#16a34a}.camera-frame.signal-red{border-color:#dc2626}.camera-indicator{position:absolute;z-index:2;top:12px;left:12px;max-width:calc(100% - 24px);padding:10px 14px;border-radius:8px;font-size:16px;font-weight:750;line-height:1.35;box-shadow:0 2px 10px #0003;pointer-events:none}.camera-indicator.signal-yellow{background:#fef3c7;color:#78350f}.camera-indicator.signal-green{background:#dcfce7;color:#14532d}.camera-indicator.signal-red{background:#fee2e2;color:#7f1d1d}

.face-enrollment-dialog{width:min(560px,96vw);max-height:94dvh;overflow:auto;border:1px solid #cbded9;border-radius:18px;padding:22px;color:#173249;background:white}.face-enrollment-dialog::backdrop{background:#102c3ecc}.face-enrollment-dialog p{margin:12px 0}.enrollment-preview{position:relative;background:#173249;border-radius:12px;overflow:hidden;aspect-ratio:4/3}.enrollment-preview video{width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.face-guide{position:absolute;inset:12% 28%;border:2px dashed #fff9;border-radius:50%;pointer-events:none}.enrollment-actions{display:grid;gap:10px;margin-top:18px}.face-enrollment-dialog [data-status]{background:#edf6f4;padding:14px;border-radius:8px;min-height:70px}

.movement-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 20px}.movement-options [aria-pressed=true]{background:#126d64;color:white;border-color:#126d64;box-shadow:0 0 0 3px #126d6425}.flow-action-select{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);padding:0;border:0}.flow-note{padding:12px;background:#edf7f5;border-radius:8px;margin-bottom:14px}#flow-continue,#flow-back{width:100%;margin-top:12px}.movement-review{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;margin:auto;padding:24px;border:1px solid var(--border);border-radius:16px;color:#173249;background:white}.movement-review::backdrop{background:#102c3ecc}.movement-review p{margin:12px 0}.review-person{font-weight:700}.review-warnings:not(:empty){padding:12px;background:#fff1d3;color:#76520d;border-radius:8px}.movement-review textarea{width:100%;font:inherit;font-size:16px;padding:12px;border:1px solid var(--border);border-radius:8px}.review-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}#capture.flow-selecting{display:block;max-width:720px;margin-inline:auto}#capture.flow-selecting .fields-card{border:1px solid var(--border);border-radius:14px}#capture.flow-selecting .camera-card,#capture.flow-selecting .actions-card{display:none}
@media(max-width:540px){.movement-options,.review-buttons{grid-template-columns:1fr}.movement-review{padding:18px}}

@media (max-width:1024px), (max-width:1366px) and (hover:none) and (pointer:coarse) {
    main { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
    .page-heading { flex-wrap:wrap; gap:12px; }
    .page-heading > div { min-width:0; }
    .topbar-inner { gap:12px; }
    input,select,textarea { min-width:0; max-width:100%; font-size:16px; }
    p,h1,h2,summary { overflow-wrap:anywhere; }
    button,a,summary { touch-action:manipulation; }
    summary { min-height:44px; padding-block:10px; }
    footer > a { display:inline-flex; min-height:44px; align-items:center; }
    .face-enrollment-dialog { width:min(560px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); margin:auto; }
    .event-success { padding:20px; }
}
@media (max-width:639px) {
    .page-heading > button { width:100%; }
    .camera-buttons,.automatic-buttons { grid-template-columns:1fr; }
    .camera-frame { min-height:160px; }
    #camera { min-height:160px; max-height:38dvh; }
    .camera-indicator { font-size:14px; padding:8px 10px; }
    .face-enrollment-dialog { padding:16px; }
    .event-success h2 { font-size:24px; }
    .event-success p { font-size:17px; }
    .event-success button { width:100%; }
}

.review-reasons{border:0;padding:0;margin:18px 0 0;min-width:0}.review-reasons legend{font-weight:700;margin-bottom:10px}.review-reason-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.review-reason-option{position:relative;margin:0;cursor:pointer}.review-reason-option input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}.review-reason-option span{display:flex;align-items:center;min-height:56px;height:100%;padding:12px;border:2px solid #bcd4cf;border-radius:10px;background:#eff7f5;color:#245d55;font-weight:600}.review-reason-option input:checked+span{background:#126d64;color:white;border-color:#126d64}.review-reason-option input:focus-visible+span{outline:3px solid #d99000;outline-offset:2px}.movement-review details summary{cursor:pointer;min-height:44px;padding:12px 0}.movement-review [data-review-reasons]>.muted{font-size:14px}@media(max-width:540px){.review-reason-options{grid-template-columns:1fr}}
