:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#18231f;background:#f3f6f3}*{box-sizing:border-box}body{margin:0;min-height:100vh}.topbar{height:64px;background:#14251f;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 900px)/2))}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none;font-weight:750;font-size:18px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#b9e5c8;color:#14251f;font-weight:900}.status{font-size:12px;color:#c7d8ce}main{width:min(900px,calc(100% - 32px));margin:34px auto 60px}.panel{background:white;border:1px solid #e1e9e2;border-radius:18px;padding:24px;margin:18px 0;box-shadow:0 5px 20px #17332508}.auth-panel{max-width:480px;margin:8vh auto}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:#548166;margin:0 0 9px}h1{font-size:clamp(27px,5vw,38px);letter-spacing:-.04em;margin:0 0 8px}h2{font-size:21px;margin:0 0 16px}.muted{color:#718078;font-size:14px}label{display:grid;gap:7px;font-size:13px;font-weight:650;margin:16px 0}input,select{width:100%;min-height:46px;padding:11px 12px;border:1px solid #d5dfd7;border-radius:10px;background:#fff;color:#18231f;font:inherit;font-size:15px}input:focus,select:focus{outline:3px solid #b9e5c866;border-color:#5d9a70}button{border:0;border-radius:10px;background:#1d6942;color:white;font:inherit;font-weight:700;padding:13px 18px;min-height:46px;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#edf3ee;color:#254632}.small{min-height:38px;padding:8px 12px;font-size:13px}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions button{flex:1}.message{font-size:13px;min-height:18px;color:#39734d}.welcome-row,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.welcome-row{margin-bottom:22px}.welcome-row h1{font-size:32px}.punch-panel{background:#fafffb;border-color:#cfe1d2}.clock-state{font-size:30px;font-weight:800;letter-spacing:-.04em;margin:12px 0 3px}.punch-button{width:100%;font-size:17px;min-height:56px;margin-top:4px}.entries{display:grid;gap:9px}.entry{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e6ece7;border-radius:10px;font-size:14px}.entry small{display:block;color:#78857d;margin-top:4px}.inline-form{display:flex;align-items:end;gap:12px}.inline-form label{flex:1}footer{text-align:center;color:#8b9890;font-size:12px;padding:20px}@media(max-width:560px){main{margin-top:20px}.panel{padding:18px;border-radius:15px}.inline-form{display:block}.inline-form button{width:100%}.welcome-row{align-items:flex-start}.clock-state{font-size:26px}}
.qr-dialog{position:fixed;inset:0;z-index:1000;background:#102019b8;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}
.qr-dialog[hidden]{display:none}
.qr-card{width:min(100%,430px);background:#fff;border-radius:18px;padding:24px;box-shadow:0 20px 60px #0004;text-align:center}
.qr-card .section-heading{text-align:left;margin-bottom:14px}
.qr-card h2{margin:0}
#qr-canvas{display:block;width:256px;height:256px;max-width:100%;margin:14px auto;background:#fff}
.qr-url{font-size:12px;overflow-wrap:anywhere;margin:8px 0}
.qr-actions{display:flex;gap:10px;flex-wrap:wrap}
.qr-actions button{flex:1}
.qr-instructions{font-size:13px;color:#718078;line-height:1.5;margin:16px 0 0}
.job-entry-name{min-width:0;overflow-wrap:anywhere}
.job-entry-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
@media(max-width:560px){.qr-card{padding:18px}.entry{align-items:center}.job-entry-actions button{padding:9px 11px}}
@media print{
  body *{visibility:hidden!important}
  .qr-dialog:not([hidden]),.qr-dialog:not([hidden]) *{visibility:visible!important}
  .qr-dialog:not([hidden]){display:flex!important;position:absolute;inset:0;background:#fff;padding:0;overflow:visible}
  .qr-card{width:100%;max-width:none;box-shadow:none;border:0;border-radius:0;padding:12mm}
  .qr-actions,#qr-close,#qr-message{display:none!important}
  .qr-card h2{font-size:24pt}
  #qr-canvas{width:65mm!important;height:65mm!important;max-width:none}
  .qr-instructions{font-size:12pt;color:#222}
}
