.pr-wrap { max-width: 860px; margin: 24px auto; padding: 0 12px; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial; }
.pr-card { background: #fff; border: 1px solid #e7e7e7; border-radius: 16px; padding: 18px; box-shadow: 0 8px 30px rgba(0,0,0,.05); }
.pr-loading { opacity: .7; }
.pr-progress { font-size: 14px; opacity: .75; margin-bottom: 10px; }
.pr-q { margin: 10px 0 14px; }
.pr-img { width: 100%; max-height: 420px; object-fit: contain; border-radius: 14px; border: 1px solid #eee; background: #fafafa; }
.pr-img-placeholder { display:flex; align-items:center; justify-content:center; height: 240px; }
.pr-flip { transform: scaleX(-1); }
.pr-actions { display:flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.pr-btn { border: 1px solid #111; background: #111; color: #fff; padding: 10px 14px; border-radius: 12px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.pr-btn:hover { opacity: .92; }
.pr-btn:disabled { opacity:.15; cursor:not-allowed; }
.pr-btn-outline { background: #fff; color:#111; }
.pr-btn-green { background:#0a7a2f; border-color:#0a7a2f; }
.pr-help { margin-top: 10px; opacity: .75; }
.pr-field { margin: 10px 0; display:flex; flex-direction:column; gap: 6px; }
.pr-field input, .pr-field select { padding: 10px 12px; border-radius: 10px; border: 1px solid #ddd; }
.pr-grid2 { display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pr-fortune { white-space: pre-wrap; line-height: 1.5; margin-top: 10px; }
.pr-error { color: #b00020; }
.pr-selected {outline: 5px solid rgb(10 208 76);}
.pr-modal { position:fixed; inset:0; background:rgba(0,0,0,.75); display:none; align-items:center; justify-content:center; z-index:99999; padding:20px; }
.pr-modal.open { display:flex; }
.pr-modal img { max-width:95vw; max-height:95vh; border-radius:14px; background:#fff; }
.pr-modal-close { position:absolute; top:14px; right:14px; font-size:18px; padding:10px 12px; border-radius:12px; border:1px solid #fff; color:#fff; background:transparent; cursor:pointer; }
.pr-img { cursor: zoom-in; }
.pr-actions {display: flex;gap: 10px;margin-top: 14px;flex-wrap: nowrap;align-content: flex-start;justify-content: center;}.pr-help {margin-top: 10px;opacity: .75;text-align: center;}
button#pr-yes {
    background: #151515;
    border-radius: 10px !important;
    border: 1px solid #fff;
        font-family: "Roboto Condensed", Sans-serif !important;
    font-size: 20px;
    font-weight: 600 !important;
}
button#pr-no {
    background: #151515;
    border-radius: 10px !important;
    border: 1px solid #fff;
        font-family: "Roboto Condensed", Sans-serif !important;
    font-size: 20px;
    font-weight: 600 !important;
}
button#pr-no:hover, button#pr-yes:hover {
    background: #ffa35a;
    border-radius: 10px !important;
    border: 1px solid #fff;
}
button#pr-back {
    border-radius: 10px !important;
    border: 1px solid #222 !important;
    color: #000 !important;
            font-family: "Roboto Condensed", Sans-serif !important;
    font-size: 20px;
    font-weight: 500 !important;
}
.pr-field-error { margin-top: 6px; font-size: 13px; color: #b00020; }
.pr-top-error { margin: 10px 0; font-size: 14px; color: #b00020; }
.pr-input-error { border-color: #b00020 !important; }
.pr-required { color: #b00020; }
/* Progress bar */
.pr-progress { margin-bottom: 12px; }
.pr-progress-row { display:flex; justify-content:space-between; align-items:center; font-size:14px; opacity:.85; margin-bottom: 8px; }
.pr-progress-pct { font-variant-numeric: tabular-nums; }

.pr-progress-bar {
  position: relative;
  height: 12px;
  border-radius: 999px;
  background: #eef2f4;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.06);
}

.pr-progress-fill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  transition: width 520ms ease;
  background: linear-gradient(90deg, #0a7a2f 0%, #19b35a 45%, #7cf28f 100%);
  position: relative;
}

/* subtle animated shimmer */
.pr-progress-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    120deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.35) 35%,
    rgba(255,255,255,0) 70%
  );
  transform: translateX(-60%);
  animation: prShimmer 1.3s ease-in-out infinite;
  mix-blend-mode: overlay;
}

@keyframes prShimmer {
  0% { transform: translateX(-60%); }
  100% { transform: translateX(120%); }
}