.pvt-table {

  width: 100%;

  border-collapse: collapse;

  margin-top: 20px;

}



.pvt-table th,

.pvt-table td {

  border: 1px solid #ddd;

  padding: 10px;

  text-align: center;

}



.pvt-table th {

  background: #f7f7f7;

  font-weight: bold;

}

.pvt-table td .pvt-qty-wrapper {

  display: flex;

  align-items: center;

  justify-content: center;

  border: 1px solid;

  border-radius: 5px;

}

.pvt-table td .pvt-qty-input {

  padding: 5px 2px;

  min-width: 20px;

  border: 0;

  border-radius: 0px;

  text-align: center;

}

.pvt-table td .pvt-qty-btn {

  padding: 5px 2px;

  min-width: 20px;

  border: 0;

  border-radius: 0px;

  text-align: center;

}



/* Link styles - all attributes that are URLs */

.pvt-table td .pvt-link {

  display: inline-block;

  width: 24px;

  height: 24px;

  text-decoration: none;

  background-size: contain;

  background-repeat: no-repeat;

  background-position: center;

  transition: opacity 0.2s, transform 0.2s;

  cursor: pointer;

}



.pvt-table td .pvt-link:hover {

  opacity: 0.7;

  transform: scale(1.1);

}



/* PDF icon */

.pvt-table td .pvt-link-pdf {

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23dc3545' d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z'/%3E%3Cpath fill='%23fff' d='M14 2v6h6'/%3E%3Cpath fill='%23fff' d='M10 12v2h4v-2h-4zm0-2h4v-2h-4v2z'/%3E%3C/svg%3E");

}



/* Image icon */

.pvt-table td .pvt-link-image {

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%2317a2b8' d='M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'/%3E%3C/svg%3E");

}



/* Document icon (Word, Excel, PowerPoint) */

.pvt-table td .pvt-link-document {

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23217a2b' d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z'/%3E%3Cpath fill='%23fff' d='M14 2v6h6'/%3E%3Cpath fill='%23fff' d='M16 13H8v-2h8v2zm0 3H8v-2h8v2zm-3-8H8V6h5v2z'/%3E%3C/svg%3E");

}



/* Archive icon (ZIP, RAR, etc.) */

.pvt-table td .pvt-link-archive {

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffc107' d='M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z'/%3E%3C/svg%3E");

}



/* Generic link icon */

.pvt-table td .pvt-link-link {

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%236c757d' d='M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z'/%3E%3C/svg%3E");

}



/* Stock corner badge (v2.0.6) */
.pvt-table .pvt-cart-cell {
  position: relative;
  overflow: hidden;
}

.pvt-table .pvt-cart-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  width: 100%;
  min-height: 86px;
  padding-top: 20px;
}

.pvt-table .pvt-stock-indicator {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 82px;
  height: 82px;
  overflow: hidden;
  clip-path: polygon(100% 0, 100% 100%, 0 0);
  pointer-events: none;
}

.pvt-table .pvt-stock-ok {
  background: #22a447;
}

.pvt-table .pvt-stock-low {
  background: #f28c28;
}

.pvt-table .pvt-stock-label {
  position: absolute;
  top: 15px;
  right: 4px;
  width: 58px;
  color: #fff;
  font-size: 10px;
  line-height: 1.02;
  font-weight: 700;
  letter-spacing: .35px;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(45deg);
  transform-origin: center;
}

.pvt-table .pvt-stock-label span {
  display: block;
}

/* Out-of-stock buttons intentionally remain clickable; JS opens the stock modal instead. */
.pvt-table .pvt-add-to-cart-btn[data-out-of-stock="1"] {
  opacity: 1;
  cursor: pointer;
}

/* Out-of-stock modal */
body.pvt-stock-modal-open {
  overflow: hidden;
}

.pvt-stock-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.28);
}

.pvt-stock-modal-overlay.is-visible {
  display: flex;
}

.pvt-stock-modal {
  position: relative;
  width: min(560px, 100%);
  padding: 30px 28px 24px;
  border: 2px solid #0066A5;
  border-radius: 8px;
  background: #fff;
  color: #333;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18);
  text-align: left;
}

.pvt-stock-modal-message {
  margin: 0 0 22px;
  font-size: 16px;
  line-height: 1.65;
}

.pvt-stock-modal-close-x {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #0066A5;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.pvt-stock-modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  min-height: 42px;
  padding: 9px 18px;
  border: 2px solid #0066A5;
  border-radius: 5px;
  background: #fff;
  color: #0066A5;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.pvt-stock-modal-close:hover,
.pvt-stock-modal-close:focus-visible {
  background: #0066A5;
  color: #fff;
}

@media (max-width: 767px) {
  .pvt-table .pvt-stock-indicator {
    width: 76px;
    height: 76px;
  }

  .pvt-table .pvt-stock-label {
    top: 14px;
    right: 3px;
    width: 55px;
    font-size: 9px;
  }

  .pvt-stock-modal {
    padding: 28px 20px 20px;
  }

  .pvt-stock-modal-message {
    font-size: 14px;
  }
}

