/* ===== Market: tabs, sweep, filters, cards, cart ===== */
.market-page{gap:12px}
.mk-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.mk-tabs button{position:relative;z-index:1;height:38px;border-radius:12px;font-weight:700;font-size:14px;color:var(--muted);transition:color .2s}
.mk-tabs button.on{color:#fff}
.mk-tab-ink{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:12px;background:linear-gradient(180deg,#3d7fe0,#2f6cd0);box-shadow:0 6px 16px #2f6cd044;transition:transform .28s cubic-bezier(.3,1.2,.5,1)}
.mk-tabs[data-on=collections] .mk-tab-ink{transform:translateX(100%)}
.market-bar{display:flex;gap:8px;align-items:center}
.market-bar .icon-btn.round{width:46px;height:46px;flex:none}
.market-bar .icon-btn svg{width:20px;height:20px}
.mk-lots-only{display:grid;gap:10px;min-width:0}
.mk-lots-only[hidden]{display:none}

/* sweep: quick-pick the N cheapest */
.sweep{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.sweep input[type=range]{flex:1;min-width:0;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:linear-gradient(90deg,#3ea6ff var(--fill,0%),#ffffff1f var(--fill,0%));outline:none}
.sweep input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0008,0 0 0 4px #3ea6ff55;cursor:pointer;transition:transform .15s}
.sweep input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}
.sweep input[type=range]::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0008}
.sweep-info{display:grid;justify-items:end;min-width:78px}
.sweep-info b{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-variant-numeric:tabular-nums}
.sweep-info small{font-size:11px;color:var(--muted)}
.sweep .btn{width:40px;height:36px;padding:0;flex:none}.sweep .btn svg{width:18px;height:18px}

/* filters */
.mk-filters .chip.icon{position:relative}
.mk-filters .chip.icon.active{background:#3ea6ff2b;box-shadow:inset 0 0 0 1px #3ea6ff88}
.mk-filters .badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--accent);color:#fff;font:800 10px/17px Golos,sans-serif;font-style:normal;text-align:center;box-shadow:0 0 0 2px var(--bg)}
.mk-filters{mask-image:linear-gradient(90deg,#000 88%,transparent)}

/* lot cards */
.lots{grid-template-columns:repeat(2,minmax(0,1fr))}
.lot{position:relative;display:flex;flex-direction:column;animation:lotIn .38s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(var(--i,0) * 28ms)}
@keyframes lotIn{from{opacity:0;transform:translateY(10px) scale(.98)}}
.lot .lot-info{display:grid;grid-template-columns:1fr;gap:1px;padding:8px 10px 4px}
.lot .lot-info b{grid-column:auto;font-size:13px}.lot .lot-info small{grid-row:auto}
.lot-actions{display:flex;gap:6px;align-items:center;padding:4px 8px 9px}
.price-pill{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 8px;border-radius:11px;background:linear-gradient(180deg,#3d8cf0,#2f6cd0);color:#fff;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden}
.price-pill .coin{width:14px;height:14px}
.price-pill.sm{flex:none;height:24px;font-size:12px;padding:0 8px;border-radius:8px;justify-self:start}
.cart-btn{flex:none;width:36px;height:32px;border-radius:11px;display:grid;place-items:center;background:#ffffff14;color:#dbe7f5;box-shadow:inset 0 0 0 1px var(--line2);transition:background .2s,color .2s,transform .15s}
.cart-btn svg{width:17px;height:17px}
.cart-btn.in{background:#22c55e;color:#fff;box-shadow:0 4px 12px #22c55e55}
.cart-btn.pop{animation:cartPop .3s cubic-bezier(.3,1.6,.5,1)}
@keyframes cartPop{50%{transform:scale(1.25)}}
.lot-art{transition:transform .25s}
.lot:active .lot-art{transform:scale(.97)}

/* list layout */
.lots.as-list{grid-template-columns:1fr;gap:8px}
.lots.as-list .lot{flex-direction:row;align-items:center;padding:6px}
.lots.as-list .lot-art{width:64px;height:64px;flex:none;border-radius:12px;overflow:hidden}
.lots.as-list .lot-art svg,.lots.as-list .nft-img{width:64px;height:64px}
.lots.as-list .lot-info{flex:1;padding:0 10px}
.lots.as-list .lot-actions{padding:0 4px 0 0}
.lots.as-list .price-pill{flex:none;min-width:84px}

/* collections tab */
.mk-collections[hidden]{display:none}
.coll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.coll-card{display:grid;justify-items:center;gap:3px;padding:12px 10px 12px;border-radius:18px;background:radial-gradient(circle at 50% 30%,#2c3b52,var(--card) 70%);box-shadow:inset 0 0 0 1px var(--line);text-align:center;animation:lotIn .38s both;animation-delay:calc(var(--i,0) * 30ms);transition:transform .15s}
.coll-card:active{transform:scale(.97)}
.cc-img{width:86px;height:86px;border-radius:20px;overflow:hidden;background:#1d2734;margin-bottom:4px}.cc-img img{width:100%;height:100%;object-fit:cover}
.coll-card b{font-size:14px}.coll-card small{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:700;color:#cfe0f4}.coll-card small .coin{width:13px;height:13px}
.coll-card em{font-style:normal;font-size:11px;color:var(--muted)}

/* collection sheet */
.coll-head{display:flex;justify-content:space-between;padding:0 6px}
.coll-head button{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;color:var(--muted)}
.coll-head button svg{width:14px;height:14px;transition:transform .2s}.coll-head button.on{color:var(--text)}.coll-head button.desc svg{transform:rotate(180deg)}
.coll-opt{gap:10px}.coll-opt span{flex:1;min-width:0}.coll-opt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbx-v{width:20px;height:20px;border-radius:6px;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #ffffff40;color:transparent;transition:background .15s}
.cbx-v svg{width:14px;height:14px}
.coll-opt.on .cbx-v{background:#fff;color:#2f6cd0;box-shadow:none}
.coll-floor{font-style:normal;display:inline-flex;align-items:center;gap:3px;font-weight:800;font-size:13px;white-space:nowrap}.coll-floor .coin{width:13px;height:13px}

/* lot page */
.lot-hero{position:relative}
.lot-cart{position:absolute;right:12px;top:12px;width:44px;height:40px;border-radius:14px;background:#0f1722b3;backdrop-filter:blur(6px)}
.lot-cart.in{background:#22c55e}
.attr-table{border-radius:18px;background:var(--card);overflow:hidden}
.attr-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:8px;padding:11px 14px;font-size:14px}
.attr-row+.attr-row{border-top:1px solid var(--line)}
.attr-row.head{font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);padding:9px 14px}
.attr-row.head span:last-child{text-align:right}
.ar-k{color:var(--muted);font-size:13px}.ar-v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-f{display:inline-flex;align-items:center;gap:4px;font-weight:800;justify-content:flex-end;white-space:nowrap}.ar-f .coin{width:13px;height:13px}
.ar-f small{font-weight:600;color:var(--muted);font-size:11px;margin-left:4px}
.attr-row.total{background:#ffffff06}

/* floating cart pill */
.cart-pill{position:fixed;z-index:25;left:50%;bottom:calc(var(--bottom) + 82px);transform:translate(-50%,140%);opacity:0;display:flex;align-items:center;gap:10px;height:50px;padding:0 18px 0 8px;border-radius:26px;background:#fff;color:#14223a;box-shadow:0 12px 30px #0008;transition:transform .32s cubic-bezier(.3,1.3,.5,1),opacity .2s;pointer-events:none}
.cart-pill.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.cart-pill.bump.show{animation:pillBump .35s cubic-bezier(.3,1.6,.5,1)}
@keyframes pillBump{40%{transform:translate(-50%,0) scale(1.06)}}
.cp-bag{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#14223a;color:#fff}.cp-bag svg{width:18px;height:18px}
.cp-txt{display:grid;line-height:1.1}.cp-txt b{display:inline-flex;align-items:center;gap:4px;font-size:15px}.cp-txt b .coin{width:15px;height:15px}.cp-txt small{font-size:11.5px;color:#5b6b80;font-weight:600}
body.has-back .cart-pill{bottom:calc(var(--bottom) + 20px)}
body.kb-open .cart-pill{opacity:0;pointer-events:none}

/* cart sheet */
.cart-head{display:flex;justify-content:space-between;align-items:center;min-height:28px}
.cart-all{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;cursor:pointer}
.cart-del{font-weight:800;font-size:13px;color:var(--bad)}
.cart-list{display:grid;gap:8px}
.cart-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:16px;background:var(--card);cursor:pointer;animation:lotIn .3s both;animation-delay:calc(var(--i,0) * 25ms)}
.cr-art{width:58px;height:58px;border-radius:13px;overflow:hidden;background:#1d2734;flex:none}.cr-art img{width:100%;height:100%;object-fit:cover}
.cr-txt{flex:1;min-width:0;display:grid;gap:3px}.cr-txt b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cr-txt small{color:var(--muted);font-size:12px}
.cbx{appearance:none;-webkit-appearance:none;width:22px;height:22px;border-radius:7px;flex:none;box-shadow:inset 0 0 0 2px #ffffff40;cursor:pointer;display:grid;place-items:center;transition:background .15s}
.cbx:checked{background:var(--accent) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m6 12.5 4 4 8-9" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/16px no-repeat;box-shadow:none}
.cart-undo{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:#2a3849;box-shadow:0 8px 20px #0007;font-size:14px;font-weight:600;animation:lotIn .25s both}
.cart-undo[hidden]{display:none}
.cart-undo span:nth-child(2){flex:1}
.cart-undo button{height:30px;padding:0 12px;border-radius:10px;background:var(--accent);color:#fff;font-weight:800;font-size:13px}
.cu-count{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #ffffff55;font-weight:800;font-size:12px}
.cart-sum{display:grid;gap:6px;padding-bottom:6px}
.cart-sum>div{display:flex;justify-content:space-between;align-items:center;font-size:14px}.cart-sum span{color:var(--muted)}
.cart-sum .price .coin{width:15px;height:15px}
.neg-txt{color:var(--bad)}
.cart-warn{font-size:12.5px;color:var(--bad);text-align:center}
@media (prefers-reduced-motion:reduce){.lot,.coll-card,.cart-row{animation:none}}
.lots[hidden]{display:none}
.lot-hero.has-img .nft-frame{display:block;width:100%;height:100%}
.lot-hero.has-img .nft-img{width:100%;height:100%;object-fit:cover}
body[data-route="market/lot"] .cart-pill{bottom:calc(var(--bottom) + 92px)}
body[data-route="market/lot"] .lot-page{padding-bottom:64px}
/* Small visual feedback, driven by the cart classes already set by its controller. */
.mk-tab-ink { transition:transform .25s cubic-bezier(.2,.7,.2,1); }
.mk-lots-only, .mk-collections { animation:market-panel-in .2s ease-out; }
@keyframes market-panel-in { from { opacity:0; } to { opacity:1; } }
.cart-pill { max-width:calc(100% - 32px); anchor-name:--cart-destination; }
.cart-pill .cp-txt { min-width:0; }
.cart-pill.bump.show { animation:pillBump .32s cubic-bezier(.2,.75,.25,1); }
@keyframes pillBump {
  40% { transform:translate(-50%,0) scale(1.035); }
  70% { transform:translate(-50%,0) scale(.99); }
}
.cart-flight { display:none; }
@supports (left:anchor(center)) {
  .lot { anchor-name:--cart-origin; anchor-scope:--cart-origin; }
  .lot:has(.cart-btn.pop.in) { overflow:visible; animation:none; transform:none; z-index:26; }
  .lot:has(.cart-btn.pop.in)>.cart-flight {
    display:block;
    position:fixed;
    left:anchor(--cart-origin center);
    top:anchor(--cart-origin center);
    width:58px;
    height:58px;
    z-index:60;
    pointer-events:none;
    object-fit:cover;
    border-radius:14px;
    box-shadow:0 6px 18px #0005;
    transform:translate(-50%,-50%);
    animation:gift-to-cart .28s cubic-bezier(.3,.65,.4,1) both;
  }
  @keyframes gift-to-cart {
    to {
      left:anchor(--cart-destination center,50vw);
      top:anchor(--cart-destination center,80vh);
      transform:translate(-50%,-50%) scale(.2);
      opacity:.1;
    }
  }
}
@media (prefers-reduced-motion:reduce) {
  .mk-tab-ink,.cart-pill { transition:none; }
  .mk-lots-only,.mk-collections,.cart-pill.bump.show,.cart-btn.pop { animation:none; }
  .lot:has(.cart-btn.pop.in)>.cart-flight { display:none; }
}

/* backdrop colour circles and symbol icons */
.sw.bd{box-shadow:inset 0 0 0 1.5px #ffffff26,0 2px 6px #0004}
.sw.sym{background:#ffffff12;color:#dfe8f5}
.sw.sym svg{width:62%;height:62%}
.chip small .sw{display:inline-grid;width:14px;height:14px;margin-right:4px;vertical-align:-2px}
.chip small .sw.sym svg{width:100%;height:100%}
.ar-v{display:flex;align-items:center;gap:7px;min-width:0}
.ar-v .sw{width:20px;height:20px}
.ar-v .sw.sym{background:none;width:20px;height:20px}.ar-v .sw.sym svg{width:100%;height:100%}
.sw.model{background:#ffffff10;width:46px;height:46px}
.sw.model img{width:100%;height:100%;object-fit:contain}
