/* ANCHOR: widget_error_styles */
/* REUSED: Error state styling for failed widgets */
/* SCALED FOR: Consistent error UI across all widget types */

.widget--error {
  /* CRITICAL: Error state visual feedback */
  background: rgba(239, 68, 68, 0.1) !important;
  border: 2px dashed rgba(239, 68, 68, 0.3) !important;
  border-radius: 8px;
  padding: 20px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  min-height: 100px;
  cursor: default !important;
}

.widget-error-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  color: #991B1B;
}

.widget-error-icon {
  font-size: 32px;
  line-height: 1;
  opacity: 0.8;
}

.widget-error-message {
  font-size: 14px;
  font-weight: 600;
  color: #991B1B;
}

.widget-error-details {
  font-size: 12px;
  color: #B91C1C;
  opacity: 0.7;
  font-family: monospace;
}

/* UPDATED COMMENTS: Disable interactions on error widgets */
.widget--error * {
  pointer-events: none !important;
}

/* REUSED: Error animation for attention */
@keyframes widget-error-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}

.widget--error .widget-error-icon {
  animation: widget-error-pulse 2s ease-in-out infinite;
}
