/* Full width gallery */
.gvc-gallery{ position:relative; width:100%; margin:0; transform:none; overflow:hidden; }
.gvc-track{ display:flex; will-change:transform; transition:transform .35s ease; backface-visibility:hidden; }
.gvc-slide{ flex:0 0 100%; display:grid; place-items:center; padding:0; }

/* 9:16 box */
.gvc-box{ position:relative; width:100%; aspect-ratio:9/16; background:#fef6ff; display:grid; place-items:center; }
.gvc-box video{ width:100%; height:100%; object-fit:contain; background:#fef6ff; outline:none; border:none; }

/* Arrows */
.gvc-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  background:none !important; border:0 !important; padding:8px; cursor:pointer; color:#fff; opacity:.95;
  box-shadow:none !important;
}
.gvc-prev{ left:8px; } .gvc-next{ right:8px; }
.gvc-arrow:hover{ opacity:1; }

/* Dots centrados */
.gvc-dots-wrap{ display:flex; align-items:center; justify-content:center; margin-top:10px; }
.gvc-dots{ display:flex; gap:8px; justify-content:center; }
.gvc-dot{
  display:inline-block; width:9px; height:9px; padding:0; line-height:0;
  aspect-ratio:1/1; border-radius:50%;
  background:rgba(0,0,0,.38); border:1px solid rgba(255,255,255,.6);
  cursor:pointer; opacity:.95;
}
.gvc-dot.is-active{ background:#d9125e; border-color:#fff; transform:scale(1.07); }

/* Edit FAB siempre visible, incluso vacío */
.gvc-edit-fab{
  all: unset;
  position:absolute; right:12px; bottom:12px; z-index:6;
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%;
  background:#d9125e; color:#fff; cursor:pointer;
  border:1.5px solid rgba(255,255,255,0.95);
  box-shadow:0 6px 16px rgba(0,0,0,.35);
}
.gvc-edit-fab:hover{ transform:translateY(-1px); box-shadow:0 10px 22px rgba(0,0,0,.38); background:#b80f4b; }
.gvc-edit-fab svg{ width:18px; height:18px; display:block; }

/* Editor overlay */
.gvc-ov{ position:fixed; inset:0; z-index:2147483000; background:rgba(0,0,0,.85); display:none; opacity:0; transition:opacity .2s ease; }
.gvc-ov.is-open{ display:block; opacity:1; }
.gvc-panel{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(100vw, 960px); max-height:80vh; overflow:auto; background:#111; color:#fff; border-radius:16px; padding:16px; border:1px solid rgba(255,255,255,.15); box-shadow:0 10px 40px rgba(0,0,0,.6); }
.gvc-actions{ display:flex; gap:8px; justify-content:flex-end; margin-bottom:10px; }
.gvc-btn{ background:#2c2a5f; color:#fff; border:1px solid #000; padding:8px 12px; border-radius:8px; cursor:pointer; }
.gvc-btn.ghost{ background:#6b7280; }
.gvc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; }
.gvc-item{ position:relative; border:1px solid rgba(255,255,255,.15); border-radius:10px; overflow:hidden; background:#0f0f0f; }
.gvc-thumb{ width:100%; height:180px; object-fit:cover; display:block; background:#111; pointer-events:none; z-index:1; }
.gvc-del{ position:absolute; right:6px; top:6px; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.45); color:#fff; padding:2px 6px; border-radius:999px; cursor:pointer; z-index:3; }

/* Upload overlay (solo texto, sin barra ni %) */
.gvc-upload-ov{
  position:fixed; inset:0; z-index:2147483001; background:rgba(0,0,0,.8); display:none; align-items:center; justify-content:center; color:#fff;
  font-size:14px; letter-spacing:.2px;
}
.gvc-upload-ov.is-open{ display:flex; }
.gvc-upload-title{ padding:10px 14px; background:rgba(0,0,0,.3); border:1px solid rgba(255,255,255,.2); border-radius:10px; box-shadow:0 8px 30px rgba(0,0,0,.4); }

/* Empty */
.gvc-gallery.is-empty{ min-height:220px; background:transparent; }

/* Prevent page scroll when overlay open */
body.gvc-no-scroll{ overflow:hidden; }

/* Responsive */
@media (max-width: 768px){
  .gvc-box{ width:100%; }
}

/* Upload overlay (progreso de subida con barra + %) */
.gvc-upload-ov{
  position:fixed; inset:0; z-index:2147483001; background:rgba(0,0,0,.8); display:none; align-items:center; justify-content:center; flex-direction:column; gap:10px; color:#fff;
}
.gvc-upload-ov.is-open{ display:flex; }
.gvc-upload-title{ font-size:14px; opacity:.95; }
.gvc-upload-bar{ width:min(80vw,420px); height:8px; background:rgba(255,255,255,.2); border-radius:999px; overflow:hidden; }
.gvc-upload-bar span{ display:block; width:0%; height:100%; background:#d9125e; transition:width .12s linear; }
.gvc-upload-pct{ font-size:12px; letter-spacing:.3px; }
