/* Shared glass surface. Fixed centering preserves page position and scroll. */
.action-dialog{position:fixed;inset:0;margin:auto!important;width:min(400px,calc(100% - 40px));max-height:calc(100dvh - 40px);padding:32px;border:1px solid rgba(255,255,255,.78);border-radius:28px;color:var(--ink);background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(247,242,255,.58));-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);box-shadow:0 24px 70px rgba(60,19,158,.12),0 4px 16px rgba(33,27,50,.05),inset 0 1px 0 rgba(255,255,255,.9);text-align:center;outline:none;overscroll-behavior:contain;animation:feedback-enter .22s ease-out}
.action-dialog::backdrop{background:rgba(47,28,81,.14);-webkit-backdrop-filter:blur(7px) saturate(108%);backdrop-filter:blur(7px) saturate(108%)}
.action-dialog .action-symbol,.feedback-symbol{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border:1px solid rgba(255,255,255,.78);border-radius:21px;background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(227,212,255,.55));box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 6px 20px rgba(101,38,237,.07);color:var(--purple);font-size:27px;font-weight:650;margin:0 auto 20px}
.feedback-symbol .action-spinner{display:block;flex:none;width:25px;height:25px;border:2px solid rgba(101,38,237,.15);border-top-color:var(--purple);border-right-color:var(--purple);border-radius:50%}
.action-dialog h2{color:var(--ink);font-size:21px;font-weight:650;line-height:1.35;letter-spacing:-.5px;margin:0 0 10px}
.action-dialog p{color:#62576f;font-size:14px;line-height:1.75;margin:0 0 24px;overflow-wrap:anywhere}
.action-dialog .dialog-actions{justify-content:center;gap:10px;margin:0}
.action-dialog button{min-height:44px;border-radius:14px;box-shadow:0 4px 12px rgba(101,38,237,.1)}
.action-dialog button.secondary{background:rgba(255,255,255,.48);border-color:rgba(101,38,237,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.action-dialog button.secondary:hover{background:rgba(255,255,255,.8)}
.action-dialog button:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
.feedback-dialog[data-type=error] .feedback-symbol{background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,224,233,.65));color:#bb264d}
.feedback-dialog>p:last-child{margin-bottom:0}
.feedback-dialog button{min-width:130px}
.action-dialog [hidden]{display:none!important}
@keyframes feedback-enter{from{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.action-dialog{background:rgba(250,247,255,.97)}.action-dialog::backdrop{background:rgba(47,28,81,.22)}}
@media(prefers-reduced-transparency:reduce){.action-dialog{background:#faf7ff;-webkit-backdrop-filter:none;backdrop-filter:none}.action-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){.action-dialog{animation:none}.action-dialog .action-spinner{animation:none}}
@media(max-width:480px){.action-dialog{padding:26px 22px;border-radius:24px;width:calc(100% - 36px)}.action-dialog .dialog-actions{display:flex;flex-wrap:wrap}.action-dialog .dialog-actions button{flex:1}.action-dialog h2{font-size:20px}}

/* Loading is only a rotating ring: no card, backdrop, blur, or modal layer. */
.feedback-loading{position:fixed;inset:0;margin:auto;width:48px;height:48px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;outline:none;pointer-events:none;z-index:1000;overflow:visible;color:var(--purple)}
.feedback-loading[hidden]{display:none!important}
.feedback-loading>.action-spinner{display:block;width:40px;height:40px;margin:4px;border:3px solid rgba(101,38,237,.16);border-top-color:var(--purple);border-right-color:var(--purple);border-radius:50%;animation:feedback-spin .75s linear infinite}
.feedback-loading>p{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.feedback-loading.has-detail>p{position:relative;left:50%;width:min(280px,calc(100vw - 40px));height:auto;margin:14px 0 10px;padding:0;transform:translateX(-50%);overflow:visible;clip-path:none;white-space:normal;text-align:center;color:var(--purple-dark);font-size:13px;font-weight:600;line-height:1.6}
.feedback-loading>button{position:relative;left:50%;transform:translateX(-50%);white-space:nowrap;pointer-events:auto;font-size:12px;padding:8px 14px;background:var(--bg);color:var(--purple);border:1px solid var(--line);border-radius:10px}
.feedback-loading>button[hidden]{display:none!important}
@keyframes feedback-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.feedback-loading>.action-spinner{animation-duration:1.8s}}

/* Compact shared confirmation, success and warning surfaces. */
.action-dialog{width:min(360px,calc(100% - 32px));padding:22px 24px;border-radius:18px;max-height:calc(100dvh - 32px);overflow:auto;background:rgba(255,255,255,.97)}
.action-dialog .action-symbol,.action-dialog .feedback-symbol{width:38px;height:38px;border-radius:12px;font-size:20px;margin:0 auto 12px}
.action-dialog h2{font-size:18px;line-height:1.35;letter-spacing:-.3px;margin-bottom:8px}
.action-dialog p{font-size:13px;line-height:1.6;margin-bottom:18px}
.action-dialog .dialog-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.action-dialog .dialog-actions>button{min-height:40px;padding:9px 15px;font-size:13px;border-radius:9px;line-height:1.4}
.feedback-dialog .dialog-actions>button{min-width:100px}
.feedback-dialog[data-type=warning] .feedback-symbol{color:#946000;background:#fff4d8}
.feedback-dialog[data-type=info] .feedback-symbol{color:var(--purple);background:var(--soft)}
@media(max-width:480px){.action-dialog{padding:20px;border-radius:16px}.action-dialog h2{font-size:18px}.action-dialog .dialog-actions>button{flex:1 1 auto}}
