.qr-label-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.qr-label-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #1a3a5233;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;border:1px solid rgba(26,58,82,.1)}.qr-label-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid rgba(26,58,82,.1)}.qr-label-modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1a3a52}.qr-label-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#1a3a52;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.qr-label-modal-close:hover{background-color:#1a3a520d}.qr-label-modal-content{flex:1;overflow-y:auto;padding:24px}.qr-label-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:16px}.qr-label-loading p{font-size:14px;color:#1a3a52;margin:0}.spinner{width:40px;height:40px;border:4px solid rgba(26,58,82,.1);border-top-color:#006241;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.qr-label-error{background-color:#fee2e2;color:#991b1b;padding:12px 16px;border-radius:8px;border:1px solid #fecaca;margin-bottom:16px;font-size:14px}.qr-label-empty{display:flex;align-items:center;justify-content:center;min-height:300px;text-align:center}.qr-label-empty p{color:#6b7280;font-size:14px;margin:0}.qr-label-preview-wrapper{display:flex;flex-direction:column;gap:16px}.qr-label-preview-wrapper h3{margin:0;font-size:14px;font-weight:600;color:#1a3a52}.qr-label-grid{display:grid;grid-template-columns:repeat(var(--grid-columns, 3),var(--sticker-size-px, 230px));gap:0;background:#fff;padding:var(--page-margin-px, 48px);border:2px solid #d1d5db;border-radius:8px;max-height:400px;overflow-y:auto;justify-content:flex-start}.qr-label-sticker{width:var(--sticker-size-px, 230px);height:var(--sticker-size-px, 230px);display:flex;align-items:center;justify-content:center;border:1px dashed #b0b0b0;padding:var(--padding-px, 15px);box-sizing:border-box}.qr-label-image{width:var(--qr-size-px, 200px);height:var(--qr-size-px, 200px);object-fit:contain}.qr-label-info{font-size:12px;color:#6b7280;text-align:center;margin:0}.qr-label-config-panel{background:#f9fafb;border:1px solid rgba(26,58,82,.1);border-radius:8px;padding:16px;margin-bottom:20px}.qr-label-config-panel h3{margin:0 0 16px;font-size:14px;font-weight:600;color:#1a3a52}.qr-label-config-group{margin-bottom:16px}.qr-label-config-group:last-child{margin-bottom:0}.qr-label-config-group label{display:block;font-size:12px;font-weight:500;color:#1a3a52;margin-bottom:8px}.config-value{color:#006241;font-weight:600}.config-slider{width:100%;height:6px;border-radius:3px;background:#e5e7eb;outline:none;-webkit-appearance:none;appearance:none}.config-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#006241;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #1a3a5233;transition:background .2s}.config-slider::-webkit-slider-thumb:hover{background:#004f2c}.config-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#006241;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #1a3a5233;transition:background .2s}.config-slider::-moz-range-thumb:hover{background:#004f2c}.config-range{font-size:11px;color:#6b7280;margin-top:6px}.config-text-input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:14px;font-family:inherit;box-sizing:border-box;transition:border-color .2s}.config-text-input:focus{outline:none;border-color:#006241;box-shadow:0 0 0 3px #0062411a}.qr-label-config-info{background:#fff;border:1px solid rgba(26,58,82,.1);border-radius:4px;padding:12px;margin-top:12px}.qr-label-config-info p{margin:0;font-size:12px;color:#1a3a52}.qr-label-modal-footer{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid rgba(26,58,82,.1)}.qr-label-modal-footer .btn-primary,.qr-label-modal-footer .btn-secondary,.qr-label-modal-footer .btn-tertiary{padding:10px 24px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;min-height:44px}@media(max-width:480px){.qr-label-modal-footer{gap:8px;padding:12px 16px}.qr-label-modal-footer .btn-primary,.qr-label-modal-footer .btn-secondary,.qr-label-modal-footer .btn-tertiary{padding:10px 12px}}.qr-label-modal-footer .btn-primary{background:#ca4f02;color:#fff}.qr-label-modal-footer .btn-primary:hover:not(:disabled){background:#b84400}.qr-label-modal-footer .btn-primary:disabled{opacity:.5;cursor:not-allowed}.qr-label-modal-footer .btn-secondary,.qr-label-modal-footer .btn-tertiary{background:#f3f4f6;color:#1a3a52;border:1px solid #e5e7eb}.qr-label-modal-footer .btn-secondary:hover,.qr-label-modal-footer .btn-tertiary:hover{background:#e5e7eb}.qr-label-decision-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.qr-label-decision-dialog{background:#fff;border-radius:12px;box-shadow:0 10px 40px #1a3a5233;max-width:500px;width:100%;border:1px solid rgba(26,58,82,.1);overflow:hidden}.qr-label-decision-header{padding:24px;border-bottom:1px solid rgba(26,58,82,.1)}.qr-label-decision-header h2{margin:0;font-size:20px;font-weight:600;color:#1a3a52}.qr-label-decision-content{padding:24px}.qr-label-decision-question{margin:0 0 24px;font-size:16px;font-weight:500;color:#1a3a52}.qr-label-decision-options{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.qr-label-decision-option{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;font-size:14px;text-align:left;background:#fff}.qr-label-decision-option:hover{border-color:#ca4f02;background:#fff9f5}.qr-label-decision-option.btn-primary{background:#f0f9ff;border-color:#006241}.qr-label-decision-option.btn-primary:hover{background:#e0f2fe;border-color:#004f2c}.option-title{font-weight:600;color:#1a3a52}.option-description{font-size:13px;color:#4b5563}.qr-label-decision-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid rgba(26,58,82,.1);background:#f9fafb}.qr-label-decision-footer .btn-tertiary{background:#f3f4f6;color:#1a3a52;border:1px solid #e5e7eb;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.qr-label-decision-footer .btn-tertiary:hover{background:#e5e7eb}.qr-label-template-selector-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #1a3a5233;max-width:1000px;width:100%;max-height:90vh;display:flex;flex-direction:column;border:1px solid rgba(26,58,82,.1)}.qr-label-modal-body{flex:1;overflow-y:auto;padding:24px}.qr-label-loading-state{display:flex;align-items:center;justify-content:center;min-height:300px;color:#6b7280;font-size:16px}.qr-label-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(350px,100%),1fr));gap:24px}.qr-label-template-card{display:flex;flex-direction:column;border:2px solid #e5e7eb;border-radius:12px;padding:16px;cursor:pointer;transition:all .2s;background:#fff;text-align:left;font:inherit}.qr-label-template-card:hover{border-color:#006241;background:#f0fdf4;box-shadow:0 4px 12px #00624126;transform:translateY(-2px)}.qr-label-template-card:focus,.qr-label-template-card:active{outline:2px solid #006241;outline-offset:2px;background:#f0f9ff}.qr-label-template-card:focus-visible{background:#f0f9ff}.qr-label-template-card-header{margin-bottom:12px}.qr-label-template-card-header h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#0f172a}.qr-label-template-description{margin:0;font-size:14px;color:#1a3a52;line-height:1.4;font-weight:400;opacity:.85}.qr-label-template-preview-area{flex:1;display:flex;align-items:center;justify-content:center;border:1px dashed #d1d5db;border-radius:8px;padding:16px;margin:12px 0;min-height:200px;background:#f9fafb;overflow:hidden}.qr-label-template-preview-content{display:flex;align-items:center;justify-content:center}.qr-label-template-card-footer{padding-top:12px;border-top:1px solid #e5e7eb;text-align:center}.qr-label-select-text{font-size:13px;color:#006241;font-weight:500}.qr-label-template-preview-grid{display:grid;gap:0;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;min-height:250px;overflow:visible;margin-bottom:16px;box-sizing:border-box}.qr-label-template-preview-item{display:flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;overflow:hidden}.tcny-volunteer-card{width:3.5in;height:2.125in;background:#fff;border:1px solid #2b2b2b;padding:.1in;box-sizing:border-box;display:flex;flex-direction:column;font-family:Arial,sans-serif;color:#000;font-size:8px;overflow:hidden}.tcny-card-top-row{display:flex;gap:.08in;align-items:center;padding-bottom:.03in;width:fit-content;align-self:center;flex-shrink:0}.tcny-card-logo-wrapper{flex-shrink:0;width:.45in;height:.45in}.tcny-card-logo-wrapper img{width:100%;height:100%;object-fit:contain}.tcny-card-header-content{display:flex;flex-direction:column;gap:.01in}.tcny-card-header-row{display:flex;gap:.08in;align-items:center;font-size:10px;font-weight:600}.tcny-card-org-name-en,.tcny-card-org-name-cn{white-space:nowrap;font-weight:700}.tcny-card-region-label-en,.tcny-card-region-label-cn{font-size:10px;color:#2805ff;white-space:nowrap;font-weight:700}.tcny-card-title-row{display:flex;justify-content:center;align-items:center;padding:.01in 0;margin-bottom:.02in;font-size:14px;font-weight:700;text-align:center;flex-shrink:0}.tcny-card-middle{flex:1;display:flex;gap:.04in;align-items:stretch;padding-top:.01in}.tcny-card-fields{flex:1;display:flex;flex-direction:column;gap:.06in}.tcny-card-field-row{display:flex;gap:.03in;flex:1;min-height:0}.tcny-card-field-labels{flex-shrink:0;display:flex;flex-direction:column;gap:0;min-width:.5in;width:.5in;text-align:right;padding-left:.02in}.tcny-card-field-label-cn{font-size:10px;font-weight:600;line-height:1;flex:1;display:flex;align-items:flex-end;justify-content:flex-end;width:100%;white-space:nowrap}.tcny-card-field-label-en{font-size:10px;font-weight:600;line-height:1;flex:1;display:flex;align-items:flex-start;justify-content:flex-end;width:100%;white-space:nowrap}.tcny-card-field-value{flex:1;display:flex;flex-direction:column;min-height:0;padding-left:.02in;padding-right:.02in}.tcny-card-field-value-top{flex:1;font-size:14px;color:#2805ff;font-weight:600;line-height:1.1;display:flex;align-items:flex-end;min-width:0;min-height:.12in;white-space:nowrap}.tcny-card-field-value-bottom{flex:1;font-size:14px;color:#2805ff;font-weight:600;border-bottom:1.2px solid #000000;padding-bottom:.01in;display:flex;min-height:.12in;white-space:nowrap}.tcny-card-qr{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;padding-left:10px;width:auto}.tcny-card-qr img{width:.65in;height:.65in;border:none}.tcny-card-year{position:absolute;right:0;top:0;font-size:10px;font-weight:600;color:#2805ff;white-space:nowrap}.tcny-card-footer{padding-top:.02in;font-size:10px;line-height:1.2;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;width:100%}.tcny-card-footer-note{line-height:1.1;text-align:center}.tcny-card-footer-note-eng{display:block;font-size:9px;line-height:1.1;text-align:center;margin-top:1px}.qr-camera-lookup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md)}.qr-camera-lookup-modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.qr-camera-lookup-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid rgba(26,58,82,.1);background:linear-gradient(135deg,#0062410a,#2462bc08)}.qr-camera-lookup-header h2{margin:0;font-size:var(--fs-lg);color:var(--color-text-dark)}.qr-camera-lookup-close{background:none;border:none;font-size:24px;color:var(--color-text-light);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color .2s,color .2s}.qr-camera-lookup-close:hover{background-color:#1a3a5214;color:var(--color-text-dark)}.qr-camera-lookup-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.qr-camera-lookup-camera{flex:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0062410a,#2462bc08);min-height:300px;overflow:hidden}.qr-camera-scanner{width:100%;height:100%}.qr-camera-lookup-result{flex:0 0 auto;padding:var(--space-lg);border-top:1px solid rgba(26,58,82,.1);background:#fff;min-height:120px;display:flex;align-items:center;justify-content:center}.qr-lookup-result-display{text-align:center;width:100%}.qr-lookup-result-display.empty,.qr-lookup-result-display.loading{color:var(--color-text-light);font-size:var(--fs-md)}.qr-lookup-result-display.result{display:flex;flex-direction:column;gap:var(--space-md)}.volunteer-name{font-size:clamp(1.3rem,4vw,1.8rem);font-weight:600;color:var(--color-primary);line-height:var(--lh-normal)}.qr-code-hash{font-size:var(--fs-sm);color:var(--color-text-light);word-break:break-all}.qr-code-hash code{background:#1a3a520f;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-family:Courier New,monospace;color:var(--color-text-dark)}.qr-camera-lookup-footer{padding:var(--space-lg);border-top:1px solid rgba(26,58,82,.1);background:linear-gradient(135deg,#0062410a,#2462bc08);display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg)}.scan-info{margin:0;font-size:var(--fs-sm);color:var(--color-text-light);flex:1}.qr-camera-lookup-close-btn{flex-shrink:0;padding:var(--space-sm) var(--space-lg)}@media(max-width:768px){.qr-camera-lookup-overlay{padding:var(--space-sm)}.qr-camera-lookup-modal{max-height:100vh;border-radius:var(--radius-lg)}.qr-camera-lookup-header{padding:var(--space-md)}.qr-camera-lookup-footer{flex-direction:column;align-items:stretch;text-align:center}.qr-camera-lookup-close-btn{width:100%}.scan-info{text-align:center}}@media(max-width:480px){.qr-camera-lookup-modal{max-width:100%}.qr-camera-lookup-header{padding:var(--space-sm) var(--space-md)}.qr-camera-lookup-header h2{font-size:var(--fs-md)}.volunteer-name{font-size:1.3rem}.qr-code-hash{font-size:var(--fs-xs)}}.qr-header{display:grid;gap:var(--space-md);margin-bottom:var(--space-lg)}.qr-header>*{min-width:0}@media(max-width:768px){.qr-header{gap:var(--space-sm);margin-bottom:var(--space-md)}}.scanner-prompt{display:grid;gap:var(--space-xs);margin-bottom:var(--space-sm)}.qr-controls{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:flex-start;justify-content:flex-start;min-width:400px}@media(max-width:768px){.qr-controls{gap:var(--space-sm);flex-direction:column;width:100%;min-width:200px}}.check-in-controls{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:center;width:fit-content;min-width:260px;min-height:48px}@media(max-width:768px){.check-in-controls{flex-direction:column;width:auto;max-width:fit-content;gap:var(--space-sm);align-items:flex-start;min-width:unset}}@media(max-width:480px){.check-in-controls{width:100%;max-width:100%}}.toggle-button-group{display:flex;flex-wrap:wrap;gap:var(--space-sm);background:#f0f0f0;border-radius:var(--radius-md);padding:6px;box-shadow:0 1px 3px #0000000d;min-width:0;max-width:fit-content;width:fit-content}@media(max-width:480px){.toggle-button-group{max-width:100%}}@media(max-width:768px){.toggle-button-group{width:fit-content;max-width:fit-content}}.view-button{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:6px 1rem;border:none;background:transparent;color:#666;cursor:pointer;font-size:var(--fs-md);font-weight:500;border-radius:var(--radius-sm);transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;white-space:nowrap;min-height:auto;height:auto}.view-button:hover{background:#e0e0e0;color:#333}.view-button.active{background:#fff;color:#06c;box-shadow:0 1px 3px #0000001a}.continuous-mode-settings{position:relative;width:fit-content;max-width:fit-content}@media(max-width:768px){.continuous-mode-settings{width:auto;max-width:fit-content}}.settings-toggle-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:#fff9;border:1px solid rgba(26,58,82,.12);border-radius:var(--radius-lg);font-weight:600;font-size:var(--fs-sm);color:var(--color-text-dark);cursor:pointer;transition:all .2s ease}.settings-toggle-button:hover{background:#fffc;border-color:#1a3a5233}.settings-toggle-button[aria-expanded=true]{background:#00624114;border-color:var(--color-primary);color:var(--color-primary)}.settings-icon{width:18px;height:18px}.settings-panel{position:absolute;top:100%;right:0;margin-top:var(--space-sm);background:linear-gradient(145deg,#fffffffa,#f5f1edeb);border:1px solid rgba(26,58,82,.1);border-radius:var(--radius-xl);padding:var(--space-md);min-width:320px;box-shadow:0 10px 30px #1a3a521f;z-index:101;animation:slideDown .2s ease}.settings-backdrop{position:fixed;inset:0;z-index:100;background:transparent}@media(max-width:640px){.settings-panel{position:fixed;inset:auto 16px 16px;min-width:unset;border-radius:var(--radius-2xl);padding:var(--space-lg);max-height:70vh;overflow-y:auto}}.settings-group{display:grid;gap:var(--space-xs);padding:var(--space-sm) 0;border-bottom:1px solid rgba(26,58,82,.08)}.settings-group:last-child{border-bottom:none;padding-bottom:0}.settings-label{font-weight:600;font-size:var(--fs-sm);color:var(--color-text-dark);margin:0}.settings-label-with-tooltip{display:flex;align-items:center;gap:8px;font-weight:600;font-size:var(--fs-sm);color:var(--color-text-dark);cursor:pointer;margin:0}.settings-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.checkbox-label-text{flex:1}.settings-info-icon{font-size:1rem;cursor:help;flex-shrink:0}@media(hover:hover){.settings-info-icon{position:relative;border-bottom:1px dotted currentColor}.settings-info-icon[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:100%;right:-12px;background:var(--color-text-dark);color:#fff;padding:8px 12px;border-radius:4px;font-size:.85rem;white-space:nowrap;z-index:1000;margin-bottom:4px;font-weight:400}.settings-info-icon[data-tooltip]:hover:before{content:"";position:absolute;bottom:calc(100% - 4px);right:0;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid var(--color-text-dark);z-index:1000}}.settings-select{width:100%;padding:8px 10px;border-radius:var(--radius-lg);border:1px solid rgba(26,58,82,.14);background:#ffffffeb;font-size:var(--fs-sm);color:var(--color-text-dark);cursor:pointer}.settings-select:focus{outline:2px solid var(--color-primary);outline-offset:2px}.qrcode-page{padding:var(--space-lg) 0 var(--space-2xl);max-width:var(--max-width);margin:0 auto}.qrcode-container{width:min(100%,920px);margin:0 auto;padding:clamp(20px,4vw,40px) 0}.qrcode-content,.qr-mapping-content{display:flex;flex-direction:column;gap:var(--space-lg);position:relative;background:linear-gradient(145deg,#fffffffa,#f5f1edeb),linear-gradient(180deg,#0062410a,#2462bc08);border:1px solid rgba(26,58,82,.1);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:clamp(20px,4vw,34px);width:100%;margin:0 auto;box-sizing:border-box}.qrcode-content>*,.qr-mapping-content>*{position:relative;z-index:1;min-width:0}.qrcode-content h1{color:var(--color-text-dark);font-size:clamp(1.85rem,3.2vw,2.4rem);line-height:var(--lh-tight);margin:0}.qrcode-content h2{color:var(--color-text-dark);font-size:var(--fs-lg);margin:0}.qr-mapping-choose-location{margin:0;color:var(--color-text-light);font-size:var(--fs-base)}.qr-mapping-heading{display:flex;align-items:center;gap:var(--space-sm)}.qr-mapping-content h2{color:var(--color-text-dark);font-size:clamp(1.85rem,3.2vw,2.4rem);line-height:var(--lh-tight);margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.qr-entry-section,.qr-results-section,.qr-loading-section,.qr-error-section{display:grid;gap:var(--space-lg)}.qr-entry-section>*,.qr-results-section>*,.qr-loading-section>*,.qr-error-section>*{min-width:0}.scanner-prompt{display:grid;gap:var(--space-sm);margin-bottom:var(--space-lg)}.scanner-prompt-heading{display:flex;align-items:center;gap:var(--space-sm)}.scanner-prompt p{font-size:var(--fs-lg);color:var(--color-text-light);max-width:34rem;margin:0}.last-action-banner{display:grid;gap:6px;padding:14px 16px;border-radius:var(--radius-lg);margin-bottom:var(--space-lg);border:1px solid transparent}.last-action-banner strong,.last-action-banner p,.last-action-banner span{margin:0}.last-action-banner strong{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em}.last-action-banner p{font-size:var(--fs-lg);font-weight:700;color:var(--color-text-dark)}.last-action-banner span{font-size:var(--fs-sm)}.last-action-banner-success{background:#00624114;border-color:#00624133}.last-action-banner-success strong,.last-action-banner-success span{color:var(--color-primary)}.last-action-banner-error{background:#ca4f0214;border-color:#ca4f0238}.last-action-banner-error strong,.last-action-banner-error span{color:#9a3700}.last-action-banner-none{background:#47556914;border-color:#47556933}.last-action-banner-none strong,.last-action-banner-none span{color:#475569}@keyframes banner-flash{0%{box-shadow:0 0 #ca4f0200}50%{box-shadow:0 0 8px 4px #ca4f02cc}to{box-shadow:0 0 #ca4f0200}}.last-action-banner--flash{animation:banner-flash 1.5s ease-in-out 1}@media(prefers-reduced-motion:reduce){.last-action-banner--flash{animation:none}}.scanner-form{display:grid;gap:var(--space-md)}.scanner-form>*{min-width:0}.scanner-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.scanner-input-row input{width:100%;min-width:0;min-height:52px;border-radius:var(--radius-lg);border:1px solid rgba(26,58,82,.14);padding:0 16px;background:#ffffffeb;box-shadow:inset 0 1px 2px #1a3a520f}.scanner-submit-row button,.camera-toggle-button,.checkin-button,.checkout-button{min-height:52px;border-radius:var(--radius-lg);font-weight:700;letter-spacing:.01em;box-shadow:0 10px 18px #ca4f0224}.scanner-submit-row button:disabled{cursor:not-allowed;opacity:.72;box-shadow:none}.checkin-button:disabled,.checkout-button:disabled{cursor:wait;opacity:.72;box-shadow:none}.scanner-submit-row{display:flex;justify-content:flex-start}.scanner-submit-row button{min-width:160px}.camera-toggle-button{display:inline-flex;align-items:center;justify-content:center;width:52px;min-width:52px;padding:0;background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 10px 18px #00624129}.camera-toggle-button:hover{background:#0a4f39;border-color:#0a4f39}.camera-toggle-button-active{background:var(--color-blue);border-color:var(--color-blue);box-shadow:0 10px 18px #2462bc29}.camera-toggle-button-active:hover{background:#1c4f9b;border-color:#1c4f9b}.qr-icon{width:22px;height:22px}.camera-section{display:grid;gap:var(--space-md);margin-top:var(--space-lg);padding:var(--space-md);background:#1a3a5208;border:1px solid rgba(26,58,82,.08);border-radius:var(--radius-xl)}.camera-container{overflow:hidden;border-radius:var(--radius-lg);background:linear-gradient(135deg,#006241f0,#2462bceb);min-height:320px}.camera-container video,.camera-container canvas{border-radius:inherit}.camera-error{margin:0;color:#9a3700;font-size:var(--fs-sm)}.user-name-banner{display:grid;gap:10px;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid rgba(26,58,82,.1)}.user-name-banner h1{font-family:var(--font-primary);color:var(--color-primary)}.shift-list{display:grid;gap:var(--space-md)}.shift-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-md);align-items:center;padding:18px 20px;border-radius:var(--radius-xl);background:#fffffff0;border:1px solid rgba(26,58,82,.1);box-shadow:var(--shadow-md)}.shift-card-copy{display:grid;gap:6px}.shift-card-copy h2{font-size:1.15rem;color:var(--color-text-dark)}.shift-card-copy p{margin:0}.shift-card-copy p:first-of-type{color:var(--color-primary);font-weight:700}.shift-card-copy p:last-of-type{color:var(--color-text-dark);font-size:var(--fs-md)}.checkin-button{min-width:132px}.checkout-button{min-width:132px;background:var(--color-blue);border-color:var(--color-blue);box-shadow:0 10px 18px #2462bc29}.checkout-button:hover{background:#1c4f9b;border-color:#1c4f9b}.empty-results-message,.status-error,.qr-loading-section{display:grid;gap:var(--space-sm)}.empty-results-message{padding:18px 20px;border-radius:var(--radius-lg);background:#0062410d;border:1px dashed rgba(0,98,65,.24)}.empty-results-message p,.status-error p,.qr-loading-section p{margin:0}.status-error{background:#ca4f0214;border:1px solid rgba(202,79,2,.2);border-left:5px solid var(--color-accent);border-radius:var(--radius-lg);padding:18px 20px}.status-error h1{font-size:var(--fs-xl)}.qr-loading-section{justify-items:start}.spinner{display:inline-block;width:28px;height:28px;margin-top:4px;border:3px solid rgba(0,98,65,.18);border-top-color:var(--color-primary);border-radius:50%;animation:qr-spin .75s linear infinite}@keyframes qr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.back-button-row{display:flex;justify-content:flex-start}.back-button{background:transparent;color:var(--color-text-dark);border:1px solid rgba(26,58,82,.18);border-radius:var(--radius-lg);padding:10px 18px;font-size:var(--fs-base);box-shadow:none}.back-button:hover{background:#1a3a520f;border-color:#1a3a5247}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}.check-in-history-panel{margin-top:var(--space-lg);border-top:1px solid rgba(26,58,82,.1);padding-top:var(--space-lg)}.history-toggle-button{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md);background:#1a3a520a;border:1px solid rgba(26,58,82,.08);border-radius:var(--radius-lg);font-weight:600;font-size:var(--fs-md);color:var(--color-text-dark);cursor:pointer;transition:all .2s ease}.history-toggle-button:hover{background:#1a3a5214;border-color:#1a3a5226}.history-toggle-icon{font-size:var(--fs-sm);color:var(--color-text-light)}.history-toggle-label{flex:1;text-align:left}.history-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;background:var(--color-primary);color:#fff;border-radius:50%;font-size:var(--fs-xs);font-weight:700}.history-list{display:grid;gap:var(--space-sm);margin-top:var(--space-md);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.history-item{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-md);align-items:center;padding:var(--space-md);border:1px solid rgba(26,58,82,.1);border-radius:var(--radius-lg);background:#ffffff80}.history-item-icon{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:50%;font-weight:700;font-size:var(--fs-md)}.history-item-success .history-item-icon{background:#00624126;color:var(--color-primary)}.history-item-error .history-item-icon{background:#ca4f0226;color:#9a3700}.history-item-warning .history-item-icon{background:#d9770626;color:#b45309}.history-item-content{display:grid;gap:2px;min-width:0}.history-item-name{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--color-text-dark)}.history-item-action{margin:0;font-size:var(--fs-sm);color:var(--color-text-light)}.history-item-label{margin:0;font-size:var(--fs-xs);font-weight:600;color:var(--color-text-dark)}.history-item-time{font-size:var(--fs-xs);color:var(--color-text-light);white-space:nowrap}.qrcode-tabs-wrapper{background:#f0f0f0;margin-inline:auto}.qrcode-tabs{display:flex;flex-wrap:wrap;list-style:none;margin:0 auto 0 0;padding:0;color:var(--color-text-dark, #1e3d4a);font-weight:700;gap:0}.qrcode-tab-link{padding:20px;display:inline-flex;color:var(--color-text-dark, #1e3d4a);text-decoration:none;font-weight:700;transition:background-color .2s ease;border:none;outline:none;background:none;cursor:pointer;font-size:inherit;font-family:inherit}.qrcode-tab-link:hover{background:#c7f8df}.qrcode-tab-link:focus{outline:none}.qrcode-content-area{margin-top:20px}.qrcode-tab-content{display:none}.qrcode-tab-content.active{display:block;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.qr-mapping-selector{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md)}.selector-group{display:flex;flex-direction:column;gap:8px}.selector-label{font-weight:600;font-size:var(--fs-sm);color:var(--color-text-dark);text-transform:uppercase;letter-spacing:.04em}.selector-input{padding:10px 14px;border:1px solid rgba(26,58,82,.14);border-radius:var(--radius-lg);background:#ffffffeb;box-shadow:inset 0 1px 2px #1a3a520f;font-size:var(--fs-base);font-family:inherit;color:var(--color-text-dark);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;min-height:42px}.selector-input:hover{border-color:#1a3a523d;box-shadow:inset 0 1px 2px #1a3a5214}.selector-input:focus{outline:none;border-color:var(--color-primary);box-shadow:inset 0 1px 2px #1a3a5214,0 0 0 3px #0062411a}.btn-primary,.btn-secondary{padding:12px 20px;border:none;border-radius:4px;font-size:var(--fs-base);font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-primary{background-color:var(--color-primary, #ca4f02);color:#fff}.btn-primary:hover{background-color:var(--color-primary-dark, #a63f01);transform:translateY(-2px);box-shadow:0 4px 12px #ca4f0233}.btn-secondary{background-color:var(--color-border-light, #e5e5e5);color:var(--color-text-dark, #1e3d4a)}.btn-secondary:hover{background-color:var(--color-border-medium, #d0d0d0)}.qr-mapping-list-view,.qr-mapping-form-view,.qr-mapping-bulk-form-view{padding:var(--space-lg);background:#ffffff80;border:1px solid rgba(26,58,82,.08);border-radius:var(--radius-lg)}.qr-mapping-form{display:flex;flex-direction:column;gap:var(--space-md);max-width:500px}.qr-mapping-form h3{margin:0;font-size:1.25rem;color:var(--text-primary);margin-bottom:var(--space-sm)}.form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.form-label{font-weight:600;color:var(--text-primary);font-size:.95rem}.required{color:var(--text-danger, #dc3545);margin-left:2px}.form-input-with-button{display:flex;gap:var(--space-sm);align-items:center}.form-input{padding:var(--space-sm) var(--space-md);border:1px solid rgba(26,58,82,.2);border-radius:var(--radius-md);font-size:.95rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;flex:1}.form-input:focus{outline:none;border-color:#1a3a5266;box-shadow:0 0 0 3px #1a3a521a}.form-input:disabled{background-color:#1a3a520d;cursor:not-allowed;opacity:.6}.form-input.has-error{border-color:var(--text-danger, #dc3545)}.btn-generate-hash{padding:var(--space-sm) var(--space-md);background-color:#1a3a521a;border:1px solid rgba(26,58,82,.2);border-radius:var(--radius-md);font-size:1.1rem;cursor:pointer;transition:background-color .2s,border-color .2s;display:flex;align-items:center;justify-content:center;min-width:40px;height:40px}.btn-generate-hash:hover:not(:disabled){background-color:#1a3a5226;border-color:#1a3a524d}.btn-generate-hash:disabled{opacity:.6;cursor:not-allowed}.form-field-error{color:var(--text-danger, #dc3545);font-size:.85rem;margin-top:-4px}.form-error-message{padding:var(--space-sm) var(--space-md);background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:var(--radius-md);color:#721c24;font-size:.95rem;white-space:pre-line}.form-hint-note{padding:var(--space-sm) var(--space-md);background-color:#e7f3ff;border-left:4px solid #0066cc;border-radius:var(--radius-md);color:#003d99;font-size:.9rem;display:flex;align-items:flex-start;gap:var(--space-sm)}.form-hint-note:before{content:"ℹ";font-size:1.1rem;font-weight:700;flex-shrink:0;color:#06c}.form-actions{display:flex;gap:var(--space-md);margin-top:var(--space-md)}.form-actions button{flex:1}.mapping-table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid rgba(26,58,82,.1)}.mapping-table{border-collapse:collapse;background:#fff;font-size:var(--fs-base)}.mapping-table thead{background:linear-gradient(180deg,#00624114,#0062410a);border-bottom:2px solid rgba(26,58,82,.15)}.mapping-table th{padding:16px 20px;text-align:left;font-weight:700;color:var(--color-text-dark);white-space:normal;word-break:normal;overflow-wrap:anywhere}.mapping-table tbody tr{border-bottom:1px solid rgba(26,58,82,.08);transition:background-color .2s ease}.mapping-table tbody tr:hover{background-color:#00624108}.mapping-table td{padding:16px 20px;color:var(--color-text-dark);vertical-align:middle}.qr-hash-code{background:#0062410d;padding:4px 8px;border-radius:4px;font-family:Monaco,Courier New,monospace;font-size:.9em;color:var(--color-primary-dark);word-break:break-all}.data-table-cell-actions{text-align:right}.btn-delete{background-color:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:.9em;transition:all .2s ease}.btn-delete:hover{background-color:#c82333;transform:translateY(-2px);box-shadow:0 4px 12px #dc354533}.btn-delete:active{transform:translateY(0);box-shadow:0 2px 6px #dc354533}.loading-text,.empty-state{text-align:center;color:var(--color-text-dark);padding:var(--space-lg);font-size:var(--fs-base)}.empty-state{background:#00624108;border-radius:var(--radius-lg);border:1px dashed rgba(0,98,65,.2)}.mapping-toolbar{display:flex;gap:var(--space-md);align-items:center;padding:var(--space-md);background:#00624105;border:1px solid rgba(0,98,65,.1);border-radius:var(--radius-lg);flex-wrap:wrap}.search-input{flex:1;min-width:150px;padding:10px 16px;border:1px solid rgba(26,58,82,.2);border-radius:var(--radius-md);font-size:var(--fs-base);color:var(--color-text-dark);background:#fff;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0062411a}.mapping-toolbar .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;background-color:var(--color-primary, #ca4f02)}.btn-trash-toggle{padding:10px 14px;background:#fff;border:2px solid rgba(26,58,82,.15);border-radius:var(--radius-md);cursor:pointer;font-size:1.2em;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-trash-toggle:hover{border-color:var(--color-primary);background:#0062410d}.btn-trash-toggle.active{background:#dc3545;border-color:#dc3545;color:#fff}.mapping-info{padding:0 var(--space-md);font-size:.95em;color:var(--color-text-dark)}.results-count{margin:0;font-weight:500}@media(max-width:1000px){.qrcode-tabs{flex-wrap:wrap}.qrcode-tab-link{padding:16px;font-size:var(--fs-base)}.qr-mapping-selector{flex-direction:column;align-items:stretch}.selector-group{flex:1}}@media(min-width:900px){.qrcode-tabs-wrapper,.qrcode-content,.qr-mapping-content{width:800px}}@media(max-width:900px){.qrcode-tabs-wrapper,.qrcode-content,.qr-mapping-content{width:600px}}@media(max-width:768px){.qrcode-page{padding-top:var(--space-md)}.qr-entry-section,.qr-results-section,.qr-loading-section,.qr-error-section{padding:20px}.scanner-input-row,.shift-card{grid-template-columns:1fr}.scanner-submit-row button,.checkin-button,.checkout-button,.back-button{width:100%}.scanner-submit-row,.back-button-row{justify-content:stretch}.camera-toggle-button{width:52px}.camera-container{min-height:260px}.mapping-table{font-size:.9em}.mapping-table th,.mapping-table td{padding:12px 14px}.qr-hash-code{font-size:.8em}.btn-delete{padding:6px 12px;font-size:.8em}}@media(max-width:640px){@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.history-item{grid-template-columns:auto 1fr}.history-item-time{grid-column:2;font-size:var(--fs-xs)}.qrcode-tabs-wrapper,.qrcode-content,.qr-mapping-content{width:400px}}@media(max-width:480px){.qrcode-container{padding-top:var(--space-md);padding-left:0;padding-right:0}.scanner-prompt p{font-size:var(--fs-base)}.last-action-banner,.shift-card,.empty-results-message,.status-error{padding:16px}.camera-container{min-height:220px}.qrcode-tabs-wrapper,.qrcode-content,.qr-mapping-content{width:100%;min-width:0}.mapping-table-container{min-width:0;overflow-x:auto}}.qr-mapping-bulk-form{display:flex;flex-direction:column;gap:var(--space-md);max-width:900px}.qr-mapping-bulk-form h3{margin:0;font-size:1.25rem;color:var(--text-primary);margin-bottom:var(--space-sm)}.format-hint{display:block;font-size:.85rem;font-weight:400;color:#1a3a5299;margin-top:var(--space-xs);white-space:pre-line}.textarea-wrapper{display:flex;border:1px solid rgba(26,58,82,.2);border-radius:var(--radius-md);overflow:hidden;background-color:#1a3a5205}.line-numbers{display:flex;flex-direction:column;background-color:#1a3a520d;border-right:1px solid rgba(26,58,82,.15);padding:var(--space-sm) 0;text-align:right;font-family:Monaco,Courier New,monospace;font-size:.9rem;color:#1a3a5266;user-select:none;min-width:45px;line-height:1.5;overflow:hidden}.line-number{padding:0 var(--space-sm);min-height:1.5em;display:flex;align-items:center;justify-content:flex-end;line-height:1.5}.bulk-textarea{flex:1;border:none;padding:var(--space-sm) var(--space-md);font-family:Monaco,Courier New,monospace;font-size:.9rem;resize:vertical;background-color:transparent;color:var(--text-primary);line-height:1.5;white-space:pre;overflow-x:auto;overflow-y:hidden}.bulk-textarea:focus{outline:none;background-color:#1a3a5205}.bulk-textarea:disabled{opacity:.6;cursor:not-allowed}.validation-indicator{min-height:24px}.validation-status{font-size:.95rem;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0}.validation-status.validating{color:#1a3a52b3}.validation-status.success{color:#28a745;font-weight:500}.validation-status.error{color:var(--text-danger, #dc3545);font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.validation-status.validating:before{content:"";display:inline-block;width:16px;height:16px;border:2px solid rgba(26,58,82,.3);border-top-color:#1a3a52b3;border-radius:50%;animation:spin .8s linear infinite}.validation-errors{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:var(--radius-md);padding:var(--space-md);margin-top:var(--space-sm)}.error-item{color:#721c24;font-size:.9rem;padding:var(--space-xs) 0;line-height:1.5}.error-item:first-child{padding-top:0}.error-item:last-child{padding-bottom:0}.print-selection-toolbar{background:#e0f2fe;border:2px solid #0ea5e9;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.selection-status{font-size:14px;color:#1a3a52;margin-right:12px}.selection-status strong{font-weight:600;color:#006241}.data-table-checkbox-header,.data-table-checkbox-cell{width:50px;text-align:center;padding:8px}.mapping-row.selected{background-color:#f0fdf4;border-left:4px solid #22c55e}.mapping-row.selected td{background-color:#22c55e0d}
