:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20342b;background:#f5f7f7;font-synthesis:none;letter-spacing:0}
.warehouse main{max-width:960px}.warehouse #warehouse-unlock{max-width:620px}.warehouse select{font:inherit;font-size:18px;min-height:56px;width:100%;padding:10px;border:1px solid #b5c5bc;border-radius:5px;background:white;color:#20342b}.warehouse #worker-pin{font-size:24px;max-width:240px}.warehouse .punch-controls{max-width:none;gap:16px}.warehouse .punch-controls button{min-height:90px;font-size:20px}.warehouse #followup-time{white-space:pre-line}.warehouse #worker-name{overflow-wrap:anywhere;max-width:100%}.warehouse #warehouse-heading{font-size:26px}
#job-controls{display:grid;gap:8px;max-width:600px;margin:18px 0 24px;min-width:0}#job-controls[hidden]{display:none}#job-select{font:inherit;font-size:16px;min-height:50px;border:1px solid #b5c5bc;border-radius:5px;background:white;color:#20342b;width:100%;min-width:0;padding:10px 12px}#job-select:focus-visible{outline:3px solid #25628c;outline-offset:3px}#job-selection{margin:0;min-height:24px;line-height:1.5;font-weight:600}#job-source{margin:0;font-size:12px;color:#61706a}.event-job{display:block;flex-basis:100%;font-size:14px;color:#61706a}
#saved-photo{width:100%;max-height:42dvh;object-fit:contain;aspect-ratio:3/4}
video#punch-camera{display:block;width:100%;max-height:38dvh;aspect-ratio:3/4;object-fit:contain;background:#192322;border-radius:4px;transform:scaleX(-1)}.verification-actions{display:grid;gap:12px}.privacy-note{font-size:13px;color:#61706a}.verification-summary{display:block;flex-basis:100%;font-size:13px;color:#25628c}#verification-error{color:#842222}#verification-dialog{width:min(460px,calc(100% - 24px))}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{min-height:48px;border:1px solid #b5c5bc;border-radius:6px;background:white;color:#20342b;padding:11px 18px;font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #25628c;outline-offset:3px}button.primary{background:#117547;color:white;border-color:#117547}input{min-height:48px;border:1px solid #b5c5bc;border-radius:5px;padding:10px 12px;width:100%;color:#20342b;background:white}header{min-height:86px;background:white;border-bottom:1px solid #dbe3df;display:flex;align-items:center;gap:20px;padding:16px 28px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.brand strong{font-size:22px}.brand span span{display:block;color:#61706a;font-size:14px}.pilot{font-size:13px;color:#25628c;margin-left:auto}main{max-width:1040px;margin:0 auto;padding:32px 28px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}h1{font-size:28px;line-height:1.3;margin:0}h2{font-size:20px;line-height:1.35;margin:0 0 18px}section{padding:30px 0;border-bottom:1px solid #dbe3df}form{display:grid;gap:12px;max-width:460px}form button{margin-top:8px}p{line-height:1.55;overflow-wrap:anywhere}label{font-weight:600}#connection{color:#61706a;font-size:14px}#message,#error{padding:14px 16px;border-left:4px solid #25628c;background:#edf4fa}#error{border-color:#ad3737;background:#fff0ef;color:#842222}.active{color:#117547;font-size:14px}footer{padding:24px 0;color:#61706a;font-size:13px}ol{padding:0;list-style:none}li{padding:14px 0;border-bottom:1px solid #dbe3df;line-height:1.5;overflow-wrap:anywhere}[hidden]{display:none!important}
@media(max-width:600px){header{padding:14px 18px;gap:12px}main{padding:24px 18px}.pilot{font-size:12px}h1{font-size:25px}#sign-out{padding:8px 12px;min-height:44px}section{padding:24px 0}form{max-width:none}button.primary{width:100%}}
.punch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:600px}.punch-controls button{min-height:72px;white-space:normal}.punch-controls button[data-kind="OUT"]{background:#25628c;border-color:#25628c}li{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}li button{font-size:14px}dialog{width:min(620px,calc(100% - 24px));max-height:calc(100dvh - 24px);border:1px solid #b5c5bc;border-radius:6px;padding:24px;color:#20342b}dialog::backdrop{background:#182b2255}dialog form{max-width:none}fieldset{border:0;margin:0;padding:12px 0;display:flex;gap:12px}legend{font-weight:600;line-height:1.45;padding:0}fieldset label{display:flex;align-items:center;gap:10px;padding:12px;min-height:48px;flex:1;background:#f5f7f7;border:1px solid #dbe3df;border-radius:5px}fieldset input{width:22px;min-height:22px;height:22px;margin:0}#sync-status{color:#25628c}#followup-status{border-left:4px solid #25628c;background:#edf4fa;padding:12px}
:root { letter-spacing: 0; }
.review main { max-width: 1500px; }
.review-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; max-width:none; }
.review-filters label { flex:1 1 150px; }
.review-filters button { width:auto; margin:0; min-height:48px; }
.review-table { overflow-x:auto; }
.review table { width:100%; border-collapse:collapse; font-size:14px; }
.review th,.review td { padding:12px 10px; border-bottom:1px solid #d9e2df; text-align:left; vertical-align:top; min-width:100px; }
.review th { background:#edf3f0; color:#304c40; }
.review td button { padding:8px; min-height:40px; margin:0; }
.review-note { color:#5a675e; }
.review textarea { width:100%; min-height:90px; font:inherit; }
.review select { width:100%; min-height:48px; font:inherit; padding:10px; border:1px solid #b5c5bc; border-radius:5px; background:white; color:#20342b; }
.review .review-employee th { background:#dcebe3; color:#183e2a; font-size:17px; border-top:2px solid #8ba699; overflow-wrap:anywhere; }
.review .review-day th { background:#f2f4f3; color:#46534c; font-size:13px; padding:8px 10px; }
.review .review-corrections { min-width:230px; max-width:380px; margin:0; padding-left:18px; overflow-wrap:anywhere; }
.review .review-corrections li + li { margin-top:12px; }
.review .review-corrections div { color:#506057; margin-top:4px; }
.review .review-unlinked { background:#f2f6fa; }
.review #history-warning,.review #coverage-warning { border-left:3px solid #527b99; padding:8px 12px; background:#edf4fa; }
.review .worker-checkbox { display:flex; align-items:center; gap:12px; }
.review .worker-checkbox input { width:22px; min-height:22px; }
.review #worker-rows td:last-child { display:flex; gap:8px; }
.crew main{max-width:760px}.crew h1{font-size:24px;overflow-wrap:anywhere}.crew #job-search{margin:8px 0}.crew #job{margin-bottom:24px}.crew #setup-check{border-left:4px solid #25628c;background:#edf4fa;padding:18px;margin:0 0 24px}.crew #setup-check h2{margin-bottom:8px}.crew #setup-check p{margin:0 0 12px}.crew #pin{max-width:240px}.crew #passkey{margin-top:18px}.crew #sign-out{margin-top:16px}.crew .punch-controls button{font-size:18px}.crew-qr{display:block;max-width:100%;height:auto;margin:16px auto}.review dialog a{display:block;overflow-wrap:anywhere;margin:12px 0}.review #worker-rows td:last-child{flex-wrap:wrap}
.crew .punch-controls{margin-bottom:24px}
.crew #pin-form{gap:8px}.crew #pin-label{margin:0;font-weight:600}.crew #pin-display{margin:0;font-size:28px;line-height:40px;letter-spacing:8px;color:#20342b}
.crew #pin-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:360px}
.crew #pin-keypad button{margin:0;min-height:52px;padding:8px;font-size:24px;border:2px solid #61706a}.crew #pin-keypad button.primary{width:auto;border-color:#117547}
.crew #pin-keypad,.crew #pin-keypad button{touch-action:manipulation}
.crew #passkey{border:2px solid #61706a}.crew .crew-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-height:700px){.crew header{min-height:0;padding-top:8px;padding-bottom:8px;gap:4px 12px}.crew .brand img{width:36px;height:36px}.crew main{padding-top:12px}.crew #error{margin:0 0 8px;padding:8px 12px;font-size:14px;line-height:1.4}.crew #unlock{padding-top:8px}.crew #pin-form{gap:6px}.crew #pin-label{line-height:1.3}.crew #pin-display{line-height:32px}.crew #pin-keypad{gap:6px}.crew #pin-keypad button{min-height:48px}.crew #passkey{margin-top:8px;padding:4px 12px}}
.enrollment main{max-width:960px}
.enrollment .review-filters{display:flex;flex-wrap:wrap;align-items:end;gap:16px}
.enrollment .review-filters label:first-child{flex:1;min-width:180px}
.enrollment .review-filters input,.enrollment .review-filters select{width:100%}
.enrollment select{font:inherit;min-height:48px;padding:10px;border:1px solid #b5c5bc;border-radius:5px;background:white;color:#20342b}
.enrollment-worker{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid #cbd4cf}
.enrollment-worker p{margin:6px 0 0;color:#506057;font-size:14px;overflow-wrap:anywhere}
.enrollment-worker strong{overflow-wrap:anywhere}
.enrollment dialog a{display:block;overflow-wrap:anywhere;margin:12px 0}
.enrollment #error{border-left:3px solid #a43a32;padding:12px;background:#fff0ee}
@media(max-width:480px){.enrollment .heading{align-items:start;flex-direction:column;gap:8px}.enrollment-worker{grid-template-columns:minmax(0,1fr)}.enrollment-worker button{justify-self:start}.enrollment .review-filters{gap:12px}}
