.pgv-empty{
  padding:12px 14px;
  border:1px dashed #cfd7df;
  border-radius:12px;
  background:#fafbfc;
}

.pgv-grid{
  display:grid;
  grid-template-columns: repeat(var(--pgv-cols,3), minmax(0,1fr));
  gap: var(--pgv-gap,18px);
}

@media (max-width: 1024px){
  .pgv-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .pgv-grid{ grid-template-columns: repeat(1, minmax(0,1fr)); }
}

.pgv-card{
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  padding:14px;
  background:#fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:160px;
}

.pgv-card-top{ display:flex; flex-direction:column; gap:8px; }
.pgv-icon{
  width:42px; height:42px;
  border-radius:12px;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(0,0,0,.02));
  position:relative;
}
.pgv-icon:after{
  content:"PDF";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:12px;
  letter-spacing:.08em;
  opacity:.7;
}

.pgv-title{
  font-weight:700;
  font-size:15px;
  line-height:1.25;
}
.pgv-sub{
  font-size:12px;
  opacity:.75;
  word-break:break-word;
}

.pgv-actions{
  margin-top:14px;
  display:flex;
  gap:10px;
}

.pgv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  text-decoration:none;
  cursor:pointer;
  font-weight:600;
  font-size:13px;
  background:#fff;
}
.pgv-btn-primary{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.pgv-btn-ghost{
  background:#fff;
  color:#111827;
}

.pgv-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:999999;
}
.pgv-modal.pgv-open{ display:block; }

.pgv-modal-overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.pgv-modal-dialog{
  position:relative;
  width:min(980px, calc(100% - 28px));
  height:min(80vh, 760px);
  margin: 60px auto;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}

.pgv-modal-iframe{
  width:100%;
  height:100%;
  border:0;
}

.pgv-modal-close{
  position:absolute;
  top:10px;
  right:12px;
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:1;
  z-index:2;
}

body.pgv-modal-open{
  overflow:hidden;
}
