/* Toolbar extras: heart burst layer, RSVP shortcut button, hidden guest messages */
#app-view-index { position: relative; }
.heart-layer { position: absolute; inset: 0; z-index: 1001; overflow: hidden; pointer-events: none; }
.flying-heart { position: absolute; filter: drop-shadow(0 2px 3px rgba(180, 30, 60, .25)); will-change: transform, opacity; }
#animation-gift-preview-btn { width: 35px !important; padding: 0 !important; justify-content: center; border-radius: 50% !important; }
#animation-gift-preview-btn span { display: none !important; }
#animation-gift-preview-btn img { height: 26px !important; }
#animation-gift-preview-btn:active { transform: scale(.94); }

#cinelove-like-button.rsvp-shortcut { background: linear-gradient(#ff8fa3, #e63950) !important; border-radius: 50% !important; display: flex; align-items: center;
  justify-content: center; color: #fff; box-shadow: 0 2px 8px rgba(230, 57, 80, .35); }
#cinelove-like-button.rsvp-shortcut svg { width: 20px; height: 20px; }
#cinelove-like-button.rsvp-shortcut:active { transform: scale(.92); }

#blessing-box.gb-box.gb-hidden { opacity: 0 !important; visibility: hidden !important; }

.money-shortcut { width: 35px; height: 35px; flex: 0 0 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer;
  background: #fff3d6; box-shadow: 0 2px 8px rgba(214, 47, 69, .3); animation: money-wiggle 5s ease-in-out 1s infinite; }
.money-shortcut svg { width: 24px; height: 24px; }
.money-shortcut:active { transform: scale(.92); }
@keyframes money-wiggle { 0%, 88%, 100% { transform: rotate(0); } 91% { transform: rotate(-12deg); } 94% { transform: rotate(10deg); } 97% { transform: rotate(-6deg); } }

#cinelove-toolbar .message-box-button span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Narrow phones: keep the toolbar on one line */
@media (max-width: 400px) {
  #cinelove-toolbar .toolbar-right { gap: 7px !important; }
}

/* Wedding-gift QR zoom popup */
.gift-qr-image { width: 100%; height: 100%; }
.qr-modal { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; padding: 16px; background: rgba(20, 12, 12, .75); }
.qr-modal.open { display: flex; }
.qr-dialog { position: relative; width: min(380px, 100%); max-height: 94vh; overflow: auto; box-sizing: border-box; padding: 18px 20px 20px; border-radius: 16px;
  background: #fff; text-align: center; font-family: 'OpenSans', sans-serif; color: #3a2e2c; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); }
.qr-dialog h3 { margin: 0 0 8px; font: 400 34px 'Aquarelle', cursive; color: #b5485a; }
.qr-dialog img { display: block; width: 100%; max-width: 300px; margin: 0 auto; }
.qr-bank { margin: 10px 0 14px; font-size: 14px; color: #6b5d59; }
.qr-bank b { color: #3a2e2c; letter-spacing: .04em; }
.qr-actions { display: flex; gap: 10px; }
.qr-actions > * { flex: 1; padding: 11px 8px; border-radius: 30px; font: 600 14px 'OpenSans', sans-serif; text-decoration: none; cursor: pointer; }
.qr-copy { border: 1px solid #b5485a; background: #fff; color: #b5485a; }
.qr-save { border: 1px solid #b5485a; background: #b5485a; color: #fff; }
.qr-close { position: absolute; top: 6px; right: 12px; border: 0; background: none; font-size: 32px; line-height: 1; color: #8a7e7a; cursor: pointer; }

/* Theme switch button, left of the music toggle */
.theme-switch { position: absolute; top: 10px; right: 48px; z-index: 1000; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; background: rgba(255, 255, 255, .85); color: #3a2e2c; box-shadow: 0 1px 6px rgba(0, 0, 0, .2); text-decoration: none; }
.theme-switch svg { width: 18px; height: 18px; }
.theme-switch:hover { background: #fff; transform: scale(1.06); }
.theme-switch-dot { position: absolute; right: -3px; bottom: -3px; min-width: 13px; height: 13px; border-radius: 7px; background: #b5485a; color: #fff;
  font: 700 9px/13px Arial, sans-serif; text-align: center; }

/* Directions shortcut (replaces the gift box) */
#cinelove-gift-button.map-shortcut { background: linear-gradient(#5aa1e8, #2f6db5) !important; animation: none !important; border-radius: 50% !important;
  display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 2px 8px rgba(47, 109, 181, .35); }
#cinelove-gift-button.map-shortcut svg { width: 20px; height: 20px; }
#cinelove-gift-button.map-shortcut:active { transform: scale(.92); }

/* Music + theme buttons: larger tap targets, a little further from the screen corner */
#audio-control-wrapper { top: 14px !important; right: 14px !important; width: 40px !important; height: 40px !important; touch-action: manipulation;
  -webkit-tap-highlight-color: transparent; cursor: pointer; }
#audio-control-wrapper::before { content: ''; position: absolute; inset: -8px; }   /* invisible extra hit area */
#audio-control-wrapper .audio-toggle { background: rgba(255, 255, 255, .9) !important; box-shadow: 0 1px 6px rgba(0, 0, 0, .22); }
#audio-control-wrapper:active .audio-toggle { transform: scale(.9); }
#audio-control-wrapper:focus-visible { outline: 2px solid #b5485a; outline-offset: 3px; border-radius: 50%; }
.theme-switch { top: 16px !important; right: 66px !important; width: 36px !important; height: 36px !important; touch-action: manipulation; }
.theme-switch::before { content: ''; position: absolute; inset: -6px; }
.theme-switch svg { width: 20px !important; height: 20px !important; }

/* Falling petals canvas: above the card content, below every control */
.falling-petals { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 997; pointer-events: none; }
