.contact-vendor-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.contact-vendor-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #1a1a2e4d}.contact-vendor-btn.email-btn{background:linear-gradient(135deg,#3498db,#2980b9)}.contact-vendor-btn.phone-btn{background:linear-gradient(135deg,#27ae60,#219a52)}.contact-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.contact-modal{background:#fff;border-radius:16px;padding:24px;max-width:400px;width:100%;position:relative;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.close-modal{position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer;color:#999;padding:4px;border-radius:50%;transition:all .2s}.close-modal:hover{background:#f0f0f0;color:#333}.contact-modal h3{font-size:1.25rem;color:#1a1a2e;margin-bottom:4px;padding-right:30px}.contact-subtitle{color:#666;font-size:.9rem;margin-bottom:20px}.contact-options{display:flex;flex-direction:column;gap:12px}.contact-option{display:flex;align-items:center;gap:16px;padding:16px;border:2px solid #eee;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;text-decoration:none;color:inherit}.contact-option:hover{border-color:#1a1a2e;background:#fafafa}.contact-option.email{color:#3498db}.contact-option.email:hover{border-color:#3498db;background:#3498db0d}.contact-option.phone{color:#27ae60}.contact-option.phone:hover{border-color:#27ae60;background:#27ae600d}.contact-option.website{color:#9b59b6}.contact-option.website:hover{border-color:#9b59b6;background:#9b59b60d}.option-text{display:flex;flex-direction:column;align-items:flex-start}.option-label{font-weight:600;font-size:1rem;color:inherit}.option-value{font-size:.85rem;color:#666;word-break:break-all}@media(max-width:480px){.contact-modal{padding:20px}.contact-option{padding:14px}}.my-favorites-page{min-height:calc(100vh - 200px);padding:2rem;max-width:900px;margin:0 auto}.favorites-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-bg-warm)}.header-icon{color:#e74c3c}.favorites-header h1{font-size:1.75rem;color:var(--color-text-primary);margin:0}.favorites-header p{color:var(--color-text-body);margin:0}.auth-message{text-align:center;padding:4rem 2rem}.auth-message svg{color:var(--color-text-muted);margin-bottom:1rem}.auth-message h2{color:var(--color-text-primary);margin-bottom:.5rem}.auth-message p{color:var(--color-text-body);margin-bottom:1.5rem}.sign-in-btn{display:inline-block;padding:12px 24px;background:var(--color-dark);color:#fff;text-decoration:none;border-radius:8px;font-weight:500}.sign-in-btn:hover{background:var(--color-text-primary)}.empty-favorites{text-align:center;padding:4rem 2rem}.empty-icon{color:var(--color-text-muted);margin-bottom:1rem}.empty-favorites h2{color:var(--color-text-primary);margin-bottom:.5rem}.empty-favorites p{color:var(--color-text-body);margin-bottom:1.5rem}.browse-btn{display:inline-block;padding:12px 24px;background:linear-gradient(135deg,var(--color-gold) 0%,var(--color-gold-secondary) 100%);color:#fff;text-decoration:none;border-radius:8px;font-weight:500}.browse-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #b8860b4d}.favorites-list{display:flex;flex-direction:column;gap:1.5rem}.favorite-card{display:flex;gap:1.5rem;background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000000f;border:1px solid var(--color-border);transition:all .2s}.favorite-card:hover{box-shadow:0 4px 20px #0000001a}.favorite-image{flex-shrink:0;width:150px;height:150px;border-radius:8px;overflow:hidden}.favorite-image img{width:100%;height:100%;object-fit:cover}.placeholder-image{width:100%;height:100%;background:var(--color-bg-section);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.favorite-content{flex:1;display:flex;flex-direction:column;gap:1rem}.favorite-main{flex:1}.vendor-name{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);text-decoration:none;display:block;margin-bottom:.25rem}.vendor-name:hover{color:var(--color-gold)}.vendor-location{display:flex;align-items:center;gap:4px;color:var(--color-text-muted);font-size:.9rem;margin-bottom:.5rem}.vendor-description{color:var(--color-text-body);font-size:.95rem;line-height:1.5;margin-bottom:.5rem}.vendor-category{display:inline-block;background:var(--color-bg-section);color:var(--color-text-body);padding:4px 10px;border-radius:20px;font-size:.8rem;text-transform:capitalize}.favorite-notes{background:var(--color-bg-section);border-radius:8px;padding:1rem}.notes-display{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.notes-text{color:var(--color-text-primary);font-size:.9rem;line-height:1.5;margin:0;flex:1}.notes-placeholder{color:var(--color-text-muted);font-size:.9rem;font-style:italic;margin:0}.edit-notes-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:none;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-body);font-size:.85rem;cursor:pointer;white-space:nowrap}.edit-notes-btn:hover{background:#fff;border-color:var(--color-gold);color:var(--color-gold)}.notes-edit textarea{width:100%;padding:10px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;resize:vertical;font-family:inherit}.notes-edit textarea:focus{outline:none;border-color:var(--color-gold)}.notes-actions{display:flex;gap:.5rem;margin-top:.5rem}.save-notes-btn,.cancel-notes-btn{display:flex;align-items:center;gap:4px;padding:8px 14px;border:none;border-radius:6px;font-size:.85rem;cursor:pointer}.save-notes-btn{background:#27ae60;color:#fff}.save-notes-btn:hover{background:#219a52}.cancel-notes-btn{background:var(--color-bg-section);color:var(--color-text-body)}.cancel-notes-btn:hover{background:var(--color-border)}.favorite-actions{display:flex;gap:.75rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid var(--color-border)}.contact-btn-small{padding:8px 14px!important;font-size:.9rem!important}.view-profile-btn,.remove-favorite-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:6px;font-size:.9rem;cursor:pointer;text-decoration:none;transition:all .2s}.view-profile-btn{background:var(--color-bg-section);color:var(--color-text-primary);border:none}.view-profile-btn:hover{background:var(--color-border)}.remove-favorite-btn{background:none;border:1px solid #e74c3c;color:#e74c3c}.remove-favorite-btn:hover{background:#e74c3c;color:#fff}.loading{text-align:center;padding:3rem;color:var(--color-text-body)}@media(max-width:768px){.my-favorites-page{padding:1rem}.favorite-card{flex-direction:column;padding:1rem}.favorite-image{width:100%;height:200px}.favorite-actions{flex-direction:column}.favorite-actions>*{width:100%;justify-content:center}}.favorites-share-btn{display:flex;align-items:center;gap:6px;margin-left:auto;padding:8px 16px;background:#b8860b;color:#fff;border:none;border-radius:8px;font-weight:500;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .2s ease}.favorites-share-btn:hover:not(:disabled){background:#a07608}.favorites-share-btn:disabled{opacity:.6;cursor:not-allowed}.favorites-share-panel{background:#f8f9fa;border:1px solid var(--color-border);border-radius:12px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.favorites-share-link-row{display:flex;gap:8px}.favorites-share-link-row input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.85rem;color:var(--color-text-body);background:#fff}.favorites-share-link-row button{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#b8860b;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap}.favorites-stop-sharing{background:transparent;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;text-align:left;padding:0}.favorites-stop-sharing:hover{color:#e03131}.favorites-events-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-border-light, #eee)}.favorites-events-header{display:flex;align-items:center;gap:10px;margin-bottom:1rem}.favorites-events-header h2{font-size:1.3rem;margin:0}.favorites-events-header svg{color:var(--color-gold)}.favorites-events-count{background:var(--color-gold-pale, #f9f5eb);color:var(--color-gold);font-size:.8rem;font-weight:600;padding:2px 10px;border-radius:10px}.favorites-events-list{display:flex;flex-direction:column;gap:12px}.favorites-event-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--color-border-light, #eee);border-radius:12px;padding:14px 18px}.favorites-event-date{display:flex;flex-direction:column;align-items:center;min-width:50px;padding:6px 8px;background:var(--color-gold-pale, #f9f5eb);border-radius:8px}.fev-month{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--color-gold)}.fev-day{font-size:1.2rem;font-weight:700;color:var(--color-text-primary);line-height:1.2}.fev-weekday{font-size:.7rem;color:var(--color-text-muted)}.favorites-event-info{flex:1;min-width:0}.favorites-event-info h4{margin:0 0 4px;font-size:.95rem;color:var(--color-text-primary)}.fev-location,.fev-time{display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--color-text-muted);margin:2px 0}.favorites-event-actions{display:flex;gap:8px}.fev-calendar-btn,.fev-remove-btn{background:none;border:1.5px solid var(--color-border-light, #ddd);border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.fev-calendar-btn{color:var(--color-sage, #7c956b)}.fev-calendar-btn:hover{background:#7c956b14;border-color:var(--color-sage, #7c956b)}.fev-remove-btn{color:#ccc}.fev-remove-btn:hover{color:#e03131;border-color:#e03131}@media(max-width:480px){.favorites-event-card{padding:12px;gap:12px}}
