.shop-tools { display:flex; align-items:center; gap:16px; padding-bottom:14px; }
.product-search { display:flex; flex:1; max-width:650px; min-width:0; gap:8px; }
.product-search input { width:100%; min-width:0; border:1px solid #d9bdca; border-radius:999px; padding:11px 16px; background:#fff; color:#2a1724; font:inherit; }
.product-search input::placeholder { color:#705865; opacity:1; }
.product-search .btn { font:650 .9rem/1.3 system-ui,sans-serif; box-shadow:none; padding:11px 18px; }
.favorites-link { display:inline-flex; gap:8px; align-items:center; min-height:44px; font-weight:700; color:#5a194c; margin-left:auto; }
.favorites-count { min-width:24px; padding:2px 7px; text-align:center; font-size:.875rem; background:#f8e8e5; border-radius:999px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.favorite-button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; width:100%; margin-top:12px; border:1px solid #d9bdca; border-radius:999px; background:#fff; color:#5a194c; font:650 .9rem/1.4 system-ui,sans-serif; cursor:pointer; padding:8px 12px; }
.favorite-button:hover { background:#fff0f7; }
.favorite-button[aria-pressed="true"] { background:#fbe5ef; color:#932047; border-color:#cd7ca0; }
.heart-icon { font-size:1.65rem; line-height:1; }
.product-category { display:inline-block; margin-top:8px; color:#705865; font-size:.875rem; text-decoration:underline; text-underline-offset:3px; }
.product { min-width:0; }
.product img { object-fit:contain; }
.product-top { flex-wrap:wrap; }
.results-summary { color:#705865; overflow-wrap:anywhere; }
.empty-state { padding:32px; border:1px dashed #d9bdca; border-radius:22px; background:#fff; }
.empty-state h2 { margin-top:0; font-family:Georgia,serif; font-size:1.7rem; }
.empty-state p { color:#705865; }
.storage-notice { background:#fff0dc; color:#65360b; padding:16px; border-radius:14px; }
.favorite-toast { position:fixed; z-index:30; bottom:max(24px,env(safe-area-inset-bottom)); left:50%; width:min(440px,calc(100% - 28px)); transform:translateX(-50%); border-radius:20px; padding:18px 20px; background:#5a194c; color:#fff; box-shadow:0 12px 45px #17121a40; }
.favorite-toast.is-visible { animation:favorite-pop .35s ease-out; }
.favorite-toast p { margin:0 30px 7px 0; font-weight:650; }
.favorite-toast a { text-decoration:underline; text-underline-offset:3px; font-size:.9rem; }
.favorite-toast button { position:absolute; top:10px; right:8px; width:44px; height:44px; border:0; background:transparent; color:inherit; cursor:pointer; font-size:1.5rem; }
.favorite-toast.is-error { background:#813123; }
.favorite-toast.is-error a { display:none; }
[hidden] { display:none !important; }
button:focus-visible,input:focus-visible { outline:3px solid #b6295f; outline-offset:3px; }
html[data-theme="dark"] .product-search input,
html[data-theme="dark"] .favorite-button,
html[data-theme="dark"] .empty-state { background:#281f2d; color:#f8edf5; border-color:#70506b; }
html[data-theme="dark"] .favorite-button:hover,
html[data-theme="dark"] .favorites-count { background:#483046; }
html[data-theme="dark"] .favorite-button[aria-pressed="true"] { background:#553048; color:#ffd3e9; border-color:#f7a8ce; }
html[data-theme="dark"] .favorites-link { color:#f7a8ce; }
html[data-theme="dark"] .product-category,
html[data-theme="dark"] .results-summary,
html[data-theme="dark"] .empty-state p,
html[data-theme="dark"] .product-search input::placeholder { color:#d5bdd0; }
html[data-theme="dark"] .favorite-toast { background:#edabd0; color:#301126; }
html[data-theme="dark"] .favorite-toast.is-error { background:#ffcebd; color:#542217; }
html[data-theme="dark"] button:focus-visible,
html[data-theme="dark"] input:focus-visible { outline-color:#f7a8ce; }
@keyframes favorite-pop { from { opacity:0; transform:translate(-50%,18px) scale(.94); } to { opacity:1; transform:translate(-50%,0) scale(1); } }
@media(max-width:540px) {
  header .nav { gap:8px; padding-block:10px; min-height:64px; }
  header .nav .links { display:none; }
  .shop-tools { flex-wrap:nowrap; gap:10px; padding-bottom:10px; }
  .product-search { flex:1; gap:6px; }
  .product-search input { padding-inline:10px; }
  .favorites-link { margin-left:0; gap:5px; white-space:nowrap; font-size:.875rem; flex:none; }
  .product-search .btn { padding-inline:10px; }
}
@media(max-width:360px) {
  .shop-tools { flex-wrap:wrap; }
  .product-search { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { .favorite-toast.is-visible { animation:none; } }
