/* GrowthPilot Core — front-end styles (modal + small helpers).
   Design tokens are provided by the theme; sensible fallbacks included for standalone use. */

.gp-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 20px; }
.gp-modal[hidden] { display: none; }
.gp-modal__backdrop { position: absolute; inset: 0; background: rgba(16,24,22,.55); backdrop-filter: blur(4px); }
.gp-modal__box { position: relative; z-index: 1; background: #fff; border-radius: 20px; padding: 30px; width: 100%; max-width: 440px; box-shadow: 0 24px 60px rgba(16,24,22,.24); }
.gp-modal__box h3 { margin: 0 0 6px; font-size: 1.3rem; color: var(--green, #1C3F39); }
.gp-modal__x { position: absolute; top: 14px; right: 16px; background: none; border: 0; font-size: 26px; line-height: 1; cursor: pointer; color: var(--muted, #66736F); }
.gp-modal__msg:empty { display: none; }
.gp-modal__msg { margin: 10px 0; }

.gp-form__msg { margin-bottom: 4px; }
.gp-form__msg:empty { display: none !important; }

.gp-auth__oauth { text-align: center; }
.gp-auth__oauth:before { content: "or"; display: block; color: var(--muted, #66736F); font-size: .85rem; margin: 10px 0; }

/* Ensure buy button spinner state is visible */
.gp-buy[disabled], .gp-pay-go[disabled] { opacity: .7; cursor: progress; }
