/* Shopping — app layer on tokens.css. Accent: violet. */
:root{--ac:#8b7bff;--ac-ink:#fff}
@media (prefers-color-scheme:light){:root{--ac:#5b3df5}}
body{padding-bottom:calc(96px + var(--sab))}
main{padding:0 16px;max-width:760px;margin:0 auto}
.appbar{align-items:center;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.appbar h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#back,#addtop{flex:none;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font-size:24px;line-height:1;background:var(--card2);border:0}
#addtop{background:var(--ac);color:var(--ac-ink);font-weight:700}
#sync{text-transform:none;letter-spacing:0;font-weight:500}
.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 12px}
.summary div{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:12px}.summary b{display:block;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.summary span{font-size:12px;color:var(--mu)}
.chips button{flex:none;min-height:38px;padding:6px 14px;border-radius:99px;font-size:var(--t-s);font-weight:600;background:var(--card2);border:1px solid var(--bd)}
.chips button.on{background:var(--tx);color:var(--bg);border-color:transparent}
.chips button .n{opacity:.6;margin-left:4px;font-variant-numeric:tabular-nums}
.item{display:flex;gap:14px;width:100%;text-align:left;background:var(--card);border:1px solid var(--bd);border-radius:20px;padding:14px;margin:10px 0;box-shadow:var(--shadow);align-items:flex-start}
.thumb{flex:none;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:var(--cbg,var(--card2))}
.c-Shoes{--cbg:color-mix(in srgb,#f472b6 20%,var(--card2))}.c-Fitness-kit{--cbg:color-mix(in srgb,#fb923c 20%,var(--card2))}.c-Home{--cbg:color-mix(in srgb,#38bdf8 20%,var(--card2))}.c-Nutrition{--cbg:color-mix(in srgb,#34d399 20%,var(--card2))}
.item .body{flex:1;min-width:0}
.item .nm{font-weight:700;font-size:16px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .line{display:flex;align-items:baseline;gap:8px;margin-top:8px;flex-wrap:wrap}
.price{font-weight:800;font-size:22px;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.item .where{font-size:13px;color:var(--mu);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .sub{display:flex;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap}
.delta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:750;padding:4px 8px;border-radius:8px;font-variant-numeric:tabular-nums;color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent)}
.delta.up{color:var(--bad);background:color-mix(in srgb,var(--bad) 15%,transparent)}.delta.free{color:var(--ac);background:color-mix(in srgb,var(--ac) 18%,transparent)}
.st{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:4px 10px;border-radius:99px;background:var(--card2);color:var(--mu);font-weight:650}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st.success{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.st.warning{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.st.accent{color:var(--ac);background:color-mix(in srgb,var(--ac) 16%,transparent)}
.chev{color:var(--mu);font-size:20px;align-self:center}
/* item detail */
.dhero{display:flex;gap:16px;align-items:center}.dhero .thumb{width:68px;height:68px;font-size:34px;border-radius:20px}
.bigp{font-size:var(--t-xxl);font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.props{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;font-size:14px;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--bd)}.props dt{color:var(--mu)}.props dd{margin:0}
.lst{display:flex;gap:12px;align-items:center;border-top:1px solid var(--bd);padding:14px 0}.lst:first-of-type{border-top:0}
.lst .body{flex:1;min-width:0}.lst .t{font-weight:650;font-size:15px;line-height:1.3}
.lst .meta{font-size:13px;color:var(--mu);margin-top:4px;display:flex;flex-wrap:wrap;gap:4px 10px}
.lst .note{font-size:13px;margin-top:4px;color:var(--tx2)}
.lst .pr{text-align:right;flex:none}.lst .pr .price{font-size:18px}
.lst .go{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:14px;background:var(--ac);color:var(--ac-ink);text-decoration:none;font-weight:800;font-size:18px;margin-top:6px}
.lst.best .t::after{content:"Best";margin-left:8px;font-size:11px;font-weight:750;padding:2px 7px;border-radius:6px;color:var(--ok);background:color-mix(in srgb,var(--ok) 15%,transparent);vertical-align:2px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
textarea{min-height:80px;resize:vertical}
button.danger{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--card2))}
.fab{position:fixed;right:16px;bottom:calc(20px + var(--sab));border-radius:99px;min-height:56px;padding:0 22px;box-shadow:0 10px 30px rgba(0,0,0,.4);z-index:4;font-size:16px}
.foot{display:flex;gap:8px;align-items:center;justify-content:center;margin:18px 0}.foot button{background:transparent;border:1px solid var(--bd);font-size:14px}
.login{min-height:70vh;display:flex;flex-direction:column;justify-content:center}.login .logo{width:72px;height:72px;border-radius:18px;margin-bottom:16px}
.cats{display:flex;flex-wrap:wrap;gap:8px}.cats button{min-height:40px;border-radius:99px;font-size:14px}.cats button.on{background:var(--ac);color:var(--ac-ink);border-color:transparent}
