:root{--bg:#fff;--fg:#1c1c1e;--muted:#6b7280;--accent:#36f;--accent-fg:#fff;--card:#f3f4f6;--border:#d1d5db;--warn-bg:#fff4d6;--err-bg:#fde2e2;--info-bg:#e3ecff;--touch:56px}@media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#f1f1f1;--muted:#9ca3af;--card:#1f2023;--border:#3a3b40;--warn-bg:#4a3b10;--err-bg:#5a1f1f;--info-bg:#1d2c52}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font:18px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{height:100%}.app{min-height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex}.header{background:var(--accent);color:var(--accent-fg);align-items:center;gap:8px;min-height:52px;padding:4px 8px;display:flex}.header h1{margin:0;font-size:20px;font-weight:600}.icon-btn,.icon-spacer{flex:none;width:44px;height:44px}.icon-btn{color:inherit;cursor:pointer;background:0 0;border:0;font-size:34px;line-height:1}.content{flex:1;width:100%;max-width:720px;margin:0 auto;padding:16px}.center{text-align:center;padding:32px 16px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 16px}.label{color:var(--muted);font-size:14px}.value{font-size:22px;font-weight:600}.muted{color:var(--muted)}.denied{color:#b91c1c}@media (prefers-color-scheme:dark){.denied{color:#fca5a5}}code{font-family:ui-monospace,Menlo,Consolas,monospace}.btn{min-height:var(--touch);font:inherit;background:var(--card);color:var(--fg);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:0 20px;font-weight:600}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-small{min-height:40px;padding:0 14px;font-size:16px}.field{flex-direction:column;gap:4px;display:flex}select,input[type=text]{min-height:var(--touch);font:inherit;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:12px;padding:0 12px}input[type=checkbox]{flex:none;width:28px;height:28px}.scan{font-size:22px}.banner{justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.banner-warn{background:var(--warn-bg)}.banner-error{background:var(--err-bg)}.banner-info{background:var(--info-bg)}@media (orientation:landscape) and (height<=480px){.header{min-height:40px}.content{padding:8px 16px}:root{--touch:48px}}.pick-title{font-size:20px;font-weight:700}.scan-wrap{gap:8px;display:flex}.scan-wrap .scan{flex:1;min-width:0}.speech{text-align:left;font:inherit;border:1px solid var(--border);background:var(--info-bg);color:var(--fg);cursor:pointer;border-radius:12px;padding:10px 14px}.tabs{gap:4px;display:flex;overflow-x:auto}.tab{min-height:44px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;padding:0 12px}.tab-on{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row-card{text-align:left;width:100%;font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:10px 14px;display:block}.row-card.static{cursor:default}.row-picked{color:#1c1c1e;background:#96ff96}.row-picked .muted{color:#3b4a3b}.row-top{justify-content:space-between;gap:12px;display:flex}.cell{font-size:22px;font-weight:700}.qty{white-space:nowrap;font-size:20px;font-weight:600}.row-name{margin:2px 0}.small{font-size:14px}.plain{margin:4px 0 12px;padding-left:20px}.modal-back{z-index:10;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg);color:var(--fg);border-radius:16px;flex-direction:column;gap:8px;width:100%;max-width:460px;max-height:90vh;padding:16px;display:flex;overflow:auto}.modal h2{margin:0;font-size:20px}.toasts{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed}.toast{color:#fff;background:#323232;border-radius:12px;padding:12px 16px}.cam{align-items:stretch}.cam-video{object-fit:cover;background:#000;border-radius:12px;width:100%;max-height:55vh}.diag-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.diag-row .label{flex:none}.diag-row span:last-child{text-align:right;word-break:break-word}.diag-log{min-height:60px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8}.diag-key{background:var(--bg);border:1px solid var(--border);border-radius:6px;margin:0 2px;padding:0 6px;display:inline-block}.diag-key sub{color:var(--muted);font-size:11px}.header h1{flex:1}.link{align-items:center;gap:6px;padding:0 6px;font-size:13px;display:inline-flex}.link-dot{background:#9ca3af;border:2px solid #fffc;border-radius:50%;width:12px;height:12px}.link-ok .link-dot{background:#22c55e}.link-warn .link-dot{background:#f59e0b}.link-down .link-dot{background:#ef4444}.link-text{color:#fff;font-weight:600}
