:root{--bg: #f6f7f9;--surface: #ffffff;--text: #1b1f24;--muted: #5b6470;--border: #d9dde3;--accent: #0b6bcb;--accent-text: #ffffff;--avoid: #b42318;--avoid-bg: #fdecea;--caution: #8a5a00;--caution-bg: #fff4d6;--ok: #1e7b34;--ok-bg: #e6f4ea;--focus: #0b6bcb;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}@media(prefers-color-scheme:dark){:root{--bg: #111418;--surface: #1b2027;--text: #e8ebef;--muted: #a3acb8;--border: #333b45;--accent: #4a9eff;--accent-text: #0b1020;--avoid: #ff8a80;--avoid-bg: #3a1714;--caution: #ffcc66;--caution-bg: #3a2e10;--ok: #7fd18f;--ok-bg: #12301b;--focus: #4a9eff}}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{max-width:640px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.header{padding:calc(1rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right)) .25rem calc(1rem + env(safe-area-inset-left))}.header h1{font-size:1.4rem;margin:0;display:flex;align-items:center;gap:.5rem}.header p{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}.main{flex:1;padding:.75rem 1rem calc(5.5rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1rem}.nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10}.nav-btn{flex:1;max-width:213px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.55rem .25rem .6rem;background:none;border:0;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer;min-height:56px}.nav-btn[aria-current=page]{color:var(--accent);font-weight:600}.card{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;padding:1rem}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.75rem}.row.space-between{justify-content:space-between;margin-top:0}.col{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);font:inherit;font-weight:600;padding:.7rem 1.1rem;border-radius:10px;cursor:pointer;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--accent)}.btn-wide{flex:1}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.link-btn{background:none;border:0;padding:.5rem 0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline;min-height:44px;align-self:flex-start}.link-btn.danger{color:var(--avoid)}.field-label{display:block;font-weight:600;margin-bottom:.4rem}.textarea,.input{width:100%;font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem}.textarea{resize:vertical;min-height:7rem}.hint{color:var(--muted);font-size:.9rem;margin:.5rem 0 0}.error{background:var(--avoid-bg);color:var(--avoid);border-radius:10px;padding:.75rem}.chip{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.chip-avoid{background:var(--avoid-bg);color:var(--avoid)}.chip-caution{background:var(--caution-bg);color:var(--caution)}.chip-ok{background:var(--ok-bg);color:var(--ok)}.chip-empty{background:var(--bg);color:var(--muted)}.permission p{margin:.5rem 0}.privacy{margin:.5rem 0 0;color:var(--muted);font-size:.92rem}.camera{display:flex;flex-direction:column}.viewfinder{position:relative;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:3 / 4;max-height:calc(100vh - 230px);max-height:calc(100svh - 230px);min-height:220px}.cam-shutter{position:absolute;left:50%;bottom:16px;transform:translate(-50%);width:76px;height:76px;border-radius:50%;border:4px solid #fff;background:#ffffff40;padding:0;cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 10px #0006}.cam-shutter span{width:58px;height:58px;border-radius:50%;background:#fff}.cam-shutter:active span{transform:scale(.9)}.cam-cancel{position:absolute;top:10px;right:10px;min-height:44px;padding:.4rem .9rem;border-radius:999px;border:0;background:#0009;color:#fff;font:inherit;font-weight:600;cursor:pointer}.viewfinder video{width:100%;height:100%;object-fit:cover;display:block}.tips{margin:.6rem 0 0;padding-left:1.2rem;color:var(--muted);font-size:.95rem}.scan{display:flex;flex-direction:column;gap:.75rem}.scan-top{display:flex;gap:.75rem;align-items:center}.scan-top .btn{flex:none}.scan-preview{flex:1;min-width:0;width:100%;max-height:120px;object-fit:contain;border-radius:12px;background:var(--surface);border:1px solid var(--border)}.progress .bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden;margin-top:.4rem}.progress .bar>div{height:100%;background:var(--accent);transition:width .2s}@media(prefers-reduced-motion:reduce){.progress .bar>div{transition:none}}.results{display:flex;flex-direction:column;gap:.5rem}.results h3{font-size:1rem;margin:.75rem 0 0}.verdict{display:flex;gap:.75rem;align-items:center;padding:.9rem 1rem;border-radius:14px;border:2px solid currentColor}.verdict-icon{flex:none;width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:1.2rem;border:2px solid currentColor}.verdict-avoid{background:var(--avoid-bg);color:var(--avoid)}.verdict-caution{background:var(--caution-bg);color:var(--caution)}.verdict-clear{background:var(--ok-bg);color:var(--ok)}.verdict-empty{background:var(--surface);color:var(--muted)}.match-list{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.match{background:var(--surface);color:var(--text);border:1px solid var(--border);border-left:5px solid var(--border);border-radius:10px;padding:.6rem .75rem}.match-avoid{border-left-color:var(--avoid)}.match-caution{border-left-color:var(--caution)}.match-ok{border-left-color:var(--ok)}.match-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.match-name{font-weight:700}.match-found,.match-note,.aliases{font-size:.9rem;margin-top:.2rem}.match-note,.aliases{color:var(--muted)}.match-cat{font-weight:600}.fuzzy{color:var(--caution)}.label-text{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.75rem;margin:0;white-space:pre-wrap;word-break:break-word}.hl{border-radius:3px;padding:0 2px;font-weight:600}.hl-avoid{background:var(--avoid-bg);color:var(--avoid);text-decoration:underline wavy}.hl-caution{background:var(--caution-bg);color:var(--caution);text-decoration:underline dotted}.hl-ok{background:transparent;color:var(--ok);font-weight:400}.disclaimer{font-size:.8rem;color:var(--muted);margin:.5rem 0 0}.type{display:flex;flex-direction:column;gap:1rem}.history-list{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.6rem}.history-item{padding:.75rem}.history-head{width:100%;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:.25rem .6rem;align-items:center}.history-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-meta{grid-column:1 / -1;font-size:.82rem;color:var(--muted)}.empty p{color:var(--muted);margin:0}@media(max-width:360px){.main{padding-left:.75rem;padding-right:.75rem}.card{padding:.85rem}h2{font-size:1.3rem}.header h1{font-size:1.25rem}}@media(orientation:landscape)and (max-height:500px){.header{padding-top:calc(.4rem + env(safe-area-inset-top))}.header p{display:none}.viewfinder{max-height:calc(100vh - 150px);max-height:calc(100svh - 150px);min-height:180px}.cam-shutter{left:auto;right:16px;bottom:auto;top:50%;transform:translateY(-50%)}.cam-cancel{right:auto;left:10px}.nav-btn{min-height:48px;padding-top:.35rem;padding-bottom:.35rem}}.suggest{margin-top:.6rem}.suggest .hint{margin:0 0 .4rem}.suggest-chips{display:flex;flex-wrap:wrap;gap:.5rem}.suggest-chip{font:inherit;font-size:.95rem;min-height:44px;padding:.4rem .9rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.suggest-avoid{border-color:var(--avoid)}.suggest-caution{border-color:var(--caution)}.suggest-ok{border-color:var(--ok)}
