.visual-search-btn {
    position: absolute;
    left: 8px;
    bottom: 8px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: #161616;
    text-shadow: none;
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
    transition: transform .18s ease, background-color .18s ease, color .18s ease, opacity .18s ease;
}

.visual-search-btn:hover,
.visual-search-btn:focus-visible {
    background: #007782;
    color: #ffffff;
    text-shadow: none;
    outline: none;
    transform: scale(1.06);
}

.visual-search-btn:focus-visible { box-shadow: 0 0 0 3px rgba(0, 119, 130, .28); }
.visual-search-btn.is-loading { cursor: wait; opacity: .78; pointer-events: none; font-size: 0; }
.visual-search-btn.is-loading::after {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: visual-search-spin .7s linear infinite;
}

html[data-theme="dark"] .visual-search-btn { border-color: rgba(255, 255, 255, .35); background: rgba(31, 41, 55, .82); color: #8ce3e8; }
html[data-theme="dark"] .visual-search-btn:hover,
html[data-theme="dark"] .visual-search-btn:focus-visible { background: #007782; color: #ffffff; }

@keyframes visual-search-spin { to { transform: rotate(360deg); } }

@media (max-width: 768px) {
    .visual-search-btn { left: 7px; bottom: 7px; width: 32px; height: 32px; font-size: 14px; }
}
