:root{color:#171717;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f1f2f3;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #357fc1}h1,h2,p{margin:0}h1{font-size:20px;line-height:1.35}h2{font-size:20px}p{line-height:1.5}.capture-shell{width:min(100%,480px);min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 22px max(20px, env(safe-area-inset-bottom));background:#fff;flex-direction:column;margin:0 auto;display:flex;position:relative}.page-header{justify-content:space-between;align-items:flex-start;gap:12px;min-height:48px;margin-bottom:12px;display:flex}.app-title{color:#616161;margin-bottom:4px;font-size:12px}.page-header h1{font-size:17px}.language-select{background:#fff;border:1px solid #d9d9d9;border-radius:6px;padding:7px;font-size:12px}.recording-time{color:#616161;font-variant-numeric:tabular-nums;align-items:center;gap:7px;padding-top:5px;font-size:12px;display:flex}.recording-time i{background:#d43838;border-radius:50%;width:7px;height:7px}.setup-panel{flex-direction:column;gap:20px;width:100%;margin:auto 0;padding:38px 0 70px;display:flex}.setup-panel>p{color:#555;font-size:14px}.app-icon{width:64px;height:64px;margin-bottom:4px}.setup-form{flex-direction:column;gap:10px;width:100%;display:flex}.setup-form label{margin-top:8px;font-size:13px}.setup-form input{background:#fff;border:1px solid #bcbcbc;border-radius:6px;width:100%;min-height:48px;padding:13px;font-size:16px}.setup-form input:disabled{color:#666;background:#f6f6f6}.primary-button,.recording-label{color:#fff;text-align:center;background:#171717;border:0;border-radius:3px;width:100%;min-height:48px;padding:14px 16px;font-size:15px;line-height:1.3}.primary-button:hover:not(:disabled){background:#333}.text-button{text-align:center;color:#333;background:0 0;border:0;min-height:42px;padding:11px 6px;font-size:14px}.subtle{color:#717171;font-size:12px}.language-options{flex-direction:column;gap:10px;display:flex}.language-options label{cursor:pointer;border:1px solid #d9d9d9;border-radius:6px;align-items:center;gap:12px;padding:14px 12px;display:flex}.language-options label:has(input:checked){background:#fafafa;border-color:#171717}.language-options input{accent-color:#171717;width:18px;height:18px}.setup-note,.small-text{color:#717171;font-size:12px;line-height:1.6}.notice{overflow-wrap:anywhere;background:#fff7e3;border-left:3px solid #e4ad32;padding:12px;font-size:13px;color:#6e4b06!important}.error-text{overflow-wrap:anywhere;font-size:13px;line-height:1.6;color:#a12929!important}.live-capture{flex-direction:column;flex:1;min-height:0;display:flex}.step-instruction{min-height:20px;margin-bottom:8px;font-size:13px}.diagnostics{color:#85858b;margin-bottom:2px;font-size:10px}.diagnostics summary{cursor:pointer}.diagnostics p{padding:4px 0;line-height:1.3}.camera-stage{aspect-ratio:9/16;--ring:#e9b62b;background:#fff;flex-shrink:0;width:min(100%,max(320px,100dvh - 290px)/1.77778);margin:0 auto;position:relative;overflow:hidden}.camera-stage.ready,.camera-stage.success{--ring:#38b75e}.source-video{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;bottom:0;left:0}.camera-stage canvas,.camera-mask{width:100%;height:100%;position:absolute;inset:0}.camera-stage canvas.mirrored{transform:scaleX(-1)}.camera-mask{pointer-events:none}.guide-ring{border:3px solid var(--ring);pointer-events:none;transition:border-color .12s;position:absolute}.face-ring{border-radius:50%}.card-ring{border-radius:15px}.crosshair{opacity:.85;width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after{content:"";background:#fff;position:absolute}.crosshair:before{width:22px;height:1px;top:10px}.crosshair:after{width:1px;height:22px;left:10px}.action-banner{text-align:center;color:#fff;background:#343434;flex-direction:column;gap:2px;width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 auto;padding:12px 16px;font-size:17px;font-weight:600;line-height:1.3;display:flex;position:absolute;top:2%;left:0;right:0}.camera-stage.success .action-banner{background:#278a46}.camera-stage.dual-guide .action-banner{padding:8px 10px;font-size:14px;top:auto;bottom:2%}.countdown{color:#fff;text-shadow:0 1px 8px #0009;font-size:52px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.camera-loading{background:#fffffff2;place-items:center;display:grid;position:absolute;inset:0}.guide-hint{text-align:center;min-height:44px;padding:10px 3px;font-size:13px}.capture-actions{flex-direction:column;margin-top:auto;padding-top:8px;display:flex}.recording-label{min-height:44px;font-size:13px}.result-panel{flex-direction:column;gap:14px;padding:12px 0;display:flex}.result-panel>p{font-size:14px}.recorded-video{object-fit:contain;background:#111;border-radius:10px;width:100%;max-height:47dvh}progress{accent-color:#279a4f;width:100%;height:7px;margin-top:10px}.upload-status{color:#555;font-size:12px}.success-mark{color:#238a44;background:#e7f4eb;border-radius:50%;place-items:center;width:58px;height:58px;font-size:32px;display:grid}.spinner{border:3px solid #ddd;border-top-color:#171717;border-radius:50%;width:26px;height:26px;animation:.85s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dialog-backdrop{z-index:20;background:#0007;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:10px;flex-direction:column;gap:16px;width:min(100%,380px);padding:24px;display:flex;box-shadow:0 15px 60px #0003}.dialog p{color:#555;font-size:14px}@media (max-width:500px){:root{background:#fff}.capture-shell{padding-left:18px;padding-right:18px}}@media (min-width:700px){.capture-shell{box-shadow:0 0 32px #0000000a}}@media (prefers-reduced-motion:reduce){.guide-ring{transition:none}.spinner{animation-duration:1.8s}}
