:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#173e38;background:#f3f5ef;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}main{width:min(100% - 36px,600px);margin:48px auto}header{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.16em;font-weight:700}.badge{display:grid;place-items:center;background:#173e38;color:white;border-radius:12px;width:48px;height:48px;font-size:20px;letter-spacing:-1px}h1{font-size:clamp(30px,7vw,42px);line-height:1.12;letter-spacing:-.035em;margin:32px 0 16px}p{line-height:1.6}.intro{color:#51645b;margin-bottom:28px;font-size:17px}.card{background:#fff;border:1px solid #d9e2d5;border-radius:20px;padding:28px;margin-bottom:20px;box-shadow:0 6px 24px #173e3806}.label{font-size:11px;letter-spacing:.16em;font-weight:750;color:#64776a}.report-text{font-size:26px;font-weight:650;text-align:left;margin:18px 0 6px;line-height:1.6}.muted{color:#677569;font-size:14px;margin:0 0 28px}.photo-label{font-weight:650}label{display:block;font-size:14px;margin:18px 0 8px}input{width:100%;font:inherit;padding:12px;border:1px solid #bacabd;border-radius:10px;background:#fcfdfb;color:#173e38}input[type=file]{padding:14px;font-size:13px}input::file-selector-button{border:0;border-radius:6px;padding:8px 10px;background:#e4ebdf;color:#173e38;margin-right:10px;cursor:pointer}button{font:inherit;font-weight:650;border:0;border-radius:10px;padding:15px 18px;background:#225948;color:#fff;width:100%;cursor:pointer;margin-top:14px}button:hover{background:#173e38}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible{outline:3px solid #b2ce69;outline-offset:3px}.hint{font-size:12px;color:#667267;line-height:1.5;margin:12px 0 0}#preview{width:100%;max-height:360px;object-fit:contain;border-radius:10px;margin-top:16px;background:#f3f5ef}h2{font-size:22px;margin:14px 0 8px}.reference{font-family:ui-monospace,monospace;font-size:12px;overflow-wrap:anywhere}.candidate{background:#eef3e9;color:#173e38;text-align:start;font-weight:500;margin-top:8px}.candidate:hover{background:#dce8d2}.footer{text-align:center;font-size:12px;color:#728071}#address{font-size:20px;text-align:left}#result.error{border-color:#d9a392}#result.error h2{color:#8c3624}[hidden]{display:none!important}@media(max-width:440px){main{margin:24px auto}.card{padding:22px}}
