/* ============================================================
   WC Video Stories v4 – Frontend CSS
   ============================================================ */
:root{
  --wcvs-red:    #ee4d2d;
  --wcvs-red2:   #d9421e;
  --wcvs-ease:   cubic-bezier(.25,.46,.45,.94);
  --wcvs-font:   -apple-system,'Segoe UI',sans-serif;
  --wcvs-r:      14px;
}

/* ── Floating widget ───────────────────────────────────────── */
.wcvs-float{
  position:fixed;z-index:9998;cursor:grab;
  border-radius:var(--wcvs-r);
  box-shadow:0 8px 32px rgba(0,0,0,.3),0 2px 8px rgba(0,0,0,.15);
  overflow:hidden;background:#111;
  animation:wcvs-in .5s var(--wcvs-ease) both, wcvs-bob 3s 1s ease-in-out infinite;
  transform-origin:bottom center;
  transition:transform .2s var(--wcvs-ease),box-shadow .2s;
  user-select:none;
}
.wcvs-float:hover{
  transform:scale(1.05) translateY(-4px);
  box-shadow:0 14px 44px rgba(0,0,0,.38);
  animation-play-state:paused;
}
@keyframes wcvs-in{from{opacity:0;transform:translateY(28px) scale(.85)}to{opacity:1;transform:translateY(0)}}
@keyframes wcvs-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

.wcvs-float__x{
  position:absolute;top:6px;right:6px;z-index:2;
  width:22px;height:22px;border-radius:50%;
  background:rgba(0,0,0,.6);border:none;color:#fff;
  font-size:12px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,transform .15s;
}
.wcvs-float__x:hover{background:rgba(0,0,0,.9);transform:scale(1.1)}

.wcvs-float__media{position:relative;overflow:hidden;background:#000;width:100%}
.wcvs-float__media img{width:100%;height:100%;object-fit:cover;display:block}
.wcvs-float__overlay{
  position:absolute;inset:0;background:rgba(0,0,0,.22);
  display:flex;align-items:center;justify-content:center;
}
.wcvs-float__play{
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.88);
  display:flex;align-items:center;justify-content:center;padding-left:3px;
  transition:transform .2s,background .15s;
}
.wcvs-float:hover .wcvs-float__play{transform:scale(1.1);background:#fff}
.wcvs-float__badge{
  position:absolute;top:8px;left:8px;
  background:rgba(0,0,0,.62);color:#fff;
  font:700 10px var(--wcvs-font);padding:2px 7px;border-radius:10px;
}
.wcvs-float__live{
  position:absolute;bottom:8px;left:8px;
  display:flex;align-items:center;gap:4px;
  background:rgba(0,0,0,.55);color:#fff;
  font:700 9px var(--wcvs-font);letter-spacing:.5px;
  padding:2px 7px;border-radius:10px;
}
.wcvs-float__dot{
  width:5px;height:5px;background:#ff4444;border-radius:50%;
  animation:wcvs-blink 1.2s ease infinite;
}
@keyframes wcvs-blink{0%,100%{opacity:1}50%{opacity:.15}}
.wcvs-float__label{
  color:#fff;text-align:center;font:700 11px var(--wcvs-font);padding:7px 0;
}
.wcvs-float.hidden{display:none!important}

/* ── Backdrop ──────────────────────────────────────────────── */
.wcvs-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.75);
  z-index:19996;opacity:0;pointer-events:none;
  transition:opacity .25s;backdrop-filter:blur(3px);
}
.wcvs-backdrop.open{opacity:1;pointer-events:all}

/* ── Viewer ─────────────────────────────────────────────────── */
.wcvs-viewer{
  position:fixed;inset:0;z-index:19997;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;opacity:0;
  transition:opacity .25s var(--wcvs-ease);
}
.wcvs-viewer.open{opacity:1;pointer-events:all}

.wcvs-viewer__inner{
  position:relative;width:100%;max-width:420px;
  height:100%;max-height:100dvh;
  background:#000;display:flex;flex-direction:column;overflow:hidden;
}
@media(min-width:600px){
  .wcvs-viewer__inner{
    border-radius:18px;
    height:90vh;        /* explicit — height:100% không resolve đúng trong flex align-items:center */
    max-height:90vh;
    box-shadow:0 28px 80px rgba(0,0,0,.7);
  }
}

/* Progress */
.wcvs-progress{
  position:absolute;top:0;left:0;right:0;
  display:flex;gap:3px;padding:10px 12px 6px;z-index:20;pointer-events:none;
}
.wcvs-progress__seg{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.28);overflow:hidden}
.wcvs-progress__fill{height:100%;width:0;background:#fff;border-radius:2px}
.wcvs-progress__seg.done .wcvs-progress__fill{width:100%;transition:none}

/* Header */
.wcvs-viewer__head{
  position:absolute;top:22px;left:0;right:0;
  display:flex;align-items:center;gap:10px;
  padding:8px 14px;z-index:20;pointer-events:none;
}
.wcvs-viewer__avatar{width:38px;height:38px;border-radius:50%;border:2px solid #fff;object-fit:cover;flex-shrink:0}
.wcvs-viewer__meta{flex:1;min-width:0}
.wcvs-viewer__meta strong{
  display:block;color:#fff;font:600 13px/1.3 var(--wcvs-font);
  text-shadow:0 1px 6px rgba(0,0,0,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.wcvs-viewer__meta span{color:rgba(255,255,255,.7);font:400 11px var(--wcvs-font)}
.wcvs-viewer__close{
  pointer-events:all;width:36px;height:36px;border-radius:50%;
  background:rgba(0,0,0,.5);border:1.5px solid rgba(255,255,255,.25);
  color:#fff;font-size:17px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .15s,transform .15s;
}
.wcvs-viewer__close:hover{background:rgba(0,0,0,.85);transform:scale(1.08)}

/* Video */
.wcvs-viewer__video{flex:1;position:relative;overflow:hidden;background:#000}
.wcvs-viewer__video video,
.wcvs-viewer__video iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:none}
.wcvs-tap{position:absolute;top:0;bottom:0;width:38%;z-index:10;cursor:pointer}
.wcvs-tap--prev{left:0}
.wcvs-tap--next{right:0}

/* Pause icon */
.wcvs-pause-icon{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  z-index:11;opacity:0;pointer-events:none;transition:opacity .18s;
}
.wcvs-pause-icon.show{opacity:1}
.wcvs-pause-icon__circle{
  width:68px;height:68px;border-radius:50%;
  background:rgba(255,255,255,.82);
  display:flex;align-items:center;justify-content:center;padding-left:4px;
  animation:wcvs-pop .3s var(--wcvs-ease);
}
@keyframes wcvs-pop{from{transform:scale(.4);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}

/* ── Mute button – redesigned ──────────────────────────────── */
.wcvs-mute{
  position:absolute;right:14px;bottom:180px;z-index:20;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  background:rgba(20,20,20,.72);
  border:1.5px solid rgba(255,255,255,.25);
  border-radius:40px;padding:10px 9px;
  color:#fff;cursor:pointer;
  transition:background .15s,transform .15s,box-shadow .15s;
  box-shadow:0 2px 12px rgba(0,0,0,.4);
  backdrop-filter:blur(4px);
  min-width:44px;
}
.wcvs-mute:hover{
  background:rgba(20,20,20,.9);
  transform:scale(1.06);
  box-shadow:0 4px 18px rgba(0,0,0,.5);
}
.wcvs-mute__icon{width:22px;height:22px;flex-shrink:0}
.wcvs-mute__label{font:600 9px var(--wcvs-font);letter-spacing:.5px;opacity:.85;white-space:nowrap}

/* ── Product strip (shop/category) ────────────────────────── */
.wcvs-strip{
  position:relative;z-index:20;
  display:flex;align-items:center;gap:10px;
  padding:12px 14px 16px;
  background:linear-gradient(transparent,rgba(0,0,0,.88));
}
.wcvs-strip__img{width:50px;height:50px;border-radius:10px;object-fit:cover;border:2px solid rgba(255,255,255,.28);flex-shrink:0}
.wcvs-strip__info{flex:1;min-width:0}
.wcvs-strip__name{color:#fff;font:600 12.5px/1.4 var(--wcvs-font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.wcvs-strip__price{color:var(--wcvs-red);font:700 14px var(--wcvs-font)}
.wcvs-strip__btn{
  flex-shrink:0;background:var(--wcvs-red);color:#fff;border:none;
  border-radius:22px;padding:9px 16px;font:700 13px var(--wcvs-font);
  cursor:pointer;white-space:nowrap;
  box-shadow:0 3px 14px rgba(238,77,45,.5);
  transition:transform .15s,background .15s;
}
.wcvs-strip__btn:hover{background:var(--wcvs-red2);transform:scale(1.04)}

/* ── Bottom sheet ──────────────────────────────────────────── */
.wcvs-sheet{
  position:absolute;bottom:0;left:0;right:0;z-index:25;
}

/* Mini bar */
.wcvs-sheet__mini{
  background:linear-gradient(transparent,rgba(0,0,0,.84));
  padding:16px 14px 14px;
  display:flex;align-items:center;gap:10px;cursor:pointer;
}
.wcvs-sheet__mini-img{width:52px;height:52px;border-radius:10px;object-fit:cover;border:2px solid rgba(255,255,255,.28);flex-shrink:0}
.wcvs-sheet__mini-info{flex:1;min-width:0}
.wcvs-sheet__mini-name{color:#fff;font:600 12px/1.4 var(--wcvs-font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wcvs-sheet__mini-price{color:var(--wcvs-red);font:700 14px var(--wcvs-font)}
.wcvs-sheet__mini-cta{
  flex-shrink:0;background:var(--wcvs-red);color:#fff;border:none;
  border-radius:22px;padding:10px 16px;font:700 13px var(--wcvs-font);
  cursor:pointer;white-space:nowrap;
  box-shadow:0 3px 14px rgba(238,77,45,.5);
  transition:transform .15s,background .15s;
}
.wcvs-sheet__mini-cta:hover{background:var(--wcvs-red2);transform:scale(1.04)}

/* Sheet body */
.wcvs-sheet__body{
  background:#fff;border-radius:22px 22px 0 0;
  padding:0;max-height:0;overflow:hidden;
  transition:max-height .38s var(--wcvs-ease);
  box-shadow:0 -12px 44px rgba(0,0,0,.22);
}
.wcvs-sheet__body.open{max-height:72vh;overflow-y:auto;padding:0 16px 36px;}

/* Sheet internals */
.wcvs-sh-handle{width:38px;height:4px;background:#ddd;border-radius:2px;margin:12px auto 16px}
.wcvs-sh-header{display:flex;gap:13px;margin-bottom:16px}
.wcvs-sh-img{width:84px;height:84px;border-radius:12px;object-fit:cover;border:1px solid #f0f0f0;flex-shrink:0}
.wcvs-sh-meta{flex:1}
.wcvs-sh-name{font:600 14px/1.45 var(--wcvs-font);color:#111;margin-bottom:5px}
.wcvs-sh-price{font:700 22px/1 var(--wcvs-font);color:var(--wcvs-red)}
.wcvs-sh-price del{font-size:13px;color:#bbb;font-weight:400;margin-left:6px}
.wcvs-sh-stock{
  display:inline-flex;align-items:center;gap:4px;
  font:500 11px var(--wcvs-font);color:#27ae60;background:#e9f7ef;
  padding:3px 9px;border-radius:20px;margin-top:7px;
}
.wcvs-sh-stock::before{content:'●';font-size:8px}
.wcvs-sh-stock.oos{color:#e74c3c;background:#fef0ee}
.wcvs-sh-rating{display:flex;align-items:center;gap:5px;font:500 12px var(--wcvs-font);color:#666;margin-top:4px}
.wcvs-stars{color:#f5a623;letter-spacing:-1px}

/* Variations */
.wcvs-attr{margin-bottom:14px}
.wcvs-attr__lbl{font:600 13px var(--wcvs-font);color:#333;margin-bottom:8px}
.wcvs-attr__opts{display:flex;flex-wrap:wrap;gap:7px}
.wcvs-attr__opt{
  padding:7px 15px;border-radius:8px;
  border:1.5px solid #e0e0e0;
  font:500 12.5px var(--wcvs-font);color:#444;cursor:pointer;background:#fff;
  transition:all .13s;
}
.wcvs-attr__opt:hover{border-color:var(--wcvs-red);color:var(--wcvs-red)}
.wcvs-attr__opt.sel{border-color:var(--wcvs-red);background:#fff2f0;color:var(--wcvs-red);font-weight:700}
.wcvs-attr__opt.oos{opacity:.35;cursor:not-allowed;text-decoration:line-through}

/* Qty */
.wcvs-qty{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.wcvs-qty__lbl{font:600 13px var(--wcvs-font);color:#333}
.wcvs-qty__ctrl{display:flex;align-items:center;border:1.5px solid #e0e0e0;border-radius:9px;overflow:hidden}
.wcvs-qty__btn{
  width:36px;height:36px;background:#f5f5f5;border:none;
  font-size:18px;line-height:1;cursor:pointer;color:#444;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s;
}
.wcvs-qty__btn:hover{background:#ececec}
.wcvs-qty__btn:disabled{opacity:.28;cursor:not-allowed}
.wcvs-qty__val{
  min-width:46px;width:46px;text-align:center;
  font:600 15px var(--wcvs-font);color:#111;
  border:none;background:transparent;outline:none;
  -moz-appearance:textfield;padding:0 4px;
}
.wcvs-qty__val::-webkit-inner-spin-button,
.wcvs-qty__val::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Action buttons */
.wcvs-sh-actions{display:flex;gap:10px}
.wcvs-sh-actions button{
  flex:1;padding:14px;border-radius:12px;
  font:700 14px var(--wcvs-font);cursor:pointer;transition:all .14s;
}
.wcvs-sh-cart{
  border:2px solid var(--wcvs-red);background:transparent;color:var(--wcvs-red);
}
.wcvs-sh-cart:hover{background:#fff2f0}
.wcvs-sh-buy{
  flex:1.4;border:none;background:var(--wcvs-red);color:#fff;
  box-shadow:0 4px 18px rgba(238,77,45,.42);
}
.wcvs-sh-buy:hover{background:var(--wcvs-red2);transform:translateY(-1px)}
.wcvs-sh-buy:disabled,.wcvs-sh-cart:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* ── Story bar ─────────────────────────────────────────────── */
.wcvs-bar{padding:14px 0 6px;background:#fff;border-bottom:1px solid #f0f0f0}
.wcvs-bar__inner{
  display:flex;gap:14px;padding:0 16px 8px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.wcvs-bar__inner::-webkit-scrollbar{display:none}
.wcvs-bar__item{
  flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:6px;
  cursor:pointer;scroll-snap-align:start;
  background:none;border:none;padding:0;transition:transform .18s;
}
.wcvs-bar__item:active{transform:scale(.9)}
.wcvs-bar__ring{
  width:66px;height:66px;border-radius:50%;padding:3px;
  background:linear-gradient(135deg,#ee4d2d,#f57c1f,#ffd200);
  transition:box-shadow .2s;
}
.wcvs-bar__ring:hover{box-shadow:0 0 0 3px rgba(238,77,45,.24)}
.wcvs-bar__ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2.5px solid #fff;display:block}
.wcvs-bar__item.seen .wcvs-bar__ring{background:#ccc}
.wcvs-bar__name{
  font:500 11px/1.3 var(--wcvs-font);color:#333;text-align:center;
  max-width:66px;overflow:hidden;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}

/* ── Toast ─────────────────────────────────────────────────── */
.wcvs-toast{
  position:fixed;bottom:80px;left:50%;
  transform:translateX(-50%) translateY(14px);
  background:rgba(18,18,18,.92);color:#fff;
  padding:10px 24px;border-radius:40px;
  font:500 13px var(--wcvs-font);
  z-index:99999;opacity:0;white-space:nowrap;pointer-events:none;
  transition:opacity .22s,transform .22s var(--wcvs-ease);
  backdrop-filter:blur(6px);
}
.wcvs-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── Facebook-style story bar ──────────────────────────────── */
.wcvs-bar--facebook { padding:12px 0 14px; }
.wcvs-bar--facebook .wcvs-bar__inner { gap:10px; padding:0 16px 4px; }

.wcvs-fb-story {
  flex:0 0 auto;
  background:none;border:none;padding:0;cursor:pointer;
  transition:transform .2s;
}
.wcvs-fb-story:active { transform:scale(.94); }

.wcvs-fb-story__card {
  position:relative;width:115px;height:205px;border-radius:16px;overflow:hidden;
  border:3px solid transparent;
  background:linear-gradient(#fff,#fff) padding-box,
             linear-gradient(160deg,#ee4d2d,#f57c1f,#ffd200) border-box;
  box-shadow:0 4px 18px rgba(0,0,0,.18);
  transition:transform .2s,box-shadow .2s;
}
.wcvs-fb-story__card:hover { transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.26); }

.wcvs-fb-story__bg {
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
}
.wcvs-fb-story__gradient {
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,.32) 0%,transparent 38%,rgba(0,0,0,.6) 100%);
}
.wcvs-fb-story__avatar {
  position:absolute;top:10px;left:10px;
  width:40px;height:40px;border-radius:50%;
  border:3px solid var(--wcvs-red);overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}
.wcvs-fb-story__avatar img { width:100%;height:100%;object-fit:cover;display:block; }

.wcvs-fb-story__name {
  position:absolute;bottom:10px;left:0;right:0;
  padding:0 9px;
  color:#fff;font:700 11px/1.35 var(--wcvs-font);text-align:center;
  text-shadow:0 1px 5px rgba(0,0,0,.6);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.wcvs-fb-story__play {
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.28);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding-left:2px;
  opacity:0;transition:opacity .2s;
}
.wcvs-fb-story__card:hover .wcvs-fb-story__play { opacity:1; }

.wcvs-fb-story.seen .wcvs-fb-story__card {
  background:linear-gradient(#fff,#fff) padding-box,
             linear-gradient(160deg,#bbb,#ddd) border-box;
}

/* Skeleton */
.skel{
  background:linear-gradient(90deg,#f0f0f0 25%,#e4e4e4 50%,#f0f0f0 75%);
  background-size:200%;animation:skel 1.3s infinite;border-radius:6px;display:inline-block;
}
@keyframes skel{0%{background-position:200%}100%{background-position:-200%}}
