
.follow-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 88px;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--fa-blue);
    border-radius: 999px;
    background: var(--fa-blue);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    overflow: hidden;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.follow-btn:hover {
    background: var(--fa-blue-light);
    border-color: var(--fa-blue-light);
    box-shadow: 0 4px 12px rgba(0,47,167,0.18);
}
.follow-btn.is-following {
    background: var(--fa-blue-pale);
    border-color: var(--fa-blue);
    color: var(--fa-blue);
}
.follow-btn.is-following:hover {
    background: #e0e7ff;
}
.follow-btn.is-loading {
    cursor: progress;
    opacity: 1;
}
.follow-btn.is-loading::before {
    content: "";
    width: 12px;
    height: 12px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: fa-spin 0.75s linear infinite;
}
.follow-btn.is-loading:hover {
    box-shadow: 0 4px 12px rgba(0,47,167,0.18);
}
.follow-btn:disabled:not(.is-loading) {
    opacity: 0.55;
    cursor: not-allowed;
}
@keyframes fa-spin {
    to { transform: rotate(360deg); }
}
.streamer-item .streamer-left {
    flex: 0 0 210px;
    width: 210px;
    min-width: 0;
}
.streamer-item > .follow-btn {
    flex: 0 0 88px;
    align-self: center;
}
@media (max-width: 560px) {
    .streamer-item { flex-wrap: wrap; align-items: center; }
    .streamer-left { flex: 1 1 0; min-width: 0; }
    .campaign-info-list { flex-basis: 100%; }
    .streamer-left { min-width: 0; }
    .follow-btn { min-height: 44px; min-width: 88px; padding: 0 10px; }
    #filterActive { min-width: 24px; min-height: 24px; }
}
