/* V249 — Advanced Badge Studio + glow hardening.
   Storefront positioning remains V241/V248: badges live in a dedicated rail.
   This file only adds editor/UI tokens and glow behaviour; it does not move the rail. */
.product-card-topline .product-badge,
.product-badges-pdp .product-badge{
  --ct-badge-glow-intensity:var(--ct-badge-glow-intensity,0.75);
  box-shadow:
    0 5px 16px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.20),
    0 0 calc(24px * var(--ct-badge-glow-intensity,0.75)) rgba(255,255,255,calc(.28 * var(--ct-badge-glow,1))) !important;
  animation:ctBadge249Glow 3.4s ease-in-out infinite !important;
}
.product-card-topline .product-badge::before,
.product-badges-pdp .product-badge::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  border-radius:inherit !important;
  pointer-events:none !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 0 calc(18px * var(--ct-badge-glow-intensity,0.75)) rgba(255,255,255,calc(.18 * var(--ct-badge-glow,1))) !important;
  opacity:var(--ct-badge-glow,1) !important;
  z-index:1 !important;
}
@keyframes ctBadge249Glow{
  0%,100%{filter:brightness(1);box-shadow:0 5px 16px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.18),0 0 calc(15px * var(--ct-badge-glow-intensity,0.75)) rgba(255,255,255,calc(.20 * var(--ct-badge-glow,1)))}
  50%{filter:brightness(1.08);box-shadow:0 6px 20px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.34),0 0 calc(32px * var(--ct-badge-glow-intensity,0.75)) rgba(255,255,255,calc(.42 * var(--ct-badge-glow,1)))}
}
@media(prefers-reduced-motion:reduce){.product-card-topline .product-badge,.product-badges-pdp .product-badge,.product-card-topline .product-badge::after,.product-badges-pdp .product-badge::after{animation:none !important}}

/* Admin Badge Studio drawer — closed by default. */
.pm-badge-manager-v249{position:relative;overflow:visible}
.pm-badge-manager-v249 .pm-badge-quick-status{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}
.pm-badge-manager-v249 .pm-badge-quick-status span{display:inline-flex;align-items:center;padding:7px 9px;border:1px solid var(--admin-border);border-radius:999px;background:var(--admin-surface-2);color:var(--admin-muted);font-size:.62rem;font-weight:850}
.pm-badge-drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.48);backdrop-filter:blur(4px);z-index:9980}
.pm-badge-drawer-backdrop[hidden]{display:none !important}
.pm-badge-drawer{position:fixed;top:0;right:0;width:min(720px,96vw);height:100dvh;background:var(--admin-surface);border-left:1px solid var(--admin-border);box-shadow:-24px 0 70px rgba(0,0,0,.28);z-index:9990;transform:translateX(105%);transition:transform .24s ease;display:flex;flex-direction:column;color:var(--admin-text)}
.pm-badge-drawer.open{transform:translateX(0)}
.pm-badge-drawer-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 18px 14px;border-bottom:1px solid var(--admin-border);background:var(--admin-surface)}
.pm-badge-drawer-head h3{margin:2px 0 4px;font-size:1.1rem;color:var(--admin-text)}
.pm-badge-drawer-head p{margin:0;color:var(--admin-muted);font-size:.7rem;line-height:1.45}
.pm-badge-drawer-body{overflow:auto;padding:15px 18px 28px;display:grid;gap:14px}
.pm-badge-drawer-section{border:1px solid var(--admin-border);border-radius:16px;padding:14px;background:var(--admin-surface-2)}
.pm-badge-drawer-section-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}
.pm-badge-drawer-section-head strong{display:block;color:var(--admin-text);font-size:.84rem}.pm-badge-drawer-section-head small{display:block;color:var(--admin-muted);font-size:.64rem;margin-top:3px;line-height:1.4}
.pm-badge-live-preview-v249{min-height:76px;background:color-mix(in srgb,var(--admin-surface-2) 86%,var(--admin-accent) 14%)}
.pm-badge-fields-v249{grid-template-columns:repeat(2,minmax(0,1fr))}
.pm-badge-fields-v249 label{color:var(--admin-text)}
.pm-badge-palette-block{margin-top:12px;padding:10px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-surface)}
.pm-badge-palette-block>strong{display:block;color:var(--admin-text);font-size:.68rem;margin-bottom:8px}
.pm-badge-color-palette{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.pm-badge-color-swatch{width:100%;aspect-ratio:1;border:2px solid rgba(255,255,255,.42);border-radius:7px;background:var(--swatch);cursor:pointer;box-shadow:0 2px 7px rgba(0,0,0,.15);transition:transform .12s ease,box-shadow .12s ease}
.pm-badge-color-swatch:hover{transform:scale(1.13);box-shadow:0 0 0 2px var(--admin-accent),0 5px 15px rgba(0,0,0,.22);z-index:2}
.pm-badge-effects{display:flex;flex-wrap:wrap;gap:12px;margin:11px 0;color:var(--admin-text);font-size:.7rem;font-weight:850}
.pm-badge-effects label{display:flex;align-items:center;gap:6px}
.pm-badge-library-v249{display:grid;gap:7px}
.pm-badge-library-row{border:1px solid var(--admin-border);border-radius:12px;overflow:hidden;background:var(--admin-surface)}
.pm-badge-library-trigger{width:100%;border:0;background:transparent;color:var(--admin-text);padding:9px 10px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;cursor:pointer}
.pm-badge-library-trigger:hover{background:color-mix(in srgb,var(--admin-accent) 6%,transparent)}
.pm-badge-library-trigger>span:nth-child(2){min-width:0}.pm-badge-library-trigger strong{display:block;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-badge-library-trigger small{display:block;color:var(--admin-muted);font-size:.58rem;margin-top:2px}.pm-badge-chevron{font-size:1rem;color:var(--admin-muted);transition:transform .18s}.pm-badge-library-trigger[aria-expanded="true"] .pm-badge-chevron{transform:rotate(180deg)}
.pm-badge-library-editor{border-top:1px solid var(--admin-border);padding:10px;background:var(--admin-surface-2)}
.pm-badge-library-editor[hidden]{display:none}
.pm-badge-edit-v249{padding:0}
@media(max-width:560px){.pm-badge-drawer{width:100vw}.pm-badge-drawer-head{padding:14px}.pm-badge-drawer-body{padding:12px}.pm-badge-fields-v249{grid-template-columns:1fr}.pm-badge-color-palette{grid-template-columns:repeat(10,minmax(22px,1fr));gap:4px}.pm-badge-library-trigger{grid-template-columns:auto minmax(0,1fr) auto}.pm-badge-quick-status span{font-size:.57rem}}
body.badge-drawer-open{overflow:hidden !important}
.pm-badge-drawer-backdrop{opacity:0;transition:opacity .18s ease}.pm-badge-drawer-backdrop.visible{opacity:1}

