.vmp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.vmp-card{background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:20px;box-shadow:0 16px 50px rgba(15,23,42,.07)}.vmp-form{display:grid;gap:10px}.vmp-form-wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.vmp-form input,.vmp-form select,.vmp-form textarea{width:100%;border:1px solid #e5e7eb;border-radius:16px;padding:12px;font-family:inherit}.vmp-form textarea{min-height:120px;grid-column:1/-1}.vmp-muted{color:#667085;line-height:1.9}.vmp-alert{border-radius:18px;padding:12px 14px;margin-bottom:14px}.vmp-alert.ok{background:#ecfdf3;color:#067647}.vmp-alert.err{background:#fef3f2;color:#b42318}.vmp-table{width:100%;border-collapse:collapse}.vmp-table th,.vmp-table td{border-bottom:1px solid #e5e7eb;padding:12px;text-align:right}.vmp-badges{display:flex;gap:6px;flex-wrap:wrap}.vmp-badge{border-radius:999px;background:#f3f4f6;padding:4px 9px;font-size:12px;font-weight:900}.vmp-badge.hot{background:#fee2e2;color:#b42318}.vmp-badge.reg{background:#eff6ff;color:#175cd3}.vmp-badge.stock{background:#ecfdf3;color:#067647}

.vmp-gallery-admin{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:8px 0 14px}.vmp-gallery-admin label{display:grid;gap:6px;font-size:12px;color:#475467}.vmp-gallery-admin img{width:100%;aspect-ratio:1.1/1;object-fit:cover;border-radius:14px;border:1px solid #e5e7eb;background:#fff}.vmp-form input[type=file]{padding:10px}

/* Vendor mobile compatibility patch */
@media(max-width:760px){
  .vmp-grid,.vmp-form-wide{grid-template-columns:1fr!important}
  .vmp-card{padding:14px;border-radius:18px}
  .vmp-form input,.vmp-form select,.vmp-form textarea{font-size:16px}
  .vmp-table{display:block;width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .vmp-gallery-admin{grid-template-columns:repeat(2,1fr)}
}

.vmp-actions{display:flex;gap:8px;flex-wrap:wrap}
.vmp-actions form{display:inline-flex}
.vmp-actions .btn{padding:9px 12px;min-height:40px}
.vmp-form .file-picked{grid-column:auto}

/* Real upload fix */
.vmp-form input[type=file]{
  background:#fff;
  border:1px dashed #cbd5e1;
}
.vmp-form label:has(input[type=file]){
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:16px;
  padding:10px;
}
.vmp-form label:has(input[type=file]) input{
  margin-top:7px;
}
.vmp-form .file-picked{
  display:block;
  margin-top:7px;
  color:#475467;
  background:#fff;
  border:1px dashed #cbd5e1;
  border-radius:12px;
  padding:7px 9px;
  line-height:1.8;
  word-break:break-word;
}
