:root{color:#f5f7fa;background:#101418;font-family:Inter,system-ui,sans-serif;line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#1e293b,#101418 55%)}button,.link-button{border:0;border-radius:999px;padding:.9rem 1.25rem;background:#7dd3fc;color:#082f49;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}#root{min-height:100vh}.shell{width:min(100%,52rem);margin:0 auto;padding:4rem 1.5rem}.eyebrow{margin:0 0 .75rem;color:#7dd3fc;font-size:.875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.25rem,6vw,4rem)}.lede{max-width:42rem;margin:1rem 0 2rem;color:#cbd5e1}.app-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1.5rem;background:#0f172ab3;border-bottom:1px solid #1e293b;min-height:2.75rem}.app-header__offline{font-size:.8125rem;color:#fbbf24;font-weight:600}.app-header__install,.app-header__uploads{padding:.4rem .9rem;font-size:.8125rem}.upload-status-panel{position:absolute;z-index:10;top:calc(100% + .5rem);right:1rem;width:min(24rem,calc(100vw - 2rem));padding:1rem;border:1px solid #334155;border-radius:1rem;background:#0f172af7;box-shadow:0 1rem 2rem #0006}.upload-status-panel h2,.upload-status-panel h3{margin:0 0 .75rem}.upload-status-panel h2{font-size:1rem}.upload-status-panel h3{margin-top:1rem;font-size:.875rem;color:#cbd5e1}.upload-status-panel__counts{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;margin:0 0 1rem}.upload-status-panel__counts dt{color:#94a3b8;text-transform:capitalize}.upload-status-panel__counts dd{margin:0;font-weight:700}.upload-status-panel__rejected{margin:0;padding-left:1.25rem;color:#fca5a5;font-size:.875rem}.upload-status-panel__loading{margin:0;color:#cbd5e1}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin:0 0 2rem}.status-grid div{padding:1rem;border:1px solid #334155;border-radius:1rem;background:#0f172a99}.status-grid dt{color:#94a3b8;font-size:.875rem}.status-grid dd{margin:.35rem 0 0;font-weight:600}.camera-app{position:relative;height:100dvh;overflow:hidden;background:#000}.camera-viewfinder{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#0a0f14;z-index:0}.camera-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.camera-onboarding{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ghost-overlay{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.35;pointer-events:none;will-change:transform}.camera-onboarding{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:#475569;padding:2rem;text-align:center;width:max-content;max-width:90vw}.camera-icon{width:4rem;height:4rem;opacity:.5}.camera-onboarding-title{margin:0;font-size:1.5rem;font-weight:700;color:#64748b;letter-spacing:.05em}.camera-onboarding-sub{margin:0;font-size:.9375rem;color:#334155}.camera-controls{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.6) 50%,transparent 100%);z-index:1;pointer-events:none;contain:layout style;max-height:50vh;overflow-y:auto}.camera-controls>*{pointer-events:auto}.shutter-btn{width:5rem;height:5rem;border-radius:50%;background:#fff;border:4px solid rgba(255,255,255,.35);padding:0;box-shadow:0 0 0 2px #fff;transition:transform .08s ease,opacity .08s ease;touch-action:manipulation}.shutter-btn:active{transform:scale(.92);opacity:.85}.shutter-btn:disabled{opacity:.4}.camera-storage-warning{position:absolute;top:3.5rem;left:50%;transform:translate(-50%);width:min(calc(100% - 2rem),28rem);padding:.75rem 1rem;border:1px solid #f59e0b;border-radius:.75rem;background:#78350feb;color:#fef3c7;font-size:.875rem;font-weight:700;text-align:center;pointer-events:none;z-index:1}.camera-storage-warning[hidden]{display:none}.camera-status{margin:0;font-size:.875rem;color:#64748b;text-align:center;min-height:1.25em}.camera-controls button:not(.shutter-btn){min-width:10rem}.steadiness-indicator{width:.75rem;height:.75rem;border-radius:50%;background:#f87171;transition:background .15s ease}.steadiness-indicator[data-steady=true]{background:#4ade80}.scan-back-btn{width:2.5rem;height:2.5rem;border-radius:50%;padding:0;background:#ffffff1f;color:currentColor;display:flex;align-items:center;justify-content:center;margin:.75rem}.scan-back-btn svg{width:1.25rem;height:1.25rem}.camera-back-btn{position:absolute;top:.75rem;left:.75rem;z-index:2;width:2.5rem;height:2.5rem;border-radius:50%;padding:0;background:#00000080;color:#fff;display:flex;align-items:center;justify-content:center}.camera-back-btn svg{width:1.25rem;height:1.25rem}.camera-quality-warnings{position:absolute;top:.75rem;left:0;right:0;display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;padding:0 1rem;pointer-events:none;z-index:2}.quality-badge{padding:.25rem .6rem;border-radius:999px;background:#ef4444d9;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.scan-management{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem;width:min(100%,64rem);margin:0 auto;padding:2rem 1.5rem}.scan-card{padding:1.25rem;border:1px solid #334155;border-radius:1.25rem;background:#0f172ab8}.scan-card h1,.scan-card h2{margin:0 0 .75rem;font-size:1.5rem}.scan-card p{color:#cbd5e1}.scan-card form{display:grid;gap:.85rem}.scan-card label{display:grid;gap:.35rem;color:#cbd5e1;font-weight:700}.scan-card input{width:100%;border:1px solid #475569;border-radius:.75rem;padding:.8rem .9rem;background:#020617;color:#f8fafc;font:inherit}.scan-form-error,.scan-form-success{min-height:1.5rem;margin:.75rem 0 0;font-weight:700}.scan-form-error{color:#fca5a5}.scan-form-success{color:#86efac}.scan-invite-slot{margin-top:1rem}.sessions-list{width:min(100%,48rem);margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.sessions-list-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.sessions-list-header h1{margin:0;font-size:1.75rem}.sessions-new-btn{flex-shrink:0}.sessions-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.sessions-empty{color:#94a3b8;text-align:center;margin:2rem 0}.session-row{display:flex;flex-direction:column;gap:.4rem;padding:1rem 1.25rem;border:1px solid #334155;border-radius:1rem;background:#0f172ab8;cursor:pointer;transition:border-color .15s}.session-row:hover,.session-row:focus-visible{border-color:#7dd3fc;outline:none}.session-row-date{font-weight:600;color:#f1f5f9}.session-row-meta{display:flex;align-items:center;gap:.75rem}.session-row-count{color:#94a3b8;font-size:.9rem}.session-row-status{padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em}.session-row-status--pending{background:#fbbf2426;color:#fbbf24}.session-row-status--exported{background:#86efac26;color:#86efac}.camera-gallery{display:flex;flex-direction:row;gap:2px;overflow-x:auto;overflow-y:hidden;height:72px;width:100%;scrollbar-width:none}.camera-gallery::-webkit-scrollbar{display:none}.camera-gallery-thumb{flex-shrink:0;width:72px;height:72px;object-fit:cover;display:block}
