:root {
  font-family:
    -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  color: #281922;
  background: #f8f1f6;
  color-scheme: light;
}
* {
  box-sizing: border-box;
}
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  padding: 0 20px 60px;
  background:
    radial-gradient(circle at 85% 5%, #efd6e8, transparent 28rem),
    linear-gradient(155deg, #fffaf8, #f2e7f2);
}
header,
main {
  width: min(680px, 100%);
  margin: auto;
}
header {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #54214d;
  text-decoration: none;
}
.brand span {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: #54214d;
  color: #fff;
  font-weight: 900;
}
header small {
  color: #6e5b68;
}
.panel,
aside {
  padding: clamp(22px, 5vw, 38px);
  border: 1px solid #fff;
  border-radius: 28px;
  background: #ffffffc7;
  box-shadow: 0 22px 60px #4b294322;
  backdrop-filter: blur(22px);
}
.panel {
  text-align: center;
}
.paid-card-preview {
  width: min(440px, 100%);
  min-height: 0;
  margin: 26px auto 8px;
  padding: clamp(28px, 7vw, 52px);
  text-align: left;
}
.paid-card-preview.signature-template-preview { padding: 0; overflow: hidden; aspect-ratio: 5 / 7; min-height: 0; }
#paid-card-image { display: block; width: 100%; height: auto; aspect-ratio: 5 / 7; object-fit: contain; }
#paid-card-image[hidden], #paid-card-fallback[hidden] { display: none; }
#paid-card-fallback { display: grid; min-height: 520px; align-content: center; }
.paid-card-preview h2 {
  font-size: clamp(2rem, 7vw, 3rem);
}
#share-button,
#whatsapp-button,
#copy-button,
#download-button {
  width: min(440px, 100%);
}
.panel[hidden] {
  display: none;
}
.eyebrow {
  margin: 0;
  color: #87456f;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.13em;
}
h1 {
  margin: 10px 0 14px;
  font:
    700 clamp(2rem, 8vw, 3.3rem)/1 Georgia,
    serif;
}
p {
  line-height: 1.6;
  color: #665461;
}
.status-icon {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  margin: 0 auto 22px;
  border-radius: 22px;
  background: #efe0ed;
  color: #653052;
  font-size: 2rem;
  font-weight: 900;
}
.verification[data-state="success"] .status-icon {
  background: #e5f4ec;
  color: #1f6e51;
}
.verification[data-state="error"] .status-icon {
  background: #fff0f3;
  color: #972c42;
}
.spinner {
  width: 26px;
  height: 26px;
  border: 3px solid #c8acc2;
  border-top-color: #653052;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  padding: 13px 18px;
  border: 0;
  border-radius: 16px;
  background: #653052;
  color: #fff;
  text-decoration: none;
  font-weight: 850;
  box-shadow: 0 13px 35px #5d34532b;
}
.button:disabled {
  opacity: 0.55;
}
.secondary {
  background: #e8dbe7;
  color: #422039;
  box-shadow: none;
}
.whatsapp {
  background: #167a4b;
  color: #fff;
}
.delivery-promise {
  display: grid;
  gap: 4px;
  margin: 24px 0;
  padding: 18px;
  border-radius: 18px;
  background: #f2e8f1;
  text-align: left;
}
.selected-design-proof { display: grid; gap: 3px; width: min(440px,100%); margin: 12px auto 0; padding: 14px 16px; border: 1px solid #cdb8c7; border-radius: 16px; background: #fffafd; text-align: left; }
.selected-design-proof span { color: #28724f; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.selected-design-proof strong { color: #35112f; }
.selected-design-proof small { color: #6e5b68; line-height: 1.4; }
.delivery-promise span {
  color: #665461;
  font-size: 0.9rem;
}
.text-link {
  display: block;
  margin-top: 20px;
  color: #653052;
  font-weight: 750;
}
aside {
  margin-top: 18px;
}
aside p {
  margin-bottom: 0;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 480px) {
  body {
    padding-inline: 14px;
  }
  header small {
    display: none;
  }
  .panel,
  aside {
    padding: 22px;
    border-radius: 22px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .spinner {
    animation-duration: 1.8s;
  }
}
