/* Hearts, sign-in popup and My Favorites (inc/couple_accounts.php). Added 2026-10-10. */
.pvp-heart { display: inline-flex; align-items: center; justify-content: center; gap: 6px; margin: 0; border: 0; cursor: pointer; color: #1A395C; transition: transform .15s, background .15s, color .15s; }
.pvp-heart svg path { fill: transparent; transition: fill .15s; }
.pvp-heart.is-on { color: #E0245E; }
.pvp-heart.is-on svg path { fill: currentColor; }
.pvp-heart.is-pop { transform: scale(1.18); }
.pvp-heart--icon { position: absolute; top: 6px; right: 6px; z-index: 3; width: 34px; height: 34px; padding: 0; border-radius: 50%; background: rgba(255, 255, 255, .94); box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
.pvp-heart--icon:hover, .pvp-heart--icon:focus-visible { background: #fff; color: #E0245E; }
.pvp-heart--pill { min-height: 44px; padding: 0 16px; border: 2px solid #1A395C; border-radius: 10px; background: #fff; font: 600 15px 'Fira Sans', sans-serif; }
.pvp-heart--pill:hover { background: #FFF0F4; border-color: #E0245E; color: #E0245E; }
.pvp-heart--pill.is-on { border-color: #E0245E; background: #FFF0F4; }
.pvp-card, .pvp-loc, .pvp-favs__card { position: relative; }
.pvp-loc .pvp-heart--icon { top: 6px; right: 6px; width: 32px; height: 32px; }
.pvp-heart--icon svg { width: 18px; height: 18px; }

.pvp-signin { width: min(440px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 24px 60px rgba(26, 26, 46, .3); font-family: 'Fira Sans', sans-serif; color: #1A1A2E; }
.pvp-signin::backdrop { background: rgba(26, 26, 46, .55); }
.pvp-signin [hidden], .pvp-favs [hidden] { display: none !important; }
.pvp-signin__close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #EEF2F2; font-size: 20px; line-height: 1; cursor: pointer; color: #1A1A2E; z-index: 1; }
.pvp-signin__form { position: relative; padding: 26px; }
.pvp-signin__title { margin: 0 0 6px; font-family: 'Old Standard TT', Georgia, serif; font-weight: 400; font-size: 27px; line-height: 1.2; color: #1A1A2E; }
.pvp-signin__intro, .pvp-signin__msg { margin: 0 0 14px; color: #44515c; font-size: 15px; }
.pvp-signin__field { display: block; margin: 0; }
.pvp-signin__form .pvp-signin__field input { display: block; width: 100%; max-width: none; box-sizing: border-box; padding: 12px 14px; border: 1px solid #D9E0E0; border-radius: 10px; font: 400 16px 'Fira Sans', sans-serif; }
.pvp-signin__trap { position: absolute; left: -9999px; }
.pvp-signin__error { margin: 10px 0 0; padding: 8px 12px; border-radius: 8px; background: #FDECEC; color: #8A1F1F; font-size: 14px; }
.pvp-signin__submit { width: 100%; margin-top: 12px; padding: 13px 18px; border: 0; border-radius: 10px; background: #0BB7B3; color: #1A1A2E; font: 600 16px 'Fira Sans', sans-serif; cursor: pointer; }
.pvp-signin__submit:hover { background: #09a3a0; }
.pvp-signin__fine { margin: 12px 0 0; font-size: 13px; color: #8A96A3; }
.pvp-signin__fine a, .pvp-signin__again { color: #0A7F7C; }
.pvp-signin__again { padding: 0; border: 0; background: none; font: inherit; text-decoration: underline; cursor: pointer; }
.pvp-toast { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 99999; padding: 12px 18px; border-radius: 12px; background: #1A1A2E; color: #fff; font: 500 15px 'Fira Sans', sans-serif; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); transition: opacity .4s; }
.pvp-toast a { color: #9FE6E3; margin-left: 6px; }
.pvp-toast.is-gone { opacity: 0; pointer-events: none; }

.pvp-favs { max-width: 1200px; margin: 0 auto; padding: 36px 24px 56px; box-sizing: border-box; font-family: 'Fira Sans', sans-serif; color: #1A1A2E; }
.pvp-favs__notice { margin: 0 0 16px; padding: 10px 14px; border-radius: 10px; background: #E7F7F6; color: #0F3B3A; }
.pvp-favs__signin { max-width: 460px; margin: 10px auto 30px; border: 1px solid #D9E0E0; border-radius: 16px; box-shadow: 0 8px 24px rgba(26, 57, 92, .08); }
.pvp-favs__title { margin: 0 0 6px; font-family: 'Old Standard TT', Georgia, serif; font-weight: 400; font-size: 40px; line-height: 1.15; }
.pvp-favs__lede { margin: 0 0 26px; color: #44515c; font-size: 16.5px; }
.pvp-favs__sec { margin: 0 0 38px; }
.pvp-favs__h2 { margin: 0 0 14px; font-family: 'Fira Sans Extra Condensed', sans-serif; font-weight: 700; font-size: 26px; color: #1A1A2E; }
.pvp-favs__h2 span { margin-left: 6px; padding: 2px 9px; border-radius: 999px; background: #EEF4F4; font: 600 14px 'Fira Sans', sans-serif; vertical-align: middle; }
.pvp-favs__empty { color: #6b7780; }
.pvp-favs__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.pvp-favs__card { border: 1px solid #D9E0E0; border-radius: 12px; overflow: hidden; background: #fff; }
.pvp-favs__img { display: block; aspect-ratio: 3 / 2; background: #EEF3F3; overflow: hidden; }
.pvp-favs .pvp-favs__img img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; }
.pvp-favs__body { padding: 12px 14px 14px; }
.pvp-favs__body h3 { margin: 0 0 4px; font-family: 'Old Standard TT', Georgia, serif; font-weight: 400; font-size: 21px !important; }
.pvp-favs__body h3 a { color: inherit; text-decoration: none; }
.pvp-favs__meta { margin: 0 0 4px; font-size: 14px; color: #44515c; }
.pvp-favs__actions { margin: 8px 0 0; font-size: 14px; font-weight: 600; }
.pvp-favs__actions a { color: #0A7F7C; }
.pvp-favs__account { padding: 20px; border: 1px solid #D9E0E0; border-radius: 14px; background: #F4F8F8; }
.pvp-favs__account p { color: #44515c; }
.pvp-favs__account-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 12px; }
.pvp-favs__btn { padding: 10px 16px; border: 2px solid #1A395C; border-radius: 10px; background: #fff; color: #1A395C; font: 600 14px 'Fira Sans', sans-serif; cursor: pointer; }
.pvp-favs__btn--danger { border-color: #B42318; color: #B42318; }
.pvp-favs__delete summary { cursor: pointer; color: #B42318; font-size: 14px; }
.pvp-favs__delete input[type="text"] { padding: 9px 12px; border: 1px solid #D9E0E0; border-radius: 8px; width: 120px; }
.pvp-vpage__save { margin-left: 2px; }
@media (max-width: 600px) { .pvp-favs { padding: 24px 16px 40px; } .pvp-favs__title { font-size: 31px; } }
