.upload-zone[data-v-66651776]{border:2px dashed var(--border-muted);border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s,background-color .2s}.upload-zone[data-v-66651776]:hover,.upload-zone.drag-over[data-v-66651776]{border-color:var(--primary);background:color-mix(in oklch,var(--primary) 5%,var(--bg))}.placeholder .icon[data-v-66651776]{font-size:2.5rem;display:block;margin-bottom:.5rem}.placeholder p[data-v-66651776]{margin:.25rem 0}.hint[data-v-66651776]{color:var(--text-muted);font-size:.85rem}.preview img[data-v-66651776]{max-width:100%;max-height:200px;border-radius:4px}.camera-container[data-v-34faf2c7]{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.viewfinder-wrapper[data-v-34faf2c7]{position:relative;display:inline-block;max-width:100%}.viewfinder[data-v-34faf2c7]{max-width:100%;max-height:400px;border:2px solid var(--border);border-radius:8px;background:var(--bg-dark);display:block}.guide-overlay[data-v-34faf2c7]{position:absolute;top:10%;left:10%;width:80%;height:80%;border:3px solid rgba(255,255,255,.6);border-radius:4px;pointer-events:none;transition:border-color .2s ease}.guide-overlay.detected[data-v-34faf2c7]{border-color:#00c800cc}.status-message[data-v-34faf2c7]{margin:0;font-size:.9rem;color:var(--text-muted);text-align:center;transition:color .2s ease}.status-message.detected[data-v-34faf2c7]{color:#00b400}.camera-actions[data-v-34faf2c7]{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.btn-capture[data-v-34faf2c7]{padding:.6rem 2rem;background:var(--primary);color:var(--bg-dark);border:none;border-radius:6px;font-weight:600;font-size:1rem}.btn-capture[data-v-34faf2c7]:hover:not(:disabled){opacity:.9}.btn-capture[data-v-34faf2c7]:disabled{opacity:.5;cursor:not-allowed}.btn-fallback[data-v-34faf2c7]{padding:.6rem 1.5rem;background:transparent;color:var(--text-muted);border:1px dashed var(--border-muted);border-radius:6px;font-size:.85rem;cursor:pointer}.btn-fallback[data-v-34faf2c7]:hover{opacity:.8}.btn-secondary[data-v-34faf2c7]{padding:.6rem 1.5rem;background:var(--bg-light);color:var(--text-muted);border:1px solid var(--border-muted);border-radius:6px}.camera-error[data-v-34faf2c7]{text-align:center;padding:2rem;color:var(--danger)}.camera-error .btn-secondary[data-v-34faf2c7]{margin-top:1rem}.error-banner[data-v-88f2b2a6]{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;background:color-mix(in oklch,var(--danger) 15%,var(--bg));border:1px solid var(--danger);border-radius:6px;color:var(--text)}.error-content[data-v-88f2b2a6]{flex:1}.error-content strong[data-v-88f2b2a6]{color:var(--danger)}.error-content ul[data-v-88f2b2a6]{margin-top:.5rem;padding-left:1.25rem;color:var(--text-muted);font-size:.9rem}.close-btn[data-v-88f2b2a6]{background:none;border:none;color:var(--text-muted);font-size:1.25rem;padding:0;line-height:1}.close-btn[data-v-88f2b2a6]:hover{color:var(--text)}.timing[data-v-8e599992]{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--text-muted)}.timing-total[data-v-8e599992]{font-weight:600}.timing-accuracy[data-v-8e599992]{font-weight:400}.home[data-v-ba9e2a44]{max-width:600px;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}h1[data-v-ba9e2a44]{font-size:1.75rem;font-weight:700;color:var(--primary);text-align:center}.seo-text[data-v-ba9e2a44]{color:var(--text-muted);text-align:center;font-size:.95rem;line-height:1.5;max-width:480px;margin:0}.grid-section[data-v-ba9e2a44]{display:flex;flex-direction:column;align-items:center;gap:1rem}.timing-row[data-v-ba9e2a44]{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.actions[data-v-ba9e2a44]{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.action-btn[data-v-ba9e2a44]{position:relative;display:flex;align-items:center;justify-content:center;padding:.6rem;background:var(--bg-light);color:var(--text);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .2s,background-color .2s}.action-btn[data-v-ba9e2a44]:before,.action-btn[data-v-ba9e2a44]:after{position:absolute;top:100%;left:50%;pointer-events:none;opacity:0;transition:opacity .15s,transform .15s;transform:translate(-50%,4px)}.action-btn[data-v-ba9e2a44]:after{content:attr(data-tooltip);margin-top:6px;padding:.3rem .6rem;background:var(--bg-dark);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:.75rem;white-space:nowrap;z-index:10}.action-btn[data-v-ba9e2a44]:before{content:"";margin-top:1px;border:5px solid transparent;border-bottom-color:var(--border);z-index:11}.action-btn[data-v-ba9e2a44]:hover:before,.action-btn[data-v-ba9e2a44]:hover:after{opacity:1;transform:translate(-50%)}.action-btn[data-v-ba9e2a44]:hover:not(:disabled){border-color:var(--primary);background:color-mix(in oklch,var(--primary) 10%,var(--bg-light))}.action-btn[data-v-ba9e2a44]:disabled{opacity:.5;cursor:not-allowed}.action-btn--primary[data-v-ba9e2a44]{background:var(--primary);color:var(--bg-dark);border-color:var(--primary);font-weight:600}.action-btn--primary[data-v-ba9e2a44]:hover:not(:disabled){opacity:.9;background:var(--primary)}.loading[data-v-ba9e2a44]{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--text-muted)}.spinner[data-v-ba9e2a44]{width:32px;height:32px;border:3px solid var(--border-muted);border-top-color:var(--primary);border-radius:50%;animation:spin-ba9e2a44 .8s linear infinite}@keyframes spin-ba9e2a44{to{transform:rotate(360deg)}}.action-btn--check[data-v-ba9e2a44]{background:var(--bg-light);color:var(--text);border:1px solid var(--border)}.action-btn--check[data-v-ba9e2a44]:hover:not(:disabled){border-color:#3b82f6;background:color-mix(in oklch,#3b82f6 10%,var(--bg-light))}.spinner-icon[data-v-ba9e2a44]{animation:spin-ba9e2a44 .8s linear infinite}.check-result[data-v-ba9e2a44]{padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;text-align:center}.check-result--valid[data-v-ba9e2a44]{background:color-mix(in oklch,#22c55e 15%,var(--bg-light));color:#16a34a;border:1px solid #22c55e}.check-result--invalid[data-v-ba9e2a44]{background:color-mix(in oklch,#ef4444 15%,var(--bg-light));color:#dc2626;border:1px solid #ef4444}.modal-backdrop[data-v-ba9e2a44]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-ba9e2a44]{background:var(--bg-light);border:1px solid var(--border);border-radius:10px;padding:1.5rem;max-width:380px;width:90%}.modal-title[data-v-ba9e2a44]{margin:0 0 .75rem;font-weight:700;font-size:1rem;color:var(--text)}.modal-body[data-v-ba9e2a44]{margin:0 0 1.25rem;font-size:.9rem;line-height:1.5;color:var(--text-muted)}.modal-actions[data-v-ba9e2a44]{display:flex;gap:.5rem;justify-content:flex-end}.modal-btn[data-v-ba9e2a44]{padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer}.modal-btn--secondary[data-v-ba9e2a44]{background:var(--bg-light);color:var(--text-muted);border:1px solid var(--border)}.modal-btn--primary[data-v-ba9e2a44]{background:var(--primary);color:var(--bg-dark);border:1px solid var(--primary)}.modal-btn--primary[data-v-ba9e2a44]:hover{opacity:.9}@media(max-width:640px){[data-v-ba9e2a44] .grid-cell{width:36px;height:36px;font-size:1rem}}
