/**
 * Simracing.Fan — Favorites (cuoricino + tab profilo)
 */

.sf-fav-form {
    display: inline-block;
    margin: 0;
}

.sf-fav-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid rgba(255,255,255,0.5);
    background: rgba(0,0,0,0.4);
    color: #fff;
    border-radius: 999px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
    text-decoration: none;
    backdrop-filter: blur(4px);
}

.sf-fav-btn:hover {
    background: rgba(0,0,0,0.7);
    border-color: #fff;
    text-decoration: none;
}

.sf-fav-btn.is-active {
    background: rgba(255, 48, 48, 0.92);
    border-color: rgba(255, 48, 48, 0.92);
    color: #fff;
}

.sf-fav-btn:active {
    transform: scale(0.95);
}

.sf-fav-btn--sm {
    padding: 4px 10px;
    font-size: 12px;
}

.sf-fav-icon {
    font-size: 16px;
    line-height: 1;
}
.sf-fav-btn.is-active .sf-fav-icon {
    animation: sf-fav-pop 0.4s ease-out;
}

@keyframes sf-fav-pop {
    0%   { transform: scale(0.7); }
    40%  { transform: scale(1.4); }
    100% { transform: scale(1); }
}

.sf-fav-count {
    background: rgba(255,255,255,0.2);
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.sf-fav-btn:not(.is-active):not(:hover) .sf-fav-label {
    /* Lascialo visibile per accessibilità */
}

/* Variante neutra (su sfondo chiaro, es. card) */
.sf-events-archive-card .sf-fav-btn,
.sf-fav-btn--neutral {
    background: #ffffff;
    border-color: #d0d2d6;
    color: #1c1e21;
}
body.buddyx-dark-theme .sf-fav-btn--neutral,
body.buddyx-dark-theme .sf-events-archive-card .sf-fav-btn {
    background: #2a2a2a;
    border-color: #3a3a3a;
    color: #e8e8e8;
}

@media (prefers-reduced-motion: reduce) {
    .sf-fav-btn.is-active .sf-fav-icon { animation: none; }
    .sf-fav-btn { transition: none; }
}

/* ==========================================================================
   Tab Favorites nel profilo BP
   ========================================================================== */

.sf-fav-profile {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.sf-fav-profile-group-title {
    margin: 0 0 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e4e6eb;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: inherit;
}
body.buddyx-dark-theme .sf-fav-profile-group-title { border-bottom-color: #2e2e2e; }

.sf-fav-profile-count {
    background: #f0f2f5;
    color: #65676b;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    margin-left: 8px;
}
body.buddyx-dark-theme .sf-fav-profile-count {
    background: #2e2e2e;
    color: #b3b3b3;
}

.sf-fav-profile-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sf-fav-profile-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    background: #ffffff;
    border: 1px solid #e4e6eb;
    border-radius: 8px;
}
body.buddyx-dark-theme .sf-fav-profile-item {
    background: #232323;
    border-color: #2e2e2e;
}

.sf-fav-profile-link {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
    min-width: 0;
}
.sf-fav-profile-link:hover .sf-fav-profile-title {
    text-decoration: underline;
}

.sf-fav-profile-thumb img {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}

.sf-fav-profile-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

.sf-fav-profile-title {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sf-fav-profile-meta {
    color: #8a8d91;
    font-size: 12px;
}
body.buddyx-dark-theme .sf-fav-profile-meta {
    color: #8a8a8a;
}

.sf-fav-profile-empty {
    padding: 40px 20px;
    text-align: center;
    color: #8a8d91;
    background: #f7f8fa;
    border: 1px dashed #d0d2d6;
    border-radius: 8px;
}
body.buddyx-dark-theme .sf-fav-profile-empty {
    background: #1a1a1a;
    border-color: #3a3a3a;
}

/* ==========================================================================
   Token fallback (se sf-design-tokens.css non è caricato, definiamo i token
   essenziali usati qui sotto)
   ========================================================================== */
:root {
    --sf-brand-red:  #E10600;
    --sf-brand-blue: #003DA5;
    --sf-gray-200:   #E4E6EB;
    --sf-gray-400:   #8A8D91;
    --sf-gray-500:   #65676B;
    --sf-gray-700:   #1C1E21;
}
body.buddyx-dark-theme {
    --sf-gray-200:   #2E2E2E;
    --sf-gray-400:   #8A8A8A;
    --sf-gray-500:   #B3B3B3;
    --sf-gray-700:   #E8E8E8;
}

/* ==========================================================================
   Header icon (Fase 2)
   ========================================================================== */

.sf-fav-header-item {
    display: inline-flex;
    align-items: center;
}

.sf-fav-header-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--sf-brand-red, #E10600);
    text-decoration: none;
    transition: transform 0.12s ease, background-color 0.12s ease;
}
.sf-fav-header-link:hover,
.sf-fav-header-link:focus {
    background: rgba(225, 6, 0, 0.10);
    color: var(--sf-brand-red, #E10600);
    text-decoration: none;
    transform: scale(1.05);
}

.sf-fav-header-icon {
    font-size: 22px;
    line-height: 1;
}

.sf-fav-header-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    padding: 0 5px;
    background: var(--sf-brand-red, #E10600);
    color: #fff;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    border: 2px solid #fff;
    box-sizing: content-box;
}
body.buddyx-dark-theme .sf-fav-header-badge {
    border-color: #1a1a1a;
}

@media (max-width: 768px) {
    .sf-fav-header-link { width: 36px; height: 36px; }
    .sf-fav-header-icon { font-size: 20px; }
}

/* ==========================================================================
   Tab filter pagina preferiti (Fase 3)
   ========================================================================== */

.sf-fav-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--sf-gray-200, #E4E6EB);
    margin-bottom: 18px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.sf-fav-tabs::-webkit-scrollbar { display: none; }

.sf-fav-tab {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    color: var(--sf-gray-500, #65676B);
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: color 0.12s ease, border-color 0.12s ease;
    min-height: 44px; /* touch target */
}
.sf-fav-tab:hover,
.sf-fav-tab:focus {
    color: var(--sf-gray-700, #1C1E21);
    text-decoration: none;
}

.sf-fav-tab.is-active {
    color: var(--sf-brand-blue, #003DA5);
    border-bottom-color: var(--sf-brand-blue, #003DA5);
    font-weight: 700;
}
body.buddyx-dark-theme .sf-fav-tab.is-active {
    color: #5b9fe6; /* blu più luminoso su sfondo scuro */
    border-bottom-color: #5b9fe6;
}

.sf-fav-tab-count {
    background: var(--sf-gray-200, #E4E6EB);
    color: var(--sf-gray-500, #65676B);
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}
.sf-fav-tab.is-active .sf-fav-tab-count {
    background: var(--sf-brand-blue, #003DA5);
    color: #fff;
}
body.buddyx-dark-theme .sf-fav-tab.is-active .sf-fav-tab-count {
    background: #5b9fe6;
    color: #1a1a1a;
}

/* ==========================================================================
   Variante "inline" — bottone dentro single content
   ========================================================================== */

.sf-fav-inline-wrap {
    margin: 24px 0 8px;
    padding-top: 16px;
    border-top: 1px dashed var(--sf-gray-200, #E4E6EB);
    display: flex;
    justify-content: flex-start;
}

/* Bottone in stile neutrale per contenuto/loop card.
   Override del default scuro semi-trasparente. */
.sf-fav-inline-wrap .sf-fav-btn,
.sf-fav-wrap--neutral .sf-fav-btn,
.sf-fav-bp-action .sf-fav-btn,
.sf-fav-bp-directory-action .sf-fav-btn,
.sf-fav-store-wrap .sf-fav-btn {
    background: #ffffff;
    border-color: var(--sf-gray-200, #E4E6EB);
    color: var(--sf-gray-700, #1C1E21);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
body.buddyx-dark-theme .sf-fav-inline-wrap .sf-fav-btn,
body.buddyx-dark-theme .sf-fav-wrap--neutral .sf-fav-btn,
body.buddyx-dark-theme .sf-fav-bp-action .sf-fav-btn,
body.buddyx-dark-theme .sf-fav-bp-directory-action .sf-fav-btn,
body.buddyx-dark-theme .sf-fav-store-wrap .sf-fav-btn {
    background: #232323;
    border-color: var(--sf-gray-200, #2E2E2E);
    color: var(--sf-gray-700, #E8E8E8);
}

.sf-fav-inline-wrap .sf-fav-btn:hover,
.sf-fav-wrap--neutral .sf-fav-btn:hover,
.sf-fav-bp-action .sf-fav-btn:hover,
.sf-fav-bp-directory-action .sf-fav-btn:hover,
.sf-fav-store-wrap .sf-fav-btn:hover {
    border-color: var(--sf-brand-red, #E10600);
    color: var(--sf-brand-red, #E10600);
    background: rgba(225, 6, 0, 0.05);
}

/* Mantieni il rosso solido se attivo, anche in variante neutrale */
.sf-fav-inline-wrap .sf-fav-btn.is-active,
.sf-fav-wrap--neutral .sf-fav-btn.is-active,
.sf-fav-bp-action .sf-fav-btn.is-active,
.sf-fav-bp-directory-action .sf-fav-btn.is-active,
.sf-fav-store-wrap .sf-fav-btn.is-active {
    background: var(--sf-brand-red, #E10600);
    border-color: var(--sf-brand-red, #E10600);
    color: #fff;
}

/* WC archive loop: posiziona il cuore sul prodotto */
.woocommerce ul.products li.product .sf-fav-wrap--neutral {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
}
.woocommerce ul.products li.product { position: relative; }

/* WC single product: bottone come parte del summary */
.woocommerce div.product .sf-fav-inline-wrap {
    margin-top: 16px;
}

/* Card archivio (resource/post BuddyX entry) */
.entry-footer .sf-fav-wrap--neutral {
    display: inline-block;
    margin-top: 8px;
}

/* Hook BP: integrazione con i bottoni nativi */
#item-buttons .sf-fav-bp-action,
.item-list .action .sf-fav-bp-directory-action {
    display: inline-flex;
}
.sf-fav-bp-action .sf-fav-btn,
.sf-fav-bp-directory-action .sf-fav-btn {
    /* Bordo simile ai bottoni "generic-button" di BuddyPress */
    line-height: 1.2;
}

/* WCFM store header — il bottone va appena sotto/accanto al nome store */
.sf-fav-store-wrap {
    margin: 8px 0;
}

/* ==========================================================================
   Mobile tweaks
   ========================================================================== */

@media (max-width: 480px) {
    .sf-fav-tab { padding: 10px 12px; font-size: 13px; }
    .sf-fav-tab-count { font-size: 10px; padding: 1px 5px; }
}
