/* Appended to body, independently namespaced from theme and checkout layouts. */
#puc-notification-region.puc-notification-region {
  box-sizing: border-box;
  position: fixed !important;
  inset: 50% auto auto 50% !important;
  transform: translate(-50%, -50%);
  width: min(380px, calc(100vw - 32px));
  max-height: calc(100dvh - 100px);
  overflow-y: auto;
  display: flex; flex-direction: column; gap: 10px;
  z-index: 100000; pointer-events: none;
  margin: 0; padding: 4px;
  background: transparent; border: 0; box-shadow: none;
}
#puc-notification-region *, #puc-notification-region *::before, #puc-notification-region *::after { box-sizing: border-box; }
#puc-notification-region .puc-notification {
  --puc-notice-color: #6250df;
  display: flex; align-items: center; gap: 12px; flex: 0 0 auto;
  padding: 14px 10px 14px 16px; margin: 0;
  background: #fff; color: #17152d;
  border: 1px solid #e8e7ef; border-left: 4px solid var(--puc-notice-color); border-radius: 14px;
  box-shadow: 0 8px 24px rgba(36,31,69,.14);
  font: 500 14px/1.5 system-ui, -apple-system, 'Segoe UI', sans-serif;
  text-align: left; text-transform: none; letter-spacing: normal;
  pointer-events: auto; animation: puc-notice-enter 180ms ease-out both;
}
#puc-notification-region .puc-notification--error { --puc-notice-color: #db444c; }
#puc-notification-region .puc-notification--warning { --puc-notice-color: #a66b00; }
#puc-notification-region .puc-notification--success { --puc-notice-color: #16855e; }
#puc-notification-region .puc-notification-icon { flex: 0 0 27px; width: 27px; height: 27px; display: grid; place-items: center; border: 2px solid currentColor; border-radius: 50%; color: var(--puc-notice-color); font-weight: 800; }
#puc-notification-region .puc-notification-message { flex: 1; min-width: 0; overflow-wrap: anywhere; }
#puc-notification-region .puc-notification-close { appearance: none; flex: 0 0 36px; display: grid; place-items: center; width: 36px; height: 44px; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 8px; background: transparent; color: #67657a; font: 400 24px/1 system-ui, sans-serif; cursor: pointer; box-shadow: none; }
#puc-notification-region .puc-notification-close:hover { background: #f6f5fa; }
#puc-notification-region .puc-notification-close:focus-visible { outline: 2px solid #6250df; outline-offset: -2px; }
@keyframes puc-notice-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { #puc-notification-region .puc-notification { animation: none; } }

#puc-loading-overlay {
  position: fixed; inset: 0; z-index: 99990;
  display: grid; place-items: center;
  background: rgba(240, 239, 248, .68); backdrop-filter: blur(5px);
  margin: 0; padding: 20px; border: 0; box-sizing: border-box;
}
#puc-loading-overlay .puc-loader-card {
  box-sizing: border-box; display: flex; flex-direction: column; align-items: center;
  width: min(300px, 100%); padding: 32px 24px 28px;
  background: #fff; border: 1px solid #e8e7ef; border-radius: 24px;
  box-shadow: 0 18px 60px rgba(36,31,69,.12); text-align: center;
  animation: puc-loader-enter 220ms ease-out both;
}
#puc-loading-overlay .puc-loader-ring {
  position: relative; width: 80px; height: 80px; flex: 0 0 80px;
  margin: 0;
  animation: puc-loader-orbit 1.8s linear infinite;
}
#puc-loading-overlay .puc-loader-visual {
  position: relative; width: 80px; height: 80px; flex: 0 0 80px; margin: 0 0 22px;
}
#puc-loading-overlay .puc-loader-visual::after {
  content: ''; position: absolute; inset: 19px;
  background: url('../images/proflup-logo.png') center / contain no-repeat;
}
#puc-loading-overlay .puc-loader-dot {
  position: absolute; left: 50%; top: 50%;
  width: var(--puc-size); height: var(--puc-size);
  margin: 0; padding: 0; border: 0; border-radius: 50%;
  background: var(--puc-dot-color, #ec168c); box-shadow: none;
  transform: translate(-50%, -50%) rotate(var(--puc-angle)) translateY(-35px);
}
#puc-loading-overlay .puc-loader-label {
  display: flex; justify-content: center; align-items: center;
  color: #17152d; font: 700 17px/1.5 system-ui, sans-serif;
  text-transform: none; letter-spacing: -.2px; min-height: 26px;
  text-shadow: none;
}
#puc-loading-overlay .puc-loader-note {
  margin: 9px 0 0; padding: 0; max-width: 220px;
  color: #67657a; font: 400 13px/1.65 system-ui, sans-serif;
}
#puc-loading-overlay .puc-loader-letter { display: inline-block; animation: puc-loader-wave 1.8s ease-in-out infinite; animation-delay: var(--puc-letter-delay); }
@keyframes puc-loader-wave { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-2px); color: #6250df; } }
@keyframes puc-loader-orbit { to { transform: rotate(360deg); } }
@keyframes puc-loader-enter { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { #puc-loading-overlay .puc-loader-ring, #puc-loading-overlay .puc-loader-letter, #puc-loading-overlay .puc-loader-card { animation: none; } }

/* Shimmer only over the stationary brand mark, inside the orbiting dots. */
#puc-loading-overlay .puc-loader-visual::before {
  content: ''; position: absolute; inset: 19px; z-index: 1;
  border-radius: 11px; pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.15) 43%, rgba(255,255,255,.8) 50%, rgba(255,255,255,.15) 57%, transparent 65%);
  background-size: 300% 100%;
  animation: puc-loader-logo-shimmer 2.8s ease-in-out infinite;
}
@keyframes puc-loader-logo-shimmer {
  0%, 25% { opacity: 0; background-position: 100% 0; }
  40%, 65% { opacity: 1; }
  80%, 100% { opacity: 0; background-position: 0% 0; }
}
@media (prefers-reduced-motion: reduce) {
  #puc-loading-overlay .puc-loader-visual::before { animation: none; opacity: 0; }
}
