/* Short motion belongs to tools and state, leaving manuscript geometry unchanged. */
.table-tools-trigger, .table-ai-request, .editor-zoom-toolbar button,
.rm-plan-card, .rmops-ops-pulse-item {
  transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}
.table-tools-trigger:hover, .table-tools-trigger:focus-visible,
.editor-zoom-toolbar button:hover, .editor-zoom-toolbar button:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #6439e8) 16%, transparent);
}
.rm-plan-card:hover, .rm-plan-card:focus-within { border-color: var(--rm-purple, #6439e8); }
.rm-plan-art .rm-plan-book { transition: transform 180ms ease; }
.rm-plan-card:hover .rm-plan-book, .rm-plan-card:focus-within .rm-plan-book { transform: rotate(-5deg); }
.rmops-kpi > .rmops-card, .rmops-ops-pulse-item { animation: none; }
.rmops-ops-pulse-item { position: relative; }
.rmops-ops-pulse-item > span:first-child { padding-right: 21px; }
.rm-motion-queue { position: absolute; top: 10px; right: 8px; width: 20px; height: 20px; color: var(--rmops-accent, #6439e8); opacity: .65; pointer-events: none; }
.rm-motion-queue svg { display: block; width: 100%; height: 100%; }
.rm-motion-process { display: inline-block; width: 42px; height: 14px; vertical-align: middle; margin-left: 5px; overflow: visible; }
.rm-motion-process circle { fill: currentColor; animation: rm-motion-node 1050ms ease-in-out infinite; }
.rm-motion-process circle:nth-of-type(2) { animation-delay: 150ms; }
.rm-motion-process circle:nth-of-type(3) { animation-delay: 300ms; }
.rm-motion-wire { opacity: .35; stroke-dasharray: 3 3; animation: rm-motion-flow 1200ms linear infinite; }
[data-editor-state][data-motion-state="saved"] .status-dot { background: transparent; width: 12px; height: 12px; color: var(--brand, #6439e8); }
.rm-motion-check { display: block; width: 12px; height: 12px; }
[data-editor-state][data-motion-state="busy"] .status-dot { width: 11px; height: 11px; background: transparent; border: 2px solid currentColor; border-right-color: transparent; animation: rm-motion-spin 850ms linear infinite; }
@keyframes rm-motion-node { 0%, 70%, 100% { opacity: .4; } 35% { opacity: 1; } }
@keyframes rm-motion-flow { to { stroke-dashoffset: -12; } }
@keyframes rm-motion-spin { to { transform: rotate(360deg); } }
html[data-ui-motion-paused="true"] .rm-motion-process *,
html[data-ui-motion-paused="true"] [data-motion-state="busy"] .status-dot { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .rm-motion-process *, [data-motion-state="busy"] .status-dot,
  .rmops-kpi > .rmops-card, .rmops-ops-pulse-item { animation: none !important; }
  .table-tools-trigger, .table-ai-request, .editor-zoom-toolbar button, .chrome-min svg,
  .rm-plan-card, .rm-plan-book, .rmops-ops-pulse-item,
  .rmops-app *, .studio-pane-restore, .pane-min, .pane-restore { transition-duration: 0s !important; }
  .rm-plan-card:hover .rm-plan-book, .rm-plan-card:focus-within .rm-plan-book { transform: none; }
}

.upload-zone { transition: border-color 150ms ease, box-shadow 150ms ease; }
.upload-zone .upload-icon { transition: transform 150ms ease; }
.upload-zone.rm-motion-drag-active { border-color: var(--accent, #6439e8); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #6439e8) 16%, transparent); }
.upload-zone.rm-motion-drag-active .upload-icon { transform: translateY(-4px); }
@media (prefers-reduced-motion: reduce) {
  .upload-zone, .upload-zone .upload-icon { transition: none; }
  .upload-zone.rm-motion-drag-active .upload-icon { transform: none; }
}
