.ai-operation-locked { opacity: .58; cursor: not-allowed !important; }
.ai-operation-loading { position: relative; min-width: 190px; }
.ai-operation-loading > * { visibility: hidden; }
.ai-operation-loading::after { content: attr(data-ai-busy-label); position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding-left: 15px; }
.ai-operation-loading::before { content: ''; width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; position: absolute; left: 9px; top: calc(50% - 7px); animation: ai-operation-spin .8s linear infinite; }
.ai-operation-notice { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; margin: 12px 0; border: 1px solid #91caff; border-radius: 8px; background: #e6f4ff; color: #003a8c; }
.ai-operation-notice[hidden], .ai-operation-query[hidden] { display: none; }
.ai-operation-notice[data-status='unknown'] { background: #fffbe6; color: #874d00; border-color: #ffe58f; }
.ai-operation-notice[data-status='rejected'] { background: #fff2f0; color: #a8071a; border-color: #ffccc7; }
.ai-operation-notice[data-status='done'] { background: #f6ffed; color: #135200; border-color: #b7eb8f; }
.ai-operation-query { border: 1px solid currentColor; border-radius: 5px; padding: 4px 10px; background: transparent; color: inherit; cursor: pointer; flex-shrink: 0; }
@keyframes ai-operation-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ai-operation-loading::before { animation: none; } }
