#ddp-popup-root { position: fixed; inset: 0; z-index: 99999; --ddp-accent:#0ea5e9; }
.ddp-hidden { display: none !important; }
.ddp-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.ddp-modal { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #fff; width: 92vw; max-width: 520px; max-height: 90vh; border-radius: 12px; box-shadow: 0 10px 35px rgba(0,0,0,.25); overflow: hidden; opacity: 0; transform-origin: 50% 50%; display: flex; flex-direction: column; }
.ddp-modal.ddp-enter { animation: ddp-fade-in 180ms ease-out forwards; }
.ddp-modal.ddp-exit { animation: ddp-fade-out 140ms ease-in forwards; }
.ddp-header { display:flex; align-items:center; justify-content:space-between; padding: 14px 16px; border-bottom:1px solid #edf1f5; font-weight:600; font-size:18px; flex: 0 0 auto; background: inherit; }
.ddp-body { padding: 16px; color: #2c2c2c; flex: 1 1 auto; overflow: auto; }
.ddp-footer { display:flex; gap:12px; padding: 12px 16px 16px; justify-content:flex-end; flex: 0 0 auto; background: inherit; }
.ddp-close { background: transparent; border:0; font-size: 22px; cursor:pointer; color:#667085; }
.ddp-form .ddp-field { margin-bottom: 12px; }
.ddp-form .ddp-checkbox-row { display:flex; align-items:center; gap:8px; margin: 6px 0; }
.ddp-form .ddp-group-label { font-weight:600; margin-bottom:4px; }
.ddp-form label { display:block; margin-bottom:4px; font-weight:600; }
.ddp-form input[type="text"], .ddp-form input[type="email"], .ddp-form input[type="tel"], .ddp-form textarea, .ddp-form select { width:100%; padding:10px 12px; border:1px solid #d0d5dd; border-radius:8px; font-size:16px; line-height:1.4; }
.ddp-form input[type="text"], .ddp-form input[type="email"], .ddp-form input[type="tel"], .ddp-form textarea, .ddp-form select { background-color:#fff; }
.ddp-theme-dark .ddp-form select { background:#0b1220; color:#e5e7eb; }
.ddp-form input:-webkit-autofill,
.ddp-form input:-webkit-autofill:hover,
.ddp-form input:-webkit-autofill:focus,
.ddp-form textarea:-webkit-autofill,
.ddp-form select:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #fff inset; box-shadow: 0 0 0px 1000px #fff inset; }
.ddp-form textarea { min-height: 100px; }
.ddp-btn { appearance:none; border:0; border-radius:8px; padding:10px 14px; font-size:14px; font-weight:600; cursor:pointer; }
.ddp-btn-primary { background:var(--ddp-accent); color:#fff; }
.ddp-btn-secondary { background:#eef2f7; color:#111827; }
.ddp-error { color:#b91c1c; font-size:12px; margin-top:6px; }
.ddp-success { padding: 16px; text-align:center; font-weight:600; }

/* Position: bottom-right toast */
.ddp-position-bottom-right .ddp-overlay { display:none; }
.ddp-position-bottom-right .ddp-modal { position: fixed; left: auto; top: auto; right: 16px; bottom: 16px; transform: none; width: min(92vw, 420px); max-height: 90vh; opacity: 0; transform: translateY(12px); }
.ddp-position-bottom-right .ddp-modal.ddp-enter { animation: ddp-slide-in 200ms ease-out forwards; }
.ddp-position-bottom-right .ddp-modal.ddp-exit { animation: ddp-slide-out 150ms ease-in forwards; }
.ddp-overlay.ddp-enter { animation: ddp-overlay-in 180ms ease-out forwards; }
.ddp-overlay.ddp-exit { animation: ddp-overlay-out 140ms ease-in forwards; }

@keyframes ddp-fade-in { from { opacity: 0; transform: translate(-50%, -48%) scale(.98); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes ddp-fade-out { from { opacity: 1; transform: translate(-50%, -50%) scale(1); } to { opacity: 0; transform: translate(-50%, -48%) scale(.98); } }
@keyframes ddp-overlay-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ddp-overlay-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes ddp-slide-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ddp-slide-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(12px); } }

/* Theme: dark */
.ddp-theme-dark .ddp-modal { background:#111827; color:#e5e7eb; }
.ddp-theme-dark .ddp-header { border-bottom-color:#1f2937; }
.ddp-theme-dark .ddp-close { color:#9ca3af; }
.ddp-theme-dark .ddp-btn-secondary { background:#1f2937; color:#e5e7eb; }
.ddp-theme-dark .ddp-form input[type="text"], .ddp-theme-dark .ddp-form input[type="email"], .ddp-theme-dark .ddp-form textarea { background:#0b1220; border-color:#374151; color:#e5e7eb; }


