:root{--bg: #f6f7f4;--card: #ffffff;--ink: #14201a;--muted: #5b6b62;--line: #d9dfd9;--green: #0f7a43;--green-dark: #0f5132;--amber: #b25e00;--red: #b42318;--blue: #1d4ed8;--radius: 14px;font-family:Noto Sans Bengali,Hind Siliguri,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}@media (prefers-color-scheme: dark){:root{--bg: #0e1411;--card: #17201b;--ink: #e8efe9;--muted: #9db0a5;--line: #2a3630;--green: #22a35f;--green-dark: #0f5132;--amber: #e29a3b;--red: #f0645a;--blue: #7aa2ff}}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body{font-size:17px;line-height:1.45}.screen{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--green-dark);color:#fff}.bar h1{margin:0;font-size:19px;font-weight:700;text-align:center}.bar .link{color:#fff;justify-self:start}main{padding:16px;display:flex;flex-direction:column;gap:14px;flex:1}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px}.row>*{flex:1}label{display:flex;flex-direction:column;gap:6px;font-weight:600}input{font:inherit;padding:14px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}input:focus{outline:3px solid color-mix(in srgb,var(--green) 40%,transparent);border-color:var(--green)}.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:600}.check input{width:26px;height:26px;margin-top:2px;flex:none}button{font:inherit;border:0;border-radius:var(--radius);padding:14px 16px;cursor:pointer;min-height:52px}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);color:#fff;font-weight:700}.secondary{background:var(--card);color:var(--ink);border:1.5px solid var(--line);font-weight:600}.danger{background:var(--card);color:var(--red);border:1.5px solid var(--red);font-weight:600}.link{background:none;color:var(--blue);min-height:0;padding:6px 0;font-weight:600}.big{font-size:20px;min-height:60px}.punch{min-height:38vh;font-size:34px;font-weight:800;color:#fff;border-radius:22px;box-shadow:0 6px #0000002e;letter-spacing:.3px}.punch:active{transform:translateY(3px);box-shadow:0 3px #0000002e}.punch.check_in{background:var(--green)}.punch.check_out{background:var(--amber)}.who .name{font-size:22px;font-weight:800}.muted{color:var(--muted);font-size:15px}.state{padding:12px 14px;border-radius:12px;background:var(--card);border-left:6px solid var(--muted)}.state.in{border-left-color:var(--green)}.notice{padding:12px 14px;border-radius:12px;font-weight:600;border:1.5px solid}.notice.info{border-color:var(--blue);color:var(--blue)}.notice.ok{border-color:var(--green);color:var(--green)}.notice.warn{border-color:var(--amber);color:var(--amber)}.notice.error{border-color:var(--red);color:var(--red)}.notice-text{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin:0;font-size:16px}.camera{position:relative;width:100%;aspect-ratio:3 / 4;background:#000;border-radius:18px;overflow:hidden}.camera video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.oval{position:absolute;inset:12% 18%;border:4px dashed rgba(255,255,255,.85);border-radius:50%}.hint{text-align:center;font-size:19px;font-weight:700;margin:4px 0}.result{text-align:center;padding:22px 16px;border-radius:18px;background:var(--card);border:2px solid var(--line)}.result h2{margin:6px 0 10px;font-size:26px}.result p{margin:6px 0}.result .tick{font-size:56px;line-height:1}.result.ok{border-color:var(--green)}.result.ok .tick,.result.ok h2{color:var(--green)}.result.pending{border-color:var(--amber)}.result.pending h2{color:var(--amber)}.result.bad{border-color:var(--red)}.result.bad .tick,.result.bad h2{color:var(--red)}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.history li{background:var(--card);border-radius:12px;padding:12px 14px;border-left:6px solid var(--green)}.history li.flagged{border-left-color:var(--amber)}.history .what{font-weight:800}.history .flags{color:var(--amber);font-size:14px;font-weight:600;margin-top:4px}.tabs{display:flex;gap:6px;background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:4px}.tab{flex:1;background:none;color:var(--muted);min-height:44px;font-weight:700;border-radius:9px;padding:8px}.tab.on{background:var(--green);color:#fff}select{font:inherit;padding:14px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}.card{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:16px}.card h2{margin:0;font-size:20px}.code-card{text-align:center;display:flex;flex-direction:column;gap:8px}.big-code{font-size:40px;font-weight:800;letter-spacing:6px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--green)}.workers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.workers li{background:var(--card);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line)}.workers .what{font-weight:800}.workers .row button{min-height:44px;font-size:15px}.warn{color:var(--amber)}
