:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183a37;background:#f4f5f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:84px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce2d9}.brand{font-size:32px;font-weight:800;text-decoration:none;color:inherit}.brand span{font-size:20px;letter-spacing:-.6px;margin-left:10px}a{color:#25564e}header a:last-child,.secure{font-size:13px}main{margin:60px auto 40px;padding:0 24px}.admin{max-width:740px}.capture{max-width:590px;margin-top:36px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#64766c}h1{font-size:clamp(32px,6vw,54px);line-height:1.1;letter-spacing:-2px;margin:16px 0}h2{font-size:24px;letter-spacing:-.7px}.intro{font-size:17px;line-height:1.6;color:#5c6f66}.card{background:white;border:1px solid #dce2d9;border-radius:20px;padding:28px;margin:28px 0}.note,.muted,footer{font-size:13px;line-height:1.6;color:#68766c}.note{margin:18px 0}label{display:block;font-size:13px;font-weight:600;margin:16px 0 8px}input,select{width:100%;padding:14px;border:1px solid #ccd5cc;border-radius:9px;background:#fff;font:inherit;color:inherit}button,.primary,.secondary{cursor:pointer;font:inherit;font-size:14px;border-radius:10px;padding:16px 20px;text-align:center;min-height:48px;text-decoration:none;font-weight:600}.primary{background:#214d43;color:white;border:1px solid #214d43}.primary span{float:right}.secondary{background:transparent;color:#214d43;border:1px solid #b9c8be}form .primary{width:100%;margin-top:24px}button:disabled{opacity:.5;cursor:wait}.actions{display:flex;gap:10px;margin:18px 0}.actions>*{flex:1}#generated{border-top:1px solid #dce2d9;margin-top:24px;padding-top:20px}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#eff3ed;padding:16px;border-radius:8px;max-height:450px;overflow:auto;font-size:12px}.viewfinder{position:relative;aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:#173a35;color:#d9e5d8;isolation:isolate}video{width:100%;height:100%;object-fit:contain;display:block}#placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:13px;background:radial-gradient(ellipse at center,#36594d,#173a35)}.card-symbol{font-size:45px;opacity:.6}#guide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:88%;aspect-ratio:1.42;border:3px solid #ef7770;border-radius:14px;box-shadow:0 0 0 100vmax #001b1540;pointer-events:none}#guide-label{position:absolute;bottom:-28px;left:0;font-size:10px;letter-spacing:1.8px;color:white}#live-tip{position:absolute;left:0;right:0;top:14px;text-align:center;font-size:11px;color:#fff}.upload-button{text-align:center;border:1px dashed #a1b4a3;padding:16px;border-radius:10px;cursor:pointer}.upload-button input{display:block;margin-top:10px;font-size:12px}.preview{border-radius:18px;overflow:hidden;background:#dde5db;padding:10px}.preview img{display:block;width:100%;max-height:55vh;object-fit:contain}.state-card{background:#fff;border:1px solid #dce2d9;border-radius:20px;padding:36px 24px;text-align:center;margin:30px 0}.state-card p{line-height:1.6;color:#68766c}.state-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto;border-radius:50%;font-size:30px}.success{background:#e5efdb;color:#32663d}.error{background:#fbecdb;color:#ad6522}.spinner{width:46px;height:46px;border:3px solid #dfebdd;border-top-color:#214d43;border-radius:50%;margin:0 auto;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#feedback{color:#a4442c;font-size:14px;line-height:1.5}#suggestions{text-align:left;line-height:1.6;font-size:14px}footer{border-top:1px solid #dce2d9;margin-top:32px;padding-top:20px}[hidden]{display:none!important}:focus-visible{outline:3px solid #86a952;outline-offset:3px}@media(max-width:500px){header{height:66px}main{padding:0 18px;margin-top:28px}.card{padding:20px}.capture h1{font-size:34px;letter-spacing:-1px}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}

#guide.in-frame{border-color:#8bdf83}#live-tip{background:#142923c9;padding:7px 10px;top:0}#guide{transition:border-color .15s}button:disabled{cursor:not-allowed}

.result-state{text-align:left}.result-state>.state-icon{margin-left:0}.result-state h3{font-size:17px;letter-spacing:-.3px;margin:26px 0 8px}.result-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result-photos figure{margin:0;min-width:0}.result-photos img{display:block;width:100%;height:150px;object-fit:contain;background:#edf1e9;border:1px solid #dce2d9;border-radius:10px}.result-photos figcaption{font-size:12px;color:#68766c;margin-top:6px}.capture-fields{margin:12px 0}.capture-fields>div{padding:13px 0;border-bottom:1px solid #e6ebe2}.capture-fields dt{font-size:12px;color:#5c6f66;display:flex;justify-content:space-between;gap:10px;align-items:center}.capture-fields dd{font-size:16px;font-weight:600;margin:5px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.capture-fields dd.not-read{font-weight:400;color:#68766c}.review-label{font-size:11px;color:#87521c;background:#fbf0df;border-radius:5px;padding:3px 6px;white-space:nowrap}.capture-warnings{padding:1px 16px 12px;background:#fbf5e9;border:1px solid #eadcbe;border-radius:12px;margin:22px 0}.capture-warnings h3{margin-top:15px}.capture-warnings ul{font-size:13px;line-height:1.6;padding-left:20px}.capture-warnings li+li{margin-top:8px}.result-json{margin:24px 0}.result-json summary{cursor:pointer;font-size:13px;font-weight:600;min-height:44px;padding:12px 0}.result-json pre{max-height:320px}.result-state #clear-result{width:100%}@media(max-width:380px){.result-state{padding:24px 16px}.result-photos{gap:8px}.result-photos img{height:120px}}

/* The capture shell never exceeds the visible viewport; results scroll inside it. */
.capture-app{height:100vh;height:100dvh;width:100%;max-width:100dvw;overflow:hidden;display:flex;flex-direction:column;background:#f4f5f0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.capture-app>header{height:48px;min-height:40px;flex-shrink:0;padding:0 20px}.capture-app .brand{font-size:25px}.capture-app .brand span{font-size:17px}.capture-app #timer{font-size:11px}
.capture-app .capture{width:100%;max-width:1000px;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;margin:0 auto;padding:12px 16px 8px}
.capture-app .step-heading{flex-shrink:0;position:relative}.capture-app .eyebrow{font-size:10px;margin:0 0 5px;letter-spacing:1.5px}.capture-app h1{font-size:26px;letter-spacing:-.8px;margin:0 0 5px}.capture-app .intro{font-size:13px;line-height:1.4;margin:0;max-width:650px}
.step-track{display:flex;gap:8px;padding:0;list-style:none;margin:12px 0 0}.step-track li{flex:1;padding:6px 10px;font-size:11px;border-radius:6px;background:#e5eae0;color:#617063}.step-track li[aria-current="step"]{background:#214d43;color:white}.step-track span{margin-left:4px}
.capture-app .capture-stage{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px}.capture-app .viewfinder{flex:1;min-width:0;min-height:0;width:100%;aspect-ratio:auto!important;border-radius:16px}.capture-app video{position:absolute;inset:0;object-fit:contain}.capture-app #placeholder{gap:6px}.capture-app #placeholder p{margin:0}.capture-app #placeholder>span:last-child{font-size:11px;opacity:.7}.capture-app #guide{max-width:92%;border-width:2px}.capture-app #guide-label{font-size:9px;bottom:8px;left:8px;background:#183a37cc;padding:4px 6px;border-radius:4px;letter-spacing:1px}.capture-app #live-tip{font-size:12px;padding:10px}
.capture-controls{flex-shrink:0}.capture-app .note{font-size:12px;line-height:1.4;text-align:center;margin:0 0 8px}.capture-app .actions{margin:0;gap:10px;align-items:stretch}.capture-app button{min-height:48px;padding:10px 16px}.capture-app .upload-button{position:relative;display:flex;align-items:center;justify-content:center;flex:0 1 35%;min-height:48px;margin:0;padding:10px;border-style:solid;font-size:12px}.capture-app .upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0}.capture-app .upload-button:focus-within{outline:3px solid #86a952;outline-offset:2px}.shutter{display:flex;align-items:center;justify-content:center;gap:10px}.shutter-dot{display:block;width:22px;height:22px;border:2px solid white;border-radius:50%;box-shadow:inset 0 0 0 3px #214d43;background:white}.capture-app .auto-option{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:400;margin:8px 0 0;min-height:24px}.auto-option input{width:16px;height:16px;margin:0;accent-color:#214d43}
.capture-app .preview{flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:0}.capture-app .preview img{width:100%;height:100%;max-height:none;object-fit:contain}.capture-app .state-card{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;margin:0;padding:24px;border-radius:16px}.capture-app #loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center}.capture-app #feedback{flex-shrink:0;font-size:12px;margin:0;max-height:70px;overflow:auto}.capture-app #feedback:empty{display:none}.capture-app footer{flex-shrink:0;border:0;text-align:center;font-size:10px;line-height:1.3;margin:0;padding:0}
@media(orientation:landscape) and (max-height:600px){.capture-app>header{height:34px;min-height:34px}.capture-app .capture{padding:6px 12px;gap:6px}.capture-app .step-heading{padding-right:190px}.capture-app h1{font-size:20px;margin-bottom:2px}.capture-app .eyebrow{font-size:9px;margin-bottom:3px}.capture-app .intro{font-size:11px}.capture-app .step-track{position:absolute;right:0;top:0;width:180px;margin:0;gap:4px}.step-track li{padding:6px;font-size:10px}.capture-app .capture-stage{flex-direction:row;gap:12px}.capture-app .capture-controls{width:190px;display:flex;flex-direction:column;justify-content:center}.capture-app .actions{flex-direction:column}.capture-app .upload-button{flex:auto;order:2;min-height:36px}.capture-app .note{font-size:11px}.capture-app .auto-option{font-size:10px}.capture-app footer{display:none}.capture-app .viewfinder{width:auto}.capture-app #feedback{max-height:35px}}
@media(max-height:480px) and (orientation:portrait){.capture-app>header{display:none}.capture-app footer{display:none}.capture-app .step-track{margin-top:5px}.capture-app .intro{font-size:11px}.capture-app .note{display:none}}
