:root{color-scheme:light;--bg:#ffffff;--surface:#ffffff;--surface-subtle:#fafafa;--text:#0d0d0d;--muted:#6e6e6e;--line:#e5e5e5;--line-strong:#d4d4d4;--button:#111111;--button-hover:#2a2a2a;--focus:rgba(0,0,0,0.12)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Noto Sans TC,PingFang TC,sans-serif}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.scanner-shell{min-height:100vh;padding:40px 32px}.scanner-header,.scanner-workspace{margin:0 auto;max-width:1120px}.scanner-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:28px}.eyebrow{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:0;margin:0 0 8px}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.2}h1,h2{font-weight:600}h2{font-size:18px;line-height:1.35}.entry-count{align-items:center;border:1px solid var(--line);border-radius:999px;display:inline-flex;gap:8px;min-height:42px;padding:0 14px}.entry-count span,.entry-count svg{color:var(--muted)}.entry-count span{font-size:13px;font-weight:500}.entry-count strong{color:var(--text);font-size:18px;font-weight:600}.scanner-workspace{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(340px,1.2fr) minmax(300px,.8fr)}.camera-panel{display:grid;grid-gap:14px;gap:14px}.video-frame{aspect-ratio:16/10;background:#eeeeee;border:1px solid var(--line);border-radius:10px;overflow:hidden;position:relative;width:100%}.video-frame video{height:100%;object-fit:cover;width:100%}.scan-window{border:2px solid rgba(255,255,255,.95);border-radius:8px;box-shadow:0 0 0 999px rgba(0,0,0,.16),0 0 0 1px rgba(0,0,0,.18);height:32%;left:10%;position:absolute;right:10%;top:34%}.controls{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,1fr)}.primary-button,.secondary-button{align-items:center;border-radius:999px;display:inline-flex;gap:8px;font-weight:500;justify-content:center;min-height:44px;padding:0 18px}.primary-button{background:var(--button);border:1px solid var(--button);color:#ffffff}.primary-button:hover{background:var(--button-hover)}.secondary-button{background:var(--surface);border:1px solid var(--line-strong);color:var(--text)}.field{display:grid;grid-gap:8px;gap:8px}.field span{color:var(--muted);font-size:13px;font-weight:500}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-subtle);border:1px solid var(--line);border-radius:8px;color:var(--text);min-height:42px;padding:0 12px;width:100%}select:focus{border-color:var(--line-strong);outline:3px solid var(--focus)}.status-line{color:var(--muted);font-size:14px;line-height:1.6;min-height:22px}.result-panel{align-content:start;display:grid;grid-gap:16px;gap:16px;padding-top:2px}.result-box{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;display:flex;min-height:180px;padding:22px}.result-box strong{color:var(--text);font-size:44px;font-weight:600;line-height:1.1;overflow-wrap:anywhere}.lookup-status{border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:16px;font-weight:500;line-height:1.5;padding:12px 16px}.lookup-checking{background:#fafafa}.lookup-admitted{background:#f4f7f5;border-color:#d8e2db;color:#1f5f43}.lookup-duplicate,.lookup-error,.lookup-missing{background:#fafafa;border-color:var(--line-strong);color:var(--text)}@media (max-width:860px){.scanner-shell{padding:18px}.scanner-header{align-items:flex-start;flex-direction:column}h1{font-size:24px}.controls,.scanner-workspace{grid-template-columns:1fr}.video-frame{aspect-ratio:4/3}.result-box{min-height:130px}.result-box strong{font-size:34px}}