.scan-page{width:min(100%,760px);margin:0 auto;padding-bottom:26px}.scan-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.scan-heading h1{margin:3px 0 0;font-size:clamp(25px,3vw,32px);letter-spacing:-.7px}.eyebrow{color:#89909a;font-size:10px;font-weight:750;letter-spacing:1.4px}.scan-count{padding:6px 9px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#747b85;font-size:11px;white-space:nowrap}.scan-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.scan-select{display:flex;align-items:center;gap:5px;min-width:0;padding:7px 8px;border:1px solid #e1e4e8;border-radius:8px;background:#fff;color:#444a52;font-size:12px}.scan-select select{min-width:0;border:0;background:transparent;color:#20242a;font:inherit;outline:0}.scan-auto{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid #dde1e5;border-radius:8px;background:#fff;color:#7c838d;font-size:12px;font-weight:650}.scan-auto i{width:8px;height:8px;border-radius:50%;background:#bac0c7}.scan-auto.active{border-color:#d5be00;background:#fff9c6;color:#282b30}.scan-auto.active i{background:#d4b900;box-shadow:0 0 0 3px #fff0a1}.scan-network{margin-left:auto;color:#9298a2;font-size:11px}.scan-stage{position:relative;width:100%;height:min(62dvh,610px);min-height:360px;overflow:hidden;border:1px solid #2d333b;border-radius:18px;background:#171c23;box-shadow:0 8px 24px #14191e18}.scan-stage video,.scan-stage .scan-photo{display:block;width:100%;height:100%;object-fit:cover}.scan-stage:after{position:absolute;inset:0;background:radial-gradient(ellipse 43% 47% at center,transparent 46%,#070a0d9e 100%);pointer-events:none;content:""}.scan-idle{display:grid;height:100%;place-content:center;justify-items:center;gap:9px;color:#fff}.scan-idle .scan-ball{width:52px;height:52px;color:#ffe527}.scan-idle b{font-size:18px}.scan-idle span{color:#aeb6c0;font-size:12px}.scan-guide{position:absolute;z-index:1;top:6%;bottom:6%;left:50%;width:min(72%,calc((100% - 50px)*.714));transform:translateX(-50%);filter:drop-shadow(0 1px 3px #0009)}.scan-guide .corner{position:absolute;width:25px;height:25px;border:3px solid #f4f7fa}.scan-guide .tl{top:0;left:0;border-right:0;border-bottom:0;border-radius:7px 0 0}.scan-guide .tr{top:0;right:0;border-bottom:0;border-left:0;border-radius:0 7px 0 0}.scan-guide .bl{bottom:0;left:0;border-top:0;border-right:0;border-radius:0 0 0 7px}.scan-guide .br{right:0;bottom:0;border-top:0;border-left:0;border-radius:0 0 7px}.scan-guide .scan-line{position:absolute;right:4px;left:4px;top:18%;height:1px;background:#ffffffd9;box-shadow:0 0 9px #fff;animation:scanline 2.4s ease-in-out infinite}.scan-stage.is-ready .scan-guide .corner{border-color:#cfee47;box-shadow:0 0 11px #cfee47bb}.scan-stage.is-ready .scan-line{background:#d9ff4b;box-shadow:0 0 12px #d9ff4b;animation-duration:1s}.scan-stage.is-warning .scan-guide .corner{border-color:#ffd857}.scan-live-controls{position:absolute;z-index:3;top:12px;right:12px;left:12px;display:flex;align-items:center;gap:8px}.scan-icon{display:grid;width:36px;height:36px;place-items:center;border:1px solid #ffffff2b;border-radius:50%;background:#111923bb;color:#fff;font-size:17px;backdrop-filter:blur(7px)}.scan-stop{margin-left:auto;font-size:25px;line-height:1}.scan-zoom{display:flex;min-width:0;align-items:center;gap:7px;padding:7px 9px;border:1px solid #ffffff2b;border-radius:999px;background:#111923bb;color:#fff;font-size:10px;backdrop-filter:blur(7px)}.scan-zoom input{width:90px;accent-color:#e7d13a}.scan-statusline{display:flex;min-height:42px;align-items:center;gap:8px;padding:0 3px;color:#646b74;font-size:12px}.scan-statusline>span:nth-child(2){min-width:0;flex:1}.scan-statusline b{color:#8e959e;font-size:11px;font-variant-numeric:tabular-nums}.scan-pulse{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#aab0b8}.scan-pulse.ready{background:#9bba17;box-shadow:0 0 0 4px #dceaaa}.scan-pulse.working{background:#e9b900;box-shadow:0 0 0 4px #fff0af;animation:pulse .9s ease-in-out infinite}.scan-actions{display:flex;gap:10px}.scan-actions button{min-height:46px}.scan-actions .primary{flex:1}.scan-actions .secondary{min-width:128px}.scan-hint{margin:10px 2px 18px;color:#9399a2;font-size:11px;line-height:1.55}.scan-results,.scan-recent,.scan-added{padding:15px;border:1px solid #e1e4e8;border-radius:13px;background:#fff;box-shadow:0 5px 16px #1c232a08}.scan-results-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:10px}.scan-results-head b,.scan-results-head small{display:block}.scan-results-head b{font-size:14px}.scan-results-head small{margin-top:3px;color:#89909a;font-size:11px}.text-button{padding:3px 0;border:0;background:transparent;color:#386cac;font-size:12px;white-space:nowrap}.scan-candidates{display:grid;gap:8px}.scan-candidate{display:flex;width:100%;min-width:0;align-items:center;gap:11px;padding:8px;border:1px solid #e5e8eb;border-left-width:3px;border-radius:10px;background:#fff;color:#252930;text-align:left}.scan-candidate:hover{background:#fafbfc}.scan-candidate.chosen{border-color:#d6bd00;background:#fffdf0}.scan-candidate.confidence-high{border-left-color:#92b813}.scan-candidate.confidence-medium{border-left-color:#e7bd34}.scan-candidate.confidence-low{border-left-color:#b7bdc6}.scan-candidate img{width:48px;height:67px;flex:0 0 48px;object-fit:contain;border-radius:4px;background:#f4f5f6}.candidate-copy{display:grid;min-width:0;gap:2px;flex:1}.candidate-copy b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.candidate-copy em{color:#68717c;font-size:10px;font-style:normal}.confidence-high .candidate-copy em{color:#66840f}.candidate-copy small{overflow:hidden;color:#8c939c;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.scan-candidate>i{color:#a6adb5;font-size:25px;font-style:normal}.scan-confirm-card{margin-top:12px;padding-top:12px;border-top:1px solid #edf0f2}.scan-quick-fields{display:grid;grid-template-columns:minmax(110px,.45fr) minmax(0,1fr);gap:10px}.scan-quick-fields label{display:grid;gap:5px;color:#626a74;font-size:11px}.scan-quick-fields .field{min-width:0;min-height:39px;padding:7px 9px;border:1px solid #dce0e5;border-radius:7px;background:#fff;color:#252a31;font:13px inherit}.scan-check{display:flex;align-items:flex-start;gap:7px;margin:12px 0;color:#555d67;font-size:12px;line-height:1.45}.scan-check input{margin-top:2px;accent-color:#b89f00}.scan-confirm-card .actions{gap:8px}.scan-confirm-card .actions button{flex:1;min-height:42px}.scan-manual{display:block;margin-top:13px;color:#597fb0;font-size:12px;text-align:center}.scan-market{margin-top:16px}.scan-market p{font-size:12px;line-height:1.7}.scan-market button{border:0;background:none;color:#5677a5;cursor:pointer}.market-quote{display:grid;gap:5px;padding:13px 0;border-top:1px solid #edf0f2;font-size:12px}.market-quote b{font-size:19px}.market-quote small{color:#747b85;line-height:1.6}.scan-recent{margin-top:16px}.scan-recent .row{margin-bottom:8px}.scan-recent .row b{font-size:14px}.scan-recent .row span{color:#8d949d;font-size:11px}.scan-recent-list{display:grid;gap:7px}.scan-recent-list>div{display:flex;min-width:0;align-items:center;gap:9px}.scan-recent-list img{width:30px;height:41px;object-fit:contain;border-radius:3px;background:#f3f4f5}.scan-recent-list span{display:grid;min-width:0;flex:1;color:#353a41;font-size:12px}.scan-recent-list span small{overflow:hidden;color:#90969f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.scan-recent-list b{color:#8ba710;font-size:10px;font-weight:600}.scan-added{margin-top:16px}.scan-added>b{font-size:15px}.scan-added p{color:#707883;font-size:12px}.scan-added .actions button{flex:1;min-height:40px}#scan-panel button:disabled{opacity:.48;cursor:wait}@keyframes scanline{0%,100%{top:13%;opacity:.5}50%{top:84%;opacity:1}}@keyframes pulse{50%{transform:scale(.72);opacity:.65}}
@media (max-width:760px){.scan-page{width:100%}.scan-heading{margin-bottom:12px}.scan-heading h1{font-size:25px}.scan-stage{height:min(57dvh,530px);min-height:340px;border-radius:14px}.scan-guide{width:min(78%,calc((100% - 36px)*.714))}.scan-toolbar{gap:6px}.scan-network{display:none}.scan-select{flex:1}.scan-actions .secondary{min-width:104px}.scan-results,.scan-recent,.scan-added{padding:13px;border-radius:11px}.scan-candidate{gap:9px}.scan-statusline{min-height:38px}.scan-zoom input{width:68px}}
@media (max-width:390px){.scan-stage{height:min(54dvh,460px);min-height:300px}.scan-select{font-size:11px}.scan-auto{padding:0 8px}.scan-actions{gap:8px}.scan-actions .secondary{min-width:90px}.scan-quick-fields{grid-template-columns:1fr}.scan-guide .corner{width:20px;height:20px}.scan-results-head{align-items:center}.scan-results-head small{display:none}.scan-hint{font-size:10px}}
@media (prefers-reduced-motion:reduce){.scan-guide .scan-line,.scan-pulse.working{animation:none}}

/* Cardscan-inspired live view: the guide is deliberately portrait-card sized, with
   controls outside the capture region so the card itself remains unobscured. */
.scan-prompt{position:absolute;z-index:3;top:18px;left:50%;display:flex;align-items:center;gap:8px;transform:translateX(-50%);padding:10px 17px;border:1px solid #ffffff38;border-radius:999px;background:#353535a8;color:#f8f8f8;font-size:14px;font-weight:600;white-space:nowrap;backdrop-filter:blur(12px)}
.scan-prompt i{font-size:22px;font-style:normal;line-height:.7}.scan-shutter{display:grid;width:66px;height:66px;margin:3px auto 8px;padding:5px;place-items:center;border:3px solid #f8f8f8;border-radius:50%;background:#0000001c;box-shadow:0 2px 12px #0006}.scan-shutter i{display:block;width:48px;height:48px;border-radius:50%;background:#f6f7f8}.scan-desktop .scan-stage{height:min(52dvh,510px);min-height:330px;border-style:dashed;border-color:#cbd1d8;background:linear-gradient(135deg,#f3f5f7,#e9edf2)}.scan-desktop .scan-stage:after{display:none}.scan-upload-idle{color:#404852}.scan-upload-idle>i{display:grid;width:54px;height:54px;place-items:center;border-radius:50%;background:#fff;color:#48525e;font-size:31px;font-style:normal;box-shadow:0 5px 18px #3341551a}.scan-upload-idle span{color:#7e8792}.scan-desktop .scan-actions{justify-content:center}.scan-desktop .scan-actions .primary{width:min(100%,330px);flex:0 1 330px}.scan-desktop .scan-statusline{max-width:660px;margin:0 auto}.scan-desktop .scan-hint{text-align:center}

@media (max-width:1100px){
 .site-main .screen[data-route="scan"]>.page{max-width:none;padding-top:0;padding-right:0;padding-left:0;background:#090909}
 .site-main .screen[data-route="scan"]:has(.is-scan-idle)>.page{height:calc(100dvh - 56px);padding-bottom:0;overflow:hidden}
 .site-main .screen[data-route="scan"] .site-icp{display:none}.site-main .screen[data-route="scan"]{background:#090909}
 .scan-page.scan-mobile{width:100%;min-height:calc(100dvh - 56px);padding:0 0 calc(91px + env(safe-area-inset-bottom));background:#090909;color:#fff}
 .scan-page.scan-mobile.is-scan-idle{position:relative;height:calc(100dvh - 56px);min-height:0;overflow:hidden;padding:0}.scan-page.scan-mobile.is-scan-idle .scan-stage{position:absolute;inset:0;width:100%;height:100%;min-height:0}
 .scan-mobile .scan-heading{position:absolute;z-index:4;top:16px;right:18px;left:18px;align-items:center;margin:0}.scan-mobile .scan-heading>div{display:none}.scan-mobile .scan-count{border-color:#ffffff36;background:#161616a6;color:#fff;backdrop-filter:blur(10px)}
 .scan-mobile .scan-toolbar{position:absolute;z-index:4;top:64px;right:18px;left:18px;justify-content:space-between;margin:0}.scan-mobile .scan-select{width:auto;border-color:#ffffff2e;background:#2020209e;color:#f2f2f2;backdrop-filter:blur(10px)}.scan-mobile .scan-select select{color:#fff}.scan-mobile .scan-auto{border-color:#ffffff2e;background:#2020209e;color:#fff;backdrop-filter:blur(10px)}.scan-mobile .scan-auto.active{border-color:#ffe52788;background:#473e0dbe;color:#fff}.scan-mobile .scan-network{display:none}
 .scan-mobile .scan-stage{height:calc(100dvh - 56px);min-height:490px;border:0;border-radius:0;background:#151515;box-shadow:none}.scan-mobile .scan-stage:after{background:radial-gradient(ellipse 43% 48% at center,transparent 44%,#000000c7 100%)}.scan-mobile .scan-stage video,.scan-mobile .scan-stage .scan-photo{object-fit:cover}.scan-mobile .scan-guide{z-index:2;top:21%;bottom:16%;width:min(76%,calc((100% - 42px)*.714))}.scan-mobile .scan-guide .corner{width:28px;height:28px;border-width:3px;border-color:#fff}.scan-mobile .scan-guide .scan-line{display:none}.scan-mobile .scan-live-controls{top:auto;right:18px;bottom:20px;left:18px}.scan-mobile .scan-icon{width:42px;height:42px}.scan-mobile .scan-zoom{margin-left:auto}.scan-mobile .scan-stop{margin-left:0}
 .scan-mobile .scan-statusline{position:fixed;z-index:34;right:20px;bottom:166px;left:20px;min-height:30px;justify-content:center;padding:0 10px;color:#f4f4f4;text-align:center;text-shadow:0 1px 3px #000}.scan-mobile .scan-statusline b{display:none}.scan-mobile .scan-statusline>span:nth-child(2){flex:initial}.scan-mobile .scan-pulse{display:none}.scan-mobile .scan-actions{position:fixed;z-index:35;right:0;bottom:96px;left:0;justify-content:center}.scan-mobile .scan-actions .primary{min-width:190px;min-height:50px;border-radius:999px}.scan-mobile .scan-hint{display:none}.scan-mobile .scan-results,.scan-mobile .scan-recent,.scan-mobile .scan-added,.scan-mobile .scan-market{position:relative;z-index:36;margin:-8px 12px 0;padding:15px;border:0;border-radius:20px 20px 12px 12px;box-shadow:0 -12px 30px #0004}.scan-mobile .scan-recent{margin-top:12px}.scan-mobile .scan-added,.scan-mobile .scan-market{margin-top:12px}
}

@media (max-width:760px){.scan-mobile .scan-stage{height:calc(100dvh - 48px);min-height:470px}.scan-mobile .scan-page{min-height:calc(100dvh - 48px)}.site-main .screen[data-route="scan"]:has(.is-scan-idle)>.page{height:calc(100dvh - 48px)}.scan-mobile.is-scan-idle{height:calc(100dvh - 48px)!important;min-height:0!important}.scan-mobile .scan-guide{top:22%;bottom:18%;width:min(79%,calc((100% - 32px)*.714))}}
@media (max-width:390px){.scan-mobile .scan-toolbar{top:57px;right:13px;left:13px}.scan-mobile .scan-select{padding:6px;font-size:10px}.scan-mobile .scan-auto{min-height:31px;font-size:10px}.scan-mobile .scan-prompt{top:112px;font-size:12px}.scan-mobile .scan-guide{top:24%;bottom:20%;width:min(79%,calc((100% - 26px)*.714))}.scan-mobile .scan-statusline{bottom:142px;font-size:10px}.scan-mobile .scan-actions{bottom:82px}}
