:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#18332f;background:#f3f5f1;font-size:16px}*{box-sizing:border-box}body{margin:0}header{height:76px;border-bottom:1px solid #dce2da;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:#fafbf8}.brand{font-weight:850;letter-spacing:3px;color:inherit;text-decoration:none}.tag,.pill{font-size:12px;background:#e6ece3;border-radius:30px;padding:7px 12px;white-space:nowrap}main{max-width:1180px;margin:auto;padding:40px 24px}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;color:#648075}h1{font-size:44px;line-height:1.12;letter-spacing:-1.5px;margin:14px 0}h2{font-size:19px;margin:0}h3{font-size:23px}.muted{color:#728078;line-height:1.6}.notice{font-size:13px;line-height:1.6;border-left:3px solid #cba657;background:#faf5e9;padding:12px 16px;margin-top:24px;color:#736445}.stats{display:grid;grid-template-columns:repeat(3,1fr);padding:25px 0;gap:20px}.stats div{border-right:1px solid #dce2da;display:flex;align-items:baseline;gap:10px}.stats div:last-child{border:0}.stats strong{font-size:34px;letter-spacing:-1px}.stats span{font-size:13px;color:#728078}.layout{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.panel{border:1px solid #dde4da;border-radius:20px;background:#fff;padding:24px;box-shadow:0 8px 35px #18332f04}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}button{font:inherit;cursor:pointer;border-radius:11px;padding:14px 18px;font-weight:600;min-height:48px}button:disabled{opacity:.45;cursor:default}.primary{background:#1c5445;color:white;border:1px solid #1c5445;width:100%}.primary:hover{background:#153e34}.secondary{background:#fff;border:1px solid #dce2da;color:#29483f}.wide{width:100%;margin-top:16px}.small{font-size:12px}#idle,.result{text-align:center;padding:36px 10px}.empty-icon{font-size:65px;color:#afc4b7}.camera{background:#14231f;border-radius:12px;height:290px;position:relative;overflow:hidden}.camera video{width:100%;height:100%;object-fit:cover}.target{position:absolute;border:2px solid #d2e9ca;inset:18% 24%;border-radius:12px;pointer-events:none}.camera-label{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:white;font-size:12px}.scan-result{padding:14px;border-radius:9px;background:#f1f4ef;margin-top:12px;font-size:14px}.scan-result.ok{background:#dcf2e5;color:#246443}.scan-result.warn{background:#fff1d5;color:#8b631a}.counter{display:flex;align-items:center;gap:10px;margin:18px 0}.counter strong{font-size:42px}.counter span{font-size:13px;color:#728078;flex:1}.counter button{font-size:12px;padding:10px}.items{list-style:none;padding:0;max-height:180px;overflow:auto}.items li{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eef1eb;padding:10px 0;font-size:12px;gap:8px}.items button{font-size:12px;padding:4px 8px;min-height:30px}.box-row{padding:18px 0;border-top:1px solid #e5e9e2}.box-row strong{display:block;margin-bottom:7px}.box-row p{font-size:13px;color:#728078;margin:0;line-height:1.6}.ledger-empty{padding:38px 0;color:#839087;font-size:14px}.success-icon{display:inline-flex;background:#e2f0df;color:#367449;border-radius:100%;width:70px;height:70px;align-items:center;justify-content:center;font-size:32px}.result h3{font-size:48px;margin:12px 0}.error{color:#ad4332;font-size:14px;line-height:1.5}.error:empty{display:none}details{margin-top:20px;font-size:12px;color:#728078}details button{margin:5px 0;font-size:12px}summary{cursor:pointer}footer{font-size:12px;color:#7a877f;margin:24px 0;line-height:1.6}dialog{border:1px solid #dce2da;border-radius:20px;padding:28px;max-width:420px;width:calc(100% - 32px);color:#18332f}dialog::backdrop{background:#11272099}dialog h2{font-size:28px;margin:12px 0 25px}label{font-size:14px;display:block;margin-bottom:12px}input{font:inherit;font-size:28px;width:100%;padding:16px;border:1px solid #b8c9ba;border-radius:10px;margin-bottom:20px}input:focus{outline:2px solid #537a62}button:focus-visible{outline:3px solid #c7a752;outline-offset:3px}[hidden]{display:none!important}@media(max-width:720px){header{padding:0 18px;height:64px}.tag{font-size:10px}main{padding:24px 16px}.intro{align-items:flex-start}.intro>.secondary{font-size:11px;padding:9px;min-height:40px}h1{font-size:31px}.intro .muted{font-size:14px}.layout{grid-template-columns:1fr}.panel{padding:18px}.stats{gap:10px}.stats div{display:block}.stats strong{display:block;font-size:29px}.stats span{font-size:11px}.camera{height:300px}.section-head h2{font-size:17px}.pill{font-size:10px}.notice{font-size:12px}}
.setup{max-width:620px;margin-top:28px}.setup h2{font-size:25px}.setup input{font-size:17px}.setup details{margin-top:24px}.setup details input{margin-top:12px}.connection{display:flex;justify-content:space-between;align-items:center;margin-top:26px;padding:16px 20px;gap:15px}.connection strong,.connection .small{display:block;margin-top:6px}.connection strong{font-size:17px}.connection.pending{border-color:#d2b96c;background:#fff9ea}.connection.synced{border-color:#b5d4b5;background:#f0f8ee}.connection.failed{border-color:#d99b86;background:#fff0eb}.sharing{margin-top:18px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.sharing>div{flex:1}.sharing p{margin-bottom:0}.sharing input{font-size:12px;margin:0;padding:12px;color:#52685c}.sharing .wide{font-size:12px;margin:0}.owner-layout{grid-template-columns:1fr}.box-row details{margin-top:8px}.code-list{list-style:none;padding:0;max-height:250px;overflow:auto}.code-list li{font-size:12px;border-top:1px solid #eef1eb;padding:8px 0;overflow-wrap:anywhere}.active-box{font-size:30px!important}.status-note{color:#9b6c26}.notice{overflow-wrap:anywhere}button,input{touch-action:manipulation}#syncDetail{overflow-wrap:anywhere}.box-row summary{font-size:13px;color:#315744}#sharing input{font-size:12px}@media(max-width:720px){.connection{padding:14px}.connection strong{font-size:14px}.sharing{display:block}.sharing button{margin-top:12px;width:100%}.sharing input{margin-top:12px}.setup{padding:20px}.active-box{font-size:27px!important}}
