.invitation-entry { border-color: #d9bedf; background: #f8eefb; color: #643869; }
.invitation-dialog { width: min(940px, calc(100vw - 48px)); max-width: none; max-height: calc(100vh - 48px); padding: 28px; border: 1px solid #e6d9e8; border-radius: 24px; background: #fffcf7; color: #432449; box-shadow: 0 28px 100px #39213f33; overflow-y: auto; }
.invitation-dialog::backdrop { background: #3023347a; backdrop-filter: blur(3px); }
.invitation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.invitation-heading h2 { margin: 0; font-size: 25px; }
.invitation-heading p { margin: 7px 0 0; color: #896d8a; font-size: 14px; }
.invitation-heading .icon-button { flex-shrink: 0; }
.invitation-layout { display: grid; grid-template-columns: minmax(270px, .9fr) minmax(340px, 1fr); gap: 32px; align-items: center; }
.invitation-preview { padding: 16px; border-radius: 18px; background: #f1e8f4; text-align: center; }
#invitation-poster { min-height: 300px; display: grid; align-items: center; }
#invitation-poster canvas { display: block; width: 100%; height: auto; border-radius: 8px; box-shadow: 0 8px 22px #4324491a; }
.invitation-preview > span { display: block; margin-top: 13px; color: #896d8a; font-size: 12px; }
.invitation-eyebrow { color: #bb6027; font-size: 13px; font-weight: 700; letter-spacing: .08em; margin: 0 0 10px; }
.invitation-details h3 { margin: 0 0 13px; font-size: 21px; line-height: 1.6; overflow-wrap: anywhere; }
.invitation-intro, .invitation-rule { color: #896d8a; font-size: 14px; line-height: 1.8; }
.invitation-qr-card { display: flex; align-items: center; gap: 22px; margin: 22px 0; padding: 10px 16px; border: 1px solid #eadfea; border-radius: 14px; background: white; }
.invitation-qr-card img { display: block; width: 152px; height: 152px; flex-shrink: 0; object-fit: contain; }
.invitation-qr-card p { color: #896d8a; font-size: 14px; line-height: 1.9; }
.invitation-qr-card strong { font-size: 17px; color: #432449; }
.invitation-details label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 700; }
#invitation-url { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #e1d5e4; background: white; border-radius: 9px; padding: 12px; color: #64466b; font-size: 13px; }
.invitation-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.invitation-actions button { flex: 1; min-width: 145px; justify-content: center; white-space: nowrap; }
.invitation-rule { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid #eee3ef; font-size: 12px; }
.invitation-feedback { min-height: 22px; margin: 16px 0 0; font-size: 13px; color: #765b79; line-height: 1.7; }
.invitation-feedback.is-error { color: #a34828; }
.invitation-empty { padding: 70px 20px; text-align: center; color: #896d8a; }
@media (max-width: 800px) {
  .invitation-dialog { padding: 20px; }
  .invitation-layout { grid-template-columns: 1fr; gap: 22px; }
  .invitation-preview { width: min(270px, 100%); box-sizing: border-box; margin: auto; }
  .invitation-qr-card { justify-content: center; }
}
