.favorite-wrapper{position:absolute;top:10px;right:10px;z-index:5}
.favorite-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 1px 5px rgba(0,0,0,.22);cursor:pointer;transition:transform .12s ease,background .12s ease}
.favorite-btn:hover{background:#fff;transform:scale(1.08)}
.favorite-btn .heart-icon{width:20px;height:20px;fill:none;stroke:#c26a8a;stroke-width:2;transition:fill .15s ease,stroke .15s ease}
.favorite-btn.is-active .heart-icon{fill:#e0447a;stroke:#e0447a}
.favorite-btn.is-busy{opacity:.55;pointer-events:none}
.modal-overlay{position:fixed;inset:0;background:rgba(20,53,39,.55);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}
.modal-overlay.is-open{display:flex}
.modal-box{background:#fff;border-radius:16px;max-width:400px;width:100%;padding:28px 26px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.modal-box h3{margin:0 0 8px;color:#2d2d2d;font-size:1.2rem}
.modal-box p{margin:0 0 18px;color:#6a6a6a;font-size:.95rem}
.modal-actions{display:flex;flex-direction:column;gap:10px}
.modal-actions .btn{width:100%;box-sizing:border-box}
.modal-later{margin-top:14px;background:none;border:none;color:#4D6B5E;cursor:pointer;font-size:.85rem;text-decoration:underline}.card-fav-wrap{position:relative;display:flex;flex-direction:column;min-width:0}.card-fav-wrap>a{flex:1;min-width:0}.card-fav-wrap>.favorite-wrapper{z-index:6}
