.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;pointer-events:none;transition:opacity var(--transition-base)}.modal-overlay.active{opacity:1;pointer-events:auto}.modal{background:var(--bg-secondary);border:1px solid var(--gold-border);border-radius:var(--panel-radius);padding:40px;width:480px;max-width:92vw;max-height:85vh;overflow-y:auto;position:relative;transform:translateY(20px);transition:transform var(--transition-base)}.modal-overlay.active .modal{transform:translateY(0)}.modal .modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-tertiary);font-size:24px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}.modal .modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.modal h2{text-align:center;color:var(--text-primary);font-size:var(--font-xl);letter-spacing:2px;margin-bottom:28px}.modal .form-group{margin-bottom:18px}.modal .form-group label{display:block;color:var(--text-tertiary);font-size:var(--font-sm);font-weight:700;letter-spacing:1px;margin-bottom:8px}.modal .modal-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.toast-container{position:fixed;top:20px;right:20px;z-index:3000;display:flex;flex-direction:column;gap:8px}.toast{background:var(--bg-elevated);border:1px solid var(--gold-border);border-radius:var(--card-radius);padding:12px 20px;color:var(--text-primary);font-size:var(--font-sm);font-weight:600;box-shadow:var(--shadow-md);animation:toastIn .3s ease;max-width:360px}.toast.success{border-color:var(--positive)}.toast.error{border-color:var(--negative)}@keyframes toastIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

/* WebKit must fully hide inactive fixed overlays so they never intercept clicks. */
.modal-overlay{visibility:hidden;-webkit-backdrop-filter:blur(4px);transition:opacity var(--transition-base),visibility 0s linear var(--transition-base)}
.modal-overlay.active{visibility:visible;transition-delay:0s}
