/* ============================================================
   Miss Flamingo Wishlist – Stylesheet
   ============================================================ */

:root {
    --mfw-color-primary:   #CB247D;
    --mfw-color-secondary: #ff6b6b;
    --mfw-color-bg:        #fff;
    --mfw-color-border:    #e8e8e8;
    --mfw-color-text:      #333;
    --mfw-color-muted:     #888;
    --mfw-radius:          12px;
    --mfw-shadow:          0 4px 20px rgba(0,0,0,.08);
    --mfw-transition:      .2s ease;
}

/* ============================================================
   HEART BUTTON
   ============================================================ */

.mfw-heart-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 10;
    width: 38px;
    height: 38px;
    border: none !important;
    border-radius: 50% !important;
    background: transparent !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-shadow: none !important;
    outline: none !important;
    transition: transform var(--mfw-transition);
}

.mfw-heart-btn:hover {
    transform: scale(1.2);
}
.mfw-heart-btn svg {
    width: 26px;
    height: 26px;
    fill: rgba(255,255,255,0.75);
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.4));
    transition: fill var(--mfw-transition);
}
.mfw-heart-btn.mfw-active svg {
    fill: var(--mfw-color-primary);
    animation: mfw-pop .3s ease;
}
@keyframes mfw-pop {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.4); }
    100% { transform: scale(1); }
}
.mfw-heart-btn.mfw-loading {
    pointer-events: none;
    opacity: .6;
}

/* Botón en página de producto individual */
.mfw-heart-btn.mfw-ctx-single {
    position: static;
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 30px;
    border: 2px solid var(--mfw-color-border);
    box-shadow: none;
    padding: 8px 16px;
    gap: 6px;
    flex-direction: row;
    font-size: 14px;
    font-weight: 500;
    color: var(--mfw-color-text);
    margin-top: 10px;
}
.mfw-heart-btn.mfw-ctx-single svg { width: 16px; height: 16px; flex-shrink: 0; }
.mfw-heart-btn.mfw-ctx-single.mfw-active {
    color: var(--mfw-color-primary);
}

/* ============================================================
   PÁGINA /FAVORITOS
   ============================================================ */

.mfw-page {
    max-width: 100%;
}

.mfw-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}
.mfw-page-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 28px;
    font-weight: 700;
    color: var(--mfw-color-text);
    margin: 0;
}
.mfw-title-icon { width: 28px; height: 28px; fill: var(--mfw-color-primary); }

.mfw-new-list-form {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 16px;
    background: #fdf0f6;
    border-radius: var(--mfw-radius);
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.mfw-new-list-form input[type="text"] {
    flex: 1;
    min-width: 200px;
    padding: 10px 14px;
    border: 2px solid var(--mfw-color-border);
    border-radius: 8px;
    font-size: 14px;
    outline: none;
}
.mfw-new-list-form input[type="text"]:focus { border-color: var(--mfw-color-primary); }

/* Tabs */
.mfw-lists-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    border-bottom: 2px solid var(--mfw-color-border);
    margin-bottom: 28px;
}
.mfw-tab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: 8px 8px 0 0;
    border: 2px solid transparent;
    border-bottom: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: var(--mfw-color-muted);
    background: #f5f5f5;
    transition: all var(--mfw-transition);
    user-select: none;
    position: relative;
    bottom: -2px;
}
.mfw-tab:hover { color: var(--mfw-color-primary); background: #fdf0f6; }
.mfw-tab.mfw-tab-active {
    color: var(--mfw-color-primary);
    background: #fff;
    border-color: var(--mfw-color-border);
    border-bottom-color: #fff;
    font-weight: 600;
}
.mfw-tab-count { font-size: 12px; color: var(--mfw-color-muted); }
.mfw-tab-actions { display: flex; gap: 4px; margin-left: 4px; }
.mfw-tab-rename, .mfw-tab-delete {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 13px;
    padding: 2px;
    opacity: 0;
    transition: opacity var(--mfw-transition);
}
.mfw-tab:hover .mfw-tab-rename,
.mfw-tab:hover .mfw-tab-delete { opacity: 1; }
.mfw-tab.mfw-dragging { opacity: .5; }
.mfw-tab.mfw-drag-over { border-color: var(--mfw-color-primary); background: #fdf0f6; }

/* Panels */
.mfw-list-panel { display: none; }
.mfw-list-panel.mfw-panel-active {
    display: block;
    animation: mfw-fade-in .2s ease;
}
@keyframes mfw-fade-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Lista vacía */
.mfw-empty-list {
    text-align: center;
    padding: 60px 20px;
    color: var(--mfw-color-muted);
}
.mfw-empty-list svg { width: 64px; height: 64px; fill: #e0e0e0; margin: 0 auto 16px; display: block; }
.mfw-empty-list p { font-size: 16px; margin-bottom: 20px; }

/* Grid */
.mfw-products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
}

/* Card */
.mfw-product-card {
    background: var(--mfw-color-bg);
    border: 1px solid var(--mfw-color-border);
    border-radius: var(--mfw-radius);
    overflow: visible;
    box-shadow: var(--mfw-shadow);
    transition: transform var(--mfw-transition), box-shadow var(--mfw-transition);
}
.mfw-card-image {
    border-radius: var(--mfw-radius) var(--mfw-radius) 0 0;
    overflow: hidden;
}
.mfw-product-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,.18); }
.mfw-product-card.mfw-fade-out { opacity: 0; transform: scale(.9); transition: all .3s ease; }

.mfw-card-image { position: relative; overflow: hidden; aspect-ratio: 4/3; background: #f5f5f5; }
.mfw-product-img, .mfw-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.mfw-product-card:hover .mfw-product-img,
.mfw-product-card:hover .mfw-card-image img { transform: scale(1.05); }

.mfw-card-body { padding: 14px; }
.mfw-card-title { font-size: 14px; font-weight: 600; margin: 0 0 8px; line-height: 1.4; }
.mfw-card-title a { color: var(--mfw-color-text); text-decoration: none; }
.mfw-card-title a:hover { color: var(--mfw-color-primary); }
.mfw-card-price { font-size: 15px; font-weight: 700; color: var(--mfw-color-primary); margin-bottom: 12px; }
.mfw-out-of-stock { font-size: 12px; color: var(--mfw-color-muted); font-style: italic; }
.mfw-card-actions { display: flex; flex-direction: column; gap: 8px; }

/* Move dropdown */
.mfw-move-wrapper { position: relative; }
.mfw-move-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 9999!important;
    background: #fff;
    border: 1px solid var(--mfw-color-border);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    min-width: 180px;
    overflow: hidden;
    list-style: none;
    margin: 0;
    padding: 6px;
}
.mfw-move-dropdown li { margin: 0; }
.mfw-move-to {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    background: none;
    border: none !important;
    border-radius: 6px !important;
    padding: 9px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    color: var(--mfw-color-text);
    transition: background var(--mfw-transition);
}
.mfw-move-to::before {
    content: '→';
    color: var(--mfw-color-primary);
    font-weight: 700;
}
.mfw-move-to:hover {
    background: #fdf0f6 !important;
    color: var(--mfw-color-primary);
}

/* ============================================================
   BOTONES
   ============================================================ */
.mfw-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 6px; padding: 9px 18px; border-radius: 8px;
    font-size: 13px; font-weight: 600; cursor: pointer;
    border: 2px solid transparent; transition: all var(--mfw-transition);
    text-decoration: none; white-space: nowrap;
}
.mfw-btn-primary { background: var(--mfw-color-primary); color: #fff; border-color: var(--mfw-color-primary); }
.mfw-btn-primary:hover { background: #d63a7a; border-color: #d63a7a; color: #fff; }
.mfw-btn-outline { background: transparent !important; border-color: var(--mfw-color-primary) !important; color: var(--mfw-color-primary) !important; }
.mfw-btn-outline:hover { background: var(--mfw-color-primary) !important; color: #fff !important; }
.mfw-btn-ghost { background: transparent !important; border-color: var(--mfw-color-border) !important; color: var(--mfw-color-muted) !important; }
.mfw-btn-ghost:hover { border-color: #ccc !important; color: var(--mfw-color-text) !important; }

/* ============================================================
   TOAST
   ============================================================ */
.mfw-toast {
    position: fixed; bottom: 24px; left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: #333; color: #fff;
    padding: 12px 22px; border-radius: 30px;
    font-size: 14px; font-weight: 500;
    z-index: 99999; opacity: 0; pointer-events: none;
    transition: opacity .25s ease, transform .25s ease;
    white-space: nowrap; box-shadow: 0 4px 16px rgba(0,0,0,.2);
}
.mfw-toast.mfw-toast-show { opacity: 1; transform: translateX(-50%) translateY(0); }
.mfw-toast.mfw-toast-success { background: var(--mfw-color-primary); }
.mfw-toast.mfw-toast-remove  { background: #555; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 600px) {
    .mfw-products-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .mfw-page-title { font-size: 22px; }
    .mfw-tab { padding: 8px 12px; font-size: 13px; }
}
@media (max-width: 400px) {
    .mfw-products-grid { grid-template-columns: 1fr; }
}
button.mfw-heart-btn,
button.mfw-heart-btn:hover,
button.mfw-heart-btn:focus,
button.mfw-heart-btn:active {
    border: none !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 50% !important;
    color: transparent !important;
    padding: 0 !important;
}
.mfw-product-card.mfw-dragging {
    opacity: .5;
    transform: scale(.97);
}
.mfw-tab.mfw-drop-target {
    background: #fdf0f6 !important;
    border-color: var(--mfw-color-primary) !important;
    color: var(--mfw-color-primary) !important;
    transform: scale(1.05);
}
.single-product .woocommerce-product-gallery {
    position: relative;
    z-index: 1;
    isolation: isolate;
}
.single-product .woocommerce-product-gallery > .mfw-heart-btn {
    top: 16px;
    right: 16px;
    width: 46px;
    height: 46px;
    z-index: 1001!important;
}
.single-product .woocommerce-product-gallery > .mfw-heart-btn svg {
    width: 32px;
    height: 32px;
    fill: rgba(255,255,255,0.75) !important;
    filter: drop-shadow(0 1px 3px rgba(0,0,0,0.5));
}
.single-product .woocommerce-product-gallery > .mfw-heart-btn.mfw-active svg {
    fill: var(--mfw-color-primary) !important;
}