:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:#101a1e;color:#ebf4f2;color-scheme:dark}*{box-sizing:border-box}body{margin:0}main{max-width:660px;margin:auto;padding:26px 18px 90px}header{padding:20px 4px 8px}.eyebrow{font-size:12px;letter-spacing:.16em;color:#6de3c7;font-weight:700}h1{font-size:clamp(34px,9vw,50px);line-height:1.06;letter-spacing:-.04em;margin:12px 0}header p{margin:8px 0 12px}.header-link{display:inline-flex;align-items:center;min-height:44px;margin-left:8px;color:#d5efea;text-decoration:underline}h2{font-size:20px;margin:0 0 12px}p{line-height:1.55;color:#bacdca}section{background:#1b292d;border:1px solid #395054;border-radius:18px;padding:20px;margin:18px 0}.status{background:#16352f;border-color:#358e78;display:grid;gap:6px}.status strong{font-size:20px}.status span{color:#c9e5dc}.hint,footer{font-size:13px;color:#a5b8b5}footer{padding:18px 4px}button,.filebtn{display:inline-block;padding:13px 16px;background:#70e4c6;color:#102522;font:700 15px system-ui;border:0;border-radius:10px;cursor:pointer;margin:5px 5px 5px 0;text-align:center}button:focus-visible,.filebtn:focus-within,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #f7d37b;outline-offset:2px}.secondary{background:#b5c8c5}.danger{background:transparent;color:#ffbbb1;border:1px solid #be7c75}.filebtn input{position:absolute;width:1px;height:1px;opacity:0}label{display:block;margin:14px 0 6px;font-weight:650}input:not([type=file]),textarea,select{width:100%;padding:12px;border:1px solid #65807f;border-radius:9px;background:#0e1c20;color:#fff;font:16px system-ui}textarea{resize:vertical}.entry{padding:14px;border:1px solid #42605d;border-radius:10px;margin:12px 0}.entry .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.entry .grid label{margin:4px 0}.entry button{padding:8px 12px;font-size:15px;background:#444f51;color:white;min-height:44px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:9px}.card{min-width:0;background:#0e1c20;border-radius:9px;padding:9px}.card img{width:100%;height:100px;object-fit:cover;border-radius:5px}.card small{display:block;overflow-wrap:anywhere;color:#a9c4bb}.card select{font-size:14px}.card button{font-size:15px;padding:10px;min-height:44px;width:100%}.check{padding:9px 0;border-bottom:1px solid #38514e}.pass{color:#8defcf}.fail{color:#ffcb90}@media(max-width:400px){.entry .grid{grid-template-columns:1fr}}
/* Scalable text and comfortable controls; keep the viewport free to zoom. */
main{padding-bottom:calc(90px + env(safe-area-inset-bottom));padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
h1{font-size:clamp(2.25rem,9vw,3.75rem)}h2{font-size:1.4rem}h3{font-size:1.1rem;margin:18px 0 8px}.hint,footer{font-size:.95rem}
button,.filebtn,select,input:not([type=file]){min-height:44px;font-size:1rem}.filebtn{min-height:48px}.filebtn input{width:100%;height:100%;inset:0;cursor:pointer}.filebtn{position:relative}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.guide{border:1px solid #54746f;padding:14px;border-radius:12px;background:#142529}.guide strong{font-size:1.25rem}.progress{height:10px;background:#425653;border-radius:20px;overflow:hidden;margin:8px 0 18px}.progress span{display:block;height:100%;background:#70e4c6}.view-list{padding-left:22px}.view-list li{padding:7px 0;line-height:1.45}.card a{display:block;min-height:100px}.card a:focus-visible{outline:3px solid #f7d37b;outline-offset:2px}.card select{font-size:1rem}
@media(max-width:520px){.cards{grid-template-columns:1fr 1fr}.entry .grid{grid-template-columns:1fr}.guide .filebtn{display:block;width:100%}}@media(max-width:340px){.cards{grid-template-columns:1fr}}
.camera-stage{position:relative;width:100%;aspect-ratio:3/4;max-height:40svh;background:#081417;overflow:hidden;border-radius:12px}.camera-stage video,.camera-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.camera-stage img[hidden],#live-panel[hidden],#candidate[hidden]{display:none}.crosshair{position:absolute;inset:15%;border:1px dashed #ffedb8;pointer-events:none}.crosshair:before,.crosshair:after{content:'';position:absolute;background:#ffedb8;opacity:.8}.crosshair:before{height:1px;left:35%;right:35%;top:50%}.crosshair:after{width:1px;top:35%;bottom:35%;left:50%}#ghost-opacity{width:100%;min-height:44px;accent-color:#70e4c6}#candidate{padding:12px;border:1px solid #54746f;border-radius:10px;margin:12px 0}#candidate-image{width:100%;max-height:380px;object-fit:contain}button:disabled{opacity:.5;cursor:not-allowed}
.camera-tip{position:sticky;top:0;z-index:2;padding:10px 12px;background:#16352f;color:#e7f8f2;border:1px solid #358e78;border-radius:10px;margin:0 0 10px;font-weight:650}.previous-reference{display:flex;gap:12px;align-items:center;margin:10px 0}.previous-reference img{width:82px;height:82px;object-fit:cover;border:1px solid #6b8983;border-radius:8px;flex:none}.previous-reference img[hidden]{display:none}.previous-reference p{margin:0}.overlay-option,.full-guide{margin:12px 0;padding:10px;border:1px solid #48625d;border-radius:9px}.overlay-option summary,.full-guide summary{min-height:44px;display:list-item;cursor:pointer;padding:8px 2px}.overlay-option label{margin-top:8px}#live-panel #snap{width:100%;font-size:1.1rem;min-height:54px}
@media(orientation:landscape) and (max-height:520px){.camera-stage{aspect-ratio:4/3;max-height:70svh;max-width:93svh;margin-inline:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
