.fav-wrap{max-width:1120px;margin:0 auto}.fav-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:4px 0 18px}.fav-title{display:flex;align-items:center;gap:10px;margin:0;font-size:26px;font-weight:800;color:#0f172a}.fav-title svg{color:#ef4444;fill:#ef4444}.fav-count{display:inline-block;margin-left:2px;padding:2px 10px;border-radius:999px;background:#e0f6e9;color:#008247;font-size:13px;font-weight:700;vertical-align:middle}.fav-sub{margin:4px 0 0;color:#64748b;font-size:14px}.fav-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.fav-search{position:relative}.fav-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.fav-search input,.fav-sort{height:40px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:14px;color:#0f172a}.fav-search input{width:240px;padding:0 12px 0 36px}.fav-sort{padding:0 10px;cursor:pointer}.fav-search input:focus,.fav-sort:focus{outline:2px solid #00a65a33;border-color:#00a65a}.fav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.fav-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;transition:box-shadow .2s,transform .2s}.fav-card:hover{box-shadow:0 8px 22px rgba(15,23,42,.1);transform:translateY(-2px)}.fav-img{position:relative;display:block;aspect-ratio:4/3;background:#f1f5f9;overflow:hidden}.fav-img img{width:100%;height:100%;object-fit:cover;display:block}.fav-remove{position:absolute;top:8px;right:8px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;cursor:pointer;color:#ef4444;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:transform .15s,background .15s}.fav-remove:hover{transform:scale(1.1);background:#fff}.fav-remove:disabled{opacity:.5;cursor:wait}.fav-remove svg{fill:#ef4444}.fav-body{display:flex;flex-direction:column;gap:6px;padding:12px 14px 14px;flex:1 1}.fav-name{margin:0;font-size:15px;font-weight:700;line-height:1.35;color:#0f172a;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em;text-decoration:none}.fav-name:hover{color:#008247}.fav-price{font-size:17px;font-weight:800;color:#00a65a}.fav-meta{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b;min-width:0}.fav-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-foot{margin-top:auto;padding-top:10px;display:flex;gap:8px}.fav-btn{flex:1 1;text-align:center;padding:8px 10px;border-radius:9px;font-size:13px;font-weight:600;text-decoration:none;border:1px solid #e2e8f0;color:#334155;background:#f8fafc}.fav-btn:hover{border-color:#00a65a;color:#008247}.fav-btn.primary{background:#00a65a;border-color:#00a65a;color:#fff}.fav-btn.primary:hover{background:#008247;color:#fff}.fav-skel{height:300px;border-radius:14px;background:linear-gradient(90deg,#f1f5f9 25%,#e8eef4 37%,#f1f5f9 63%);background-size:400% 100%;animation:fav-shimmer 1.3s infinite}@keyframes fav-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.fav-empty{text-align:center;padding:56px 20px;background:#fff;border:1px dashed #cbd5e1;border-radius:16px}.fav-empty svg{color:#cbd5e1;margin-bottom:10px}.fav-empty h2{margin:0 0 6px;font-size:18px;color:#0f172a}.fav-empty p{margin:0 0 16px;color:#64748b;font-size:14px}.fav-empty a,.fav-empty button{display:inline-block;padding:10px 20px;border-radius:999px;background:#00a65a;color:#fff;font-weight:700;font-size:14px;text-decoration:none;border:0;cursor:pointer}.fav-note{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:14px}@media(max-width:640px){.fav-title{font-size:22px}.fav-search,.fav-search input,.fav-tools{width:100%}.fav-sort{flex:1 1}.fav-grid{grid-template-columns:repeat(2,1fr);gap:10px}.fav-body{padding:10px}.fav-name{font-size:14px}.fav-price{font-size:15px}.fav-foot{flex-direction:column}}