:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-container{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);position:fixed;top:0;left:0;overflow:hidden}.login-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:3rem;box-shadow:0 20px 60px #0000004d;text-align:center;max-width:400px;width:100%}.logo{width:80px;height:80px;margin-bottom:1rem}.login-card h1{font-size:2.5rem;margin-bottom:.5rem;color:#1a202c}.subtitle{color:#718096;margin-bottom:2rem}.login-button-container{margin:2rem 0}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:1rem 2rem;border-radius:10px;font-size:1.1rem;cursor:pointer;transition:transform .2s;width:100%}.login-button:hover{transform:translateY(-2px)}.login-footer{color:#a0aec0;font-size:.875rem;margin-top:2rem}.dashboard-container{min-height:100vh;min-width:100vw;background:#000;color:#fff;display:flex;flex-direction:column;position:relative}.dashboard-header{position:fixed;top:0;left:0;right:0;height:60px;background:#111;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;z-index:100}.header-content{width:100%;max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:12px}.header-logo{width:35px;height:35px;filter:invert(1)}.dashboard-header h1{font-size:1.25rem;font-weight:700;letter-spacing:.5px;margin:0}.user-controls{display:flex;align-items:center;gap:1rem}.qr-btn{background:#fff;color:#000;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s}.qr-btn:hover{opacity:.8}.user-email{color:#888;font-size:.9rem}.sign-out-btn{background:transparent;color:#fff;border:1px solid #666;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:border-color .2s}.sign-out-btn:hover{border-color:#fff}.dashboard-content{flex:1;padding:80px 20px 40px;width:100%;max-width:1400px;margin:0 auto;box-sizing:border-box;overflow-y:auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#111;border:1px solid #333;padding:1.5rem;border-radius:8px;text-align:center}.stat-card h3{font-size:.9rem;color:#888;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:2rem;font-weight:700;color:#fff}.sessions-section{background:#111;border:1px solid #333;border-radius:8px;overflow:hidden}.section-header{padding:1rem 1.5rem;background:#000;border-bottom:1px solid #333}.section-header h2{font-size:1.2rem;margin:0}.sessions-table{width:100%;border-collapse:collapse}.sessions-table thead{background:#1a1a1a}.sessions-table th{padding:1rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:#888;border-bottom:1px solid #333}.sessions-table td{padding:1rem;border-bottom:1px solid #222;color:#fff}.sessions-table tbody tr{cursor:pointer;transition:background .2s}.sessions-table tbody tr:hover{background:#1a1a1a}.status-complete{color:#4caf50;font-weight:600}.status-incomplete{color:#ff5252;font-weight:600}.status-has-notes{background:#f33;color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;display:inline-block}.loading{display:flex;justify-content:center;align-items:center;height:200px;color:#888;font-size:1.2rem}.no-data{text-align:center;padding:3rem;color:#666}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal-content{background:#111;border:1px solid #333;border-radius:12px;max-width:800px;width:100%;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #333}.modal-header h2{margin:0;font-size:1.5rem}.close-btn{background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:#333;color:#fff}.modal-body{padding:1.5rem 2rem 2rem}.session-info{margin-bottom:1.5rem;padding:1rem;background:#1a1a1a;border-radius:8px}.scans-title{margin:0 0 1rem;font-size:1.1rem;color:#fff}.session-info p{margin:.5rem 0;color:#ccc}.scan-details h3{margin-bottom:1rem;color:#fff}.scan-list{display:grid;gap:1rem}.scan-item{background:#1a1a1a;border:1px solid #333;padding:1rem;border-radius:8px}.scan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.checkpoint-number{font-weight:700;color:#fff}.scan-status{padding:.25rem .75rem;border-radius:4px;font-size:.85rem;font-weight:600}.scan-status.ok{background:#1a3a1a;color:#4caf50;border:1px solid #4CAF50}.scan-status.not-ok{background:#3a1a1a;color:#f33;border:1px solid #ff3333}.scan-note{margin-top:.5rem;padding:.75rem;background:#000;border-left:3px solid #ff3333;border-radius:4px;color:#fff}.scan-time{color:#666;font-size:.85rem}.modal-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #333;display:flex;align-items:center;gap:1rem}.send-email-btn{background:#5b74a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.send-email-btn:hover:not(:disabled){background:#4a6391}.send-email-btn:disabled{opacity:.6;cursor:wait}.email-status{padding:.5rem 1rem;border-radius:6px;font-size:.9rem}.email-status.success{background:#1a3a1a;color:#4caf50;border:1px solid #4CAF50}.email-status.error{background:#3a1a1a;color:#f33;border:1px solid #ff3333}.checkpoint-progress{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #333}.checkpoint-progress h3{margin-bottom:1rem;color:#fff}.checkpoint-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:.5rem}.checkpoint-box{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#222;border:1px solid #444;font-size:1.2rem;font-weight:600;border-radius:4px;color:#666}.checkpoint-box.scanned-ok{background:#1a3a1a;border-color:#4caf50;color:#4caf50}.checkpoint-box.scanned-not-ok{background:#3a1a1a;border-color:#f33;color:#f33}.checkpoint-box.not-scanned{background:#222;border-color:#444;color:#666}.dashboard-footer{background:#111;border-top:1px solid #333;padding:1.5rem;margin-top:auto}.footer-content{max-width:1400px;margin:0 auto;text-align:center}.dashboard-footer p{margin:.5rem 0;color:#888;font-size:.9rem}.dashboard-footer a{color:#fff;text-decoration:none;font-weight:600}.dashboard-footer a:hover{text-decoration:underline}@media (max-width: 768px){.header-left{gap:8px}.header-logo{width:30px;height:30px}.dashboard-header h1{font-size:1rem}.user-email{display:none}.user-controls{gap:.5rem}.qr-btn{padding:.4rem .75rem;font-size:.8rem}.dashboard-content{padding:80px 12px 40px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card{padding:1rem}.stat-card h3{font-size:.75rem}.stat-value{font-size:1.5rem}.sessions-section h2{padding:1rem;font-size:1rem}.sessions-table{font-size:.8rem}.sessions-table th,.sessions-table td{padding:.5rem .25rem}.view-btn{padding:.4rem .6rem;font-size:.75rem}.modal-content{max-height:90vh;margin:10px;border-radius:8px}.modal-header{padding:1rem}.modal-header h2{font-size:1.2rem}.modal-body{padding:1rem}.modal-actions{flex-direction:column;align-items:stretch}.send-email-btn{width:100%;text-align:center}}@media (max-width: 480px){.dashboard-header h1{display:none}.stats-grid{grid-template-columns:1fr 1fr}.sessions-table th:nth-child(3),.sessions-table td:nth-child(3),.sessions-table th:nth-child(4),.sessions-table td:nth-child(4){display:none}}.qr-container{min-height:100vh;background:#f5f5f5;padding:2rem}.qr-header{text-align:center;margin-bottom:3rem}.qr-header h1{font-size:2.5rem;color:#333;margin-bottom:.5rem}.qr-subtitle{color:#666;font-size:1.1rem;margin-bottom:1.5rem}.button-group{display:flex;gap:1rem;justify-content:center;align-items:center;margin-bottom:2rem}.back-button,.export-pdf-button{background:#333;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:background .2s;font-family:Inter,system-ui,sans-serif}.export-pdf-button{background:#06c}.back-button:hover{background:#555}.export-pdf-button:hover:not(:disabled){background:#0052a3}.export-pdf-button:disabled{background:#999;cursor:not-allowed}.format-info{max-width:800px;margin:0 auto 2rem;background:#fff;border:2px solid #0066cc;border-radius:8px;padding:1.5rem}.format-info h3{color:#06c;margin-top:0;margin-bottom:1rem;font-size:1.3rem;text-align:center}.format-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.format-item{background:#f8f8f8;padding:.75rem;border-radius:6px;font-size:.95rem}.format-item strong{color:#333;display:block;margin-bottom:.25rem}.instructions{max-width:800px;margin:0 auto 3rem;background:#fff;border:2px solid #28a745;border-radius:8px;padding:1.5rem}.instructions h3{color:#28a745;margin-top:0;margin-bottom:1rem;font-size:1.3rem;text-align:center}.instructions ol{text-align:left;padding-left:1.5rem;line-height:1.8}.instructions li{margin-bottom:.5rem;color:#333}.preview-section{margin-top:3rem}.preview-section h2{text-align:center;color:#333;margin-bottom:2rem}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2rem;max-width:1400px;margin:0 auto}.qr-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;text-align:center;transition:transform .2s,box-shadow .2s}.qr-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.qr-number{font-size:1.8rem;font-weight:700;color:#000;margin-bottom:.5rem}.qr-code{font-family:Courier New,monospace;font-size:.9rem;color:#666;margin-bottom:1rem;padding:.5rem;background:#f8f8f8;border-radius:6px}.qr-image{width:200px;height:200px;margin:0 auto;display:block;image-rendering:crisp-edges;image-rendering:pixelated}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.5rem;color:#666}.pdf-content{position:fixed;left:-9999px;top:0;opacity:0;pointer-events:none}.pdf-page{width:210mm;height:297mm;background:#fff;position:relative;page-break-after:always;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,105mm);grid-template-rows:repeat(4,74.25mm);gap:0}.pdf-label-section{width:105mm;height:74.25mm;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border-right:1px dashed #999;border-bottom:1px dashed #999}.pdf-label-section:nth-child(2n){border-right:none}.pdf-label-section:nth-last-child(-n+2){border-bottom:none}.pdf-qr-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center}.pdf-qr-image{width:25mm;height:25mm;display:block;margin:0 auto 3mm;image-rendering:crisp-edges;image-rendering:pixelated}.pdf-label-text{font-size:14pt;font-weight:700;color:#000;text-align:center;margin-bottom:2mm;font-family:Inter,Arial,sans-serif}.pdf-label-code{font-size:11pt;font-family:Courier New,monospace;color:#333;text-align:center;background:#f0f0f0;padding:2mm 5mm;border-radius:3mm}@media (max-width: 768px){.qr-container{padding:1rem}.qr-header h1{font-size:2rem}.button-group{flex-direction:column}.format-details{grid-template-columns:1fr}.qr-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}}html,body,#root{min-height:100vh;width:100%;margin:0;padding:0;background:#000}.app{min-height:100vh;width:100%;background:#000}*{box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}
