.cnudge{
  --cn-brand:var(--brand-blue,#0f52d9); --cn-brand-ink:var(--brand-blue-dark,#0b3fa8);
  --cn-accent:var(--accent,#ff6a00); --cn-accent-ink:var(--accent-ink,#d5610a); --cn-sale:#e11d2a;
  --cn-surface:var(--bg-elev,#fff); --cn-surface-2:var(--surface,#f4f6fa);
  --cn-ink:var(--ink,#121725); --cn-muted:var(--muted,#5a6578); --cn-line:var(--border,#dde3ec);
  --cn-shadow:0 18px 50px -12px rgba(16,30,60,.28);
  position:fixed; right:18px; bottom:18px; z-index:1200;
  width:340px; max-width:calc(100vw - 32px);
  background:var(--cn-surface); color:var(--cn-ink);
  border:1px solid var(--cn-line); border-radius:18px; box-shadow:var(--cn-shadow);
  padding:14px; overflow:hidden;
  transform:translateX(130%); opacity:0; pointer-events:none;
  transition:transform .5s cubic-bezier(.2,.9,.25,1.3), opacity .25s ease;
}
.cnudge[hidden]{display:none}
.cnudge.cn-in{transform:translateX(0); opacity:1; pointer-events:auto}
.cnudge.cn-out{transform:translateX(130%); opacity:0; pointer-events:none}

.cnudge .cn-track{display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; transition:transform .25s ease, opacity .25s ease}
.cnudge .cn-track.cn-leave{opacity:0; transform:translateX(-16px)}
.cnudge .cn-track.cn-enter{opacity:0; transform:translateX(16px)}

.cnudge .cn-close{position:absolute; top:9px; right:9px; z-index:2; width:24px; height:24px; border:none; border-radius:50%; background:var(--cn-surface-2); color:var(--cn-muted); font-size:14px; line-height:1; cursor:pointer}
.cnudge .cn-close:hover{color:var(--cn-ink); filter:brightness(.95)}

.cnudge .cn-left{position:relative; display:grid; gap:8px; justify-items:center; padding-top:24px}
.cnudge .cn-imglink{display:block; border-radius:12px}
.cnudge .cn-img{width:94px; height:94px; border-radius:12px; background:var(--cn-surface-2); border:1px solid var(--cn-line); object-fit:contain; display:block}
.cnudge .cn-img-ph{display:grid; place-items:center; font-size:19px; font-weight:800; color:var(--cn-accent)}

.cnudge .cn-txt{min-width:0; padding-right:16px}
.cnudge .cn-eyebrow{font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cn-accent); margin:2px 0 4px}
.cnudge .cn-title{display:block; font-size:13.5px; font-weight:600; line-height:1.35; margin:0 0 8px; color:var(--cn-ink); text-decoration:none}
.cnudge .cn-title .cn-pname{font-weight:800; color:var(--cn-brand)}
.cnudge .cn-title:hover .cn-pname{text-decoration:underline}
.cnudge .cn-prices{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:3px}
.cnudge .cn-old{color:var(--cn-muted); text-decoration:line-through; font-size:13.5px}
.cnudge .cn-new{font-size:21px; font-weight:800; color:var(--cn-ink)}
.cnudge .cn-badge{position:absolute; top:0; left:0; z-index:3; font-size:17px; font-weight:800; color:#fff; background:var(--cn-sale); border-radius:8px; padding:4px 11px; box-shadow:0 2px 6px rgba(0,0,0,.22)}
.cnudge .cn-stock{font-size:11.5px; color:var(--cn-muted); margin:5px 0 10px}
.cnudge .cn-stock.cn-low{color:var(--cn-accent); font-weight:700}
.cnudge .cn-cta{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; background:var(--cn-accent); color:var(--accent-contrast,#fff); border:none; border-radius:10px; padding:9px 14px; text-decoration:none; cursor:pointer}
.cnudge .cn-cta:hover{background:var(--cn-accent-ink)}
.cnudge .cn-dots{display:flex; gap:6px; margin-top:11px}
.cnudge .cn-dots i{width:7px; height:7px; border-radius:50%; background:var(--cn-line); cursor:pointer; transition:.2s}
.cnudge .cn-dots i:hover{background:var(--cn-muted)}
.cnudge .cn-dots i.on{background:var(--cn-brand); width:17px; border-radius:4px}

.cnudge.cn-bf{
  --cn-brand:#ffd400; --cn-brand-ink:#ffdf40; --cn-accent:#ffd400; --cn-accent-ink:#e6bf00;
  --cn-surface:#0d0d0f; --cn-surface-2:#1c1c20; --cn-ink:#ffffff; --cn-muted:#b8b8c0; --cn-line:#333842;
  border-color:#ffd400;
}
.cnudge.cn-bf .cn-img{background:#fff; border-color:#fff}
.cnudge.cn-bf .cn-badge{color:#111; background:#ffd400}
.cnudge.cn-bf .cn-cta{color:#111}

@media (max-width:420px){.cnudge{right:12px; bottom:12px; width:calc(100vw - 24px)}}
@media (prefers-reduced-motion:reduce){
  .cnudge{transition:none}
  .cnudge .cn-track{transition:none}
  .cnudge.cn-in{transform:none; opacity:1}
}
