.scanner{margin-top:var(--space-32);gap:var(--space-24);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;display:grid}.scanner__input,.scanner__output{gap:var(--space-16);display:grid}.viewfinder{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);--focus-color:var(--focus-color-strong);aspect-ratio:4/3;place-items:center;display:grid;position:relative;overflow:hidden}.viewfinder__reticle{place-items:center;display:grid;position:absolute;inset:0}.viewfinder__square{aspect-ratio:1;border:2px solid var(--accent);border-radius:var(--radius);width:56%}.viewfinder__inner{gap:var(--space-10);text-align:center;padding:var(--space-24);justify-items:center;display:grid;position:relative}.viewfinder__icon{stroke:var(--ink-muted);max-width:none}.viewfinder__title{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--ink);line-height:normal}.viewfinder__note{max-width:280px;font-size:var(--text-caption);color:var(--ink-muted);line-height:1.5}.scanner__result{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--canvas);box-shadow:var(--shadow-raised);overflow:hidden}.result__head{padding:var(--space-20);gap:var(--space-6);background:var(--surface);border-bottom:1px solid var(--border);display:grid}.result__label{font-size:var(--text-micro);font-weight:var(--weight-semibold);letter-spacing:.08em;color:var(--ink-muted);line-height:normal}.result__type{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--ink);line-height:normal}.result__body{padding:var(--space-20);gap:var(--space-16);display:grid}.decoded{gap:var(--space-6);display:grid}.decoded__label{font-size:var(--text-caption);color:var(--ink-secondary);line-height:normal}.decoded__value{padding:var(--space-12);border-radius:var(--radius-sm);background:var(--surface-sunken);--focus-color:var(--focus-color-strong);border:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-micro);color:var(--ink);word-break:break-all;line-height:1.6;display:block}.decoded__note{font-size:var(--text-caption);color:var(--ink-muted);line-height:1.5}.safety-verdict{border-top:1px solid var(--border);padding:var(--space-16) var(--space-20);gap:var(--space-10);background:var(--pass-wash);display:grid}.safety-verdict__title{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--pass-ink);line-height:normal}.safety-verdict__body{font-size:var(--text-body-sm);color:var(--pass-ink);margin:0;line-height:1.5}.safety-verdict[data-state=none]{background:var(--surface)}.safety-verdict[data-state=none] .safety-verdict__title{color:var(--ink)}.safety-verdict[data-state=none] .safety-verdict__body{color:var(--ink-secondary)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:40px var(--space-24);gap:var(--space-12);text-align:center;background:var(--surface);justify-items:center;display:grid}.dropzone[data-over]{border-color:var(--accent-strong)}.dropzone__icon{stroke:var(--ink-muted);max-width:none}.dropzone__title{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--ink);line-height:normal}.dropzone__note{font-size:var(--text-body-sm);color:var(--ink-muted);line-height:1.5}.dropzone__btn{height:var(--control-md);box-sizing:border-box}.viewfinder__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.viewfinder__error{font-size:var(--text-caption);color:var(--fail-ink);max-width:280px;line-height:1.5}.result__actions{border-top:1px solid var(--border);padding:var(--space-16) var(--space-20);gap:var(--space-8);flex-wrap:wrap;display:flex}.result__action{height:36px;padding-inline:var(--space-14)}.scanner__note{font-size:var(--text-caption);color:var(--ink-muted);margin:0;line-height:1.6}.scanner .chip,.scanner__input .chip{padding-inline:var(--space-16)}.supported{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-20);gap:var(--space-10);display:grid}.supported dt{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--ink);line-height:normal}.supported dd{font-size:var(--text-body-sm);color:var(--ink-secondary);margin:0;line-height:1.6}.readout dd.mono{text-align:end}.quish-band>.container{gap:var(--space-32);display:grid}.quish__head{margin-bottom:0}.quish__title{font-size:clamp(24px,3.5vw,32px);line-height:1.15}.quish__lede{line-height:1.7}.tips{gap:var(--space-16);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));display:grid}.tip{border:1px solid var(--border);border-radius:var(--radius);background:var(--canvas);padding:var(--space-20);gap:var(--space-6);align-content:start;display:grid}.tip__h{font-size:var(--text-body-md);font-weight:var(--weight-semibold);color:var(--ink);margin:0;line-height:normal}.tip__p{font-size:var(--text-body-sm);color:var(--ink-secondary);margin:0;line-height:1.6}a.result__action{text-align:start}.scan-verdict{box-sizing:border-box;width:100%;padding:var(--space-12) var(--space-14);border-radius:var(--radius-sm);background:var(--pass-wash);color:var(--pass-ink);font-size:var(--text-caption);margin:0;line-height:1.5}.scan-verdict[data-state=none]{background:var(--surface);color:var(--ink-secondary)}.scan-verdict[data-state=fail]{background:var(--fail-wash);color:var(--fail-ink)}.supported__more{margin-top:var(--space-6);font-size:var(--text-body-sm);color:var(--ink-muted)}.supported__more a{color:inherit;text-decoration:underline}
