.vilite-btn {
  padding: .7rem 1rem; border: 1px solid #ddd; border-radius: .75rem; cursor: pointer;
  background: #111; color: #fff; font-weight: 600;
}
.vilite-modal[hidden] { display: none !important; }
.vilite-open { overflow: hidden; }

.vilite-modal {
  position: fixed; inset: 0; z-index: 99999;
  display: grid; place-items: center;
}
.vilite-backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,.5);
}
.vilite-card {
  position: relative; background: #fff; color: #111; border-radius: 1rem; width: min(720px, 92vw);
  box-shadow: 0 20px 60px rgba(0,0,0,.35); overflow: hidden;
}
.vilite-card-head, .vilite-card-foot {
  padding: .9rem 1rem; border-bottom: 1px solid #eee; display: flex; align-items: center; justify-content: space-between;
}
.vilite-card-foot { border-bottom: none; border-top: 1px solid #eee; justify-content: flex-end; }
.vilite-card-body { padding: 1rem; max-height: 70vh; overflow: auto; }
.vilite-close { background: transparent; border: 0; font-size: 1.4rem; line-height: 1; cursor: pointer; }

.vilite-grid { display: grid; grid-template-columns: 1fr 2fr; gap: .5rem .75rem; }
.vilite-row { display: contents; }
.vilite-k { font-weight: 600; color: #333; }
.vilite-v { color: #333; word-break: break-word; }
@media (max-width: 520px) {
  .vilite-grid { grid-template-columns: 1fr; }
  .vilite-k { opacity: .8; }
}
