.attendance-actions small{color:var(--muted);font-size:10px;font-weight:400}.attendance-actions button:disabled{opacity:.45;cursor:not-allowed}.attendance-filter{align-items:end;justify-content:flex-start;flex-wrap:wrap}.attendance-filter .field{min-width:160px;font-size:11px}.attendance-session{padding:18px;background:var(--soft);border:1px solid var(--border);border-radius:9px;margin-bottom:18px}.attendance-session small{font-size:10px;color:var(--muted);display:block;letter-spacing:1px}.attendance-session strong{font-size:20px;display:block;margin:7px 0}.qr-preview{background:#eef0eb;margin-top:20px;padding:20px}.qr-poster{text-align:center;background:#fff;color:#20332b;padding:32px;margin-bottom:20px;break-after:page;break-inside:avoid}.qr-poster:last-child{break-after:auto}.qr-poster h1{font-size:36px;margin:24px 0 10px}.qr-poster h2{font-size:19px;margin:12px 0}.qr-poster p{font-size:12px;margin:12px 0}.poster-code svg{width:280px;height:280px;max-width:100%;background:#fff}.poster-code{margin:20px auto}.poster-url{overflow-wrap:anywhere;color:#718274}.qr-poster .print-brand{text-align:left}.qr-poster .print-brand h1{font-size:22px}.qr-poster .print-footer{font-size:10px}.qr-poster .print-brand{display:flex;justify-content:space-between;border-bottom:2px solid #123d30;padding-bottom:16px}.qr-poster .print-footer{display:flex;justify-content:space-between;border-top:1px solid #ddd;padding-top:18px}.qr-poster .print-brand img{width:40px}@media(max-width:760px){.attendance-filter .field{width:100%}.qr-preview{padding:5px}.qr-poster{padding:15px}.qr-poster h1{font-size:26px}.qr-poster .print-brand{display:block}.qr-poster .print-brand>div{margin-bottom:10px}.qr-poster .print-brand h1{font-size:17px}}@media print{.qr-poster{padding:10px;margin:0}.poster-code svg{width:85mm;height:85mm}.qr-poster .print-brand{display:flex}.qr-poster h1{font-size:32px}}
.page-head>div{min-width:0}.page-head .head-actions{flex-wrap:wrap;max-width:100%}@media(max-width:760px){.page-head{display:block}.page-head .head-actions{justify-content:flex-start;margin-top:14px}.attendance-session strong{font-size:18px}}
.attendance-actions .quick-action{min-height:150px;gap:12px;text-align:left;position:relative;opacity:1}.attendance-actions .action-top{display:flex;align-items:center;justify-content:space-between;width:100%}.attendance-actions .action-state{font-size:9px;letter-spacing:1px;font-weight:700;border:1px solid var(--border);border-radius:4px;padding:3px 6px}.attendance-actions .action-label{font-size:14px;font-weight:650}.attendance-actions .quick-action small{font-size:11px;line-height:1.5;color:var(--muted)}.attendance-actions .quick-action.is-current{background:var(--soft);border:2px solid #809f57;color:var(--text);opacity:1;cursor:default}.attendance-actions .is-current .action-state{background:var(--lime);color:#173629;border-color:var(--lime)}.attendance-actions .quick-action.is-available{background:var(--panel);color:var(--text);border-color:#78935f;opacity:1;cursor:pointer}.attendance-actions .quick-action.is-available:hover{background:var(--lime-soft);border-color:#a5c57c;transform:translateY(-2px)}.attendance-actions .quick-action.is-available[data-attendance="Office in"],.attendance-actions .quick-action.is-available[data-attendance="Site start"]{background:var(--lime-soft)}.attendance-actions .quick-action.is-unavailable{background:var(--soft);color:var(--muted);border:1px dashed var(--border);opacity:1;cursor:not-allowed}.attendance-actions .quick-action.is-unavailable svg{color:var(--muted)}.attendance-actions .quick-action:focus-visible{outline:3px solid #b6dc86;outline-offset:4px}.session-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-bottom:18px;font-size:12px}.session-strip>div:last-child{text-align:right}.session-strip small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.session-elapsed{font-size:23px;letter-spacing:1px;font-variant-numeric:tabular-nums;font-weight:650}.attendance-actions .quick-action:disabled:hover{transform:none}@media(max-width:760px){.attendance-actions .action-label{font-size:12px}.attendance-actions .quick-action{padding:15px;min-height:150px}.attendance-actions .action-state{font-size:8px}.session-strip{align-items:flex-start;padding:15px;font-size:11px}.session-strip>div:first-child{max-width:52%}.session-strip .muted{display:block;margin-top:5px}.session-elapsed{font-size:20px}.session-strip small{max-width:140px}}
.duty-location-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);align-items:center;gap:18px}.duty-location-panel>p{text-align:right;margin-left:auto}.duty-location-panel>div>svg{float:left;margin-right:9px}@media(max-width:760px){.duty-location-panel{grid-template-columns:1fr}.duty-location-panel>p{text-align:left;margin-left:0}}
