.jp-wrap { width: 100%; }
.jp-table { width: 100%; border-collapse: collapse; }
.jp-table th, .jp-table td { border: 1px solid #e7e7e7; padding: 10px; text-align: left; vertical-align: top; }
.jp-table th { background: #fafafa; }
.jp-td-title { font-weight: 600; }

.jp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid #222;
  background: #222;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  font-weight: 600;
}
.jp-btn:hover { opacity: .92; }
.jp-btn--ghost { background: #fff; color: #222; }

.jp-btn--primary { background: #222; color: #fff; border-color:#222; }

.jp-modal { display: none; position: fixed; inset: 0; z-index: 9999; }
.jp-modal.is-open { display: block; }
.jp-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.jp-modal__panel {
  position: relative;
  z-index: 2;
  width: min(920px, 92vw);
  max-height: 88vh;
  overflow: auto;
  margin: 6vh auto 0;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e6e6e6;
  padding: 18px 18px 22px;
}
.jp-modal__close {
  position: sticky;
  top: 0;
  float: right;
  width: 42px;
  height: 42px;
  border: 0;
  background: #fff;
  font-size: 28px;
  cursor: pointer;
  line-height: 42px;
  border-radius: 10px;
}
.jp-modal__close:hover { background:#f2f2f2; }

.jp-noscroll { overflow: hidden; }

.jp-h2 { margin: 0 0 8px; }
.jp-meta { display:flex; flex-wrap:wrap; gap: 14px; margin-bottom: 12px; padding: 10px; background:#fafafa; border:1px solid #eee; border-radius: 12px; }
.jp-desc { margin-bottom: 16px; }

.jp-apply { border-top:1px solid #eee; padding-top: 14px; margin-top: 14px; }
.jp-help { color:#444; margin: 6px 0 12px; }

.jp-step1 { display:flex; gap: 10px; align-items:end; flex-wrap: wrap; }
.jp-input { width: 100%; max-width: 360px; padding: 10px; border: 1px solid #ddd; border-radius: 10px; }
.jp-textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 10px; }
.jp-file { display:block; margin-top: 6px; }
.jp-fileinfo { margin-top: 8px; color:#333; font-size: 14px; }
.jp-privacy { margin-top: 12px; padding: 10px; background:#fafafa; border:1px solid #eee; border-radius: 12px; }

.jp-form { margin-top: 10px; }
.jp-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
@media (max-width: 680px){
  .jp-grid { grid-template-columns: 1fr; }
}

.jp-block { margin-top: 12px; }
.jp-actions { margin-top: 14px; }

.jp-hp { position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }

.jp-alt { margin-top: 18px; padding: 12px; border:1px dashed #ddd; border-radius: 12px; background:#fff; }
.jp-equidad { margin-top: 14px; padding: 12px; border:1px solid #eee; border-radius: 12px; background:#fafafa; }

.jp-loading { padding: 20px; color:#444; }
.jp-error { padding: 16px; background:#fff3f3; border:1px solid #ffd0d0; border-radius: 12px; color:#7a0000; }

.jp-submodal{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 10000;
  padding: 6vh 12px 12px;
}
.jp-submodal__inner{
  width: min(920px, 92vw);
  max-height: 88vh;
  overflow: auto;
  margin: 0 auto;
  background:#fff;
  border-radius: 14px;
  border:1px solid #e6e6e6;
  padding: 18px;
  position: relative;
}
.jp-submodal__close{
  position: absolute;
  right: 12px;
  top: 12px;
  width: 42px;
  height: 42px;
  border:0;
  background:#fff;
  font-size: 28px;
  cursor:pointer;
  border-radius: 10px;
}
.jp-submodal__close:hover{ background:#f2f2f2; }
