.fva-open{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.fva-open svg{display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.fva-text-button{border-radius:999px;padding:12px 18px;font-weight:700;background:#009ada;color:#fff;gap:8px}.fva-text-button svg{width:21px;height:21px}.fva-camera-button{width:42px;height:42px;padding:8px;border-radius:50%;background:transparent;color:#555;transition:background .18s,color .18s,transform .18s}.fva-camera-button svg{width:24px;height:24px}.fva-camera-button:hover,.fva-camera-button:focus-visible{background:rgba(0,0,0,.06);color:#111}.fva-camera-button:active{transform:scale(.94)}.fva-floating{position:fixed;right:18px;bottom:22px;z-index:99990;background:#009ada;color:#fff;box-shadow:0 8px 30px #0003}.fva-lock{overflow:hidden}#fva-modal[hidden]{display:none}#fva-modal{position:fixed;inset:0;z-index:2147483646}.fva-backdrop{position:absolute;inset:0;background:#0009}.fva-panel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(600px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:24px;color:#222;box-sizing:border-box}.fva-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:32px;cursor:pointer}.fva-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.fva-method{appearance:none;border:1px solid #d9e1e7;background:#f8fafb;color:#20262c;border-radius:14px;padding:15px 9px;min-height:112px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:pointer;font:inherit;box-sizing:border-box}.fva-method:hover,.fva-method:active{border-color:#009ada;background:#eef9fd}.fva-method span{font-size:27px;line-height:1;margin-bottom:8px}.fva-method strong{font-size:13px}.fva-method small{font-size:10px;color:#68727b;margin-top:4px}.fva-method input{display:none}#fva-scanner-wrap{margin-top:14px;padding:12px;border-radius:14px;background:#111;color:#fff}#fva-reader{width:100%;min-height:230px;overflow:hidden;border-radius:10px;background:#000}#fva-reader video{object-fit:cover}.fva-scanner-help{text-align:center;font-size:12px}.fva-secondary{width:100%;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fff;font-weight:700;cursor:pointer}#fva-preview{width:100%;max-height:300px;object-fit:contain;margin:16px 0;border-radius:12px;background:#eee}#fva-search{width:100%;padding:14px;border:0;border-radius:10px;background:#009ada;color:#fff;font-weight:800;cursor:pointer}#fva-status{padding:15px 0;font-weight:700}.fva-card{border-top:1px solid #ddd;padding:12px 0}.fva-card a{display:grid;grid-template-columns:90px 1fr;gap:12px;color:inherit;text-decoration:none}.fva-card img{width:90px;height:90px;object-fit:contain}.fva-card h3{font-size:15px;margin:0 0 5px}.fva-card p{font-size:12px;margin:0 0 5px}.fva-card strong,.fva-card span{display:block}@media(max-width:480px){.fva-methods{grid-template-columns:1fr}.fva-method{min-height:auto;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;text-align:left;justify-items:start;padding:12px 14px}.fva-method span{grid-row:1/3;margin:0}.fva-method strong,.fva-method small{grid-column:2}}@media(min-width:700px){.fva-panel{top:50%;bottom:auto;transform:translate(-50%,-50%);border-radius:22px}}
.fva-external{display:grid;grid-template-columns:90px 1fr;gap:14px;padding:14px;margin:4px 0 12px;border:1px solid #b9e2f2;border-radius:14px;background:#f1fbff}.fva-external img{width:90px;height:90px;object-fit:contain;background:#fff;border-radius:10px}.fva-external h3{font-size:15px;margin:3px 0 7px}.fva-external p{font-size:12px;margin:3px 0}.fva-external small{display:block;color:#007cac;font-weight:700}.fva-external span{display:block;font-size:10px;color:#68727b;margin-top:7px}@media(max-width:420px){.fva-external{grid-template-columns:70px 1fr}.fva-external img{width:70px;height:70px}}

/* v4.1.1: blindaje visual contra estilos del tema/Elementor */
html body button.fva-open.fva-camera-button,
html body .fva-open.fva-camera-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    min-width: 42px !important;
    max-width: 42px !important;
    width: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    font-size: 0 !important;
    text-indent: 0 !important;
    overflow: visible !important;
    box-shadow: none !important;
    background: transparent !important;
    color: #555 !important;
}
html body button.fva-open.fva-camera-button svg,
html body .fva-open.fva-camera-button svg {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    overflow: visible !important;
    pointer-events: none !important;
}
html body button.fva-open.fva-camera-button svg path,
html body button.fva-open.fva-camera-button svg circle,
html body .fva-open.fva-camera-button svg path,
html body .fva-open.fva-camera-button svg circle {
    display: block !important;
    fill: none !important;
    stroke: currentColor !important;
    opacity: 1 !important;
}
html body button.fva-open.fva-floating,
html body .fva-open.fva-floating {
    position: fixed !important;
    right: 18px !important;
    bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important;
    left: auto !important;
    top: auto !important;
    z-index: 2147483000 !important;
    border-radius: 999px !important;
    background: #009ada !important;
    color: #fff !important;
    box-shadow: 0 8px 28px rgba(0,0,0,.28) !important;
    transform: none !important;
}
html body button.fva-open.fva-floating:hover,
html body button.fva-open.fva-floating:focus-visible {
    background: #0086bd !important;
    color: #fff !important;
}
html body button.fva-open.fva-floating:active {
    transform: scale(.94) !important;
}
.fva-external details{margin-top:6px;font-size:12px}.fva-external summary{cursor:pointer;font-weight:600}.fva-external details p{margin:4px 0 0}

/* v4.4.0 — detección visual tipo Lens/Mercado Libre */
.fva-detection-stage{position:relative;margin:16px 0;border-radius:16px;overflow:hidden;background:#101820;isolation:isolate}
.fva-detection-stage #fva-preview{display:block;width:100%;max-height:340px;margin:0;object-fit:contain;background:#101820}
.fva-detection-overlay{position:absolute;inset:0;pointer-events:none;opacity:.78;transition:opacity .2s}
.fva-corner{position:absolute;width:34px;height:34px;border-color:#00d4ff;border-style:solid;filter:drop-shadow(0 0 5px rgba(0,212,255,.8))}
.fva-tl{left:16px;top:16px;border-width:3px 0 0 3px;border-radius:8px 0 0 0}.fva-tr{right:16px;top:16px;border-width:3px 3px 0 0;border-radius:0 8px 0 0}.fva-bl{left:16px;bottom:16px;border-width:0 0 3px 3px;border-radius:0 0 0 8px}.fva-br{right:16px;bottom:16px;border-width:0 3px 3px 0;border-radius:0 0 8px 0}
.fva-scan-line{position:absolute;left:7%;right:7%;top:18%;height:2px;background:linear-gradient(90deg,transparent,#00d4ff 15%,#fff 50%,#00d4ff 85%,transparent);box-shadow:0 0 12px #00d4ff;opacity:0}
.fva-detection-label{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);max-width:85%;padding:7px 12px;border-radius:999px;background:rgba(0,0,0,.7);color:#fff;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(5px)}
.fva-detection-stage.is-analyzing .fva-scan-line{opacity:1;animation:fva-scan 1.65s ease-in-out infinite}
.fva-detection-stage.is-analyzing .fva-corner{animation:fva-corner-pulse 1.2s ease-in-out infinite alternate}
.fva-detection-stage.is-analyzing #fva-preview{animation:fva-image-focus 1.4s ease-in-out infinite alternate}
@keyframes fva-scan{0%{top:14%;opacity:.35}50%{opacity:1}100%{top:82%;opacity:.35}}
@keyframes fva-corner-pulse{from{filter:drop-shadow(0 0 3px rgba(0,212,255,.45))}to{filter:drop-shadow(0 0 10px rgba(0,212,255,1))}}
@keyframes fva-image-focus{from{filter:brightness(.94) saturate(.95)}to{filter:brightness(1.05) saturate(1.08)}}
@media (prefers-reduced-motion:reduce){.fva-detection-stage.is-analyzing .fva-scan-line,.fva-detection-stage.is-analyzing .fva-corner,.fva-detection-stage.is-analyzing #fva-preview{animation:none}}
