:root{--bg:#101b20;--panel:#17252c;--line:#2a3a40;--lime:#d8f36a;--white:#f4f6ed;--muted:#9daeb1;color-scheme:dark;font-family:Inter,"Avenir Next",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--white)}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button,a{touch-action:manipulation}button{color:inherit}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,p{margin:0}.app{width:min(100%,780px);margin:auto;padding:0 28px env(safe-area-inset-bottom)}.top{display:flex;align-items:center;justify-content:space-between;padding:26px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--white);font-weight:800;letter-spacing:-.5px;font-size:19px;line-height:1.2}.brand .light{font-weight:400}.brand small{display:block;font-size:7px;letter-spacing:2px;font-weight:500;color:var(--muted);margin-top:6px}.brand-icon{background:var(--lime);color:var(--bg);width:39px;height:39px;border-radius:11px;display:grid;place-items:center}.brand-icon svg{width:25px;height:25px}.icon-button{border:1px solid var(--line);background:transparent;border-radius:11px;width:42px;height:42px;display:inline-grid;place-items:center;flex-shrink:0;font-size:25px}.heading{display:flex;align-items:center;justify-content:space-between;padding:27px 0 22px;gap:10px}.eyebrow{font-size:8px;font-weight:650;letter-spacing:1.6px;color:var(--muted)}h1{font-size:28px;line-height:1.15;letter-spacing:-1px;margin-top:8px;font-weight:650}.version{border:1px solid var(--line);font-size:7px;letter-spacing:1px;padding:6px 8px;border-radius:20px;color:var(--muted);white-space:nowrap}.scanner{border:1px solid #36454a;border-radius:20px;overflow:hidden;background:#0b1418}.stage{position:relative;aspect-ratio:1.15;overflow:hidden;min-height:410px;background:radial-gradient(ellipse at 50% 30%,#24373b55,transparent 65%),linear-gradient(135deg,#142128,#0c171c)}.stage:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#8dada407 1px,transparent 1px),linear-gradient(90deg,#8dada407 1px,transparent 1px);background-size:38px 38px}.stage>video,.stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.stage-top{position:absolute;top:18px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:3;pointer-events:none}.status{font-size:9px;font-weight:500;background:#0a151bd9;padding:7px 9px;border:1px solid #48564c80;border-radius:7px;display:flex;gap:7px;align-items:center;backdrop-filter:blur(8px)}.status i{width:5px;height:5px;background:var(--muted);border-radius:50%}.status.active i{background:var(--lime);box-shadow:0 0 8px #d8f36966}.local-badge{font-size:6px;letter-spacing:1px;padding:5px 6px;background:#0a151bd9;border-radius:4px;color:var(--muted)}.welcome{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;min-height:410px;padding:62px 24px 30px}.viewfinder{position:relative;width:76px;height:76px;margin-bottom:20px;display:grid;place-items:center}.viewfinder>svg{width:64px;height:64px;stroke:var(--lime);stroke-width:1.3}.viewfinder>span{position:absolute;inset:-7px;border-radius:50%;border:1px solid #d8f36a0c}.welcome>.eyebrow{font-size:7px;letter-spacing:1.3px}.welcome h2{font-size:33px;letter-spacing:-1.2px;line-height:1.1;margin:14px 0;font-weight:600}.welcome p{font-size:12px;line-height:1.8;color:var(--muted)}.primary{display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;background:var(--lime);color:var(--bg);font-size:13px;font-weight:750;min-height:50px;padding:14px 20px}.primary:hover{background:#e7ff87}.welcome .primary{width:min(100%,280px);margin-top:26px}.primary>svg{width:18px;height:18px}.primary>span{font-size:20px;margin-left:auto;font-weight:400}.text-button{border:0;background:none;color:var(--muted);font-size:11px;padding:16px 5px;min-height:42px}.text-button span{margin-left:6px;color:var(--lime)}.welcome>small{font-size:8px;color:#829598}.corner{position:absolute;pointer-events:none;width:15px;height:15px;border-color:#b7d0c04d;border-style:solid;z-index:2}.c1{left:15px;top:60px;border-width:1px 0 0 1px}.c2{right:15px;top:60px;border-width:1px 1px 0 0}.c3{left:15px;bottom:15px;border-width:0 0 1px 1px}.c4{right:15px;bottom:15px;border-width:0 1px 1px 0}.toolbar{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;background:var(--panel);gap:8px}.counter{display:flex;align-items:center;gap:12px}.counter>span{font-size:35px;font-weight:500;letter-spacing:-2px;line-height:1;color:var(--lime);font-variant-numeric:tabular-nums}.counter>div{font-size:7px;letter-spacing:1px;font-weight:650}.counter small{display:block;font-size:8px;letter-spacing:0;font-weight:400;color:var(--muted);margin-top:5px}.tools{display:flex;gap:7px}.tools .icon-button{width:36px;height:36px;border-radius:9px}.tools svg{width:18px;height:18px}.stage-hint{position:absolute;bottom:20px;left:25px;right:25px;z-index:3;text-align:center;pointer-events:none;font-size:9px;color:white;text-shadow:0 1px 3px #000;background:#0c171cbf;border-radius:6px;padding:6px}.loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#101b20ed;text-align:center;gap:12px;padding:30px}.loading strong{font-size:15px}.loading p{color:var(--muted);font-size:12px;line-height:1.7}.spinner{width:30px;height:30px;border:2px solid #d8f36a22;border-top-color:var(--lime);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.overlay{position:absolute;inset:0;pointer-events:none;z-index:2}.object-box{position:absolute;border:1.5px solid #e8eef1;border-radius:7px;pointer-events:auto;background:#ffffff05;min-width:10px;min-height:10px;transition:left .14s linear,top .14s linear,width .14s linear,height .14s linear;text-align:left;padding:0;box-shadow:0 0 0 1px #0004}.object-box>span{position:absolute;top:-1px;left:-1px;background:#e8eef1;color:#17252c;border-radius:5px 0 5px 0;padding:4px 7px;font-size:10px;font-weight:700;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.object-box small{font-size:8px;font-weight:500;opacity:.7;margin-left:5px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:25px 0 14px;gap:10px}.section-head h2{font-size:14px;font-weight:600;letter-spacing:-.2px}.section-head h2>span{margin-left:8px;display:inline-grid;place-items:center;font-size:9px;background:var(--panel);border-radius:5px;min-width:20px;padding:4px;color:var(--muted)}.live-label{font-size:6px;letter-spacing:1px;color:var(--muted);white-space:nowrap}.empty{display:flex;gap:15px;align-items:center;border:1px dashed var(--line);padding:22px 18px;border-radius:12px}.empty>span{font-size:35px;color:#6e848b;line-height:1}.empty p{font-size:11px;color:#c2ccca}.empty small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.result-list{display:grid;gap:8px}.result{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:13px 14px;border-radius:10px;background:var(--panel);text-align:left;width:100%;min-height:60px}.result .result-index{color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.result strong{font-size:12px;font-weight:550;display:block}.result small{font-size:9px;color:var(--muted);display:block;margin-top:3px}.result .score{margin-left:auto;font-size:11px;color:#d5dddc}.phase-note{display:flex;align-items:flex-start;gap:14px;margin-top:24px;background:#18262a;border:1px solid #2e3e3e;padding:19px;border-radius:12px}.note-symbol{font-size:23px;color:var(--lime);line-height:1}.phase-note h2{font-size:12px;font-weight:600;margin:0 0 7px}.phase-note p{font-size:10px;color:var(--muted);line-height:1.8;max-width:490px}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:8px;margin-top:13px;color:#cbd5d0}.legend span{display:flex;align-items:center;gap:6px}.legend i{display:block;width:5px;height:5px;border-radius:50%;background:var(--lime)}.legend i.neutral{background:#d9e1e2}.legend .future{opacity:.5}footer{display:flex;justify-content:space-between;align-items:center;margin:26px 0 22px;border-top:1px solid var(--line);padding-top:18px;font-size:8px;color:var(--muted);letter-spacing:.8px}footer b{color:var(--lime);font-size:14px;margin-left:5px}footer button{font-size:9px;background:none;color:var(--muted);border:0;padding:10px 0;letter-spacing:0;min-height:35px}.notice{margin:14px 0;padding:14px 16px;background:#38302a;border:1px solid #6f5940;border-radius:10px;font-size:12px;line-height:1.7;color:#f1d8b0}dialog{background:var(--panel);color:var(--white);border:1px solid var(--line);border-radius:19px;width:420px;max-width:calc(100% - 32px);padding:24px;max-height:85dvh;overflow:auto}dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.dialog-head h2{font-size:23px;font-weight:600;letter-spacing:-.7px}.dialog-head .icon-button{width:34px;height:34px;font-size:25px}.dialog-intro,dialog>p{font-size:12px;line-height:1.8;color:var(--muted);margin:14px 0}.setting{display:block;border-bottom:1px solid var(--line);padding:20px 0}.setting>span{display:flex;justify-content:space-between;align-items:center;font-size:12px}.setting output{color:var(--lime);font-size:12px}.setting input{width:100%;margin:20px 0 10px;accent-color:var(--lime)}.setting small{color:var(--muted);font-size:10px;line-height:1.6;display:block}.check{display:flex;gap:12px;align-items:center;padding:23px 0;font-size:12px}.check input{accent-color:var(--lime);width:20px;height:20px}.check small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.dialog-note{background:#0f1d22;border-radius:8px;padding:12px;font-size:10px;color:var(--muted);line-height:1.7;margin:0 0 20px}dialog>.primary{width:100%}#detail>h2{font-size:30px;font-weight:550;letter-spacing:-1px}#detail-confidence{font-size:12px;color:var(--muted)}.detail-price{border:1px dashed #526261;border-radius:10px;padding:20px;font-size:17px;margin:20px 0}.detail-price span{display:block;color:var(--muted);font-size:11px;margin-top:6px}dialog ol{font-size:12px;line-height:1.8;padding-left:20px;color:var(--muted)}dialog li{padding:5px 0}dialog>small{display:block;color:var(--muted);font-size:9px;line-height:1.8;margin-top:20px}[hidden]{display:none!important}
@media(min-width:900px){.app{max-width:1000px}.heading{padding-top:34px}h1{font-size:35px}.scanner{max-width:100%}.stage{aspect-ratio:1.6;min-height:470px}.welcome{min-height:470px}.welcome h2{font-size:39px}.welcome p{font-size:14px}.section-head h2{font-size:17px}.phase-note{padding:23px}.phase-note p{font-size:12px}.phase-note h2{font-size:14px}}
@media(max-width:480px){.app{padding-left:18px;padding-right:18px}.top{padding:20px 0}.brand{font-size:17px}.heading{padding:23px 0 19px}h1{font-size:25px}.version{font-size:6px;letter-spacing:.5px}.scanner{border-radius:16px}.stage{aspect-ratio:auto;min-height:470px}.welcome{min-height:470px;padding-left:20px;padding-right:20px}.stage-top{left:13px;right:13px;top:13px}.local-badge{font-size:5px;letter-spacing:.5px}.welcome h2{font-size:32px}.welcome>.eyebrow{font-size:6px;letter-spacing:1px}.toolbar{padding:14px 13px}.counter{gap:9px}.counter>span{font-size:31px}.counter>div{font-size:6px;letter-spacing:.7px}.counter small{font-size:7px}.tools{gap:5px}.tools .icon-button{width:33px;height:33px}.section-head h2{font-size:12px}.live-label{font-size:5px}.phase-note{padding:16px}.phase-note p{font-size:10px}.status{font-size:8px}.stage-hint{font-size:8px}.stage.running{min-height:440px;height:59svh;max-height:640px}.heading>.version{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
