.spx-toolsbar{display:flex;gap:8px;align-items:center;padding:8px;background:#fff;border-radius:12px;box-shadow:0 4px 18px rgba(0,0,0,.06);margin-bottom:12px}
.spx-toolsbar .spx-search{flex:1;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px}
.spx-toolsbar .spx-scan{padding:10px 12px;border:0;border-radius:10px;background:var(--spx-primary);color:#fff;cursor:pointer}
.spx-searchwrap{position:relative;flex:1}
.spx-suggest{position:absolute;left:0;right:0;top:42px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);list-style:none;margin:6px 0 0;padding:6px;max-height:320px;overflow:auto;z-index:50}
.spx-suggest li{padding:8px 10px;border-radius:8px;cursor:pointer}
.spx-suggest li:hover,.spx-suggest li:focus{background:#f3f4f6;outline:none}
.spx-sg-item .sg-line1{font-weight:600;margin-bottom:2px}
.spx-sg-item .sg-line2{font-size:12px;opacity:.85}
.spx-suggest mark{background:rgba(255,235,59,.6);padding:0 2px;border-radius:3px}
.spx-qr-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9999}
.spx-qr-sheet{background:#000;padding:12px;border-radius:12px;width:min(90vw,420px);display:flex;flex-direction:column;gap:8px}
.spx-qr-sheet video{width:100%;border-radius:8px;background:#000}
.spx-qr-close{background:#fff;border:0;padding:8px 10px;border-radius:8px}
.spx-pulse{animation:spxPulse 1.2s ease}
@keyframes spxPulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.4)}100%{box-shadow:0 0 0 18px rgba(37,99,235,0)}}