diff --git a/backend/templates/pmr.html b/backend/templates/pmr.html index fc69b80..2e28f20 100644 --- a/backend/templates/pmr.html +++ b/backend/templates/pmr.html @@ -322,6 +322,96 @@ color: #9ca3af; } + /* PAAI 토스트 알림 */ + .paai-toast-container { + position: fixed; + top: 20px; + right: 20px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: 10px; + pointer-events: none; + } + .paai-toast { + pointer-events: auto; + background: linear-gradient(135deg, #10b981, #059669); + color: #fff; + padding: 15px 20px; + border-radius: 12px; + box-shadow: 0 8px 25px rgba(16, 185, 129, 0.4); + cursor: pointer; + animation: slideIn 0.3s ease-out; + display: flex; + align-items: center; + gap: 12px; + min-width: 280px; + transition: transform 0.2s, box-shadow 0.2s; + } + .paai-toast:hover { + transform: translateX(-5px); + box-shadow: 0 12px 30px rgba(16, 185, 129, 0.5); + } + .paai-toast .icon { + font-size: 1.5rem; + } + .paai-toast .content { + flex: 1; + } + .paai-toast .title { + font-weight: 700; + font-size: 0.95rem; + } + .paai-toast .subtitle { + font-size: 0.8rem; + opacity: 0.9; + margin-top: 2px; + } + .paai-toast .close-btn { + background: rgba(255,255,255,0.2); + border: none; + color: #fff; + width: 24px; + height: 24px; + border-radius: 50%; + font-size: 1rem; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + } + .paai-toast .close-btn:hover { + background: rgba(255,255,255,0.3); + } + @keyframes slideIn { + from { transform: translateX(100%); opacity: 0; } + to { transform: translateX(0); opacity: 1; } + } + @keyframes slideOut { + from { transform: translateX(0); opacity: 1; } + to { transform: translateX(100%); opacity: 0; } + } + .paai-toast.removing { + animation: slideOut 0.3s ease-in forwards; + } + + /* PAAI 버튼 로딩 상태 */ + .paai-badge.loading { + background: linear-gradient(135deg, #6b7280, #9ca3af) !important; + pointer-events: none; + } + .paai-badge .spinner-small { + display: inline-block; + width: 14px; + height: 14px; + border: 2px solid rgba(255,255,255,0.3); + border-top-color: #fff; + border-radius: 50%; + animation: spin 0.8s linear infinite; + margin-right: 6px; + vertical-align: middle; + } + /* OTC 모달 */ .otc-modal { display: none; @@ -689,6 +779,9 @@
+ + +