:root{--bg:#0f172a;--panel:#1e293b;--panel-2:#273449;--text:#e2e8f0;--muted:#94a3b8;--accent:#22d3ee;--ok:#4ade80;--warn:#fbbf24;--ctrl:#f472b6;--border:#334155;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "D2Coding", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;font-size:15px}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);max-width:720px;margin:0 auto}button,.filebtn{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:10px;padding:10px 14px}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:#0f172a;border-color:var(--accent);font-weight:600}button.small{padding:6px 10px;font-size:13px}button.active{background:var(--accent);color:#0f172a}.topbar{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.topbar h1{margin:0;font-size:18px}.badge{background:var(--panel-2);color:var(--muted);border-radius:999px;padding:3px 8px;font-size:12px}.badge.offline{color:#fed7aa;background:#7c2d12}.camera{aspect-ratio:4/3;background:#000;position:relative;overflow:hidden}.camera video{object-fit:cover;width:100%;height:100%;display:block}.camera video.mirror{transform:scaleX(-1)}.camera-msg{text-align:center;background:#0009;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.camera-msg p{color:var(--muted);margin:0}.scanbox{width:var(--box,70%);aspect-ratio:1;pointer-events:none;border:2px solid #22d3eecc;border-radius:12px;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #00000059}.camera.running .scanbox{display:block}.scanline{background:var(--accent);opacity:.8;height:2px;animation:2s ease-in-out infinite alternate sweep;position:absolute;left:6%;right:6%}.camera.paused .scanline{opacity:0;animation:none}.scanbox.hit{border-color:var(--ok)}@keyframes sweep{0%{top:8%}to{top:92%}}.controls{flex-wrap:wrap;gap:8px;padding:12px 16px 0;display:flex}.controls>*{text-align:center;flex:auto}.options{color:var(--muted);align-items:center;font-size:14px}.options label{flex:none;align-items:center;gap:6px;display:flex}.options .zoom{flex:160px}.options .zoom input{flex:1}.results{flex-direction:column;gap:12px;padding:12px 16px;display:flex}.empty{color:var(--muted);text-align:center;margin:16px 0}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;overflow:hidden}.card.flash{animation:.6s ease-out flash}@keyframes flash{0%{border-color:var(--ok);box-shadow:0 0 0 3px #4ade8066}}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.format{color:var(--accent);font-size:17px;font-weight:700}.meta{color:var(--muted);font-size:12px}.tags{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.tag{background:var(--panel-2);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:12px}.tag.gs1{color:#bbf7d0;background:#14532d}.label{color:var(--muted);justify-content:space-between;align-items:center;margin:12px 0 4px;font-size:12px;display:flex}.text{font-family:var(--mono);white-space:pre-wrap;word-break:break-all;-webkit-user-select:text;user-select:text;background:#0b1220;border-radius:8px;padding:10px;font-size:15px;line-height:1.5}.ctrl{color:var(--ctrl);background:#f472b61f;border-radius:4px;padding:0 2px;font-size:12px}.hex{font-family:var(--mono);color:#cbd5e1;white-space:pre;background:#0b1220;border-radius:8px;padding:10px;font-size:12px;line-height:1.6;overflow-x:auto}.hex .ascii{color:var(--muted)}table.gs1{border-collapse:collapse;width:100%;font-size:14px}table.gs1 th,table.gs1 td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 4px}table.gs1 th{color:var(--muted);font-size:12px;font-weight:500}table.gs1 .ai{font-family:var(--mono);color:var(--accent);white-space:nowrap}table.gs1 .val{font-family:var(--mono);word-break:break-all}table.gs1 .note{color:var(--muted);font-size:12px}table.gs1 .bad{color:var(--warn)}.gs1-warn{color:var(--warn);margin-top:6px;font-size:12px}.copyrow{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.copyrow button{flex:auto;padding:8px;font-size:13px}details summary{cursor:pointer;color:var(--muted);margin-top:12px;font-size:13px}dl.detail{grid-template-columns:max-content 1fr;gap:4px 12px;margin:8px 0 0;font-size:13px;display:grid}dl.detail dt{color:var(--muted)}dl.detail dd{font-family:var(--mono);word-break:break-all;margin:0}.history{padding:4px 16px 12px}.history-head{justify-content:space-between;align-items:center;display:flex}.history h2{margin:8px 0;font-size:15px}.history h2 small{color:var(--muted);font-size:12px;font-weight:400}#historyList{margin:0;padding:0;list-style:none}#historyList li{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:1fr auto;gap:2px 8px;padding:10px 4px;display:grid}#historyList li .h-text{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}#historyList li .h-fmt{color:var(--accent);font-size:12px}#historyList li .h-time{color:var(--muted);grid-area:1/2/span 2;align-self:center;font-size:12px}#historyList .none{color:var(--muted);cursor:default;text-align:center;display:block}.footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:16px;font-size:12px;display:flex}.footer a{color:var(--accent)}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));border:1px solid var(--border);color:var(--text);z-index:10;background:#020617;border-radius:999px;max-width:90vw;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}
